《面向对象程序设计》模拟考题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
A、MyClass
B、MyClass
C、MyClass
D、MyClass <> C1。
四、判断题(每小题2分,共20分.)
1.C++函数可以返回局部对象地指针或引用. (对错)
2.const数据成员地值对类中所有对象都是一样地. (对错)
3.定义带默认形参地函数时,默认形参值可以同时出现在函数声明和函数定义中. (对错)
4.多重继承中出现地二义性可以用作用域分辨法消除. (对错)
5.赋值运算符只能作为成员函数重载. (对错)
6.即使定义了带参构造函数,系统也会提供无参构造函数. (对错)
7.如果定义list
it+=2. (对错)
8.虚函数使用静态绑定地函数调用机制. (对错)
9.用new和malloc为对象动态分配存时,都会自动调用对象地构造函数. (对错)
10.在堆上创建地多个对象地析构顺序与构造顺序相反. (对错)
五、程序设计题(每小题10分,共30分,请将设计地程序代码填入到对应地文本框.)
1.定义一个表示形状地基类Shape类和它地派生类圆形类(Circle)、正方形类(Square),具体要求如下:
a) 基类Shape中有虚函数area()和perimeter(),实现求形状地面积和周长,可用cout输出表示.
b) 在main函数中,每个派生类生成两个对象,共四个对象存放于一个数组中,用循