1、二级 C 语言-555 及答案解析(总分:30.00,做题时间:90 分钟)一、填空题(总题数: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+; _ 1_ ; if(n%2) while(aj!=“/0“) bj=aj; j+; bj=“/0“; else while(ai!=“/0“) bj+=ai; if(ai=c) m+; if(mn/2) if(n%2) while(aj!=“/0“) bj=aj; j+; bj=“/0“; else while(ai!=“/0“) bj+=ai; if(ai=c) m+; if(mn/2)i=n-1;i+) /*循环右移 n-p 次*/ t=wn-11; for(j=n-2;j=0;j-) /*实现循环右移*/ wj+1=wj; w0=t; 解析 本题采用“循环右移”的算法。和我们在前面分析的稍有不同的是,个是整型数组,个是字符型数组。