C++复习资料(2)

2019-04-21 20:35

一、选择(20题20分)

1. 关于string类的说法不正确的是()B

A.string类的两个对象可以直接用关系运算符比较大小。比如s1>s2。 B.string类的两个对象不能直接相加,如表达式s1+s2语法错误。 C.string是C++标准模板库中的一个字符串类,包含在头文件string中 D.string类对象中存储的字符串的长度不能用strlen( )函数计算。 2. 关于引用的说法正确的是()C

A. 引用用&来标识,定义引用时可以只声明引用,不需要对引用初始化。 B. 引用不能用不同类型的变量进行初始化。

C. 引用主要用作函数参数,以扩充函数传递数据的功能。 D.以上说法均不正确。 3.下列对重载函数的描述中,()是错误的。 A PTA A.重载函数中不允许使用默认参数 B.重载函数中编译根据参数表进行选择 C.不要使用重载函数来描述毫无相干的函数 D.构造函数重载将会给初始化带来多种方式 4. 下面有关类说法不正确的是()C A. 一个类可以有多个构造函数 B. 一个类只有一个析构函数 C. 析构函数需要指定参数

D. 在一个类中可以说明具有类类型的数据成员 5. 类成员的默认访问属性是( A ) A. private B.protected C.public

D.以上答案都不对

6.this指针存在的目的是() C

A. 保证基类私有成员在子类中可以被访问 B. 保证基类保护成员在子类中可以被访问

C. 保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码 D. 保证基类公有成员在子类中可以被访问 7.静态成员函数没有() B A.返回值 B. this指针 C. 指针参数 D. 返回类型

8. 类MyClass的拷贝初始化构造函数是()C A. MyClass()

B. MyClass(MyClass *) C. MyClass(MyClass&) D. MyClass (MyClass)

9. 关于静态成员函数及常成员函数的说法不正确的是()B

A.静态成员函数用static关键字声明,且static在函数首部的最前面;常成员函数用const关键字声明,但const需要放在函数首部的最后面。

B.静态成员函数只能访问静态数据成员。 C. 常对象只能调用常成员函数。

D.常成员函数可以访问类中的const数据成员及非const数据成员,但不可改变它们。 10.一个类的私有成员 ( ) B A.只能被该类的成员函数访问

B.只能被该类的成员函数和友元函数访问

C.只能被该类的成员函数、友元函数和派生类访问 D.以上答案都不对

11. C++类体系中,不能被派生类继承的有()B A. 常成员函数 B. 构造函数 C. 虚函数

D. 静态成员函数

12. 在公有继承的情况下,基类的公有或保护成员在派生类中的访问权限()B A. 受限制 B. 保持不变 C. 受保护 D. 不受保护 13.在C++语言中设置虚基类的目的是() C A.简化程序代码

B.提高程序的运行效率

C.解决多继承造成的二义性问题 D.缩短程序的目标代码

14.关于纯虚函数和抽象类的描述中,(C )是错误的。 A.纯虚函数是一种特殊的虚函数,它没有具体的实现 B.抽象类是指具有纯虚函数的类

C.一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类 D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出 15.有关多态性说法不正确的是() C

A. C++语言的多态性分为编译时的多态性和运行时的多态性 B. 编译时的多态性可通过函数重载实现 C. 运行时的多态性可通过模板和虚函数实现 D. 实现运行时多态性的机制称为动态多态性

16. 实现两个相同类型数加法的函数模板的声明是()D A. add(T x,T y) B. T add(x,y) C. T add(T x,y) D. T add(T x,T y)

17. 已知类模板的定义如下: template class A {

public: A(T x):item(x){ }; T func(T a); friend void show(const A&a); template

friend void disp(U&u); private: T item; };

以下说法不正确的是()A

A.用类A声明对象a的语句是 A a(10),也可以简写为A a(10); 因为根据参数10能够

