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

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年3月11日
 二、改错题
  使用VC6打开考生文件夹下的工程kt1_1,此工程包含一个源程序文件kt1_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果为:
  Whichact(aorb)?b
  act1
  act2
  Bact3
  Bact4
  Bend
  源程序文件kt1_1.cpp清单如下:
  #include
  classA
  {public:
  virtualvoidact1(){cout<<"act1\n";act2();}
  voidact2(){cout<<"act2\n";act3();}
  voidact3(){cout<<"Aact3\n";act4();}
  virtualvoidact4{cout<<"Aact4\n";act5();}
  voidact5(){cout<<"Aend\n";}
  };
  classB:publicA
  {
  voidact3(){cout<<"Bact3\n";act4();}
  voidact4(){cout<<"Bact4\n";act5();}
  voidact5(){cout<<"Bend\n";}
  };
  voidmain(void)
  {
  charc;
  A*a;
  cout<<"Whichact(aorb)?";
  cin<
  if(c=='a')
  a=newA;
  else
  a=newB;
  a->act1();
  deletea;
  【参考答案】
  (1)将void act3(){cout<<"Aact3\n";act4();}
  改为:virtual void act3(){cout<<"Aact3\n";act4();}
  (2)将virtual void act4{cout<<"Aact4\n";act5();}
  改为:virtual void act4(){cout<<"Aact4\n";act5();}
  (3)将cin<
  改为:cin>>c;
  【试题解析】
  (1)主要考查对虚函数使用规则的理解,要实现对函数act3的动态联编应该使用虚函数,这样在本题中对于函数的调用才能实现根据不同对象调用不同函数;
  (2)主要考查对函数定义的掌握,虽然参数表为空,但括号是不能省略的;
  (3)主要考查是否会使用流输入操作,本题中使用的是流输出符。

相关文章