C面向对象程序设计习题解答全.docx
《C面向对象程序设计习题解答全.docx》由会员分享,可在线阅读,更多相关《C面向对象程序设计习题解答全.docx(13页珍藏版)》请在冰豆网上搜索。
C面向对象程序设计习题解答全
《C++面向对象程序设计》习题解答
陈腊梅
第一章面向对象程序设计概述
一、选择题
1
2
3
4
5
6
7
8
9
10
11
12
A
D
D
D
C
D
C
C
A
A
C
C
二、填空题
1、多态性
2、成员函数
3、抽象
4、处理这些数据的操作或处理这些数据的函数
5、面向对象分析、面向对象分析、面向对象编程、对象对象测试、面向对象维护
第二章对C语言的基础扩充
一、选择题
1
2
3
4
5
6
7
8
9
10
D
D
C
A
D
C
C
D
A
D
二、程序阅读题
1答案
a=639,b=78,c=12
2答案
a=5,b=8
a=8,b=5
3答案
10
4答案
x=20.6y=5z=A
x=216.34y=5z=A
x=216.34y=2z=A
x=216.34y=2z=E
5答案
ic=11
fc=7.82
ic=5
fc=2.15
三、判断下列描述的正确性
1
2
3
4
5
6
7
√
×
√
√
×
×
√
第三章类和对象的初步探讨
一、选择题
1
2
3
4
5
6
C
D
B
B
A
D
二、填空题
1数据成员、成员函数
2private、protected、public
3指向对象的指针、对象的引用
4属性、行为、属性、行为
5对象、属性和操作这些属性的操作、对外隐藏
四、程序改错题
#include
usingnamespacestd;
classClock
{
//public:
voidset_clock(void);
voidshow_clock(void);
//private:
inthour;
intminute;
intsecond;
};
Clockclock;
intmain()
{
clock.set_clock();
clock.show_clock();
//return0;
}
voidClock:
:
set_clock(void)
{
cin>>hour;
cin>>minute;
cin>>second;
}
voidClock:
:
show_clock(void)
{
cout<"<"<}
第四章类和对象的进一步解析
一、选择题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
D
B
B
C
D
D
D
C
B
D
B
A
A
C
B
A
17
18
19
20
21
22
23
24
C
C
D
B
A
D
B
B
二、填空题
1this
2所有成员
3友元类、友元函数
4friend
5程序编译、程序结束
三、程序阅读题
1答案
Defaultconstructorcalled.
constructorcalled.
0,0
6,8
6,8
Destructorcalled.
0,0
Destructorcalled.
2答案
x!
=y
3答案
Initalizingdefault
Initalizingdefault
00
Destructorisactive
Destructorisactive
4答案
n=2,sum=2
n=3,sum=5
n=5,sum=10
5答案
x=3
6答案
x=1,y=2
x=30,y=40
7答案
1234
4
exitmain
3210
8答案
n=100
9答案
thestudentis:
LiHu
theteacheris:
WangPing
10答案
2
11答案
1035,789.504
12答案
13答案
constructingobject:
x=1
第五章在对象中使用运算符—运算符重载
一、选择题
1
2
3
4
5
6
C
D
B
D
D
A
二、程序完善题
1
(1)AA:
:
operator+(A&b)
(2){Atemp;
temp.i=i+b.i;
returntemp;}
三、程序阅读题
1.答案
n=4
n=3
23
2.答案
c1=10c2=20
c1=100c2=200
c1=11c2=21
c1=100c2=200
3.答案
12471116
第六章派生及继承
一、选择题
1
(1)
1
(2)
2
3
4
5
6
7
8
9
10
11
A
B
C
C
C
D
D
B
C
A
D
D
二、填空题
1继承
2具体化、抽象
3公有继承、保护继承、私有继承
4子对象
5public(共有的)、protected(保护的)、不可访问
6protected(保护的)、protected(保护的)、不可访问的
7private(私有的)、private(私有的)、不可访问的
8二义性
三、判断下列描述的正确性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
√
×
×
×
×
×
√
√
×
×
√
√
×
√
1.C++语言中,既允许单继承,又允许多继承。
(正确)
2.派生类是从基类派生出来,它不能再生成新的派生类。
(错误)
3.派生类的继承方式有两种:
公有继承和私有继承。
(错误)
解析:
还有保护继承
4.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。
(错误)
解析:
基类中的公有成员和保护成员在派生类都是可见的,基类私有成员在派生类中不可见。
5.在公有继承中,基类中只有公有成员对派生类是可见的。
(错误)
解析:
保护成员可见
6.在私有继承中,基类中只有公有成员对派生类是可见的。
(错误)
解析:
保护成员可见
7.在私有继承中,基类中所有成员对派生类的对象都是不可见的。
(正确)
解析:
基类成员public,protected成员都变成派生类private成员
8.在保护继承中,对于垂直访问同于公有继承,而对于水平访问同于私有继承。
(正确?
)
9.派生类是它的基类组合。
(错误)
解析:
不仅是组合,还有扩充和完善
10.构造函数可以被继承。
(错误)
11.析构函数不能被继承。
(正确)
解析:
构造函数、析构函数都不能继承
12.多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。
(正确)
13.单继承情况下,派生类中对基类成员的访问也会出现二义性。
(错误)
解析:
优先访问派生类
14.解决多继承情况下出现的二义性的方法之一是使用成员名限定法。
(正确)
解析:
严格讲“作用域限定”
四、程序阅读题
1答案
num:
10010
name:
Wang-li
sex:
f
age:
19
address:
115BeijingRoad,Shanghai
num:
10011
name:
Zhang-fun
sex:
m
age:
21
address:
213ShanghaiRoad,Beijing
2答案
num:
10010
name:
Li
age:
17
score:
89
3答案
Aconstructorcalled
Aconstructorcalled
Bconstructorcalled
(1,2)(1,1)(3,4)
(2,5)(1,1)(8,11)
destructorBcalled
destructorAcalled
destructorAcalled
4答案
constructM1.1
constructM2.2
constructM1.3
constructM2.4
constructN.3
1
2
3
desstructN.3
desstructM2.
desstructM1.
desstructM2.
desstructM1.
5答案
调用基类2的构造函数!
调用基类1的构造函数!
调用派生类的构造函数!
调用派生类的析构函数!
调用基类1的析构函数!
调用基类2的析构函数!
6答案
x=100
y=300
y=200
y=300
7答案
0
400
20
8答案
(1,2)
5,6
(6,9)
9答案
(1,2)
(6,9)
5,6
(6,9)
10答案
{13,22,30,40}
11答案
D2:
:
display()
pri1=4,pri2=5
pri4=6
pri12=7
D2:
:
display()
pri1=12,pri2=9
pri4=7
pri12=8
12答案
A:
:
x=10
B:
:
x=20
B:
:
x=20
20
B:
:
x=20
13答案
D2:
:
display()
pri1=1,pri2=4
pri4=6
pri12=7
D2:
:
display()
pri1=9,pri2=8
pri4=7
pri12=8
五、程序完善题
1
(1)protected
(2)public(3)C(intx,inty,intz):
A(x),b1(y)
(4)c=z;(5)cout<2
(1)A(intx){a=x;}
(2)A1(intx,inty):
A(y){b=x;}
(3)A3(intx,inty,intz):
A1(y,z){c=x;}
(4)cout<cout<cout<3
(1)Student(n,nam,s)
(2)age=a;(3)cout<<″num:
″<(4)10010,Wang-li,f,19(5)stud1.show();
第七章多态性及虚函数
一、选择题
1
2
3
4
5
6
7
8
9
10
11
12
B
D
D
C
B
A
C
C
D
B
D
D
二、填空题
1、不同
2、纯虚函数
3、静态多态性、动态多态性
4、virtual
5、抽象类
三、程序阅读题
1答案
D: