计算机二级

3773考试网计算机等级考试计算机二级正文

2013计算机二级考试C++模拟试题四及答案2

来源:2exam.com 2013-9-29 21:41:23

上机部分 
  二、改错题 
  使用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)主要考查对象和对象指针的概念,对象指针使用"->"调用成员函数,而对象使用"."调用成员函数。

触屏版 电脑版
3773考试网 琼ICP备12003406号-1