[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷15及答案与解析.doc
《[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷15及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷15及答案与解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(继承和派生)模拟试卷 15及答案与解析 一、选择题 1 有如下类声明: c1ass XA int x; public: XA(int n)x=n; ; c1ass XB:public XA int y; public: XB(int a,:int b); ; 在构造函数 XB的下列定义中,正确的是 ( )。 ( A) XB:XB(int a, intb):x(a),y(b) ( B) XB:XB(inta, int b):XA(a),y(b) ( C) XB:XB(int a,int b):x(a),XB(b) ( D) XB:XB(int a,int b):XA(a),X
2、B(b) 2 有如下程序: #inc1ude iostrcam using namespace std; c1ass BASE public: BASEO cout “BASE“; ; c1ass DERIVED:public BASE public: DERIVED()cout “DERIVED“; ; int main0 DERIVED x;return0; 执行后的输出结果是 ( )。 ( A) BASE ( B) DERIVED ( C) BASEDERIVED ( D) DERIVEDBASE 3 下列有关继承和派生的叙述中,正确的是 ( )。 ( A)如果一个派生类私有继承其基类,
3、则该派生类对象不能访问基类的保护成员 ( B)派生类的成员函数可以访问基类的所有成员 ( C)基类对象可以赋值给派生类对象 ( D)如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类 4 下列有关类继承的叙述中,错误的是 ( )。 ( A)继承可以实现软件复用 ( B)虚基类可以解决由多继承产生的二义性问题 ( C)派生类构造函数要负责调用基类的构造函数 ( D)派生类没有继承基类的私有成员 5 在下列关键字中,不能用来表示继承方式的是 ( )。 ( A) private ( B) static ( C) public ( D) protected 6 在类声明中, 紧跟在 “pub
4、lic:”后声明的成员的访问权限是 ( )。 ( A)私有 ( B)公有 ( C)保护 ( D)默认 7 定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为( )。 ( A)私有继承 ( B)非私有继承 ( C)保护继承 ( D)公有继承 8 有如下类定义: c1ass XX int xx, public: XX(): xx(0)cout A; XX(int n):xx(n)cout B; ; c1ass YY: public XX int yy; public: YYO: yy(0)cout yy; YY(int n): XX(n+1), yy(n)cout yy; YY(
5、int m, int n):XX(m), yy(n)cout yy; ; 下列选项中,输出结果为 AO的语句是 ( )。 ( A) YYy1(0,0); ( B) YYy2(1); ( C) YYy3(0); ( D) YYy4; 9 有 如下类定义: c1ass XX int xdata; public: XX(intn=0):xdata(n) ; c1ass YY: public XX int ydata; public: YY(int m=0, int n=0):XX(m), ydata(n) ; YY类的对象包含的数据成员的个数是 ( )。 ( A) 1 ( B) 2 ( C) 3 (
6、 D) 4 10 下列关于继承方式的描述中,错误的 是 ( )。 ( A)如果不显式地指定继承方式,缺省的继承方式是私有 (private) ( B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员 ( C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员 ( D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员 11 下列代码段声明了 3个类 c1ass Person; c1ass Student:public Person; c1ass Undergraduate:Student; 下列关于这些类之间关系的描述中,错误的是 ( )。 ( A)类 Pers
7、on是类 Undergraduate的基类 ( B)类 Undergraduate从类 student公有继承 ( C)类 student是类 Person的派生类 ( D)类 Undergraduate是类 Person的派生类 12 下列关于基类和派生类关系的叙述中,正确的是 ( )。 ( A)每个类最多只能有一个直接基类 ( B)派生类中的成员可以访问基类中的任何成员 ( C)基类的构造函数必须在派生类的构造函数体中调用 ( D)派生类除了继承基类的成员,还可以定义新的成员 13 若已定义了类 Vehic1e,则下列派生类定义中,错误的是 ( )。 ( A) c1ass Car: veh
8、ic1e/*类体略 * ; ( B) c1ass Car: public car/*类体略 * ; ( C) c1ass Car: public Vehic1e/*类体略 * ); ( D) c1ass Car: virtual public Vehic1e/*类体略 * ; 14 下列描述中,错误的是 ( ) ( A)公有继承时基类中的 公有成员在派生类中仍是公有成员 ( B)公有继承时基类中的保护成员在派生类中仍是保护成员 ( C)保护继承时基类中的公有成员在派生类中仍是公有成员 ( D)保护继承时基类中的保护成员在派生类中仍是保护成员 15 当派生类继承一个基类时,默认的继承方式为 (
9、)。 ( A) public ( B) protected ( C) private ( D)不确定 16 下列关于派生类的叙述中,错误的是 ( )。 ( A)派生类至少要有一个基类 ( B)派生类中包括了从基类继承的成员 ( C)一个派生类可 以作为另一个派生类的基类 ( D)基类成员被派生类继承以后访问权限保持不变 17 有如下类声明: c1ass MyBASE int k; public: void set(int n)k=m; int get()const return k; ; c1ass MyDERIVED:protected MyBASE protected: intj; pub
10、lic: void set(int m,int n)MyBASE:set(m);j=n; int get()constretum MyBASE:get()+j; ; 则类 MyDERIVED中保护的数据成员和成员函数的个数是 ( )。 ( A) 4 ( B) 3 ( C) 2 ( D) 1 18 有如下程序: #inc1ude iostream using namespace std; c1ass Base public: void fun0cout “Base:fun“ end1; ; c1ass Derived: public Base public: void fun() cout “D
11、erived:fun“ end1; ; int main() Derived d; d fun(); retum 0; 已知其执行后的输出结果为: Base:fun Derived:fun 则程序中下划线处应填入的语句是 ( )。 ( A) Base fun(); ( B) Base:fun(); ( C) Base fun(); ( D) fun(); 19 有如下程序: #inc1ude iostream using namespace std; c1ass Base private: void funl()constcout “funl“; protected: void fun2()c
12、onstcout “fun2“; public: void fun3()constcout “fun3“; ; c1ass Derived: protected Base public: void fun4()constcout “fun4“; ; int main() Derived obj; obj funl(); obj fun2(); obj fun3(); obj fun4(); retum (); 其中有语法错误的语句是 ( )。 ( A) ( B) ( C) ( D) 20 在公有继承的情况下,允许派生类直接访问的基类成员包括 ( )。 ( A)公有成员 ( B)公有成员和保护成
13、员 ( C)公有成员、保护成员和私有成员 ( D)保护成员 21 有如下类定义: c1ass MyBase int k; public: MyBase(int n=0):k(n) int value()const retum k; ; c1ass MyDerived: MyBase intj; public: MyDerived(int i):j(i) int getK()const return k; int geU()const retumj; ; 编译时发现有一处语法错误,对这个错误最准确的描述是 ( )。 ( A)函数 getK试图访问基类的私有成员变量 k ( B)在类 MyDeri
14、ved的定义中,基类名 MyBase前缺少关键字 public、 protected或 private ( C)类 MyDerived缺少一个无参的构造函数 ( D)类 MyDerived的构造函数没有对基类数据成员 k进行初始化 22 派生类的成员函数不能访问基类的 ( )。 ( A)公有成员和保护成员 ( B)公有成员 ( C)私有成员 ( D)保护成员 23 若有如下类定义: c1ass B void funl() protected: double varl; public: void fun2() ; c1ass D:public B protected: void fun3() ;
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 继承 派生 模拟 15 答案 解析 DOC
