1、二级 C 语言-60 及答案解析(总分:71.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:1.00)1.请补充函数 fun(),该函数的功能是按条件删除一个字符串指定字符一半的数目,具体要求如下:如果该字符串所包含的指定字符的个数是奇数,则不予删除,如果其数目是偶数,则删除原串后半部分的指定字符。其中,a 指向原字符串,删除后的字符串存放在 b 所指的数组中,c 中存放指定的字符。 例如:当a 输入“abababa”,ca时,b 的输出为“ababb”; 如果 a 的输入为“ababa”,则 b 的输出为“ababa”。 注意:部分源程序给出如下。 请勿改动主函数 main
2、 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #includestdioh #includeconioh #define LEN 80 void fun(char a,char b,char C) int i=0,j=0; int n=0; int m=0; while(ai!=/0) if(ai=c) n+; i+; U U /U /U;if(n%2) while(aj!=/0) bj=aj; j+; bj=/0; else while(ai!=/0) bj+=ai; if(ai=c) m+; if(mn/2)clrscr();printf(
3、“Enter s1 and s2:/n“);scanf(“%s%s“, s1, s2);printf(“s1=%s/n“, s1);printf(“s2=%s/n“, s2);printf(“Invoke fun(s1, s2):/n“);fun(s1, s2);printf(“After invoking:/n“);printf(“%s/n“, s1);(分数:40.00)_二级 C 语言-60 答案解析(总分:71.00,做题时间:90 分钟)一、B填空题/B(总题数:1,分数:1.00)1.请补充函数 fun(),该函数的功能是按条件删除一个字符串指定字符一半的数目,具体要求如下:如果该
4、字符串所包含的指定字符的个数是奇数,则不予删除,如果其数目是偶数,则删除原串后半部分的指定字符。其中,a 指向原字符串,删除后的字符串存放在 b 所指的数组中,c 中存放指定的字符。 例如:当a 输入“abababa”,ca时,b 的输出为“ababb”; 如果 a 的输入为“ababa”,则 b 的输出为“ababa”。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #includestdioh #includeconioh #define LEN 80 void fun(char a,ch
5、ar b,char C) int i=0,j=0; int n=0; int m=0; while(ai!=/0) if(ai=c) n+; i+; U U /U /U;if(n%2) while(aj!=/0) bj=aj; j+; bj=/0; else while(ai!=/0) bj+=ai; if(ai=c) m+; if(mn/2)clrscr();printf(“Enter s1 and s2:/n“);scanf(“%s%s“, s1, s2);printf(“s1=%s/n“, s1);printf(“s2=%s/n“, s2);printf(“Invoke fun(s1, s2):/n“);fun(s1, s2);printf(“After invoking:/n“);printf(“%s/n“, s1);(分数:40.00)_正确答案:(void fun(char p1, char p2) int i=0, n=0; char *p=p1, *q=p2; while(*p) p+; n+; i=n; while(*q) p1i=*q; q+; i+; p1i=/0; )解析:解析 用指针遍历第一个字符串,把指针定位到串尾标志符处;遍历第二个字符串,依次把字符复制到第一个字符串的末尾;最后赋结尾标志符。