问题 填空题

使用VC++6.0打开考生文件夹下的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“”时,默认字符输入结束,最后把结果输出到屏幕中。
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#include<iostream.h>
void main()

int i=0;
char str[120];
cout<<"Enter a string end with’’."<<end1;
//********error********
cin.getline(str,120);
//********error********
while(str)

//*****岳**error********
if(str[i]>=’a’)
str[i]=str[i]-’a’+’A’;
i++;

cout<<str<<end1;
return;

答案

参考答案:应改为“if(str[i]>=’a’&&str[i]<=’z’)”。

解析: 本题中要求以输入字符“”为结束符,用于字符输入的流成员函数getline函数读入一行字符,格式为“cin.getline(字符数组,字符个数,终止标志字符)”,所以第1处改为“cin.getline(str,120,’’);”。第2处的“while(str)”语句应该是判断字符串str中的每一个字符是否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换。所以应该修改为“while(str[i])”。第3处的“if(str[i]>=’a’)”语句是判断字符str[i]是否为小写字符,而现有的语句只是判断字符是否大干’a’,但是小g字符应该是’a’到’z’,所以修改为“if(str[i])=’a’&&str[i]<=’z’)”。

选择题
单项选择题