问题 填空题

下列给定程序中,函数fun()的作用是,将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入"Ab,cD",则输出"ab, cd"。 请改正函数fun()中的错误,使它能得出正确的结果。 注童:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include <stdio.h> #include <string.h> #include <conio.h> char *fun (char tt[]) { int i; for(i=0; tt[i]; i++) /**************found**************/ { if((’A’ <=tt[i]||(tt[i]<=’z’ )) tt[i]+=32; } return(tt); } main() {int i; char tt[81]; clrscr(); printf("\nPlease enter a string:"); gets(tt); printf("\nThe result string is:\n %s", fun(tt)); }

答案

参考答案:错误:if((’A’ <=tt[i]||(tt[i]<=’Z’)) 正确:if((tt[i]>=’A’)&&(tt[i]<=’Z’))

解析: 从ASCII码表中可以看出,小写字母的ASCII码值比对应大写字母的ASCII码值大32。将字符串中的大写字母改为小写字母的方法是,从字符串第1个字符开始,根据ASCII码值判断该字母是不是大写字母,若是,则ASCII码值加32即可;重复执行以上过程直至字符串尾。本题可利用条件选择语句和循环语句来实现。

单项选择题
单项选择题