问题 填空题

下列给定程序中,函数fun()的功能是:依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdio.h>
#include<conio.h>
void fun(char*S)

int i,j;
for(i=0,j=0;s[i]! =’\0’;i++)
/*************found************/
if((s[i]>=’A’&&s[i]<=’Z’)&&(s[i]>= ’a’&&S[i]<=’z’,))
s[j++]=s[i];
/*************found*************/
s[j]="\0";

main()

char item[80];
clrscr();
printf("\nEnter a string:");
gets(item);
printf("\n\nThe string is:\%s\n",item);
fun (item);
printf("\n\nThe string of changing
is:\%S\n",item);

答案

参考答案:(1)错误:if(s[i]>=’A’&&s[i]<=’Z’)&&(s[i]>=’a’&&s[i]<=’z’))
正确:if((s[i]>=’A’&&s[i]<=’Z’)||s[i]>=’a’&&s[i]<=’z’))
(2) 错误:s[j]="\0"
正确:s[j]=’\0’

解析: 错误1:字母包括小写字母和大写字母,这里是“或”的关系,所以用“||”运算符。错误2:字符串的结束标志符为字符,而不是字符串。

填空题
多项选择题