问答题
给定程序MODI1.C中函数fun的功能是:将tt所指字符串中的小写字母都改为对应的大写字母,其他字符不变。
例如,若输入”Ab,cD”,则输出”AB,CD”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio .h>
#include <string.h>
char* fun(char tt[])
{
int i;
for(i=0; tt[i]; i++)
/**********found***********/
if(("a"<=tt[i])||(tt[i]<="z"))
/**********found***********/
tt [i] += 32;
return (tt);
}
main()
{
char tt[81];
printf("/nPlease enter a string:");
gets (tt);
printf("/nThe result string is:/n%s", fun(tt));
}
【正确答案】
【答案解析】(1)if(("a"<=tt[i])&&(tt[i]<="z"))
(2)tt[i]-=32;
答案考生文件夹 [解析] 本题中函数的功能是将字符串中的小写字母改为对应的大写字母。首先判断字母是否为小写字母,如果是小写字母则进行转换。
(1)第一个错误标识下的if判断语句中的逻辑有误,应该是与(&&)的关系,不是或(||)的关系,所以if判断语句改为“if(("a"<=tt[i])&&(tt[i]<="z"))”。
(2)第二个标识下小写字母转换为大写字母的转换算法有误,小写转换为大写应该是减去32,而不是加上32,所以“tt[i]+=32;”改为“tt[i]=32;”。
[考点] 指向一维数组的指针以及指针数组、if语句及其构成的选择。