[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷10及答案与解析.doc
《[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷10及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷10及答案与解析.doc(21页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(继承和派生)模拟试卷 10及答案与解析 一、选择题 1 有如下程序: #include using namespace std; class BASE public: BASE()cout using namespace std; class Music public: void setTitle(char*str)strcpy(title, str); protected: char type10; private: char title20; ; class Jazz: public Music public: void set(char*str) strcpy(typ
2、e, “Jazz“); strcpy(title, str); ; 下列叙述中正确的是 ( )。 ( A)程序编译正确 ( B)程序编译时语句 出错 ( C)程序编译时语句 出错 ( D)程序编译时语句 和 都出错 12 有如下类定义: class B public: void fun1() private: void fun2() protected: void fun3() ; class D: public B protected: void fun4() ; 若 obi是类 D的对象,则下列语句中不违反访问控制权限的是 ( )。 ( A) obj fun1(); ( B) obj fu
3、n2(); ( C) obj fun3(); ( D) obj fun4(); 13 有如下程序: #include using namespace std; class Media public: void Name(); void Show(); protected: int page; ; class Book: private Media public: void Print() cout using namespace std; class Base protected: Base()cout using namespace std; class AA public: AA()cou
4、t using namespace std; class Base int a, b; public: Base(int x, int y)a=x; b=y; void show()cout using namespace std; class B public: virtual void show()coutshow(); void fun2(B&ref)ref show(); void fun3(B b)b show(); int main() B b, *p=new D; D d; fun1(p); fun2(b); fun3(d); return 0; 程序的输出结果是 ( )。 (
5、A) BBB ( B) BBD ( C) DBB ( D) DBD 23 下列选项中,与实现运行时多态性无关的是 ( )。 ( A)重载函数 ( B)虚函数 ( C)指针 ( D)引用 24 有如下程序: #include using namespace std; class Publication出版物类 char name30; public: Publication(char*name=“未知名称 “) strcpy(this-name, name); const char*getNameoconstreturn name; virtual const char*getType()con
6、streturn“未知类型 “; ; class Book: public Publication书类 public: Book(char*name): Publication(name) virtual const char*getType()constreturn“书 “; ; void showPublication(Publication &p) cout using namespace std; class Instrument public: virtual void Display()=0: ; class Piano: public Instrument public: voi
7、d Display() *函数体程序略 * ; int main() Instrument s; Instrument*p=0; ; return 0; 下列叙述中正确的是 ( )。 ( A)语句 “Insturment*p=0; ”编译时出错 ( B)语句 “Instruments; ”编译时出错 ( C)类 Piano中的 Display函数不是虚函数 ( D)类 Instrument是一个虚基类 26 有如下程序: #include using namespace std; class Base public: virtual void Show()coutShow(); p2-Show
8、(); delete p1: delete p2; return 0; 运行这个程序的输出结果是 ( )。 ( A) BB ( B) BD ( C) DB ( D) DD 国家二 级 C+机试(继承和派生)模拟试卷 10答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 此题考查的是派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。 【知识模块】 继承和派生 2 【正确答案】 B 【试题解析】 此题考查的
9、是继承方式。继承方式有私有 (private)、保护(protected)、公有 (public)三种。 【知识模块】 继承和派生 3 【正确答案】 D 【试题解析】 考查的是类的继承。选项 A的执行结果为 B0,建立 YY的对象y1,首先调用其构造函数, YY继承于 XX所以先调用的为 XX的构造函数,根据输入的参数可知输出 B,然后执行 YY的构造函数输出 0;同理,选项 B的执行结果为 B1,选项 C的执行结果为 B0。 【知识模块】 继承和派生 4 【正确答案】 B 【试题解析】 Student类公有继承自 Person类, Undergraduate类私有继承自Student类。所以
10、 Undergraduate类是从 Student类私有继承的。 【知识模块】 继承和派生 5 【正确答案】 C 【试题解析】 保护继承时基类中的公有成员在派生类中是保护成员。 【知识模块】 继承和派生 6 【正确答案】 B 【试题解析】 此题考查的是派生与继承中的访问权限。 protected派生: private-不可见; protected-private: public-protected。 【知识模块】 继承和派生 7 【正确答案】 B 【试题解析】 此题考查的是派生类对基类成员的访问。基类的成员有公有、保护和私有三种访问属性;类的继承方式也有公有继承、保护继承和私有继承三种。无论那
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 继承 派生 模拟 10 答案 解析 DOC
