2013计算机二级考试C++模拟试题十及答案2 |
来源:2exam.com 2013-9-29 |
上机部分 一、改错题 使用VC6打开考生文件夹下的工程kt6_1,此工程包含一个源程序文件kt6_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下: Constructor2 Constructor1 i=0 i=10 Destructor 源程序文件kt6_1.cpp清单如下: #include 来源:www.examda.com 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调用成员函数应该用"."运算符。
|
网站版权与免责声明
①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系. |
|
|
|