2012年计算机二级C++第六套上机模拟试题及答案解析

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

本文导航
  • 第1页:一、改错题
  • 第2页:二、简单应用题
  • 第3页:三、综合应用题

  一、改错题

  使用VC6打开考生文件夹下的工程kt11_1,此工程包含一个源程序文件kt11_1.cpp,但该程序运行有问题,请改正函数中的错误,使该程序的输出结果为:

  Valuesare:1,2and3

  Pressanykeytocontinue

  源程序文件kt11_1.cpp清单如下:

  #include

  classCommonBase

  { public:

  intx; };

  /*****************found*****************/

  classDeriveCommonA::publicCommonBase

  { public:

  inty; };

  classDeriveCommonB:publicCommonBase

  { public:

  intz; };

  /*****************found*****************/

  classOverlapping:publicDeriveCommonA;publicDeriveCommonB

  { public:

  voidDisplay()

  { cout<<"Valuesare:"<  intmain()

  { Overlappingov;

  /*****************found*****************/

  ov.x=1;

  ov.y=2;

  ov.z=3;

  ov.Display();

  return0; }

  【试题解析】

  (1)主要考查对派生类定义的理解,C++规定的继承格式是在类名的后面加冒号,之后是继承方式和继承类的名称,题目中错误的使用了作用域运算符;

  (2)主要考查多继承的定义,多继承的格式基本上和单继承相同,不过在多个基类之间应该使用逗号分开,题目中错误的使用了分号,分号在C++中是结束标志;

  (3)主要考查对派生类的对象访问的掌握,x是类CommonBase的成员,如果不加限制的访问就会产生二义性,编译程序不知道这个x是A类的,还是B类的,所以必须使用作用域限制符“::”,为了解决这个问题可以使用虚基类。

上一页123下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答