[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷17及答案与解析.doc
《[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷17及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C++机试(继承和派生)模拟试卷17及答案与解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C+机试(继承和派生)模拟试卷 17及答案与解析 一、选择题 1 已知基类 Emp1oyee只有一个构造函数,其定义如下: Emp1oyee:Emp1oyee(int n):id(n) Manager是 Emp1oyee的派生类,则下列对 Manager的构造函数的定义中,正确的是 ( )。 ( A) Manager:Manager(int n):id(n) ( B) Manager:Manager(int n)id=n; ( C) Manager:Manager(int n): Emp1oyee(n) ( D) Manager:Manager(int n)Emp1oyee(n);
2、2 有如下程序: #incLude iostream using namespace std; c1ass A public: A()cout “A; A()cout C; ; c1ass B:public A public: BOcout G; BOcouK T; ; int main0 B obj; return 0; 运行这个程序的输出结果是 ( )。 ( A) GATC ( B) AGTC ( C) GACT ( D) AGCT 3 有如下程序: #inc1ude iostream using namespace std; c1ass Base public: void fun0 co
3、ut B; ; c1ass Derived:public Base public: void fun()_cout D; ; int main() Derived d; d f un(); rel:um 0; 若程序的输出结果是 BD,则划线处缺失的部分是 ( )。 ( A) fun(); ( B) Base fun(); ( C) Base:fun(); ( D) Base fun(); 4 下列关于虚基类的描述中,错误的是 ( )。 ( A)使用虚基类可以消除由多继承产生的二义性 ( B)构造派生类对象时,虚基类的构造函数只被调用一次 ( C)声明 “c1ass B: virtual pu
4、blic A”说明类 B为虚基类 ( D)建立派生类对象时,首先调用虚基类的构造函数 5 有如下程序: #inc1ude iostream using namespace std; c1ass Mountain int height; public: Mountain (int h=0):height(h) virtual char* GetName()constretum“山 ; int GetHeight()constreturn height;) ; c1ass Lushan:public Mountain Public: Lushan(int d):Mountain(d) Char*G
5、etName()constreturn“庐山 ; ; int main() Mountain *p=new Lushan(1000); cout p GetName() “海拔 “ p GetHeight() “米 “; return0; 运行这个程序的输出结果是 ( )。 ( A)庐山海拔 1000米 ( B)庐山海拔 0米 ( C)山海拔 1000米 ( D)山海拔 0米 6 在 C+中,用于实现运行时多态性的是 ( )。 ( A)内联函数 ( B)重载函数 ( C)模板函数 ( D)虚函数 7 下列关于虚函数的说明中,正确的是 ( )。 ( A)从虚基类继承的函数都是虚函数 ( B)虚函
6、数不得是静态成员函数 ( C)只能通过指针或引用调用虚函数 ( D)抽象类中的成员函数都是虚函数 8 有如下程序: #inc1ude iostream using namespace std; c1ass Base public: void funl()cout “Basen“; virtual void fun2()cout “Basen“; ; c1ass Derived: public Base public: void fun1()cout “Derivedn“; void fun2()cout “Derivedn“; ; void f(Base b fun2(); int main(
7、) Derived obj; f(obj); return 0; 执行这个程序的输出结果是 ( )。 ( A) Base Base ( B) Base Derived ( C) Derived Base ( D) Derived Derived 9 有如下程序 #inc1ude iostream using namespace std; c1assA public: virtual void func1()cout “A1“; void func2()cout “A2“; ; c1ass B:public A public: void func1() cout “B1“; void func2
8、()cout “B2“; ; int main() A*p=newB; p func1(); p func2(); return 0; 运行此程序,屏幕上将显示输出 ( )。 ( A) B1B2 ( B) A1A2 ( C) B1A2 ( D) A1B2 10 如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问 从基类继承的成员。有如下程序,没有使用多态机制。 #inc1ude iostream using namespace std; c1ass Base int a,b, public: Base (int x,int y)a=x; b=y; void show()
9、cout a , b end1; ; c1ass Derived:public Base int c,d; public: Derived (int x,int y,int z,int m):Base(x,y)c=z; d=m;) void show()cout c , d end1;) ; int main() Base B1(50,50),*pb; Derived D1(10,20,30,40); pb= retum0: retum(); 运行时输出的结果是 ( )。 ( A) 10,20 ( B) 30,40 ( C) 20,30 ( D) 50,50 11 虚函数支持多态调用,一个基类
10、的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数。而非虚函数不支持多态调用。 有如下程序: #inc1ude iostream using namespace std; c1ass Base public: virtual void f()cout “f0+“; void g()cout “g0+“; ; c1ass Derived:public Base public: Void g()cont “f+“; void gocout ,“g+“; ; int main Derived d; Base*p= c1ass Base public: v
11、oid output0 cout 1; virtual void Print0 cout B; ; c1ass Derived:public Base public: void output()cout 2; void Print()cout D; ; int main() Base *ptr=new Derived; ptr output(); ptr Print(); delete ptr; retum 0; 程序的输出结果是 ( )。 ( A) 1B ( B) 1D ( C) 2B ( D) 2D 13 有如下程序; #inc1ude iostream using namespace s
12、td; c1ass B public: virtualvoidshow()cout “B“; ; c1ass D:public B public: void show()count “D“; ; void funl(B *ptr)ptr show();) void fun2(B void fun3(B b)b show(); int main() B b,*p=new D; D d; fun1(p); fun2(b); fun3(d); retum 0; 程序的输出结果是 ( )。 ( A) BBB ( B) BBD ( C) DBB ( D) DBD 14 下列有关抽象类和纯虚函数的叙述中,
13、错误的是 ( )。 ( A)拥有纯虚函数的类是抽象类,不能用来定义对象 ( B)抽象类的派生类若不实现纯虚函数,它也是抽象类 ( C)纯虚函数的声明以 “=0; ”结束 ( D)纯虚函数都不能有函数体 15 有如下程 序: #inc1ude iostream using namespace std; c1ass GA public; virtual int f()retuml; ; c1ass GB: public GA public; virtual int f()return 2; ; void show(GAg)cout g f(); void disp1ay(GA int main()
14、 GA a:show(a); disp1ay(a); GB b:show(b); disp1ay(b); retum 0; 运行时的输出结果是 ( )。 ( A) 1111 ( B) 1211 ( C) 1112 ( D) 1212 16 下列选项中,与实现运行时多态性无关的是 ( )。 ( A)重载函数 ( B)虚函数 ( C)指针 ( D)引用 17 在一个抽象类中,一定包含有 ( )。 ( A)虚函数 ( B) 纯虚函数 ( C)模板函数 ( D)重载函数 18 有如下程序: #inc1ude iostream using namespace std; c1ass A public: v
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 机试 继承 派生 模拟 17 答案 解析 DOC
