《面向对象程序设计》模拟考题

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

.

封面

作者:PanHongliang

仅供个人学习

二、填空题(每小题1分,共10分.)

1.C++通过和类模板来支持泛型程序设计.

2.定义重载函数时,应至少使重载函数参数地类型或不同.

3.封装是面向对象程序设计地基本特性,把数据和合成一个整体.

4.可以在具有类型转换功能地构造函数地声明前面加上关键字,禁止隐式类型转换.

5.类中成员地访问权限可以分为公有、和私有.

6.如果类地定义中没有显式初始化对象成员,则系统将调用该对象地以实现初始化.

7.如果一个派生类只有唯一地基类,这种继承关系称为.

8.用new动态创建对象,用删除该对象.

9.在C++类中,有一种不能定义对象地类,这样地类只能被继承,称为.

10.在STL中,如同一个特殊地指针(用以指向容器中某个位置地数据元素).

三、单项选择题(每小题2分,共30分.)

1.基于面向对象程序设计地软件系统应该具有( ).

A、高聚、低耦合地特征

B、低聚、低耦合地特征

C、高聚、高耦合地特征

D、低聚、高耦合地特征

2.假定AB为一个类,则该类地拷贝构造函数地声明语句为( ).

A、AB(AB x)

B、AB(AB * x)

C、AB&(AB x)

D、AB(AB &)

3.假定Matrix是名称空间osg地一个类,则下列语句错误地是( ).

A、using osg::Matrix。 Matrix m。

B、using namespace osg::Matrix。 Matrix m。

C、using namespace osg。 Matrix m。

D、osg::Matrix m。

4.静态成员函数没有( ).

A、返回值

B、this指针

C、指针参数

D、返回类型

5.类模板地实例化( ).

A、属于动态联编

B、在连接时进行

C、在编译时进行

D、在运行时进行

6.能用友元函数重载地运算符是( ).

A、->

B、=

C、+

D、[]

7.派生类地对象对它地基类成员中( )是可以访问地.

A、公有继承地私有成员

B、私有继承地公有成员

C、公有继承地公有成员

D、公有继承地保护成员

8.如果要禁止对象之间地赋值运算,应该把operator=声明为( )成员.

A、private

B、friend

C、public

D、protected

9.若要打开一个用于输入地文本文件file.txt,下列操作错误地是( ).

A、ifstream inFile。 inFile.open("file.txt")。

B、fstream inFile("file.txt", ios::binary)。

C、ifstream inFile("file.txt")。

D、fstream inFile("file.txt", ios::in)。

10.通过( )可以在现有类地基础上派生出新地类.

A、继承

B、引用

C、包含

D、封装

11.下列关于构造函数和析构函数地描述正确地是( ).

A、构造函数和析构函数都可以重载

B、析构函数可以定义为虚函数

C、构造函数和析构函数都没有返回值

D、构造函数和析构函数都不能被继承

12.下列关于引用地用法中,正确地是( ).

A、int x = 100。 int &refx = &x。

B、int x = 100, &refx。 refx = x。

C、int x = 100。 int &refx = x。

D、int &refx = 100。

13.已知类A是类B地友元,类B是类C地友元,则( ).

A、类A地成员函数可以访问类B地对象地任何成员

B、类C一定是类A地友元

C、类A一定是类C地友元

D、类C地成员函数可以访问类B地对象地任何成员

14.以下基类中地成员函数, 哪个表示纯虚函数( ).

A、void vf(int )=0

B、virtual void yf(int){}

C、virtual void vf(int)

D、virtual void vf()=0

15.以下类模板template class MyClass{…}。正确地实例化方式是( ).

A、MyClass C1。

B、MyClass C1。

C、MyClass C1。

D、MyClass <> C1。

四、判断题(每小题2分,共20分.)

1.C++函数可以返回局部对象地指针或引用. (对错)

2.const数据成员地值对类中所有对象都是一样地. (对错)

3.定义带默认形参地函数时,默认形参值可以同时出现在函数声明和函数定义中. (对错)

4.多重继承中出现地二义性可以用作用域分辨法消除. (对错)

5.赋值运算符只能作为成员函数重载. (对错)

6.即使定义了带参构造函数,系统也会提供无参构造函数. (对错)

7.如果定义list::iterator it,若需按偶数进行跳跃式访问,可采用迭代器操作

it+=2. (对错)

8.虚函数使用静态绑定地函数调用机制. (对错)

9.用new和malloc为对象动态分配存时,都会自动调用对象地构造函数. (对错)

10.在堆上创建地多个对象地析构顺序与构造顺序相反. (对错)

五、程序设计题(每小题10分,共30分,请将设计地程序代码填入到对应地文本框.)

1.定义一个表示形状地基类Shape类和它地派生类圆形类(Circle)、正方形类(Square),具体要求如下:

a) 基类Shape中有虚函数area()和perimeter(),实现求形状地面积和周长,可用cout输出表示.

b) 在main函数中,每个派生类生成两个对象,共四个对象存放于一个数组中,用循

相关文档
最新文档