请打开考生文件夹下的解决方案文件proj1,其中定义了一个CD类。程序中位于每个//ERROR**********found**********下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是: 歌唱祖国30 义勇军进行曲95

admin2020-06-29  41

问题 请打开考生文件夹下的解决方案文件proj1,其中定义了一个CD类。程序中位于每个//ERROR**********found**********下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是:
歌唱祖国30
义勇军进行曲95
注意:只能修改每个//ERROR**********found**********下的那一行,不要改动程序中的:其他内容。
#include<iostream>
#include<cstring>
using namespace std;
class CD
{
char name[20];
int number;
public:
void init(char*aa,int bb)
{
//ERROR*******found*******
name=aa;
number=bb;
}
char*getName( ){
//ERROR*******found*******
return*name;
}
int getNumber( ){returnnumber;}
void output( ){
//ERROR*******found*******
cout<<name[20]<<’ ’
<<number<<endl;
}
};
void main( )
{
CD dx,dy;
dx.init("歌唱祖国",30);
dy.init("义勇军进行曲",3*dx.getNumber( )+5);
dx.output( );
dy.output( );
}

选项

答案(1)strcpy(name,aa); (2)return name; (3)cout<<name<<’ ’<<number<<endl;

解析 程序定义CD类,它包含两个数据成员:字符数组name和整型变量number;还包含四个公有成员函数,init( )函数接收两个参数,用参数对数据成员进行赋值;getName( )函数返回数据成员name;getNumber( )函数返回数据成员number;output( )函数将数据成员name和number输出。cD类的定义体中,有三个错误:
(1)init( )函数将形参aa赋给name,由于。name是字符数组,所以不能通过简单的赋值运算符进行赋值,应该使用strcpy( )函数将形参aa指向的字符串拷贝到name中。
(2)getName( )函数的返回值为char*类型,所以函数体的return语句应该返回name,而不是name指向的字符串。
(3)output( )函数需要输出两个数据成员,输出字符数组时,只需要给出数组名name即可。
转载请注明原文地址:https://kaotiyun.com/show/hbyp777K
0

最新回复(0)