C++语言程序设计练习题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++面向对象程序设计练习题

一、选择题

1、C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是____。

A.增加了一些新的运算符

B.允许函数重载,并允许设置缺省参数

C.规定函数说明符必须用原型

D.引进了类和对象的概念

2、在C++中,数据封装要解决的问题是_____。

A、数据的规范化

B、防止不同模块之间数据的非法访问

C、避免数据丢失

D、便于数据转换

3、下面对析构函数的正确描述是_______。

A、析构函数没有参数

B、析构函数必须由用户定义

C、系统不能提供默认的析构函数

D、析构函数可以设置默认参数

4、关于成员函数特征的下列描述中,_________是错误的。

A、成员函数可以是静态的

B、成员函数可以重载

C、成员函数一定是内联函数

D、成员函数可以设置缺省参数值

5、关于继承的描述中,________是正确的。

A、析构函数不能被继承

B、派生类是基类的子集

C、子类型关系是可逆的

D、派生类是基类的子类型

6、下面函数原型声明中,_______声明了fun为虚函数

A、void fun( )=0;

B、virtual void fun( );

C、virtual void fun( )=0;

D、virtual void fun( ){};

7、下列静态数据成员的特性中,_________是错误的。

A、静态数据成员不是所有对象所共用的

B、说明静态数据成员时前边要加修饰符static

C、静态数据成员要在类体外进行初始化

D、引用静态数据成员时,要在其名称前加<类名>和作用域运算符

8、声明一个类的对象时,系统自动调用_________函数,撤消对象时,系统自动调用_________函数。

①普通函数;②纯虚函数;③析构函数;④成员函数;⑤构造函数⑥New函数

A、③①

B、④②

C、⑥③

D、⑤③

9、关于delete运算符的下列描述中,_________是错误的。

A、它必须用于new返回的指针;

B、对一个指针可以使用多次该运算符;

C、使用它删除对象时要调用析构函数;

D、指针名前只有一对方括号符号,不管所删除数组的维数。

10、已知类A中的一个成员函数的说明如下:void Set(A &a);则该函数的参数“A &a”的含义是________。

A、变量A与a按位与后作函数参数

B、将变量a的地址赋给类A

C、类A对象引用a用作函数的形参

D、指向A的指针为a

11、下面关于友元函数的描述中,正确的是________。

A、友元函数破坏了类的封装性和隐藏性

B、友元函数是类的成员函数

C、友元函数的实现必须在类的内部定义

D、友元函数不能访问类的私有成员

12、在创建派生类对象时,构造函数的执行顺序是_________。

A、对象成员构造函数、基类构造函数、派生类本身的构造函数

B、基类构造函数、对象成员构造函数、派生类本身的构造函数

C、基类构造函数、派生类本身的构造函数、对象成员构造函数

D、派生类本身的构造函数、基类构造函数、对象成员构造函数

13、下面描述中,正确的是_________。

①虚函数是没有实现的函数②纯虚函数的实现在派生类中③抽象类指针可以指向不同的派生类④抽象类是没有纯虚函数的类

A、①和②

B、③和④

C、②和③

D、①②③④

14、一个函数功能不太复杂,但要求被频繁调用,选用_______。

A、重载函数

B、嵌套函数

C、递归函数

D、内联函数

15、假设有函数模板定义如下:

Template

Max(T a, T b, T &c)

{ c=a+b; }

下列选项正确的是________。

①float x,y; float z; ②int x,y,z; ③float x; int y, z; ④int x,y; float z;

Max(x,y,z); Max(x,y,z); Max(x,y,z); Max(x,y,z);

A、②④

B、②③

C、①③

D、③④

16、在C++中,要实现动态联编,必须使用________调用虚函数

A、类名

B、派生类指针

C、对象名

D、基类指针

17、C++中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过_______派生了新的类。

A、继承

B、复用

C、封装

D、引用

18、拷贝(复制)构造函数的作用是________。

A、进行数据类型的转换

B、用对象初始化对象

C、用对象调用成员函数

D、用一般类型的数据初始化对象

19、C++语言建立类族是通过________。

A、类的嵌套

B、虚函数

C、抽象类

D、类的继承

20、关于纯虚函数和抽象类的描述中,错误的是________。

A、纯虚函数是一种特殊的虚函数,它没有具体的实现

B、抽象类是指具有纯虚函数的类

C、一个基类中说明有纯虚函数,该基类派生类一定不再是抽象类

D、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出

二、填空

1、所有的面向对象程序设计语言,都支持三个共同的本质特征____对象____、类和___继承_____。

2、为了解决程序中函数调用的效率问题,引入了_____内联函数___,定义时需在函数前面加上_____inline___说明;为了提高程序的运行效率,引入了_____友元函数___,定义时需在函数前面加上friend说明。

3、利用成员函数对二元运算符进行重载时,其左操作数为_____对象本身_____,右操作数为_____重载函数的参数表中的形参_____。

4、设置虚基类的目的是___解决二义性__,可通过______virtual____标识虚基类。

5、对象是______数据____和_______函数___的封装体。

6

7、定义重载函数时,要从__________形参个数______和_________参数类型

相关文档
最新文档