填空题 请补充函数fun(),该函数的功能是:依次取出字符串中所有的小写字母以形成新的字符串,并取代原字符串。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include<stdio.h> #include<conio.h> void fun(char *s) { int i=0; char *p=s; while({{U}} 【1】 {{/U}}) { if (*p>='a'&&*p<='z') { s[i]=*p; {{U}}【2】 {{/U}}; } p++; } s[i]={{U}} 【3】 {{/U}}; } main() { char str[80]; clrscr(); printf("/nEnter a string:"); gets(str); printf("/n/nThe string is:/%s/n",str); fun(str); printf("/n/nThe string of changing is:/%s/n",str); }
  • 1、
【正确答案】 1、[1] *p [2] i++ [3] '/0'    
【答案解析】[解析] 填空1:while循环的循环条件是指针p所指的字符不是'/0',也就是说,当处理到字符串最后的结束标记字符 '/0'时,while循环结束。填空2:如果指针p所指的字符为小写字母,则将这个字符存于原字符串s中,同时,下标自加1,为下一次存放做准备。填空3:在取出所有小写字母并存于原字符串s后,要注意在最后加上字符串结束标志符'/0'。