《面向对象程序设计》模拟试卷.doc
文本预览下载声明
二、填空题(每小题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 T1, class T2=int, int num=10class MyClass{…};正确的实例化方式是( )。
A、MyClass char *, ,100 C1;
B、MyClass char, 100, int C1;
C、MyClass char , char C1;
D、MyClass C1;
四、判断题(每小题2分,共20分。)
1.C++函数可以返回局部对象的指针或引用。 (对 错)
2.const数据成员的值对类中所有对象都是一样的。 (对 错)
3.定义带默认形参的函数时,默认形参值可以同时出现在函数声明和函数定义中。 (对 错)
4.多重继承中出现的二义性可以用作用域分辨法消除。 (对 错)
5.赋值运算符只能作为成员函数重载。 (对 错)
6.即使定义了带参构造函数,系
显示全部