问题 填空题

请补充fun函数,该函数的功能是:把字符的ASCII码为奇数的字符从字符串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++)
char str[N];
printf("please input a string:\n");
gets(str);
while(str[i]!=’\0’)

len++;
if(s[i]%2==0)
s[j++]=s[i];
(3)

main()

int i=0,len=0;
i++;

fun(str,len);
printf("The result string:\n");
puts(str);

答案

参考答案: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’”。

问答题 简答题
单项选择题