首页 > 全部 > 二级C++ > 国家二级C++机试(继承和派生)模拟试卷20

国家二级C++机试(继承和派生)模拟试卷20

本单篇文档共14561字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C++ 章节练习 6709人下载
价格: 1.20 原价:¥8.80
收藏

国家二级C++机试(继承和派生)模拟试卷20

选择题

1.有如下程序:

#include<iostream>

using namespace sta;

class A{

public:

A(){cout<<’A’;}

~A(){cout<<’C’;}

};

class B:public A{

public:

B(){cout<<’G’;}

~B(){cout<<’T’;}

};

int main(){

B obj;

return 0;

}

运行这个程序的输出结果是( )。(B)

A. GATC

B. AGTC

C. GACT

D. AGCT

解析:派生类B是由基类A公开继承而来,所以在创建类B的obi对象时,首先执行基类A的构造函数A(),输出A,再执行派生类B的构造函数B(),输出G,当程序结束时,首先执行派生类的析构函数~B(),输出T,再执行基类A的析构函数~A(),输出C。

2.有如下程序:

#include<iostream>

using namespace std;

class Base{

public:

void fun0{tout<<’B’;}

};

class Derived:public Base{

public:

void fun(){____cout<<’D’;}

};

int main(){

Derived d;

d.fun();

return 0;

}

若程序的输出结果是BD,则划线处缺失的部分是( )。(C)

A. fun();

B. Base.fun();

C. Base::fun();

D. Base->fun();

解析:派生类Derived的对象d调用其成员函数fun(),要输出结果为BD,所以在其成员函数fun()中要调用基类Base的成员函数fun()。

3.下列关于虚基类的描述中,错误的是( )。(C)

A. 使用虚基类可以消除由多继承产生的二义性

B. 构造派生类对象时,虚基类的构造函数只被调用一次

C. 声明“class B:virtual public A”说明类B为虚基类

D. 建立派生类对象时,首先调用虚基类的构造函数

解析:虚基类是为了消除由多重继承产生的二义性而提出的。虚基类的说明格式是:

Class<类名>:virtual<继承方式><基类名>,其中关键字virtual与继承方式的位置无关,但必须位于基类名之前,且virtual只对紧随其后基类名起作用。对于本题来说,声明“classB:virtual public A”说明类A为虚基类。

4.有如下程序:

#include<iostream>

using namespace std;

class Mountain{

int height;

public:

Mountain(int h=-):height(h){}

virtual ehar*GetName() const{return’’山’’;}

int GetHeight() const{return height;}

};

class Lushan:public Mountain{

Public:

Lushan(int d):Mountain(d){}

Char*GetName() const{return’’庐山’’;}

};

int main(){

Mountain*p=new Lushan(1000);

cout<<p->GetName()<<’海拔’’<<p->GetHeight()<<’’米’’;

return 0;

}

运行这个程序的输出结果是( )。(A)

A. 庐山海拔1000米

B. 庐山海拔0米

C. 山海拔1000米

D. 山海拔0米

解析:在基类Mountain中定义了虚函数GetName()输出字符串“山”,而在派生类Lushan中对虚函数GetName()进行了重新定义,输出字符串“庐山”。在主函数中对派生类中的虚函数GetName()进行了多态调用,此时调用的是派生类中重新定义的GetName(),输出字符字符串“庐山”。

5.在C++中,用于实现运行时多态性的是( )。(D)

A. 内联函数

B. 重载函数

C. 模板函数

D. 虚函数

解析:此题考查的是虚函数的概念。C++语言的多态性有两种:函数重载和虚函数。虚函数只有在运行时才能被确定,称为运行时多态。编译时的多态是通过函数重载和模板实现的。

6.有如下程序:

#include<iostream>

using namespace std;

class Base

{

public:

void fun1(){cout<<’’Base\n’’;}

virtual void fun2(){cout<<’’Base\n’’;}

};

class Derived:public Base

{

public:

void fun1(){cout<<’’Derived\n’’;}

void fun2(){cout<<’’Derived\n’’;}

};

void f(Base&b) { b.fun1();b.fun2();}

int main()

{

Derived obj;

f(obj);

return 0:

}

执行这个程序的输出结果是( )。(B)

A. Base

Base

B. Base

Derived

C. Derived

Base

D. Derived

Derived

解析:此题考查的是虚函数的概念。在C++语言中,一个派生类的对象可以被它的任何一个基类的指针所指向,若基类和派生类中存在一模一样的成员函数。那么通过该基类指针调用这样的成员函数时,若这个成员函数被定义成虚函数,那么就调用派生类中的;否则就调用基类中的。本题中,在f()函数中,形参b是一个基类的引用,它引用的是主函数中定义的派生

本文档预览:3600字符,共14561字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C++机试(继承和派生)模拟试卷20

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号