填空题
请补充fun()函数,该函数的功能是:把字符的ASCII码中为奇数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输入,其长度作为参数传入fun()函数。
例如,输入“abcdef”,则输出“bdf”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#define N 100
void
1
{
int i,j;
2;
for(i=0;i<n;i++)
if(s[i]%2==0)
s[j++]=s[i];
3;
}
void main()
{
int i=0,len=0;
char str[N];
printf("please input a string:/n");
gets(str);
while(str[i]!="/0")
{
len++;
i++;
}
fun(str,len);
printf("The result string:/n");
puts(str);
}
【正确答案】
【答案解析】fun(char s[],int n) j=0 s[j]="/0"
[解析] 先判断ASCII码的奇偶。
第一空:根据主函数“fun(str,len);”调用语句,其中len为字符串str的长度,用来控制循环。根据主函数中对应的调用语句,补全fun()函数定义,第一空填“fun(char s[],int n)”。
第二空:“s[j++]=s[i];”语句中j的变量在使用前要对其取值进行初始化,因为数组下标是由0开始的,初始化值为0,所以第二空填“j=0”。
第三空:新生成的字符串要加尾符标志,所以第三空填“s[j]="/0"”。