C++期末考试复习题(理工).doc
《C++期末考试复习题(理工).doc》由会员分享,可在线阅读,更多相关《C++期末考试复习题(理工).doc(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC+期末考试复习题(理工)C+期末考试复习题(理工)一、单项选择题(本大题共10 小题,每小题2 分,共20 分)1.在C+中,函数原型不能标识(D )A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能2.在C+程序中,对象之间的相互通信通过(B )A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现3.对于任意一个类,析构函数的个数最多为(B
2、 ) A.0 B.1 C.2 D.3 5.友元关系不能(A )A.继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系D.提高程序的运行效率6.语句ofstream f(SALARY.DAT,ios:appios:binary)的功能是建立流对象f,试图打开文件SALARY.DAT 并与之连接,并且(A )A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件7.下面说法正确的是(B )A.内联
3、函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键字inline 定义/当程序使用内敛函数时,编译器将每个函数调用都用函数内的语句代替,这样就省去了函数调用地开销8.可以用p.a 的形式访问派生类对象p 的基类成员a,其中a 是(D )A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员/函数可以调用成员,对象不可以调用9.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( C)A.派生类的对象可以赋给
4、基类的对象 B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址可以赋给指向基类的指针/派生类的对象是不能访问基类的任何成员10.对于类定义class Apublic:virtual void func1( ) void func2( ) class B:public Apublic:void func1( )coutclass B func 1end1virtual void func2( )coutclass B func 2end1下面正确的叙述是(C )A. A:func2( )和B:func1( )都是虚函数 B. A:func2( )
5、和B:func1( )都不是虚函数C. B:func1( )是虚函数,而A:func2( )不是虚函数 D. B:func1( )不是虚函数,而A:func2( )是虚函数第二部分非选择题(共80 分)二、填空题(本大题共10 小题,每小题2 分,共20 分)11.定义类的动态对象数组时,系统只能够自动调用该类的_无参_构造函数对其进行初始化。12.在C+程序设计中,建立继承关系倒挂的树应使用_单_一_继承。13.表达式coutend1 还可表示为_cout_。20.派生类从一个或多个以前定义的该类的_基类_一、单项选择题(每题2分,共20分)1. 派生类对象可访问基类中的什么成员( A)A.
6、公有继承的公有成员B.公有继承的私有成员 C.公有继承的保护成员D.私有继承的公有成员2. 定义析构函数时,应该注意( C)A.其名与类名完全相同B.返回类型是void类型 C.无形参,也不可重载D.函数体中必须有delete语句3. 如果类A被说明成类B的友元,则( D )。A.类A的成员即类B的成员 B.类B的成员即类A的成员 C.类A的成员函数不得访问类B的成员 D.类B不一定是类A的友元 4. 应在下列程序划线处填入的正确语句是( C ) #include classBase public: voidfun()coutBase:funendl; ; classDerived:publi
7、cBase voidfun() _/ 显示调用基类的函数fun() coutDerived:funfun();5. 面向对象程序设计将数据与( A )放在一起,做为一个相互依存、不可分割的整体来处理。 A. 对数据的操作 B. 信息 C. 数据隐藏 D. 数据抽象6. 在类中声明转换函数时不能指定(A )。A. 参数B. 访问权限 C. 操作D. 标识符7. 在派生类中重新定义虚函数时必须在( A )方面与基类保持一致。 A. 参数类型B. 参数名字 C. 操作内容D. 赋值8. 下面关于C+中类的继承与派生的说法错误的是( C )。A基类的protected成员在公有派生类的成员函数中可以直
8、接使用B基类的protected成员在私有派生类的成员函数中可以直接使用C公有派生时,基类的所有成员访问权限在派生类中保持不变D基类的protected成员在保护派生类的成员函数中可以直接使用9. 重载赋值操作符时,应声明为( C )函数。 A. 友元B. 虚 C. 成员D. 多态10. 语句ofstreamf(SALARY.DAT,ios:appios:binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且( A ) A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B.若文件存在,将其置为空文件;若文件不存在,打开失败 C.若文件存在,
9、将文件写指针定位于文件首;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件二、填空题(每空2分,共30分)1. 假定AB为一个类,则语句AB(AB&x);为该类_复制 构造函数的原型说明。2. C+支持的两种多态性分别是_编译时的_多态性和运行时的_多态性。3. 定义类的动态对象数组时,系统只能够自动调用该类的无参的_构造函数对其进行初始化。4. 运算符重载时,其函数名由 _operator运算符_ 构成。成员函数重载双目运算符时,左操作数是_当前对象_,右操作数是_函数形参_。C+标准库中的异常层次的根类为exception _类;MFC类库中绝大多数类都
10、源自根类_ CObject _类。在下面横线处填上适当字句,完成类中成员函数的定义。 classA int*a; public: A(intaa=0) a=_ new int(aa)_; /用aa初始化a所指向的动态对象 A()_delete a_;/释放动态存储空间 ; 7C+支持面向对象程序设计的四个要素是:封装性、继承性、 抽象性 和 多态性 。8模板分为 类 模板和 函数 模板。一、单项选择题(每题2分,共20分)1. 在下面选项中,对类的拷贝构造函数的声明形式是(B)A. A:A(&) B. A:A(constA&) C. A:A(A) D. void A:A(A&a)2. 下面关于
11、成员函数特征的描述中,错误的是(A )A成员函数不可以设置参数的默认值 B成员函数可以重载C成员函数可以是内联函数 D成员函数可以是静态的3. 下面关于类模板叙述不正确的是( B ) A可以有多个构造函数 B. 类模板是模板类的实例C. 一个类模板可以用来实例化多个模板类 D. 类模板可以有多个参数4. 要使一个类成为抽象类,这个类应具有的条件是(A )A至少有一个纯虚函数 B. 至少有一个虚函数C. 只含有一个纯虚函数 D.只含有一个虚函数5. 有关运算符重载正确的描述是( D )A. C+语言允许在重载运算符时改变运算符的操作个数 B. C+语言允许在重载运算符时改变运算符的优先级C. C
12、+语言允许在重载运算符时改变运算符的结合性 D. C+语言允许在重载运算符时改变运算符的原来的功能6. 下列说法正确的是( D )。A. 一个类的对象可以是另一个类的成员 B. 一个类可以作为另一个类的派生类C. 一个类可以在另一个类定义体进行定义 D. 以上说法均正确7. 有如下程序: #include class BASEchar c; public:BASE(char n):c(n) virtualBASE()coutc; ; class DERIVED:public BASE char c; public: DERIVED(char n):BASE(n+1),c(n) DERIVED(
13、)coutSetValue(5)与my.SetValue(5)等价9. 下列各类函数中, C不是类的成员函数。A. 构造函数 B. 析构函数 C. 友元函数 D. 拷贝构造函数10.派生类的对象对它的基类成员中 A 是可以访问的。A. 公有继承的公有成员 B. 公有继承的私有成员 C. 公有继承的保护成员 D. 私有继承的公有成员二、填空题(每空2分,共30分)1. 定义内联函数所用的关键字 inline ,定义友元所用的关键字为 friend 。2. 当一个派生类具有多个基类时,这种继承方式称为_ 多重继承 _。3. 通过一个构造函数调用虚函数时,C+系统对该调用采用 静态 联编。4. 任何
14、类中允许有_privated_、public_、_protected_三种访问控制类型的成员,数据成员和成员函数的默认类型为_privated _。5. 只有在 公有 继承的情况下,基类和派生类之间才有赋值兼容性规则。6. C+标准库中的异常层次的根类定义在库的头文件_ exception.h_中。7. 运算符重载使用的两种方式是_成员函数_和友元函数_。8. C+支持面向对象程序设计的四个要素是:抽象性、多态性_、封装性_和_继承性_。一、单项选择题(每题2分,共20分)1. 下面有关构造函数和new运算符关系正确的说法是(D )Anew运算符不调用构造函数 B. 构造函数一定调用new运算
15、符C当生成新类的实例时,先调用new运算符,然后调用构造函数进行初始化D. 当new运算符动态产生类的对象时,new运算符也自动调用构造函数2. 下面有关类性质的说法错误的是( D ) A.一个类可以有多个构造函数,但只有一个析构函数 B.析构函数和构造函数都不能有返回类型C.不能给析构函数指定参数 D.一个类中不可以声明具有类类型的数据成员3. 下面关于友元函数描述正确的是( C)A友元函数是类的成员B友元函数在类的外部声明C友元函数在类中声明D. 友元函数能够派生4. 下面叙述正确的是( D ) A. 派生类不可以使用私用派生 B. 保护派生时,基类的保护成员在派生类中是公有的C. 对基类
16、成员的访问允许二义性 D. 赋值兼容规则也适用于多重继承的组合5. 有关运算符重载正确的描述是( D)A. C+语言允许在重载运算符时改变运算符的操作个数 B. C+语言允许在重载运算符时改变运算符的优先级C. C+语言允许在重载运算符时改变运算符的结合性 D. C+语言允许在重载运算符时改变运算符的原来的功能6. 下面描述中,表达错误的是( B ) ?A. 公有继承时基类中的public成员在派生类中仍是public的B. 公有继承是基类中的private成员在派生类中仍是private的 C. 公有继承时基类中的protected成员在派生类中仍是protected的D. 私有继承时基类中
17、的public成员在派生类中是private的7. 拷贝构造函数的参数是( )A. 某个对象名 B. 某个对象的成员名 C. 某个对象的引用名 D. 某个对象的指针名8. 下列关于构造函数的描述中,错误的是( )A构造函数可以设置默认参数 B.构造函数在定义类对象时自动执行C构造函数可以是内联函数D.构造函数不可以重载9. 数组作为函数的形参时,把数组名作为实参,传递给函数的是( )A该数组的首地址 B该数组的元素个数C该数组中的各元素值 D该数组的大小10. 通过一个析构函数调用虚函数时,C+系统对该调用采用()。A. 动态联编 B. 静态联编 C. 不确定是哪种联编 D.函数重载二、填空题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 期末考试 复习题 理工
限制150内