填空题 请补充函数proc(),该函数的功能是:把ASCII码为偶数的字符从字符串str中删除,结果仍然保存在字符串str中,字符串str从键盘输入,其长度作为参数传入函数proc()。
例如,输入“verybook”,输出“eyook”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#define M 80
1
{
int i, j;
2;
for(i=0; i<n; i++)
{
if(str[i]%2!=0)
str[j++]=str[i];
}
3;
}
void main()
{
int i=0, strlen=0;
char str[M];
system("CLS");
printf("/nInput a string:/n");
gets(str);
while(str[i]!="/0")
{
strlen++;
i++;
}
proc(str, strlen);
printf("/n***display string***/n");
puts(str);
}
【正确答案】
【答案解析】void proc(char str[], int n) j=0 str[j]="/0"[解析] 由整个程序结构可知,第一处为函数proc()的函数定义。由主函数中的函数调用可知,函数proc()的形式为:void proc(char str[],int n);由函数proc()可知,变量j为结果数组的下标,其初始化为0,因此,第二处填“j=0”;最后,要为新的字符数组添加结束符,因此,第三处填“str[j]="/0"”。