2013年下半年全国计算机等级考试二级c语言上机真题(类型一)

来源:互联网 发布:深度linux系统 编辑:程序博客网 时间:2024/04/30 05:36

今天做啦几套题,总结啦一个题型,就是从*****A**B*C*D*****这样的字符串中删除*的几种类型,一种总结啦七种。

一:输入的字符串:只有字母和*号,编写函数:fun()实现不同的功能?
1)除了尾部的*号外,将字符串中的其他*全部删除,形参p已指向字符串中最后一个字母,例如:*****A*BC*DEF*G****.删除后为:ABCDEFG*****
(21题)

Void fun(char *a,char *p)
{char *t=a;
 for(;t<=p;t++)
if(*t!=*)
{*a=*t;
a++;
   }
for(;t!=\0;t++)
  {*a=*t;
   a++
}
a=\0;
}


(2)将字符串中的前导*号删除,中间和尾部的*不能删除。

列如:*********A*BC*DEF*G*****删除后,A*BC*DEF*G*****

(25)

Void fun(char *a)

{ char *p=a;

 While(*p==*)

  p++;

for(;*p!=\0;p++)

{   *a=*p;

     a++;

}

a=\0;

}

(3)除啦字符串前导和尾部的*号外,将串中其他*号全部删除,形参h已指向字符串中的第一个字母,形参p指向字符串中的最后一个字母,。(49)

列如:*****A*BC*DEF*G****删除后:*****ABCDEFG*******

Void fun(char *a,char *h,char *p)

{ int i=0;

  Char *t=a;

While(t<h)

{

   a[i]=*t;

   i++;

   t++;

}

  

  While(t<p)

{

   If(*q!=*)

   {a[i]=*t;

     i++;

     }

   t++;

}

While(*t)

{  a[i]=*t;

   i++;

    t++;

}

a[i]=\0;

}

(4)只删除字符前导和尾部的*号,串中字母间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串前导*号的个数,形参e给出啦字符串中尾部*号的个数,。(58)

列如:*****A*BC*DEF*G******删除后:A*BC*DEF*G

Void fun(char *a,int n,int h,int e)

{ int i,j=0;

 for(i=h;i<n-e;i++)

       {a[j]=a[i]

        j++;

         }

a[j]=\0;

 

}

(5)除啦字符串前导的*号外,将字符串其他的*号全部删除,(63题)

列如:****A*BC*DEF*G*******删除后****ABCDEFG

Void fun(char *a)

{ int i=0;

 Char *p=a; 

While(*p&&*P==*)

{ a[i]=*p;

 i++;

 p++;

}

While(*p)

{

if(*p!=*)

{ a[i]=*p;

  i++;

}

P++;

}

a[i]=\0;

}

(6)65套题将字符串中的尾部的*号全部删除,前面和中间的*号不动。

列如:****A*BC*DEF*G******删除后****A*BC*DEF*G

Void funchar *a

{

While(*a!=\0)

a++;

a--;

While(*a==*)

a--;

*(a+1) =\0;  

}

(7)删除字符串中的所有的*(69)

Void fun(char *a)

{

 Int i,j=0;

For(i=0;a[i]!=\0;i++)

{if(a[i]!=*)

{  a[j]=a[i];

   j++;

a[j]=\0;

 }

}