1、计算机二级(C+)上机考试 17 及答案解析(总分:-3.00,做题时间:90 分钟)1.改错题 使用 VC6 打开考生文件夹下的工程 test13_1,此工程包含一个源程序文件 test13_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下: n=2 n=5 n=7 源程序文件 test13_1清单如下: #include class Sample int n; public: /* found */ Sample() Sample(int i)n=i; /* found */ void add(Sample s1,Sample s2) /* found */ th
2、is.n=s1-n+s2.n; void disp()coutdisp(); (分数:-1.00)_计算机二级(C+)上机考试 17 答案解析(总分:-3.00,做题时间:90 分钟)1.改错题 使用 VC6 打开考生文件夹下的工程 test13_1,此工程包含一个源程序文件 test13_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果如下: n=2 n=5 n=7 源程序文件 test13_1清单如下: #include class Sample int n; public: /* found */ Sample() Sample(int i)n=i; /* foun
3、d */ void add(Sample s1,Sample s2) /* found */ this.n=s1-n+s2.n; void disp()coutn+s2.n; 正确:this-n=s1-n+s2.n; )解析:(1)主要考查考生对于类的成员函数定义的掌握,应该使用作为空的函数体,这是不能省略的;(2)主要考查考生对于指针调用的掌握,根据函数体中对于 s1 的使用可以看出,它是一个指针类型的变量,调用时实参应该使用“*“,形参使用“ sort(a,b); sort(a,b,c); (分数:-1.00)_正确答案:((1) void sort(int if (xy) t=x; x=y; y=t; coutz) t=x; x=z; z=t; if(yz) t=y; y=z; z=t; coutdisp(); (分数:-1.00)_正确答案:((1) int x; int y; (2) base:x=a; base:y=b; (3) cout“三角形面积:“x*y*0.5解析:本题考查考生对类的继承与派生的掌握,包括派生类对基类成员的访问和派生类构造函数的定义等知识点。其中(4)是对类的构造函数设定参数的缺省值,该函数应该实现将参数传递给基类的功能。