2013计算机二级考试C++模拟试题四及答案2 |
来源:2exam.com 2013-7-18 |
上机部分 二、改错题 使用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)主要考查对象和对象指针的概念,对象指针使用"->"调用成员函数,而对象使用"."调用成员函数。
|
网站版权与免责声明
①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系. |
|
|
|