填空题
请补充函数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]k=0 [2](i%2==0)||(i%3==0) [3]s[k]='/0'
【答案解析】[解析] 填空1;变量k声明时没有初始化,所以在使用前要对它初始化。因为k用作字符数组的下标,所以初始化为 0。填空2:如果当前字符的下标能被2或3整除,则不保存这个字符。填空3:将所有字符下标能被2或3整除的字符从字符串中删除后,在字符串的最后还要加上结束标记符'/0'。