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

考试站(www.examzz.com)   【考试站:中国教育考试第一门户】   2013年3月22日

  上机部分
  一、改错题
  使用VC6打开考生文件夹下的工程kt6_1,此工程包含一个源程序文件kt6_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
  Constructor2
  Constructor1
  i=0
  i=10
  Destructor
  源程序文件kt6_1.cpp清单如下:
  #include  

  classCSample
  {
  inti;
  public:
  CSample(){cout<<"Constructor1"< 
  CSample(intval){cout<<"Constructor2"< 
  ~CSample(){cout<<"Destructor"< 
  voiddisp();
  };
  /**********found**********/
  voiddisp()
  {cout<<"i="< 
  voidmain()
  {
  CSample*a,b(10);
  /**********found**********/
  a->disp();
  /**********found**********/
  b->disp();  http://ks.examda.com
  }
  【参考答案】
  (1)将void disp()
  改为:void CSample::disp()
  (2)将a->disp();
  改为:a=new CSample; a->disp();
  (3)将b->disp();
  改为:b.disp();
  【试题解析】
  (1)主要考查类成员函数定义格式的熟练掌握,对于类体外函数的实现,应该使用作用域符"::",按照返回值类型 类名::函数名(参数列表)的形式进行说明;
  (2)主要考查对动态存储分配的掌握,根据前面的定义,a是一个指针类型的变量,指向一个对象,但是并没有被初始化,此时a中的数据无任何意义,应该使用动态存储分配new生成一个新的对象,并将返回的指针赋值给a;
  (3)主要考查对象指针与对象在调用成员函数时格式的不同,b是一个对象变量,使用b调用成员函数应该用"."运算符。


相关文章