模拟试题

3773考试网计算机等级考试模拟试题正文

2013年9月计算机二级C++无纸化预测试题及答案一

来源:2exam.com 2013-9-22 20:05:13

 

三、改错题 
  使用VC6打开考生文件夹下的工程kt7_1,此工程包含一个源程序文件kt7_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: 
  Constructor1 
  Constructor1 
  Constructor1 
  Destructor 
  Constructor2 
  Destructor 
  x=0 
  x=5 
  Destructor 
  Destructor 
  源程序文件kt21_1.cpp清单如下: 
  #include 
  classB 
  {intx; 
  public: 
  B(  ){x=0;cout<<"Constructor1"< 
  B(inti){x=i;cout<<"Constructor2"< 
  ~B(  ){cout<<"Destructor"< 
  /**********found**********/ 
  ~B(inti){cout< 
  voidprint(  ){cout<<"x="< 
  voidmain(  ) 
  {B*ptr; 
  ptr=newB[2]; 
  /**********found**********/ 
  ptr[0]=B(0); 
  ptr[1]=B(5); 
  /**********found**********/ 
  for(inti=0;i<2;) 
  ptr[i].print(  ); 
  delete[]ptr;} 
  【参考答案】 
  (1)将~B(inti){cout< 
  (2)将ptr[0]=B(0);改为:ptr[0]=B(  ); 
  (3)将for(inti=0;i<2;)改为:for(inti=0;i<2;i++) 
  【试题解析】 
  (1)主要考查对析构函数特性的掌握,析构函数不能带参数也不能重载,一个类中只能定义一个析构函数,因为析构函数在删除对象的时候被默认调用,如果含有多个析构函数则可能引起多次删除产生的意外错误; 
  (2)主要考查对构造函数与函数重载的掌握,由输出结果可知其应该调用不带参数的构造函数B(  ); 
  (3)主要考查对for循环语句的使用,如果在for循环中不写第三个表达式就意味着该循环一直会执行下去,因为i的值总是小于2。

上一页  [1] [2] [3] [4] [5] [6] [7] 下一页

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