习题二C++练习(含有答案)

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

习题二

一、填空题

1. 对运算符进行重载时,不能改变结合性,不能改变操作数个数,不能改变优先级。

2. 当++被重载为后置成员函数时需要0 个参数。

3. 当++被重载为前置成员函数时需要 1 个参数。

4. 在C++中,运算符重载函数可以是成员函数,也可以是友元函数,还可以是普通函数。

5. 友元破坏了类的封装性特性。

6. 类的友元能够访问这个类的所有成员。

7. 类的静态数据成员的初始化是在类外进行的。

8. 类的静态成员函数没有this指针。

9. 类的静态成员函数访问该类的非静态成员可以通过参数传递对象来实现。

10. 不能被重载的类成员函数是构造和析构函数。

二、选择题

1. 已知类A有一个带double型参数的构造函数,且将运算符“+”重载为该类友元函数,若如下语句:A x(

2.5),y(

3.6),z(0); z=x+y; 能够正常运行,运算符重载函数operator+ 应在类中声明为( D )。

A. friend A operator+ (double , double) ;

B. friend A operator+ ( double , A &);

C. friend A operator+ ( A &, double);

D. friend A operator+ ( A & , A &);

2. 下列关于运算符重载的描述中,正确的是(D )。

A. 运算符重载可以改变操作数的个数

B. 运算符重载可以改变优先级

C. 运算符重载可以改变结合性

D. 运算符重载不可以改变语法结构

3. 友元运算符表达式obj1>obj2被C++编译器解释为(A )。

A. operator>(obj1,obj2)

B. >(obj1,obj2)

C. obj2.operator>(obj1)

D. obj1.operator>(obj2)

4. 下列关于C++运算符函数的返回类型的描述中,错误的是(C )。

A. 可以是类类型

B. 可以是int类型

C. 可以是void类型

D. 可以是float类型

5. 为了区别单目运算符的前置和后置运算,在后置运算符进行重载时,额外添加一个参数,其类型是( D )。

A. void

B. char

C. float

D. int

6. 以下运算符中,不能在C++中重载的是( A )。

A. ?:

B. +

C. -

D. <=

7. 在一个类中可以对一个操作符进行(D )重载。

A. 1种

B. 2种以下

C. 3种以下

D. 多种

8. 若类A被说明成类B的友元,则(D )。

A. 类A的成员即类B的成员

B. 类B的成员即类A的成员

C. 类A的成员函数不能访问类B的成员

D. 类B不一定是类A的友元

9. 友元的作用是(A )。

A. 提高成员的运行效率

B. 加强类的封装性

C. 实现数据的隐藏性

D. 增加成员函数的种类

10. 下列关于静态数据成员的特性描述中错误的是(D )。

A. 说明静态数据成员时前边要加static

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

C. 引用静态数据成员时,要在静态数据成员名前加“类名”和作用域运算符

D. 静态数据成员不是所有对象所共用的

11. 关于友元的描述中,正确的是(C )。

A. 友元函数是成员函数的一种,它可以访问类的私有成员

B. 友元函数不能提高程序的运行效率

C. 友元函数要在类体内说明

D. 友元函数增强了类的封装性和隐藏性

12. 用来说明类的友元的是(D )。

A. private

B. protected

C. public

D. friend

13. 已知f1和f2是同一个类的两个成员函数,但f1不能调用f2,下列选项中符合要求的是(B )。

A. f1和f2都是静态函数

B. f1是静态函数,f2不是静态函数

C. f1不是静态函数,f2是静态函数

D. f1和f2都不是静态函数

14. 下面对于友元函数描述正确的是(C )。

A. 友元函数的实现必须在类的内部定义

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

C. 友元函数破坏了类的封装性和隐藏性

D. 友元函数不能访问类的保护成员

15. 一个类的友元函数或友元类能够通过成员操作符访问该类的(D )

A. 私有成员

B. 保护成员

C. 公有成员

D. 所有成员

16. 下面对静态数据成员的描述中,正确的是(D )

A. 静态数据成员可以在类体内进行初始化

B. 静态数据成员不可以被类的对象调用

C. 静态数据成员不受private控制符的限制

D. 静态数据成员可以直接用类名调用

17. C++语言中提供的(B )不是类的成员,但具有类成员的特权。

A. 构造函数

B. 友元函数

C. 虚函数

D. 重载函数

18. 下列关于静态成员函数的说法中不正确的是(C )

A. 静态成员函数不属于对象成员

B. 对静态成员函数的引用不需要使用对象名

C. 静态成员函数中可以直接引用类的非静态成员

D. 静态成员函数中可以直接引用类的静态成员

19. 下面对友元的错误描述是( D )。

A. 关键字friend用于声明友元

B. 一个类中的成员函数可以是另一个类的友元函数

C. 友元函数访问对象的成员不受访问特性影响

D. 友元函数通过this指针访问对象成员

20.下列有关一个类的友元函数的叙述中,正确的(B )

A. 允许在类外访问类中除私有成员以外的所有成员

B. 允许在类外访问类中的任何成员

C. 友元也是该类的成员

D. 友元的声明必须被放在该类的公有部分

三、判断题

1、静态数据成员可以通过类名或对象名引用。

2、静态数据成员可以在类内或类外进行初始化。

3、在静态成员函数中可以访问本类中非静态的数据成员。

4、类的静态成员函数的初始化工作要放在类外进行。

5、若A是B的友元类,B是C的友元类,则A是C的友元类。

6、通过运算符重载,可以定义新的运算符。

相关文档
最新文档