已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高程期末练习卷满分:86分姓名:_1、单项选择题(本题共计30分)1、下列关于类的构造函数和析构函数的叙述中,不正确的是_. ( )A、类的析构函数可以重载B、类的构造函数可以重载C、定义一个类时可以不显式定义构造函数D、定义一个类时可以不显式定义析构函数2、友元的作用_。 ( )A、提高程序的运用效率B、加强类的封装性C、实现数据的隐藏性D、增加成员函数的种类3、下列描述中,_是抽象类的特性。 ( )A、可以说明虚函数B、可以进行构造函数重载C、可以定义友元函数D、不能说明其对象4、有以下类的说明,请指出错误的地方_。class Csampleint a=2.5; /ACsample( ); /Bpublic:Csample(int val); /CCsample( ); /D; ( )A、AB、BC、CD、D5、有关构造函数的说法不正确的是_。 ( )A、构造函数名字和类的名字一样B、构造函数在说明类变量时自动执行C、构造函数无任何函数类型D、构造函数有且只有一个6、已知:类A中一个成员函数说明如下:void Set(A&a);其中,A &a的含义是_。 ( )A、指向类A的指针为aB、将a的地址值赋给变量SetC、a是类A的对象引用,用来作函数Set()的形参D、变量A与a按位相与作为函数Set()的参数7、有关类和对象的说法下列不正确的有_。 ( )A、对象是类的一个实例B、任何一个对象只能属于一个具体的类C、一个类只能有一个对象D、类与对象的关系和数据类型和变量的关系相似8、设类Derived是基类Base的派生类,并有语句“Base bl,*pb=&b1;Derived d1,*pd=&d1;”,则正确的语句是_ ( )A、pd=pb;B、d1=b1;C、b1=d1;D、*pd=*pb;9、在C+中用来实现运行时多态性的是_ ( )A、重载函数B、析构函数C、构造函数D、虚函数10、下列关于虚函数的描述中,正确的是_ ( )A、虚函数是一个static类型的成员函数B、虚函数是一个非成员函数C、基类中采用virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加virtual说明D、派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型11、下列的各类函数中,_不是类的成员函数。 ( )A、构造函数B、析构函数C、友元函数D、拷贝初始化构造函数12、关于成员函数特征的下述描述中,_哪些说法是正确的。(1)成员函数可以是内联函数(2)成员函数可以重载(3)成员函数可以设置参数的默认值(4)成员函数可以是非内联函数(5)成员函数可以是静态的 ( )A、(1)和(3)不正确B、(3)和(5)不正确C、(3)和(4)不正确D、都正确13、关于友元,下列说法错误的是_ ( )A、如果类A是类B的友元,那么类B也是类A的友元B、如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员C、友元关系不能被继承D、如果类A是类B的友元,那么类A的所有成员函数都是类B的友元14、派生类的对象对它的基类成员中_是可以访问的。 ( )A、公有继承的公有成员B、公有继承的私有成员C、公有继承的保护成员D、私有继承的公有成员15、在公有派生的情况下,派生类中定义的成员函数只能访问原基类的_ ( )A、公有成员和私有成员B、私有成员和保护成员C、公有成员和保护成员D、私有成员、保护成员和公有成员16、_不是构造函数的特征。 ( )A、构造函数的函数名与类名相同B、构造函数可以重载C、构造函数可以设置默认参数D、构造函数必须指定类型说明17、下面是关于派生类声明的开始部分,其中正确的是_ ( )A、class virtual B: public AB、virtual class B: public AC、class B: public A virtualD、class B: virtual public A18、下面关于类概念的描述中,_是错误的。 ( )A、类是抽象数据类型的实现B、类是具有共同行为的若干对象的统一描述体C、类是创建对象的样板D、类就是C语言中的结构类型19、下面有关基类与其派生类的叙述中,正确的是_。 ( )A、派生类对象不能赋给基类对象B、派生类对象的地址不能赋给其基类的指针变量C、基类对象不能赋给派生类对象D、基类对象的地址能赋给其派生类的指针变量20、C+语言支持两种多态性:编译时的多态性和_ ( )A、运行时的多态性B、封装时的多态性C、调试时的多态性D、链接时的多态性21、在类的定义体外定义成员函数时,需要在函数名前加上_的名字。 ( )A、类标记B、类域标记C、类对象D、域运算符22、设有类定义:class Mpublic: int *v; M() M(int i) v = new int(i); ;下列表示中,定义该类的对象m,对其成员v进行正确操作的是_ 。 ( )A、M m;m.v=10;B、M m;*m.v=10;C、M m;m.*v=10;D、M m(10);23、下面有关类和对象的说明中,正确的是_。 ( )A、类与对象没有区别B、要为类和对象分配存储空间C、对象是类的实例,为对象分配存储空间而不为类分配存储空间D、类是对象的实例,为类分配存储空间而不为对象分配存储空间24、C+中的类有两种用法:一种是类的实例化,即生成类的对象,并参与系统的运行;另一种是通过_,派生出新的类. ( )A、复用B、继承C、单继承D、多继承25、虚函数_ ( )A、可实现静态多态性B、可实现动态多态性C、不能实现多态性D、既可实现静态多态性,又可实现动态多态性26、一个基类以私有方式派生时,其基类中的公有成员和保护成员在派生类中_ ( )A、均成为私有的成员B、均成为公有的成员C、均成为保护的成员D、仍为公有的和保护的成员27、面向对象系统的多态性是_。 ( )A、不同的对象收到相同的消息时产生不同的动作B、不同的对象收到相同的消息时产生相同的动作C、相同的对象收到相同的消息时产生不同的动作D、相同的对象收到相同的消息时产生相同的动作28、在C+中,可以把具有相同内部存储结构和相同操作的对象看成属于同一类。在指定一个类后,往往把属于这个类的对象称为类的_。 ( )A、实例B、实物C、特征D、对象29、有如下程序:#includeclass Basepublic :Base() coutBB; f(); void f() coutBf; class Derived:public Basepublic :Derived() coutDD;void f() coutDf; int main() Derived d; return 0;执行上面的程序将输出_ ( )A、BBBfDDB、BBDfDDDfC、DDD、DDBBBf30、有如下程序:_#includeclass Base protected: int i;public: int j;class Derived:public Base int m;public: int n;int main() Derived d;d.i=0; /1d.j=0; /2d.m=0; /3d.n=0; /4return 0;其中主函数中有两个赋值语句有错,这两个错误的赋值语句是_ ( )A、1和2B、1和3C、2和3D、2和42、填空题(本题共计56分)1、_是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象和其他内部管理操作.2、程序#include class C0public: virtual void play(void) coutC0:play( )endl; ; class C1:public C0public: void play(void) coutC1:play( )endl; ; class C2:public C1public: void play(void) coutC2:play( )play( ); void main(void) C0 b0,*p; C1 b1; C2 d1; p=&b0;f(p); p=&b1;f(p); p=&d1;f(p);程序输出的第一至第三行分别是_、_、和_。3、在类内部定义的_数据不能被不属于该类的函数来存取,定义为_的数据,函数则可以在类外部进行存取.4、以下程序输出的第一行是_ ,第二行是_。#includeclass Xpublic: void virtual f()coutF:11endl; void virtual g()coutG:22endl; class A: public Xpublic: void f()coutF:33endl; class B: public Apublic: void f(int i=0)coutF:44endl; void g()coutG:55f();pxg();5、下列程序的输出结果是_。#include class base public: int n; base(int x) n=x; virtual void set(int m) n+=m; coutn ;class deriveA:public base public: deriveA(int x):base(x) void set(int m) n+=m; coutn ;class deriveB:public base public: deriveB(int x):base(x) void set(int m) n+=m; coutnset(1); pbase = &d2; pbase-set(2); return 0;6、结构体中的数据和成员函数默认类型为_.7、一个类有_个析构函数8、在下面程序的横线处填上适当的内容,使程序执行后的输出结果为ABCD。 #include class A public: A() coutA; ; class B:_ public: B() coutB; ; class C:_ public: C() coutC; ; class D:public B,public C public: D() coutD; ; void main() D obj;9、将个函数声明为一个类的友元函数必须使用关键字_。10、以下程序输出的第一行是_ ,第二行是_。#includeclass X int m;public: X(int a=0)m=a; void virtual f()coutm+mn; void virtual g()coutm*mn; class A: public X int n;public: A(int a):X(20) n=a; void f()coutnn; void g(int a=0)coutn*nf(); p-g();11、类中的数据和成员函数默认类型为_.12、任何类中允许有三种类型的数据_、_ 、_.13、以下程序输出结果的第一行是_,第二行是_。#includeclass Xpublic: virtual void f() coutXXn; /A; class Y: public Xpublic: void f()coutf();xp-f();将上题中标有/A的一行中的virtual去掉,则程序输出结果第一行是_, 第二行是_。14、定义在类内部的函数为类默认状态_,在类外部每次调用该函数时,定义的函数代码会在调用函数位置展开.15、程序 #include class Aprotected: int x;public: A(int a=20) x=a; virtual void print(void) coutx=xn; ; class B:public A int y;public: B(int b=50,int c=100 ):A(c) y=b; void print(void) couty=yt; A:print(); ; class C:public A int z;public: C(int m=200,int n=10):A(n) z=600; void print(void) coutz=zprint(); pa=&b;pa-print(); pa=&c;pa-print();程序输出的三行分别是_、_ 和_。参考答案1.a,2.a,3.d,4.a,5.d,6.c,7.c,8.c,9.d,10.c,11.c,12.d,13.a,14.a,15.c,16.d,17.d,18.d,19.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年智能医疗量子加密通信试点项目合同
- 2026年医院健康考察合作协议
- 2026年劳动雇佣合同
- 2026年出口贸易合同
- 2025至2030中国豆奶和豆浆行业市场深度研究与战略咨询分析报告
- 企业廉洁风险防范手册与实施方案
- 2025新能源汽车动力电池技术路线与市场竞争力研究分析报告
- 2025新能源汽车业市场供需分析及投资评估规划分析研究报告
- 客户投诉处理方案与流程
- 餐饮业员工岗位职责与操作流程指南
- 制造企业运营管理体系
- 装配电工包工合同协议
- 《心脏起搏器植入术》课件
- 购买协议合同协议
- 高钙血症血液透析患者护理查房
- 小学课程:学宪法 讲宪法
- 幼儿园项目式课程
- 金融科技学知到智慧树章节测试课后答案2024年秋重庆工商大学
- 2025年(广东省协会 )房屋安全检测鉴定技术培训-机考历年真题考前冲刺题
- 2025年辽河石油职业技术学院单招语文题库
- 腹腔镜胆囊切除术麻醉管理
评论
0/150
提交评论