填空题 请补充函数fun(),该函数的功能是:把字符下标能铍2或3整除的字符从字符串str中删除,把剩余的字符重新保存在字符串str中。字符串str从键盘输入,其长度作为参数传入函数fun()。 例如,输入“abcdefghijk”,输出“bfh”。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdio.h> #define N 80 void fun(char s[], int n) { int i, k; {{U}} 【1】 {{/U}}; for(i=0; i<n; i++) { s[k++]=s[i]; if({{U}} 【2】 {{/U}}) k--; } {{U}} 【3】 {{/U}}; } main() { int i=0,strlen=0; char str[N]; clrscr(); printf("/nInput a string:/n"); gets(str); while(str[i]!='/0') { strlen++; i++; } fun(str,strlen); printf('/n*** display string ***/n"); puts(str); }
  • 1、
【正确答案】 1、[1]k=0 [2](i%2==0)||(i%3==0) [3]s[k]='/0'    
【答案解析】[解析] 填空1;变量k声明时没有初始化,所以在使用前要对它初始化。因为k用作字符数组的下标,所以初始化为 0。填空2:如果当前字符的下标能被2或3整除,则不保存这个字符。填空3:将所有字符下标能被2或3整除的字符从字符串中删除后,在字符串的最后还要加上结束标记符'/0'。