编程题:
72.请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。
例如,当s所指字符串中的内容为ABCDEFGHIJK,则在t所指数组中的内容应是,BDFHJ
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#include
void fun( char *s, char t[])
{
}
main()
{
char s[100], t[100];
clrscr();
printf(“\nPlease enter string S:”);
scanf(“%s”, s);
fun(s,t);
printf(“\nThe result is :%s\n”, t);
}
73.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串中第—个字母,形参p已指向字符串中最后一个字母。在编写函数时,不得使用C语言提供的字符串函数。
例如,若字符串中的内容为****A*BC*DEF*G********,删除后,字符串中的内容则应当是****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
void fun( char *a, char *h, char *p)
{
}
main()
{
char s[81],*t,*f;
printf(“Enter a string:\n”);
gets(s);
t=f=s;
while(*t)
t++;
t–;
while(*t==’*')
t–;
while(*f==’*')
f++;
fun(s,f,t);
printf(“The string after deleted:\n”);
puts(s);
}
改错题:
2.下列给定程序中,函数fun的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为:aBCDeFgH,b中的字符串为:ABcd,则C中的字符串应为:aBcdeFgH。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
void fun(char *p,char *q,char *c)
{
/********found********/
int k=1;
/********found********/
while(*p != *q)
{
if(*p<*q)
c[k]=*q;
else
c[k]=*p;
if(*p)
p++;
if(*q)
q++;
k++;
}
}
main()
{
char a[10]=”aBCDeFgH”,b[10]=”ABcd”,c[80]={‘\0′};
fun(a,b,c);
printf(“The string a:”);
puts(a);
printf(“The string b:”);
puts(b);
printf(“The result:”);
puts(c);
}
3.下列给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。
请改正函数fun中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
void fun(char *s)
{
int i,j;
/********found********/
for(i=0,j=0;s[i]!=’\0′;i++)
if(s[i]>=’0′ && s[i]<=’9′)
s[j]=s[i];
/********found********/
s[j]=”\0″;
}
main()
{
char item[80];
clrscr();
printf(“\nEnter a string :”);
gets(item);
printf(“\n\nThe string is : \%s\n”,item);
fun(item);
printf(“\n\nThe string of changing is : \%s\n”,item);
}