使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:将tt所指字符串中的小写字母全部改为对的大写字母,其他字符不变。 例如,若输入“Ab,cD”,则输出“AB,CD

admin2018-08-11  23

问题 使用VC++2010打开考生文件夹下modi1中的解决方案。此解决方案的项目中包含一个源程序文件modi1.c。在此程序中,函数fun的功能是:将tt所指字符串中的小写字母全部改为对的大写字母,其他字符不变。
例如,若输入“Ab,cD”,则输出“AB,CD”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
char*fun(char tt[])
{
int i;
for(i=0;tt;i++)
/*********found*********/
if((tt>=’a’)||(tt<=’z’))
/*********found*********/
tt+=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((tt[i]>=’a’)&&(tt[i]<=’z’)) (2)tt[i]-=32;

解析 (1)分析本题可知,要判断字符是否为小写字母,即判断其是否在‘a’~‘z’之间,所以这里需要进行连续的比较,用&&。
(2)从ASCII码表中可以看出,小写字母的ASCII码值比对应大写字母的ASCII值大32。将字符串中的小写字母改为大写字母的方法是:从字符串第一个字符开始,根据ASCII码值判断该字母是不是小写字母,若是,则ASCH码值减32。
转载请注明原文地址:https://kaotiyun.com/show/2jxp777K
0

最新回复(0)