网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文

计算机二级C++练习题:程序改错题

栏目: 计算机二级 / 发布于: / 人气:8.85K

为了使广大考生在备战计算机等级考试时,更快的掌握相应知识点,下面是小编搜索整理的计算机二级C++练习题:程序改错题,供参考练习,预祝考生们考出自己理想的成绩!

计算机二级C++练习题:程序改错题

  计算机二级C++练习题:程序改错题01

使用VC6打开考生文件夹下的工程kt9_1,此工程包含一个源程序文件kt9_,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:

4,5

20

源程序文件清单如下:

#include

classA

{protected:

intn,m;

public:

voidset(inta,intb){m=a;n=b;}

voidshow(){cout<<m<<","<<n<<endl;}

/**********found**********/}

classB:publicA

{ints;

public:

voidset(){s=m*n;}

voidshows(){cout<<s<<endl;}};

voidmain()

{

Bb;

/**********found**********/

();

();

();

/**********found**********/

();

}

【参考答案】

(1)在“}”后添加分号

(2)将();改为:b.A::set(4,5);

(3)将();改为:s();

【试题解析】

(1)主要考查对类定义格式的'掌握,类的结尾应该使用";";

(2)主要考查对基类与派生类函数调用关系的掌握,根据所要求的输出结果,应该调用的函数为类A的set,而不是类B自身的set函数,应该避免调用的二义性;

(3)主要考查对继承与派生的理解,由所要求输出结果可知正确:s()。

  计算机二级C++练习题:程序改错题02

使用VC6打开考生文件夹下的工程kt10_1,此工程包含一个源程序文件kt10_,但该程序运行有问题,请改正程序中的错误,使程序的输出结果为:

classBase

classD1

classD2

classD3

finBase

源程序文件kt10_清单如下:

#include

classBase

{public:

Base(){cout<<"classBase"<<endl;}

voidf(){cout<<"finBase"<<endl;}};

classD1:virtualpublicBase

{public:

D1(){cout<<"classD1"<<endl;}

voidf(){cout<<"finD1"<<endl;}};

/**********found**********/

classD2:publicBase

{public:

D2(){cout<<"classD2"<<endl;}};

/**********found**********/

classD3::publicD1,publicD2

{public:

D3(){cout<<"classD3"<<endl;}};

voidmain()

{D3d;

/**********found**********/

d.f();}

 【参考答案】

(1)将classD2:publicBase

改为:classD2:virtualpublicBase

(2)将classD3::publicD1,publicD2

改为:classD3:publicD1,publicD2

(3)将d.f();改为:::f();

 【试题解析】

(1)主要考查对虚基类的理解,虚基类可以解决二义性的问题,其定义方式是在继承列表中使用virtual关键字,使用虚基类可以避免程序运行中对基类函数调用的不惟一;

(2)主要考查对类的定义方法的掌握,“::”为作用域符,此处应该使用“:”,因为后面是继承列表;

(3)主要考查对虚基类函数调用过程的理解,只有使用"::"限定才能访问基类函数,否则将会调用自身的函数,如果该类没有该函数的定义,则会自动调用其父类的该函数,所以必须使用“::”符号。