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

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年3月11日
 上机部分
  二、改错题
  使用VC6打开考生文件夹下的工程kt2_1,此工程包含一个源程序文件kt2_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
  Vehiclemessage
  Carmessage
  Vehiclemessage
  源程序文件kt2_1.cpp清单如下:
  #include
  classvehicle
  {
  intwheels;
  floatweight;
  public:
  voidmessage(void){cout<<"Vehiclemessage\n";}
  };
  classcar:publicvehicle
  {
  intpassenger_load;
  public:
  voidmessage(void){cout>>"Carmessage\n";}
  };
  classtruck:publicvehicle
  {
  intpassenger_load;
  floatpayload;
  public:
  intpassengers(void){returnpassenger_load;}
  };
  voidmain()
  {
  vehicle*unicycle;
  unicycle=newvehicle;
  unicycle.message();
  deleteunicycle;
  unicycle=newcar;
  unicycle->message();
  deleteunicycle;
  unicycle=newtruck;
  unicycle->message();
  deleteunicycle;
  }
  【参考答案】
  (1)将void message(void){ cout<<"Vehicle message\n";}
  改为:virtual void message(void){ cout<<"Vehicle message\n";}
  (2)将void message (void){cout>>"Car message\n";}
  改为:void message (void){cout<<"Car message\n";}
  (3)将unicycle.message();
  改为:unicycle->message();
  【试题解析】
  (1)主要考查对虚函数使用规则的掌握,要实现对函数message的动态联编应该使用虚函数,否则产生的是静态联编,调用的函数输出结果就与要求不符;
  (2)主要考查对流输出操作的掌握,该处错误的使用了流输入操作;
  (3)主要考查对象和对象指针的概念,对象指针使用"->"调用成员函数,而对象使用"."调用成员函数。

相关文章