1、计算机二级(C+)上机考试 28 及答案解析(总分:-3.00,做题时间:90 分钟)1.改错题 使用 VC6 打开考生文件夹下的工程 test3_1,此工程包含一个源程序文件 test3_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: A:a=5 display1:a=6 display2:a=5 源程序文件 test3_1.cpp 清单如下: #include class A public: /*found*/ A() void printa()couty) t=x; x=y; y=t; coutz) t=x; x=z; z=t; if(yz) t=y; y=z
2、 z=t; coutx/ty/tz解析:本题考查考生对函数重载与引用调用的掌握。这里的重载是使用不同的参数个数,引用调用的形参使用 Vector(Vector int void display(); void set(); Vector(); protected: int size; int *buffer; ; Vector:Vector(int s) / * 1 * Vector:Vector(Vector i“error in index“elem(j)_正确答案:((1) size=s; buffer=new intsize; (2) size=v.size; buffer=new intsize; (3) if (ndx=size) (4) cout“d“解析:本题主要考查考生对于类的构造函数与成员函数定义的掌握,注意(2)中赋值的应用,为了防止重复删除,不能直接将指针赋值,必须使用动态申请 new 建立一块新的空间,并且将原来对象的成员全部复制到新的空间中;(4)中对动态一维数组空间删除的时候,应该使用 delete 关键字,并且不管原数组大小是多少,一律只写一对中括号“加上变量名。