填空题
下列给定程序中,函数fun的功能是:将str所指字符串中的字母转换为按字母序列的后续字母(Z转换A,z转换a),其他字符不变。 请修改函数fun中的错误,得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include<stdio.h> #include<ctype.h> #include<conio.h> void fun(char*str) /*******found*********/ while(*str!='@') if(*str>='A'&&*str<='Z'||*str<='a'&&*str<='z') if(*str=='Z') *str='A'; else if(*str=='z') *str='a'; else *str+=1; /*******found*********/ (*str)++; main() char str[80]; printf("/n Enter a string with length<80.:/n/n"); gets(str);printf("/n The string:/n/n"); puts(str); fun(str); printf("/n/n The Cords:/n/n"); puts(str);
【正确答案】
1、{{*HTML*}}1.while(*str)或while(*str!='/0')或while(*str!=0) 2.str++;
【答案解析】 [解析] 首先判断字母是否为小写字母,如果是小写字母则进行转换。 第一个标识下“while(*str!='@')”语句原意是str不指向字符串尾就进入下面的循环,所以对于指针判断不为结束符的语句应为while(*str)或while(*str!='/0')或while(*str!=0)。 第二个标识下“(*str)++;”是对字符内容加1,而原题是对字符位置加1,所以将其改为“str++;”。
提交答案
关闭