2013年计算机二级考试C++进行模拟测试八_第2页

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年3月22日
 上机部分
  一、改错题
  使用VC6打开考生文件夹下的工程kt5_1,此工程包含一个源程序文件kt5_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
  (1,2)
  5,6
  (6,9)
  源程序文件kt5_1.cpp清单如下:
  #include
   classA{
  public:
  A(inti,intj){a=i;b=j;}
  /****************found*******************/
  voidMove(intx,inty){a+=x;b+=y}
  voidShow(){cout<<"("<
  private:
  inta,b;
  };
  classB:privateA
  {
  public:
  /****************found*******************/
  B(inti,intj,intk,intl):(i,j){x=k;y=l;}
  voidShow(){cout<
  voidfun(){Move(3,5);}
  /****************found*******************/
  voidf1(){Show();}
  private:
  intx,y;
  };
   voidmain()
  {
  Ae(1,2);
  e.Show();
  Bd(3,4,5,6);
  d.fun();
  d.Show();
  d.f1();
  } www.examzz.com
  【参考答案】
  (1)将void Move( int x, int y) {a+=x;b+=y}
  改为:void Move( int x, int y) {a+=x;b+=y;}
  (2)将B(int i,int j,int k,int l):(i,j) {x=k;y=l;}
  改为:B(int i,int j,int k,int l):A(i,j) {x=k;y=l;}
  (3)将void f1(){Show();}
  改为:void f1(){A::Show();}
  【试题解析】
  (1)主要考查对表达式定义规则的掌握,此处缺少一个“;”,任何一个表达式都应该以分号作为结束标志;
  (2)主要考查对派生类构造函数定义的掌握,参数列表中基类的成员应使用基类构造函数初始化,因此必须向基类传递参数,传递时直接使用基类名;
  (3)主要考查对基类函数调用方法的掌握,为了调用基类的函数应该使用作用域符“::”以限定访问的位置。

相关文章