[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷23及答案与解析.doc
《[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷23及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷23及答案与解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(继承和派生)模拟试卷 23及答案与解析 一、选择题 1 有如下程序: #include using namespace std; class A public: A0cout using namespace std; class Base public: void fun()coutfun(); 3 下列关于虚基类的描述中,错误的是 ( )。 ( A)使用虚基类可以消除由多继承产生的 二义性 ( B)构造派生类对象时,虚基类的构造函数只被调用一次 ( C)声明 “class B: virtual public A”说明类 B为虚基类 ( D)建立派生类对象时,首先调用虚基类
2、的构造函数 4 有如下程序: #include using namespace std; class Mountain int height; public: Mountain(int h=0): height(h) virtual char*GetName() constreturn“山 “; int GetHeight() constreturn height; ; class Lushan: public Mountain Public: Lushan(int d): Mountain(d) Char*GetName()constreturn“庐山 “; ; int main() Mou
3、ntain*p=new Lushan(1000); coutGetName0GetHeight() using namespace std; class Base public: void fun1()cout using namespace std; class A public: virtual void funcl()coutfunc1(); p-func2(); return 0; 运行此程序,屏幕上将显示输出 ( )。 ( A) B1B2 ( B) A1A2 ( C) B1A2 ( D) AlB2 9 如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继
4、承的成员。有如下程序,没有使用多态机制。 #include 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 Base public: virtual void f()coutf(); p-g(); return 0; 运行时输出的结果是 ( )。 ( A) f+g+ ( B) f0+g+ ( C) f+g0+ ( D) f0+g0+ 11 有如下程序; #include using namespace
5、std; class Base public: void output()coutoutput(); ptr-Print(); delete ptr; return 0: 程序的输出结果是 ( )。 ( A) 1B ( B) 1D ( C) 2B ( D) 2D 12 有如下程序; #include using namespace std; class B public: virtual void show()toutshow(); ) void fun2(B&ref)ref show(); void fun3(B b)b show(); ) int main() B b, *p=new D;
6、 D d; fun1(p); fun2(b); fun3(d); return 0: 程序的输出结果是 ( )。 ( A) BBB ( B) BBD ( C) DBB ( D) DBD 13 下列有关抽象类和纯虚函数的叙述中,错误的是 ( )。 ( A)拥有纯虚函数的类是抽象类,不能用来定义对象 ( B)抽象类的派生类若不实现纯虚函数,它也是抽象类 ( C)纯虚函数的声明以 “=0; ”结束 ( D)纯虚函数都不能有函数体 14 有如下程序: #include using namespace std; class GA public; virtual int f0return 1; ; cla
7、ss GB: public GA public; virtual int f()return 2; ; void show(GA g)cout using namespace std; class A public: virtual void f()cout using namespace std; class Publication出版物类 char name30; public: Publication(char*name=“未知 名称 “) strcpy(this-name, name); const char*getNameoconstreturn name; virtual cons
8、t char*getTypeoconstreturn“未知类型 “; ; class Book: public Publication书类 public: Book(char*name): Publication(name) virtual const char*getType()constreturn“书 “; ; void showPublication(Publication p) cout using namespace std; class B public: B(int xx): x(xx)+count; x+=10; virtual void show()const coutsh
9、ow(); delete ptr; return 0: 运行时的输出结果是 ( )。 ( A) 1_120 ( B) 2_120 ( C) 1_20 ( D) 2_20 21 有如下程序: #include using namespace std; class Instrument public: virtual void Display()=0; ; class Piano: public Instrument public: void Display() *函数体程序略 * ) ; int main() Instrument s; Instrument*p=0; ; return 0; 下
10、列叙述中正确的是 ( )。 ( A)语句 “InsttLrment*p=0; ”编译时出错 ( B)语句 “Instrument s; ”编译时出错 ( C)类 Piano中的 Display函数不是虚函数 ( D)类 Instrument是一个虚基类 22 有如下程序: #inelude using namespace std; class Book public: Book(char*t=“)strepy(title, t); private: char title40; ; class Novel: public Book public: Novel(char*t=“): Book(t)
11、 char*Category()constreturn”文学 ”; ; int main() Book*pb; pb=new Novel(); coutCategory(); return 0; 若程序运行时输出结果是 “文学 ”,则划线处缺失的语句是 ( )。 ( A) char*Category(); ( B) char*Category()const; ( C) virtual char*Category()const; ( D) virtual char*Category()const=0; 23 有如下程序: #include using namespace std; class B
12、ase public: virtual void function1()coutfunction1(); p-function2(); return 0; ; 运行时的输出结果是 ( )。 ( A) 01 ( B) 21 ( C) 03 ( D) 23 24 有如下程序: #include using namespace std; class Base public: virtual void Show()coutShow(); p2-Show(); delete p1; delete p2; return 0; 运行这个程序的输出结果是 ( )。 ( A) BB ( B) BD ( C) D
13、B ( D) DD 25 有如下类定义 class Animal public: virtual void Name0=0; ; class Koala: public Animal public: void Name() *函数体略 * ) ; 关于上述类定义,下列描述中错误的是 ( )。 ( A)类 Koala是类 Animal的派生类 ( B)类 Koala中的 Name函数是一个虚函数 ( C)类 Animal中的 Name函数是一个纯虚函数 ( D)语句 “Animal a; ”能够建立类 Animal的一个对象 a 26 有如下程序: #include using namespac
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 继承 派生 模拟 23 答案 解析 DOC
