C++第四章习题解答
- 格式:doc
- 大小:91.00 KB
- 文档页数:18
习 题 一 第一章习题解答基本练习题1-1 解 (a) 基频 =0f GCD (15,6)=3 Hz 。
因此,公共周期3110==f T s 。
(b) )30cos 10(cos 5.0)20cos()10cos()(t t t t t f ππππ+==基频 =0f GCD (5, 15)=5 Hz 。
因此,公共周期5110==f T s 。
(c) 由于两个分量的频率1ω=10π rad/s 、1ω=20 rad/s 的比值是无理数,因此无法找出公共周期。
所以是非周期的。
(d) 两个分量是同频率的,基频 =0f 1/π Hz 。
因此,公共周期π==01f T s 。
1-2 解 (a) 波形如图1-2(a)所示。
显然是功率信号。
t d t f TP T TT ⎰-∞→=2)(21lim16163611lim 22110=⎥⎦⎤⎢⎣⎡++=⎰⎰⎰∞→t d t d t d T T T W(b) 波形如图1.2(b)所示。
显然是能量信号。
3716112=⨯+⨯=E J (c) 能量信号 1.0101)(lim101025=-===⎰⎰∞∞---∞→T t ttT e dt edt eE J(d) 功率信号,显然有 1=P W1-3 解 周期T=7 ,一个周期的能量为 5624316=⨯+⨯=E J 信号的功率为 8756===T E P W 1-5 解 (a) )(4)2()23(2t tt δδ=+; (b) )5.2(5.0)5.2(5.0)25(5.733-=-=----t e t e t et tδδδ(c) )2(23)2()3sin()2()32sin(πδπδπππδπ+-=++-=++t t t t 题解图1-2(a) 21题解图1-2(b) 21(d) )3()3()(1)2(-=----t e t t et δδε。
1-6 解 (a) 5)3()94()3()4(2-=+-=+-⎰⎰∞∞-∞∞-dt t dt t t δδ(b) 0)4()4(632=+-⎰-dt t t δ(c) 2)]2(2)4(10[)]42(2)4()[6(63632=+++-=+++-⎰⎰--dt t t dt t t t δδδδ(d)3)3(3)(3sin )(1010=⋅=⎰⎰∞-∞-dt t Sa t dt ttt δδ。
1. 假设一条指令的执行过程分为“取指令”、“分析”和“执行”三段,每一段的时间分别是△t 、2△t 和3△t 。
在下列各种情况下,分别写出连续执行n 条指令所需要的时间表达式。
⑴ 顺序执行方式。
⑵ 仅“取指令”和“执行”重叠。
⑶ “取指令”、“分析”和“执行”重叠。
答:⑴ 顺序执行方式12 ......1 2 12T =∑=++n1i i i i )t t t (执行分析取址=n(△t +2△t +3△t)=6n △t⑵ 仅“取指令”和“执行”重叠12 ......1 212T =6△t +∑=+1-n 1i i i )t t (执行分析=6△t +(n-1)(2△t +3△t)=(5n +1)△t⑶ “取指令”、“分析”和“执行”重叠12 34 ......1 2 3 41234△t2△t3△t△t2△t3△t△t2△t3△tT =6△t +∑=1-n 1i i )t (执行=6△t +(n-1)(3△t)=(3n +3)△t2. 一条线性流水线有4个功能段组成,每个功能段的延迟时间都相等,都为△t 。
开始5个任务,每间隔一个△t 向流水线输入一个任务,然后停顿2个△t ,如此重复。
求流水线的实际吞吐率、加速比和效率。
答:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15...1 2 3 4 5 6 7 8 9 10 11 12 13 14 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 56 7 8 9 10 11 12 13 14 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23我们可以看出,在(7n+1)Δt 的时间内,可以输出5n 个结果,如果指令的序列足够长(n →∞),并且指令间不存在相关,那么,吞吐率可以认为满足:)n (t75t )n /17(5t )1n 7(n 5TP ∞→∆=∆+=∆+=加速比为:)n (720n /17201n 7n 20t )1n 7(t 4n 5S ∞→=+=+=∆+∆⨯=从上面的时空图很容易看出,效率为:)n (75n /1751n 7n 5t )1n 7(4t 4n 5E ∞→=+=+=∆+⨯∆⨯=3. 用一条5个功能段的浮点加法器流水线计算∑==101i i A F 。
习题四4-1 用叠加定理求题4-1图示电流源两端的电压u 。
解:电压源单独作用时如图(b)所示,则V u a 55516=⨯+= V u b 22246=⨯+=而 V u u u a b 352'-=-=-=当电流源单独工作时,如图(c)所示,则4Ω与2Ω并联,1Ω与5Ω并联然后两并联电路再串联,所以V u 26126865''=⨯⎪⎭⎫⎝⎛+=所以由叠加定理V u u u 23263'''=+-=+=4-2 用叠加定理求题4-2图示电路中的X I 。
题4-1图 6V 4Ω Ω (b)b (c) 4Ω Ω5Ω 3Ω (a)4I x6V 4Ω Ω (a)解:电压源单独作用时的电路如图(b) 所示,则()24435''=++x x I I 解得 A I x 2'=电流源单独作用时的电路如图(c)所示,图中虚线为网孔电流,则 ()0''4''63''5=+++x x x I I I 解得 A I x 5.1''-= 所以 A I I I x x x 5.05.12'''=-=+=4-3 用叠加定理求题4-3图示电路中的独立电压源和独立电流源发出的功率。
5Ω 3Ω '(b) 4I 'x 4I ''x5Ω 3Ω I ''x(c) 题4-2图 题4-3图 2A 4Ω (a) 2V2A 4Ω 2i'(b) + - i''14Ω (c) u''1 2V解:电流源单独作用时的电路如图(b) 所示,则A i 2'1= 0'=i则 V i i u 824''1'1=-=电压源单独作用时的电路如图(b) 所示,则A i 5.042''1-=-= A i i 5.0''1''=-=则 V i u 122''''1=-=所以由叠加定理 A i i i 5.15.02''1'11=-=+=V u u u 918''1'11=+=+=可得电压源和电流源的功率分别为W i P V 3212-=-= W u P A 18212==4-4 题4-4图示电路中,R N 为电阻网络,由两个电流源供电。
第四章 机械振动和机械波4.1什么是简谐振动?分别从运动学和动力学两方面作出解释。
并说明下列运动是不是简谐振动;(1)小球在地面上做完全弹性的上下跳动;(2)小球在半径很大的光滑凹球面底部做小幅度的摆动; (3)曲柄连杆机构使活塞做往复运动。
4.2 若弹簧振子中弹簧本身的质量不可忽略,其振动周期是增加还是减小? 这相当于增加了系统的惯性,振动周期将增加。
4.3 将单摆拉到与竖直方向成ϕ角后,放手任其摆动,则ϕ是否就是其初相位?为什么?单摆的角速度是否是谐振动的圆频率?4.4判断以下说法是否正确?说明理由。
“质点作简谐振动时,从平衡位置运动到最远点需要1/4周期,因此走过该段距离的一半需时1/8周期。
”4.5两个相同的弹簧挂着质量不同的物体,当它们以相同的振幅做简谐运动时,问振动的能量是否相同?4.6什么是波动?振动与波动有什么区别和联系? 4.7试判断下列几种关于波长的说法是否正确. (1)在波传播方向上相邻两个位移相同点的距离; (2)在波传播方向上相邻两个运动速度相同点的距离; (3)在波传播方向上相邻两个振动相位相同点的距离。
4.8当波从一种媒质透入另一种媒质时,下面那些量会改变,哪些量不会改变:波长、频率、波速、振幅。
4.9有人认为频率不同、振动方向不同、相位差不恒定的两列波不能叠加,所以它们不是相干波,这种看法对不对?说明理由。
4.10 波的能量与振幅的平方成正比,两个振幅相同的相干波在空间叠加时,干涉加强的点的合振幅为原来的两倍,能量为原来的四倍,这是否违背能量守恒定律?4.11 一质点作简谐振动)7.0100cos(6ππ+=t x cm 。
某时刻它在23=x cm 处,且向X 轴负向运动,它要重新回到该位置至少需要经历的时间为( ) A 、s 1001 B 、s 2003 C 、s 501 D 、 s 503答案:(B)4.12 一个单摆,如果摆球的质量增加为原来的四倍,摆球经过平衡位置时的速度减为原来的一半,则单摆( )A 、频率不变,振幅不变;B 、频率不变,振幅改变;C 、频率改变,振幅不变;D 、频率改变,振幅改变; B4.13 以频率ν作简谐振动的系统,其动能和势能随时间变化的频率为( ) A 、2/ν B 、ν C 、ν2 D 、ν4 答案:(C)4.14 劲度系数为m N /100的轻弹簧和质量为10g 的小球组成的弹簧振子,第一次将小球拉离平衡位置4cm ,由静止释放任其运动;第二次将小球拉离平衡位置2cm 并给以2cm/s 的初速度任其振动。
第四章 刚体的转动 问题与习题解答问题:4-2、4-5、4-94-2如果一个刚体所受合外力为零,其合力矩是否也一定为零?如果刚体所受合外力矩为零,其合外力是否也一定为零?答:一个刚体所受合外力为零,其合力矩不一定为零,如图a 所示。
刚体所受合外力矩为零,其合外力不一定为零,例如图b 所示情形。
4-5为什么质点系动能的改变不仅与外力有关,而且也与内力有关,而刚体绕定轴转动动能的改变只与外力矩有关,而与内力矩无关?答:因为合外力对质点所作的功,等于质点动能的增量;而质点系中内力一般也做功,故内力对质点系的动能的增量有贡献。
而在刚体作定轴转动时,任何一对内力对转轴的力矩皆为一对大小相等、方向相反的力矩,且因定轴转动时刚体转过的角度d θ都一样,故其一对内力矩所作的功()0inij ij ji ij ji W M d M d M M d θθθ=+=+=,其内力功总和也为零,因而根据刚体定轴转动的动能定理可知:内力矩对其转动动能的增量无贡献。
4-9一人坐在角速度为0ω的转台上,手持一个旋转的飞轮,其转轴垂直地面,角速度为ω'。
如果突然使飞轮的转轴倒转,将会发生什么情况?设转台和人的转动惯量为J ,飞轮的转动惯量为J '。
答:(假设人坐在转台中央,且飞轮的转轴与转台的转轴重合)视转台、人和飞轮为同一系统。
(1)如开始时飞轮的转向与转台相同,则系统相对于中心轴的角动量为:10L J J ωω''=+飞轮转轴快速倒转后,飞轮的角速度大小还是ω',但方向与原来相反;如设转台此时的角速度为1ω,则系统的角动量为:21L J J ωω''=-在以上过程中,外力矩为零,系统的角动量守恒,所以有:10J J J J ωωωω''''-=+即 102J Jωωω''=+,转台的转速变大了。
(2)如开始时飞轮的转向与转台相反,则系统相对于中心轴的角动量为:10L J J ωω''=-飞轮转轴快速倒转后,飞轮的角速度大小还是ω',但方向与原来相反;如设转台此时的角速度为1ω,则系统的F 1F 3ab角动量为:21L J J ωω''=+在以上过程中,外力矩为零,系统的角动量守恒,所以有:10J J J J ωωωω''''+=-即 102J Jωωω''=-,转台的转速变慢了。
1. 假设一条指令的执行过程分为“取指令”、“分析”和“执行”三段,每一段的时间分别是△t 、2△t 和3△t 。
在下列各种情况下,分别写出连续执行n 条指令所需要的时间表达式。
⑴ 顺序执行方式。
⑵ 仅“取指令”和“执行”重叠。
⑶ “取指令”、“分析”和“执行”重叠。
答:⑴ 顺序执行方式12 ......1 2 12T =∑=++n1i i i i )t t t (执行分析取址=n(△t +2△t +3△t)=6n △t⑵ 仅“取指令”和“执行”重叠12 ......1 212T =6△t +∑=+1-n 1i i i )t t (执行分析=6△t +(n-1)(2△t +3△t)=(5n +1)△t⑶ “取指令”、“分析”和“执行”重叠12 34 ......1 2 3 41234△t2△t3△t△t2△t3△t△t2△t3△tT =6△t +∑=1-n 1i i )t (执行=6△t +(n-1)(3△t)=(3n +3)△t2. 一条线性流水线有4个功能段组成,每个功能段的延迟时间都相等,都为△t 。
开始5个任务,每间隔一个△t 向流水线输入一个任务,然后停顿2个△t ,如此重复。
求流水线的实际吞吐率、加速比和效率。
答:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15...1 2 3 4 5 6 7 8 9 10 11 12 13 14 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 56 7 8 9 10 11 12 13 14 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23我们可以看出,在(7n+1)Δt 的时间内,可以输出5n 个结果,如果指令的序列足够长(n →∞),并且指令间不存在相关,那么,吞吐率可以认为满足:)n (t75t )n /17(5t )1n 7(n 5TP ∞→∆=∆+=∆+=加速比为:)n (720n /17201n 7n 20t )1n 7(t 4n 5S ∞→=+=+=∆+∆⨯=从上面的时空图很容易看出,效率为:)n (75n /1751n 7n 5t )1n 7(4t 4n 5E ∞→=+=+=∆+⨯∆⨯=3. 用一条5个功能段的浮点加法器流水线计算∑==101i i A F 。
第四章习题及解答4.1 数字电路设计的基本步骤有哪些?每一步完成的目标任务是什么?见书P48。
4.2 组合逻辑电路的设计为什么可以从卡诺图直接进入?因为逻辑函数可以有多种有表达形式,卡诺图就是其中的一种,因此,直接从卡诺图直接进入设计就是最直接、最有效的一种方式,它简化了设计,更便于化简。
4.3 某车间有A 、B 、C 、D 四台电动机,今要求:(1)A 必须开机;(2)其他三台电动机中至少有两台开机,如不满足上述要求,则指示灯熄灭。
设指示灯亮为“1”,熄灭为“0”,电机开机为“1”,停机为“0”,试用与非门组成指示灯控制电路。
根据题意,用卡诺图表示电机运行的状态,求出输出表达式:F= ABC+ABD+ACD用与非门实现逻辑:4.4 试设计一个供4组使用的智力抢答器电路。
设4组变量分别为:A 、B 、C 、D 。
输出用4个发光二极管,表示抢答结果,灯亮答表达式: F ABCD ABCD ABCD =+++4.5 电话室需对4种电话编码控制,按紧急次序排列优先权由高到底依次为火警电话、急救电话、工作电话、生活电话,其编码为11,10,01,00,试设计该编码电路。
设火警电话、急救电话、工作电话、生活电话为变量A 、B 、C 、D ,编码输出量为X 、Y 。
AB CD01001110000000000001111000 01 11 10 F ABC ABD ACDABC ABD ACD =++=AB C D题4.3图列出编码真值表:4.6 试用3线-8线译码器和门电路实现以下函数:4.7 试用四选一多路选择器实现函数Y ABC AC BC =++。
1. 求出最小项、及最小项反函数非表达式:2. 对比四选一多路选择器表达式:0123Y ABD ABD ABD ABD =+++我们发现用原函数无法用一个四选一选择器实现,但反函数只有三个最小项,因为实际的数据选择器,它们都有两个互补的变量输出,因此从反变量输出端(~W)就可以达到要求了。
《有机化学》(第五版,李景宁主编)习题答案 第一章3、指出下列各化合物所含官能团的名称。
(1) CH 3CH=CHCH 3 答:碳碳双键 (2) CH 3CH 2Cl 答:卤素(氯) (3) CH 3CHCH 3OH 答:羟基(4) CH 3CH 2 C=O 答:羰基 (醛基)H(5)CH 3CCH 3O答:羰基 (酮基)(6) CH 3CH 2COOH 答:羧基 (7)NH 2答:氨基(8) CH 3-C ≡C-CH 3 答:碳碳叁键4、根据电负性数据,用和标明下列键或分子中带部分正电荷和负电荷的原子。
答:6、下列各化合物哪个有偶极矩?画出其方向(1)Br 2 (2) CH 2Cl 2 (3)HI (4) CHCl 3 (5)CH 3OH (6)CH 3OCH 3 答:以上化合物中(2)、(3)、(4)、(5)、(6)均有偶极矩(2)H 2C Cl (3)I (4) Cl 3 (5)H 3COH(6)H3CCH 37、一种化合物,在燃烧分析中发现含有84%的碳[Ar (C )=12.0]和16的氢[Ar (H )=1.0],这个化合物的分子式可能是(1)CH 4O (2)C 6H 14O 2 (3)C 7H 16 (4)C 6H 10 (5)C 14H 22 答:根据分析结果,化合物中没有氧元素,因而不可能是化合物(1)和(2); 在化合物(3)、(4)、(5)中根据碳、氢的比例计算(计算略)可判断这个化合物的分子式可能是(3)。
第二章习题解答1、用系统命名法命名下列化合物 (1)2,5-二甲基-3-乙基己烷 (3)3,4,4,6-四甲基辛烷 (5)3,3,6,7-四甲基癸烷(6)4-甲基-3,3-二乙基-5-异丙基辛烷2、写出下列化合物的构造式和键线式,并用系统命名法命名之。
(3)仅含有伯氢和仲氢的C 5H 12答:符合条件的构造式为CH 3CH 2CH 2CH 2CH 3;键线式为; 命名:戊烷。
数据结构c语言版第三版习题解答数据结构是计算机科学中非常重要的一门学科,它研究如何在计算机中存储和组织数据,以便有效地进行检索和操作。
数据结构的知识对于编写高效的程序和解决复杂的问题至关重要。
在学习和理解数据结构的过程中,解决习题是一种非常有效的方法。
本文将为读者提供《数据结构C语言版(第三版)》习题的解答。
1. 第一章:绪论第一章主要介绍了数据结构的基本概念和内容,包括算法和数据结构的概念、抽象数据类型(ADT)以及算法的评价等。
习题解答中,我们可以通过分析和讨论的方式对这些概念进行加深理解。
2. 第二章:算法分析第二章主要介绍了算法的基本概念和分析方法,包括时间复杂度和空间复杂度的计算方法。
习题解答中,我们可以通过具体的算法实例来计算其时间和空间复杂度,加深对算法分析的理解。
3. 第三章:线性表第三章主要介绍了线性表的概念和实现,包括顺序表和链表两种实现方式。
习题解答中,我们可以通过编写代码实现线性表的基本操作,并分析其时间和空间复杂度。
4. 第四章:栈和队列第四章主要介绍了栈和队列的概念和实现,包括顺序栈、链栈、顺序队列和链队列四种实现方式。
习题解答中,我们可以通过编写代码实现栈和队列的基本操作,并分析其时间和空间复杂度。
5. 第五章:串第五章主要介绍了串的概念和实现,包括顺序串和链串两种实现方式。
习题解答中,我们可以通过编写代码实现串的基本操作,并分析其时间和空间复杂度。
6. 第六章:树第六章主要介绍了树的概念和实现,包括二叉树、哈夫曼树和赫夫曼编码等内容。
习题解答中,我们可以通过编写代码实现树的基本操作,并分析其时间和空间复杂度。
7. 第七章:图第七章主要介绍了图的基本概念和实现,包括图的表示方法和图的遍历算法等。
习题解答中,我们可以通过编写代码实现图的基本操作,并分析其时间和空间复杂度。
8. 第八章:查找第八章主要介绍了查找算法的基本概念和实现,包括顺序查找、二分查找、哈希查找等内容。
思考与习题一、填空题:1.可逆反应 2A(g) + B(g)2C(g) ;Δr H m θ< 0 。
反应达到平衡时,容器体积不变,增加B 的分压,则C 的分压 ___增大_______,A 的分压 ___减小________ ;减小容器的体积,B 的分压 _____减小______, K θ___不变________。
2.由N 2和H 2合成NH 3的反应中,Δr H m θ < 0,当达到平衡后,再适当降低温度则正反应速率将________减小 _____,逆反应速率将___减小__________,平衡将向___右 _____方向移动。
3.一定温度下,反应 PCl 5(g)PCl 3(g) + Cl 2 (g) 达到平衡后,维持温度和体积不变,向容器中加入一定量的惰性气体,反应将____不 _______ 移动。
4. 基元反应 2NO + Cl 2 → 2NOCl 是_3 _分子反应,是 3_级反应,其速率方程为__)Cl (·)NO ( 2c c k ⋅=υ____。
5.在密闭容器中进行N 2(g)+3H 2(g)→2NH 3(g)的反应,若压力增大到原来的2倍,反应速率增大 __16___ 倍。
6.可逆反应: I 2+H 22HI 在713K 时K θ=51,若将上式改写为 :21I 2 +21H 2HI 则其K θ为 __51 ____ 。
7.已知下列反应的平衡常数: H 2(g) + S(s) H 2S(g) K θ1S(s) + O 2(g)SO 2(g) K θ2则反应 H 2(g) + SO 2(g)O 2(g) + H 2S(g)的K θ为( θ1K /θ2K )。
8.反应:2Cl 2 (g) + 2H 2O (g) 4HCl (g) + O 2 (g) Δr H m θ>0 ,达到平衡后进行下述变化,对指明的项目有何影响?① 加入一定量的O 2,会使n (H 2O ,g) 增大 ,n (HCl) 减小 ; ② 增大反应器体积,n (H 2O ,g) 减小 ; ③ 减小反应器体积,n (Cl 2) 增大 ;④ 升高温度,K θ 增大 ,n (HCl) 增大 ;⑤ 加入催化剂,n (HCl) 减小 。
第四章类与对象习题一.基本概念与基础知识自测题填空题引入类定义的关键字是(1)。
类的成员函数通常指定为(2),类的数据成员通常指定为(3)。
指定为(4)的类成员可以在类对象所在域中的任何位置访问它们。
通常用类的(5)成员表示类的属性,用类的(6)成员表示类的操作。
答案:(1)class(2)公有的public(3)私有的private(4)公有的public(5)数据(6)$(7)函数类的访问限定符包括(1)、(2)和(3)。
私有数据通常由(4)函数来访问(读和写)。
这些函数统称为(5)。
答案:(1)public(公有的)(2)private(私有的)(3)protected(保护的)(4)公有的成员函数(5)类的接口通常在逻辑上,同一类的每个对象都有(1)代码区,用以存储成员函数。
而在物理上通常只有(2)代码区。
只有在(3)定义,并(4)的函数和加了关键字(5)的函数例外。
答案:(1)|(2)独立的(3)共用的(4)在类说明中(5)不包括循环等复杂结构(6)inlineC++中支持三种域:(1)、(2)、(3)。
函数域被包括在(4)中,全局域被包括在(5)中。
using指示符以关键字using开头,后面是关键字(6),最后是(7)。
这样表示以后在该名字空间中所有成员都(8)。
如不使用using指示符则在使用时要加::,称为(9)运算符。
答案:(1)局部域(local scope)(2)名字空间域(namespace scope)(3)类域(class scope)(4)/(5)局部域(6)名字空间域(7)namespace(8)名字空间名(9)可以直接被使用(10)域引用通常用作函数的(1)和(2)。
对数组只能引用(3)不能引用(4)。
答案:(1)参数(2)返回值(3)~(4)数组元素(5)数组名本身构造函数的任务是(1)。
构造函数无(2)。
类中可以有(3)个构造函数,它们由(4)区分。
如果类说明中没有给出构造函数,则C++编译器会(5)。
拷贝构造函数的参数是(6),当程序没有给出复制构造函数时,系统会自动提供(7)支持,这样的复制构造函数中每个类成员(8)。
答案:(1)初始化数据成员(2)函数返回类型说明(3)多(4)不同的参数表(5)自动给出一个默认的构造函数(6)同一类对象的引用(7):(8)默认的的复制构造函,称为默认的按成员语义支持。
(9)被依次复制一个类有(1)个析构函数。
(2)时,系统会自动调用析构函数。
答案:(1)一(2)对象注销时运算符重载时,其函数名由(1)构成。
成员函数重载双目运算符时,左操作数是(2),右操作数是(3)。
答案:(1)关键字operator和该运算符(2)对象(3)…(4)该函数的参数面向过程的程序设计中程序模型描述为(1),面向对象程序设计的程序模型可描述为(2)。
答案:(1)“程序=算法+数据结构”。
其数据与数据处理是分离的。
(2)程序=(对象+对象+……+对象)+消息;对象=(算法+数据结构)。
面向对象设计将数据和对数据的操作方法放在一起,形成一个相对独立的整体——对象(Object),并通过简单的接口与外部联系。
对象之间通过消息(Message)进行通讯。
简答题简单解释什么是面向对象程序设计的封装性。
答:对象是一个封装体,在其中封装了该对象所具有的属性和操作。
对象作为独立的基本单元,实现了将数据和数据处理相结合的思想。
此外,封装特性还体现在可以限制对象中数据和操作的访问权限,从而将属性“隐藏”在对象内部,对外只呈现一定的外部特性和功能。
封装性增加了对象的独立性,C++通过建立数据类型——类,来支持封装和数据隐藏。
一个定义完好的类一旦建立,就可看成完全的封装体,作为一个整体单元使用,用户不需要知道这个类是如何工作的,而只需要知道如何使用就行。
另一方面,封装增加了数据的可靠性,保护类中的数据不被类以外的程序随意使用。
这两个优点十分有利于程序的调试和维护。
(C++编译器怎样对标识符进行解析答:编译器对标识符的解析分两步,第一步查找在声明中用到的标识符,特别是函数成员声明中用到的参数类型,第二步是函数成员体内的标识符。
为什么说类与对象的概念是客观世界的反映答:客观世界的事物都具有某些属性和行为(或操作),具有相同属性和行为的事物可以归属于一类,用分类的方法可以提高认识事物的效率。
C++中定义的类则是通过抽象的方法将某一类事物共有的静态特征(属性)和动态特征(行为)概括出来并加以描述,而对象是类的具体实现,所以说类与对象的概念是客观世界的反映。
什么叫类域为什么说类域是抽象的答:类域是类体所包括的范围。
每个类定义都引入了一个独立的类域,在类域中说明的标识符仅在该类的类域中有效。
由于类只是一个说明,看上去有数据,有函数,有类型定义,但是它并非实体,不分配内存,当然也不能运行。
所以说类域是抽象的。
{引用作为函数参数时为什么能实现两个实参之间的数据交换为什么对应实参不能为引用为什么返回值为引用的函数可以作为左值答:引用变量是其关联变量的别名,二者在内存中占据同一个存储单元。
在一个以引用作为参数的函数中,交换两个参数的值,实际上就是交换两个实参的值。
如果函数的参数是引用,调用时需要取得实参的地址,而实参如果已经是一个地址,再进行引用将产生错误,故对应实参不能为引用。
函数返回引用实际是指明(返回)了相应的关联变量,所以声明返回值为引用的函数实际上是将关联变量作为左值参与运算。
什么是缺省的构造函数缺省的构造函数最多可以有多少个答:如果在类定义中不显式地定义构造函数,C++编译器会自动产生一个缺省的构造函数,不过该函数不做具体的初始化工作。
只要构造函数是无参的或者只要各参数均有缺省值的,C++编译器都认为是缺省的构造函数。
缺省的构造函数只能有一个。
拷贝构造函数用于哪三个方面答:(1)用类的一个对象去初始化该类的另一个对象时使用。
(2);(3)当函数的形参是类的对象,调用函数时,进行形参与实参结合时使用。
(4)当函数的返回值是类对象,函数执行结束返回调用者时使用。
写出含有对象成员的类的构造函数的格式,并做简单说明。
答:C++中对含对象成员的类对象的构造函数有固定的格式:类名::构造函数名(参数总表):对象成员1(参数名表1),对象成员2(参数名表2),……对象成员n(参数名表n){……}冒号后用逗号隔开的是要初始化的对象成员,附在后面的参数名表1,…,参数名表n依次为调用相应对象成员所属的构造函数时的实参表。
这些表中的参数通常来自冒号前的参数总表,但没有类型名。
所有类对象未重载的赋值运算符“=”是怎样工作的为什么它可以进行连续赋值答:对所有的类对象,未重载的赋值运算符“=”称作缺省的按成员拷贝赋值操作符,同类对象之间可以用“=”直接拷贝。
因为缺省的赋值操作返回一个对象的引用,所以它可以进行连续赋值。
…为什么在友元函数的函数体内访问对象成员时,必须用对象名加运算符“.”再加对象成员名答:友元函数不是类的成员函数,在函数体中访问对象的成员,必须用对象名加运算符“.”加对象成员名。
这一点和一般函数一样。
重载复数运算符+时,采用下面友元函数声明:friend Complex operator+(Complex &c1,Complex &c2);为什么不能用于“实数+复数”怎样改进才能适用为什么答:使用引用类型变量作为运算符重载函数的参数,身为左值的实数类型实参不能被转换为复数,编译时无法通过。
添加const说明,使实数到复数的转换隐式地在一份拷贝上进行,则可以实现“实数+复数”运算。
修改后的说明为:friend Complex operator+(const Complex &c1, const Complex &c2);}类的静态数据成员与函数中的静态成员有何异同答:类的静态成员为其所有对象共享,不管有多少对象,静态成员只有一份存于公用内存中,为该类所有对象公用。
函数中的静态变量也位于公用内存中,不随函数调用而重新分配,所以总是保留上次进入并执行该函数后留下的信息。
C++中结构、联合与类三者间有何异同答:在C++中结构(structure)与类几乎是完全一样的类型,差别仅仅在于缺省情况下结构的成员为公有的。
联合(union)是C++的导出数据类型,在语法与功能上类似于结构,二者的区别是:结构变量的各成员同时被分配了各自独立的内存区,而联合变量的各个成员的存储开始地址都相同,所以在任一时刻联合变量只能存储一个成员。
对象的第一特征是封装,那么由对象组成的面向对象的程序怎样建立各对象之间的有效联系面向对象程序的组织与面向过程有什么不同答:因为对象的操作主要用来响应外来消息并为其他对象提供服务,所以面向对象的程序利用消息传递机制来建立各对象之间的有效联系,协调各对象的运行。
一个对象可以向其他对象发送消息以请求服务,也可以响应其他对象传来的消息,完成自身固有的某些操作,从而服务于其他对象。
面向过程的程序是模块化的,模块的组织具有分层结构特点,层与层之间是调用关系。
面向对象程序是由一个个封装的对象组成,而对象是由紧密结合在一起的算法和数据结构组成。
对象之间是相互请求和相互协作的关系。
》简叙Windows下应用程序的运行方式。
答:Windows系统支持多个应用程序同时执行,在界面形式上,它支持多个窗口同时活动。
它的运行机制是“消息传递和事件驱动(message based and event driven)”。
Windows系统使用事件驱动的编程模式。
所谓事件的含义非常广泛。
输入设备的动作,如敲打键盘、按鼠标等会产生一系列的事件(注意不是一个事件)。
操作系统所作的一举一动也被当作某种类型的事件,应用程序也会产生各种事件。
事件用来标识发生的某件事情。
Windows系统对于应用程序环境中发生的每一个事件都会以对应的某种消息的形式标识,并放入相应的Windows建立的消息队列中,然后由对应的应用程序或窗口函数去处理。
窗口函数处理是分层的,前面处理不了的送到后面,最后处理不了剩下的全由缺省的窗口函数处理。
类的成员函数在什么情况下应该定义为私有的这样做的目的是什么答:除接口函数和创建本类对象的构造函数和撤消该对象的析构函数外。
其余成员函数应该定义为私有的,这是开发类时故意对外隐蔽起来的操作,而这些往往是最复杂最关键的部分。
类中故意的隐藏也为以后的升级扩展留下了余地,只要接口不变,内部再变,也不必修改原来的程序,就象MFC(微软基础类)升级后,由MFC底层类所编的程序完全不必修改,自动升级。
二.编程与综合练习题构造一个日期时间类(Timedate),数据成员包括年、月、日和时、分、秒,函数成员包括设置日期时间和输出时间,其中年、月请用枚举类型,并完成测试。