使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正错误,使得程序正常运行。并使程序输出结果为: ABCDEF ABCDEF ABCDEF 注意:不要改动main函数,不能增行或删行,也不能更

admin2018-10-23  31

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错误,请改正错误,使得程序正常运行。并使程序输出结果为:
    ABCDEF
    ABCDEF
    ABCDEF
    注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在//******error******的下面。
1  #include<iostream.h>
2  void main()
3  {
4      //********error********
5      char s1[]=’’ABC
6  ’’DEF’’;
7     //********error********
9   char s2[]=’’ABC
9  DEF’’;
10    //********error********
11    char s3[]=’’ABC’’+
12    ’’DEF’’;
13    cout<<s1<<end1;
14    cout<<s2<<end1;
15    cout<<s3<<end1;
16    return;
17  }

选项

答案(1)char s1[]=’’ABC’’ (2)char s2[]=’’ABC\ (3)char s3[]=’’ABC’’

解析 程序要求输出字符串数组的值。从已定源程序的main主函数开始入手,可以看出程序通过输出函数cout实现三个字符串数组值的输出。
    (1)字符串数组以“;”结束赋值语句,所以“ABC“DEF”应该是字符串数组s1的赋值语句,它的错误提示“modi1.cpp(5):error.C2001:newline in constant”,说明“DEF”被认为是新的值,根据题目要求它其实应该是与ABC是一个数组串的,所以应该在”ABC后面添加“*”,即第1个标识下修改为“char s1[]=’’ABC’’”。
    (2)根据题目中给出的输出结果,知道s2的输出也是ABCDEF,那么说明第2个标识下的s2值应该是ABCDEF,第一行与第二行是一个字符串。在C++中,在一个字符串中最后一个字符为“\n”,则标识它是续行符,下一行的字符是该字符串的一部分,所以在第一行的ABC后面添加“\”,即“char s2[]=’’ABC\”。
    (3)字符串数组s3的赋值语句,错误提示“modi1.cpp(12):error C2110:cannot add two pointers”不能添加两个指针,不是用“+”来连接的,两个字符串变量之间不可以用“+”连接,所以这里删除“+”,即第3个标识下修改为“char s3[]=’’ABC”。
转载请注明原文地址:https://kaotiyun.com/show/l5Ap777K
0

最新回复(0)