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

admin2015-07-24  22

问题 请使用“答题”菜单或使用VC6打开考生文件夹projl下的工程projl。程序中位于每个//ERROR**********found**********下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是:
    Congratulations 1
    100
    源程序如下:  
    #include
    using namespace std;
    class Score{
    private:
    int data;
    public:
    Score(int d=0){
    this->data=d;
    }
    ~Score(){}
    void show(){
    cout<data<    }
    void setData(int value){
    this->data=value;
    if(this->check()){
    cout<<"Congratulations!"<    }
    }
    bool check(){
    //ERROR**********found**********
    if(this->data=100)
    return true;
    return false;
    }
    };
    int main(){
    //ERROR**********found**********
    Score s=new Score();
    //ERROR**********found**********
    S->data=100:
    S->show();
    return 0;
    }

选项

答案(1)if(this一>data==100) (2)Score* s=new Score(); (3)s一>setData(100);

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

最新回复(0)