推演类A的数据类型是int。 B. 类外定义函数func( )的基本格式是 template T A::func(T a){…//语句序列 }; C. 友元函数show( )的定义格式是

void show(const A&a){ cout< voiddisp(T&t){…//语句序列}; 18.下列表达错误的是() B A.cout<

C.cout.setf(ios::uppercase) D.cin.fill('#')

19.下列关于异常处理的说法不正确的是()C

A.异常处理的throw与catch通常不在同一个函数中,实现异常检测与异常处理的分离。 B.catch语句块必须跟在try语句块的后面,一个try语句块后可以有多个catch语句块。 C.在对函数进行异常规范声明时,若形参表后没有任何表示抛出异常类型的说明,它表示

该函数不能抛出任何异常。 D.catch语句块中,catch(…)表示该catch可以捕捉任意类型的异常,必须将catch(…)放在catch

结构的最后。

20.有关STL容器的说法不正确的是()C

A. 序列式容器中的数据的顺序与数据的操作顺序相关,而关联式容器中的数据的顺序由数

据的关键字大小决定,与数据的操作顺序无关。

B.如果需要执行大量的随机访问操作,就应当选择向量容器;如果需要执行大量的随机插入

或删除元素操作,就应当选择列表容器。

C.关联型容器内部结构实现为一个二叉树,它可以高效地查找容器中的每一个元素,能够

实现任意位置的操作。

D.集合中的元素不可能直接被修改,若要修改某一元素的值,必须先删除原有的元素,再

插入新的元素。

一、 选择题(20分)

1. 关于类和对象不正确的说法是:( C ) A.类是一种类型,它封装了数据和操作 B.对象是类的实例

C.一个类的对象只能有一个 D.一个对象必属于某个类

2. 关于new运算符的下列描述,(D )是错误的。

A.它可以用来动态创建对象和对象数组

B. 使用它创建的对象或对象数组,可以使用运算符delete删除 C. 使用它创建对象时要自动调用构造函数 D. 使用它创建数组时不可以对数组初始化

3. 类成员的默认访问属性是:A

A. private B. protected C. public

D. 以上答案都不对

4. 假定MyClass为一个类,则该类的拷贝构造函数的声明语句为(C) A.MyClass(MyClass x) B. MyClass&(MyClass x)

C. MyClass(MyClass&x) D. MyClass(MyClass *x)

5. 对于类之间的友元关系:D

A. 如果类A是类B的友元,则B的成员函数可以访问A的私有成员 B. 如果类A是类B的友元,则B也是A的友元。

C. 如果类A是类B的友元,并且类B是类C的友元,则类A也是类C的友元。 D. 以上答案都不对。

6. 要让一个类的所有对象具有共同的数据,可使用(C)。 A 常数据成员 B 私有数据成员 C 静态数据成员 D 以上都是

7. 对于常成员函数,下列描述正确的是(C) A. 常成员函数只能修改常数据成员 B. 常成员函数只能修改一般数据成员 C. 常成员函数不能修改任何数据成员 D. 常成员函数只能通过常对象调用

8. 基类Base及它的派生类Drive类都有无参的构造函数,则下面语句错误的是(B)。 A Base b; Drive d; b=d; B Base b; Drive d; d=b; C. Drive *pd; Drive d; pd=&d; D. Base *pb; Drive d; pb=&d;

9. 在C++语言中设置虚基类的目的是(C)。 A. 简化程序代码

B. 提高程序的运行效率

C. 解决多继承造成的二义性问题

D. 缩短程序的目标代码

10. 下列关于虚函数的描述中,(C)是正确的。 A 虚函数是一个static类型的成员函数 B 虚函数是一个非成员函数

C 基类中说明了虚函数后,派生类中与其对应的函数可以不必加virtual关键字,自动成为虚函数

D 派生类的虚函数与基类中的虚函数具有不同的参数个数和参数类型

11. 下列有关继承和派生的叙述中,正确的是:C

A. 派生类不能访问通过私有继承的基类的保护成员 B. 多继承的虚基类不能够实例化

C. 如果基类没有默认构造函数,派生类就应当定义带形参的构造函数 D. 类的的析构函数和虚函数都不能够被继承,需要在派生类中重新实现

12. 下列关于运算符重载的描述中,错误的是(B)。 A 运算符重载不改变优先级 B 所有的运算符都可以重载 C 运算符重载不改变结合性

D 运算符重载函数的参数个数与重载方式有关

13. cout是由I/O 流库预定义的(B)。

E. 类 F. 对象 G. 包含文件 H. 常量

14. 下列关于模板的描述正确的是(A )

A. 函数模板在调用时可以显式指定实例化的数据类型,也可以根据传入的实参推演得出其实例化的数据类型

B. 类模板在调用时可以显式指定实例化的数据类型,也可以根据传入的实参推演得出其实例化的数据类型

C.模板参数可以是类型参数、非类型参数,不能是另一个模板 D. 类模板只能派生类模板,不能派生普通类

15.要求打开文件D:\\file.dat,并能够写入数据,正确的语句是( D )。 A.ifstreaminfile(\B. ifstreaminfile(\C. ofstreamoutfile(\

D.fstreaminfile(\

16. 现有程序代码如下,输出结果为(C)


C++复习资料(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第四单元测试卷1

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: