[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷5及答案与解析.doc
《[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷5及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷5及答案与解析.doc(21页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(继承和派生)模拟试卷 5及答案与解析 一、选择题 1 下列有关继承和派生的叙述中,正确的是 ( )。 ( A)如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员 ( B)派生类的成员函数可以访问基类的所有成员 ( C)基类对象可以赋值给派生类对象 ( D)如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类 2 在类声明中,紧跟在 “public; ”后声明的成员的访问权限是 ( )。 ( A)私有 ( B)公有 ( C)保护 ( D)默认 3 有 如下类定义: class XX int xdata; public: XX(int n=0): xda
2、ta(n) ; class YY: public XX int ydata; public: YY(int m=0, int n=0): XX(m), ydata(n) ; YY类的对象包含的数据成员的个数是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 4 下列关于基类和派生类关系的叙述中,正确的是 ( )。 ( A)每个类最多只能有一个直接基类 ( B)派生类中的成员可以访 问基类中的任何成员 ( C)基类的构造函数必须在派生类的构造函数体中调用 ( D)派生类除了继承基类的成员,还可以定义新的成员 5 当派生类继承一个基类时,默认的继承方式为 ( )。 ( A) Pu
3、blic ( B) protected ( C) private ( D)不确定 6 有如下程序: #include iostream using namespace std; class Base public: void fun()cout “Base: fun“ endl; ; class Derived: public Base public: void fun() _ cout “Derived: fun“ endl; ; int main() Derived d; d fun(); return 0; 已知其执行后的输出结果为: Base: fun Derived: fun 则程序
4、中下划线处应填入的语句是 ( )。 ( A) Base fun(); ( B) Base: fun(); ( C) Base- fun(); ( D) fun(); 7 有如下类定义: class MyBase int k; public: MyBase(int n=0): k(n) int value()constreturn k; ; class MyDerived: MyBase int j; public: MyDerived(int i): j(i) int getK()constreturn k; int getJ()constreturn j; ; 编译时发现有一处语法错误,对这
5、个错误最准确的描述是 ( )。 ( A)函数 getK试图访问基类的私有成员变量 k ( B)在类 MyDerived的定义中,基类名 MyBase前缺少关键字 public、 protected或 pfivate ( C)类 MyDerived少一个无参的构造函数 ( D)类 MyDerived的构造函数没有对基类数据成员 k进行初始化 8 有如下类声明: class Base protected; int amount; public; Base(int n=0): amount(n) int getAmount()constreturn amount; ; class Derived:
6、public Base protected; int value; public; Derived(int m, int n): value(m) Base(n) Int getData()constreturn value+amount; ; 己知 x是一个 Derived对象,则下列表达式中正确的是 ( )。 ( A) x value+x getAmount() ( B) x getData()-x gctAmount() ( C) X getData()-x amount ( D) x value+x amount 9 建立一个有成员对象的派生类对象时,各构造函数体的执行次序为 ( )。
7、 ( A)派生类、成员对象类、基类 ( B)成员对象类、基类、派生类 ( C)基类、成员对象类、派生类 ( D)基类、派生类、成员对象类 10 有如下程序: #include iostream using namespace std; class AA int k; protected: int n; void setK(int k)this- k=k; public: void setN(int n)this- n=n; ; class BB: public AA *类体略 * ; int main() BB x; x n=1; 1 x setN(2); 2 x k=3; 3 x setK(
8、4); 4 return 0; 在标注号码的四条语句中正确的是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 11 当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是 ( )。 ( A) 任何 ( B)公有或保护 ( C)保护或私有 ( D)私有 12 有如下程序: class Base public: int data; ; class Derived1: public Base; class Derived2: protected Base; int main() Derived1 d1; Derived2 d2; d
9、1 data=0: d2 data=0; return 0; 下列关于程序编译结果的描述中,正确的是 ( )。 ( A) 皆无编译错误 ( B) 有编泽错误, 无编译错误 ( C) 无编译错误, 有编译错误 ( D) 皆有编译错误 13 有如下程序: #include iostream using namespace std; class A public: A()cout =“A“; ; classBpublic: B()cout “B“; classC: public A B b; public: C()cout “C“; ; int main()C obj; return 0; 执行后的
10、输出结果是 ( )。 ( A) CBA ( B) BAC ( C) ACB ( D) ABC 14 在一个派生类对象结束其生命周期时 ( )。 ( A)先调用派生类的析构函数后调用基类的析构函数 ( B)先调用基类的析构函数后调用派生类的析构函数 ( C)如果基类没有定义析构函数,则只调用派生类的析构函数 ( D)如果派生类没有定义析构函数,则只调用基类的析构函数 15 有如下程序: #include iostream using namespace std; class A public: A(int i)x=i; void dispa()cout x , ; private: int x:
11、 ; class B: public A public: B(int i): A(i+10)x=i; void dispb()dispa(); cout x endl; private int x; ; int main() B b(2); b dispb(); return 0; 运行时输出的结果是 ( )。 ( A) 10 2 ( B) 12, 10 ( C) 12, 2 ( D) 2, 2 16 有如下程序: include iostrearn using namespace std; class C1 public: C1()cout 1; ; class C2: public C1
12、public: C2()cout 2; ; int main() C2 cb2; C1 *cb1; return 0; 运行时的输出结果是 ( )。 ( A) 121 ( B) 21 ( C) 211 ( D) 12 17 有如下类定义: class AA int a; public: AA(int 11=0): a(n) ; class BB: public AA Public: BB(int n)_ ; 其中横线处缺失部分是 ( )。 ( A): a(n) ( B): AA(n) ( C) a(n); ( D) a=n; 18 有如下程序: #include iostream using
13、namespace std; 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; 运行这个程序的输出结果是 ( )。 ( A) GATC ( B) AGTC ( C) GACT ( D) AGCT 19 有如下程序: #include iostream using narnespace std; class Mountain int height; public: Mountain(int h=0): heigh
14、t(h) virtual char* GetName() constreturn“山 “; int GetHeight() constreturn height; ; class Lushan: public Mountain Publie: Lushan(int d): Mountain(d) Char * GetName() constreturn“庐山 “; ; int main() Mountain *p=new Lushan(1000); cout p- GetName() “海拔 “ p- GetHeight() “米 “; return 0; 运行这个程序的输出结果是 ( )。
15、( A)庐山海拔 1000米 ( B)庐山海拔 0米 ( C)山海拔 1000米 ( D)山海拔 0米 20 有如下程序: #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()
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 继承 派生 模拟 答案 解析 DOC
