一. 单选题(共6题,30分)
1. (单选题)关于运算符重载下列叙述正确的是:
A. 重载不能改变算数运算符的结合性。
B. 重载可以改变算数运算符的优先级。
C. 所有的C++运算符都可以被重载。
D. 运算符重载用于定义新的运算符
2. (单选题)在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是:
A. 一元成员运算符
B. 二元成员运算符
C. 一元友元运算符
D. B和C都可能
3. (单选题)假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为:
A. AB operator+(AB& A, AB& B);
B. AB& operator+(AB A);
C. AB operator+(AB& A);
D. AB* operator+(AB A);
4. (单选题)如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为:
A. a.operator++(1)
B. operator++(a)
C. operator++(a,1)
D. a.operator++()
5. (单选题)重载前置运算符"++",则++c(c为对象)相当于执行了函数( )。
A. c.operator++(c,0)
B. c.operator++()
C. c.operator++(c)
D. operator++(c,0)
6. (单选题)关于运算符重载,下列说法正确的是( )。
A. c++已有的运算符均可以重载
B. 运算符重载函数的返回类型不能声明为基本数据类型
C. 在类型转换函数的定义中不需要声明返回类型
D. 可以通过运算符重载创建新的运算符
二. 填空题(共6题,30分)
7. (填空题)设a和b是两个整型变量,我们用a+b的形式求这两个变量的和;设c和d为浮点型变量,我们用c+d的形式求这两个变量的和。显然运算符"+"具有不同的用途,这是( )的例子。
8. (填空题)对于双目运算符,若重载为类的成员函数,有( )个参数。
9. (填空题)对于双目运算符,若重载为友元函数,则有( )个参数。
10. (填空题)双目运算符重载为类的成员函数,其左操作数为( )。
11. (填空题)运算符重载任然保持其原来的结合性、( )、操作数和语法结构。
12. (填空题)C++中的运算符可以重载为类的成员函数和( )函数。
三. 判断题(共8题,40分)
13. (判断题)对大部分可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数
A. 对
B. 错
14. (判断题)多数运算符可以重载,个别运算符不能重载,运算符重载是通过函数定义实现的。
A. 对
B. 错
15. (判断题)重载运算符保持原运算符的优先级和结合性不变。
A. 对
B. 错
16. (判断题)输入/输出运算符只能重载为类的友元函数。
A. 对
B. 错
17. (判断题)重载运算符不要改变原来运算符的语义。
A. 对
B. 错
18. (判断题)转换构造函数可以将一个标准类型数据转换成类对象。
A. 对
B. 错
19. (判断题)类型转换函数只能重载为类的成员函数。
A. 对
B. 错
20. (判断题)可以通过重载运输符"[]"检查数组是否越界。
A. 对
B. 错
答案:
1-6:ADCDBC
7:(1) 运算符重载;重载;运算符的重载;重载运算符
8:(1) 1;一
9:(1) 2;二;两
10:(1) 对象本身;对象;该对象;对象本身的数据;对象本身数据;成员对象本身;基类对象;调用该函数的对象的变量;该类对象; 类的对象
11:(1) 优先级
12:(1) 友元;友员