使用VC++6.0打开考生文件夹下的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中。 注意:不要改动main函数,不能增加或删除行,也

admin2013-11-15  63

问题 使用VC++6.0打开考生文件夹下的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中。
    注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//* * * * * * * * error* * * * * * * *的下面。
    试题程序:
#include
void main()
{
int i=0:
char str[120];
cout<<"Enter a string end with’?’."<//* * * * * * * * error* * * * * * * *
cin.getline(str,120);
//* * * * * * * * error* * * * * * * *
while(str)
{
//* * * * * * * * error* * * * * * * *
    if(str)=’a’)
    str=str-’a’+’A’;
    i++:
}
cout<return:
}

选项

答案(1)应改为“cin.getline(str,120,’?’);”。 (2)应改为“while(str[i])”。 (3)应改为“if(str[i])=’a’&&str[i](=’z’)”。

解析 本题中要求以输入字符“?”为结束符,用于字符输入的流成员函数getline函数读入一行字符,格式为“cin.getline(字符数组,字符个数,终止标志字符)”,所以第1处改为“cin.getline(str,120,’?’);”。
    第2处的“while(str)”语句应该是判断字符串str中的每一个字符是否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换。所以应该修改为“while(str)”。
    第3处  "if(str)=’a’)”语句是判断字符str是否为小写字符,而现有的语句只是判断字符是否大于’a’,但是小写字符应该是’a’到’z’,所以修改为“if(st>=’a’&&str(=’z’)”。
转载请注明原文地址:https://kaotiyun.com/show/cHNp777K
0

最新回复(0)