您现在的位置:首页 > IT认证 > 计算机二级考试 >

计算机等级考试二级C++试题及答案7


一、改错题
  使用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(int i){cout<
  (2)将ptr[0]=B(0);改为:ptr[0]=B();
  (3)将for (int i=0;i<2;)改为:for(int i=0;i<2;i++)
  【试题解析】
  (1)主要考查对析构函数特性的掌握,析构函数不能带参数也不能重载,一个类中只能定义一个析构函数,因为析构函数在删除对象的时候被默认调用,如果含有多个析构函数则可能引起多次删除产生的意外错误;
  (2)主要考查对构造函数与函数重载的掌握,由输出结果可知其应该调用不带参数的构造函数B();
  (3)主要考查对for循环语句的使用,如果在for循环中不写第三个表达式就意味着该循环一直会执行下去,因为i的值总是小于2。

相关文章

无相关信息
更新时间2022-03-13 11:18:59【至顶部↑】
联系我们 | 邮件: | 客服热线电话:4008816886(QQ同号) | 

付款方式留言簿投诉中心网站纠错二维码手机版

客服电话: