[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷7及答案与解析.doc
《[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷7及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷7及答案与解析.doc(22页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(继承和派生)模拟试卷 7及答案与解析 一、选择题 1 对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是 ( )。 ( A)公有或私有 ( B)私有 ( C)保护或私有 ( D)公有或保护 2 建立一个有成员对象的派生类对象时,各构造函数体的执行次序为 ( )。 ( A)派生类、成员对象类、基类 ( B)成员对象类、基类、派生类 ( C)基类、成员对象类、派生类 ( D)基类、派生类、成员对象类 3 有如下类定义和变量 定义: class Parents public: int publicData; prlVate: mt p
2、rivateData; ; class ChildA: public Parents *类体略 * ; class ChildB: private Parents *类体略 * ); ChildA a: ChildB b: 下列语句中正确的是 ( )。 ( A) cout a publicData endl; ( B) cout a priVateData endl; ( C) cout b publicData endl; ( D) cout b priVateData endl; 4 通过派生类的对象可直接访问其 ( )。 ( A)公有继承基类的公有成员 ( B)公有继承基类的私有成员 (
3、 C)私有继承基类的公有成员 ( D)私有继承基类的私有成员 5 有如下程序: #inc1ude 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(4); 4 retum 0: 在标注号码的四条语句中正确的是 ( )。 ( A
4、) 1 ( B) 2 ( C) 3 ( D) 4 6 有如下两个类定义 class XX priVate: doUble x1; proteCted: double x2; public: double x3: ; class YY: protected XX private: double y1; potected: double y2; public: double y3; ; 在类 YY中保护成员变量的个数是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 7 有如下程序: #inc1ude iostream using namespace std; class Mus
5、ic public: void setTitle(char* str) strcpy(title, str); ) protected: char type10; private: char title20; ; class Jazz: public Music public: void set(char* str) strcpy(type, “Jazz“); strcpy(title, str); ; 下列叙述中正确的是 ( )。 ( A)程序编译正确 ( B)程序编译时语句 出错 ( C)程序编译时语句 出错 ( D)程序编译时语句 和 都出错 8 当派生类从一个基类保护继承时,基类中的一
6、些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是 ( )。 ( A)任何 ( B)公有或保护 ( C)保护或私有 ( D)私有 9 下列关于派生类和基类的描述中,正确的是 ( )。 ( A)派生类成员函数只能访问基类的公有成员 ( B)派生类成员函数只能访问基类的公有和保护成员 ( C)派生类成员函数可以访问基类的所有成员 ( D)派生类对基类的默认继承方式 是公有继承 10 有如下类定义: class B public: void funl() private: void fun2() protected: void fun3() ; class D: public B pro
7、tected: void fun4() ; 若 obj是类 D的对象,则下列语句中不违反访问控制权限的是 ( )。 ( A) obj fun1(); ( B) obj fun2(); ( C) obj fun3(); ( D) obj fun4(); 11 有如下程序: class Base public: int data; ; class Derivedl: public Base; class Derived2: protected Base; int main() Derivedl dl; Derived2 d2; dl data=0; d2 data=0: return 0: 下列关
8、于程序编译结果的描述中,正确的是 ( )。 ( A) 皆无编译错误 ( B) 有编泽错误, 无编译错误 ( C) 无编译错误, 有编译错误 ( D) 皆有编译错误 12 有如下程序: #inc1ude iostream using namespace std; class XX int X; public: XX(int xx=0): x(xx) int getX() return x; ; class YY: public XX int y; public: YY(int xx, int yy): XX(xx), y(yy) int getV() return getX()+y; ; int
9、 main() YY c(3, 4); cout c getV()+c getX0 endl; return 0; 运行这个程序的输出结果是 ( )。 ( A) 3 ( B) 4 ( C) 7 ( D) 10 13 有如下程序: #inc1ude iostream using namespace std; class Media public: void Name(); void Show(); protected: int page; ; class Book: private Media public: void Print() cout page endl; void Show()Med
10、ia: Show(); ) ; int main() Book Bible; Bible Name(); Bible Print(); Bible Show(); return 0: 编译时有错误的是 ( )。 ( A)语句 ( B)语句 ( C)语句 ( D)语句 14 有如下程序: #inc1ude iostream using namespace std; class A public: A()cout “A“; ; classB public: B() cout “B“; classC: public A B b; public: C()cout “C“; ) ; int main()
11、 C obj; return 0; 执行后的输出结果是 ( )。 ( A) CBA ( B) BAC ( C) ACB ( D) ABC 15 有如下程序: #inc1ude iostream using namespace std; classA public: A()cout “A“; A()cout “ A“; ; class B: public A A*p; public: B()cout “B“; p=new A(); ) B()cout “ B”; delete p; ; int main() B obj; return 0; 执行这个程序的输出结果是 ( )。 ( A) BAA
12、A B A ( B) ABA B A A ( C) BAA B A A ( D) ABA A B A 16 有如下程序 #inc1ude iostream using namespace std; class Base protected: Base()cout A; Base(char c) cout c; ; class Derived: public Base public: Derived( char c)cout c, ; int main() Derived d1(B); return 0; 执行这个程序屏幕上将显示输出 ( )。 ( A) B ( B) BA ( C) AB (
13、D) BB 17 在一个派生类对象结束其生命周期时 ( )。 ( A)先调用派生类的析构函数后调用基类的析构函数 ( B)先调用基类的析构函数后调用派生类的析构函数 ( C)如果基类没有定义析构函数,则只调用派生类的析构函数 ( D)如果派生类没有定义析构函数,则只调用基类的析构函数 18 下列关于派生类构造函数和析构函数的说法中,错误的是 ( )。 ( A)派生类的构造函数会隐含调用基类的构造函数 ( B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数 ( C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数 ( D)在销毁 派生类对象时,先调用基类的析构函数,再调用
14、派生类的析构函数 19 下列有关继承和派生的叙述中,正确的是 ( )。 ( A)派生类不能访问基类的保护成员 ( B)作为虚基类的类不能被实例化 ( C)派生类应当向基类的构造函数传递参数 ( D)虚函,数必须在派生类中重新实现 20 有如下程序: #inc1ude iostream using namespace std; class A public: A(int i)x=i; ) void dispa()cout x , ; private: int x; ; class B: public A public: B(int i): A(i+10)x=i; void dispb() dis
15、pa(); cout x end1; private int x: ; int main() B b(2); b dispb(); return 0: 运行时输出的结果是 ( )。 ( A) 10, 2 ( B) 12, 10 ( C) 12, 2 ( D) 2, 2 21 有如下程序: #inc1ude iostream using namespace std; class Base int x: public; Base int n=0; x(n) cout n, Int getX()const return x; ; class Derived public Base int y; pu
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 继承 派生 模拟 答案 解析 DOC
