使用VC6打开考生文件夹下的源程序文件modi1.cpp,但该程序运行时有错,请改正程序中的错误,使程序输出的结果为:
This is a greart!
Hello
Hello
注意:错误的语句在//******error******的下面,修改该语句即可。
1 #include< iostream.h >
2 class CMyClass
3 {
4 public:
5 void display1()
6 {
7 cout< < ''This is great!''< < end1;
8 }
9 void display2()
10 {
11 //********error********
12 char str[5]=''Hello'';
13 cout< < str< < end1;
14 }
15 //******error******
16 void display3(char string)
17 {
18 //******error******
19 cout< < string< < end1
20 }
21 };
22 void main()
23 {
24 CMyClass myclass;
25 myclass.display1();
26 myclass.display2();
27 myclass.display3(''Heiio'');
28 }
【正确答案】(1)char str[6]=''Helio''; 或char str[]=''Hello'';
(2)void display3(char*string) 或void display3(char string[])
(3)cout< < string< < end1;
【答案解析】类CMyClass有3个成员函数:display1()、display2()和display3(),display1()和display2()不带参数,display3()带有参数,函数功能分别向屏幕打印输出不同的字符串。
(1)”Hello”字符串的长度为5,存放在字符数组中的话,字符数组的长度至少为6,因为字符数组的最后一个字符为NULL,故第1个标识下字符数组长度为5太短,应改成“char str[6]=''Hello'';”或“char str[]=”Hello”;”。
(2)char string表示string为一个char变量,代表一个字符而不是一串字符,程序要求输出一串字符显然字符变量做不到,应该为字符指针或字符数组,故第2个标识下应改为“void display3(char*string)”或“void display3(char string[])”。
(3)编译程序发现第3标识下有错误,观察程序可知第3个标识下语句结束没有分号,而C++语句必须以分号结束,应加上分号,即第3表示下应改为“cout< < string< <  end1];”。