第3章 类与对象 习题参考答案
一、选择题(共30分,每题1分)
1 C 11 A 21 C
2 B 12 C 22 D 3 C 13 B 23 B 4 D 14 A 24 B 5 D 15 A 25 A 6 B 16 D 26 D 7 D 17 B 27 B 8 A 18 C 28 B 9 D 19 C 29 A 10 C 20 D 30 A 二、填空题(共18分,每题1分)
1. 不能
2. 将对象A复制给对象B
3. (1) public (2) 成员函数 4. 实例
5. 复制( 拷贝)
6. 类(test ) ~test() 7. 对象 类
8. 重载 返回值 参数 9.默认(无参) 10. ->
11. 构造函数
12.函数返回类型 类名::成员函数名(参数表); 13. 常对象 14. 对象名 15. 析构函数
三、改错题(共12分,每题2分)
1. void Point(int a)------------ Point(int a)
cout<
2. 答案:int i, int j-----------int i, int j=0 //注:只要有一个int类型的数据就行。 分析:调用时,既有一个参数,也有两个参数,且没有重载,所以参数需要带默认值。
3. 答案:swap(&a,&b); ------------swap(a, b);
分析函数的形参是变量的引用,调用时的实参应该是地址。
4. #include
{ int a1,a2; public:
one(int x1=0, int x2=0) //修改1:构造函数的函数体没有 {a1=x1;a2=x2;} show() //修改2 定义成员函数 {cout<
void main()
{ one data(2,3);
data.show(); //修改3:用对象调用成员函数 }
5. ABC(int aa)a(aa){} ------------ABC(int aa):a(aa){} 分析:构造函数的初始化列表格式错误。
6. 答案:cout<
四、看程序写结果(共15分,每题3分)
1.
输出:
Constructing normally
Constructing with a number:59 Display a number:0 Display a number:59 Destructing Destructing
2.s=150
3.62
[解析]x是普通对象,调用普通的print函数;而y常对象,调用常成员函数。
4.答案:108
[解析]p指向对象x2,x2.getA()+5该值为8 即x2.a=8;10+x1.getA()为10,x1.a=10。