请使用“答题”菜单或使用VC6打开考生文件夹pmj1下的工程pmjl。程序中位于每个//ERROR**********found**********下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是: Congratulation

admin2020-06-29  30

问题 请使用“答题”菜单或使用VC6打开考生文件夹pmj1下的工程pmjl。程序中位于每个//ERROR**********found**********下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是:
Congratulations!
100
给定源程序
#include
usingnamespacestd;
classScore{
private:
intdata;
public:
Score(intd=0){
this->data=d;
}
~Score(){}
voidshow(){
cout<data<}
voidsetData(intvalue){
this->data=value;
if(this->check()){
cout<<"Congratulations!"<}
}
boolcheck(){
//ERROR**********found**********
if(this->data=100)
returntrue;
returnfalse;
}
};
intmain.(){
//ERROR**********found**********
Scores=newScore();
//ERROR**********found**********
S->data=100;
S->show();
return0;
}

选项

答案(1)if(this->data==100) (2)Score*s=newScore(); (3)S->setData(100);

解析 (1)主要考查考生对赋值运算符与相等运算符的掌握,在if判断条件中,赋值运算符始终为真,这里需要比较是否相等,使用相等运算符。
(2)主要考查考生对动态分配的掌握,由下面语句s通过箭头访问运算符访问成员函数可以判断,s属于指针,new运算符返回的是指针,所以修改为Score*s=new Score()
(3)主要考查考生对类成员访问权限的掌握,不能通过S指针直接访问私有变量data,修改为通过成员函数setData来修改data值。
转载请注明原文地址:https://kaotiyun.com/show/Fa8p777K
0

最新回复(0)