习题及参考答案(C语言与面向对象的设计)

上传人:jiups****uk12 文档编号:39242551 上传时间:2018-05-13 格式:DOC 页数:103 大小:395KB
返回 下载 相关 举报
习题及参考答案(C语言与面向对象的设计)_第1页
第1页 / 共103页
习题及参考答案(C语言与面向对象的设计)_第2页
第2页 / 共103页
习题及参考答案(C语言与面向对象的设计)_第3页
第3页 / 共103页
习题及参考答案(C语言与面向对象的设计)_第4页
第4页 / 共103页
习题及参考答案(C语言与面向对象的设计)_第5页
第5页 / 共103页
点击查看更多>>
资源描述

《习题及参考答案(C语言与面向对象的设计)》由会员分享,可在线阅读,更多相关《习题及参考答案(C语言与面向对象的设计)(103页珍藏版)》请在金锄头文库上搜索。

1、1C+语语言与面向言与面向对对象的象的设计设计第第 1 至至 13 章章习题习题参考答案参考答案2习题习题 1 参考答案参考答案1 1 用最简练的语言解释下列词汇在面向对象程序设计中的含义:用最简练的语言解释下列词汇在面向对象程序设计中的含义: 对象,类,方法,接口,消息,封装,继承,服务对象,类,方法,接口,消息,封装,继承,服务 答: 对象是客观世界中的实体在计算机中的表示。是一组数据成员和方法成员的 封装体。是类类型的实例。 类是一种抽象数据类型。是一组对象共性的描述。 方法是在一个类中定义的过程或函数,实现类的功能的代码。 接口是对象封装体向外部公布的一组具有公有属性的方法。是从对象外

2、部与对 象通信的唯一途径。 消息是对象之间的通信机制,对象的客户通过接口方法调用请求对象服务称为 消息调用。对象之间通过消息传递,互相协调、配合,共同实现软件系统的整体设 计目标。消息的载体是对象提供的公有方法,即对象的接口。 封装有以下两重含义:首先,是指将描述客观实体数据特征的数据和方法特征 的代码组织在一起,作为一个整体,并为该整体命名标识,以区别于其它数据和程 序代码。其次,通过对该整体内成员的访问属性的规定,使一部分成员的隐藏起来, 对于封装体外成为不可见的,同时使另一部分成员对外开放,作为与外部交流的接 口。 继承是面向对象程序设计方法中描述的两个类之间一种增量包含关系。这两个类

3、具有一种父子关系,子类通过为父类添加新的成员而创建。继承提供了利用一个类的 代码创建新类的重用方法。继承关系也是对客观世界分类层次关系的一种模拟。 服务即对象通过公有方法向外部提供功能。1. 2 试列举过程化、模块化、结构化等程序设计方法的主要特点。面向对象试列举过程化、模块化、结构化等程序设计方法的主要特点。面向对象 程序设计是如何包容和吸收其它几种程序设计方法的有用成分的。程序设计是如何包容和吸收其它几种程序设计方法的有用成分的。 答: 过程化程序设计方法以过程或函数作为程序的基本构造单位。侧重于算法表达和 过程间参数传递的组织。 模块化程序设计方法以独立编译的源程序模块作为大型应用程序的

4、基本组织单位。 注重于应用程序的开发管理。包括系统开发的任务分解、模块间通信管理、可重用代 码库的组织、由不同语言生成的目标模块的连接等方面。 结构化等程序设计方法以单入口单出口的可嵌套基本控制结构作为程序构造单 位。提倡自顶向下的分析和自底向上的设计相结合的软件系统构造方法。重点关注 程序结构清晰,以获得程序的可理解性和可维护性。 面向对象程序设计方法包容了以上三种方法的所有积极成分。对象中包含的方 法实际上就是过程或函数,方法的参数传递与过程或函数的传递都是利用堆栈进行3的。在方法的实现时仍然用单入口单出口的基本控制结构编程。系统构造仍然使用 自顶向下的分析和自底向上的设计过程。并用模块化

5、方法管理整个系统的开发,整 个软件系统由若干独立编译的源程序文件组成。面向对象方法对于以前程序设计方 法的质的跃变在于将中算法与数据结构的多对多依赖变成了相互间的单一依赖关系。1. 3 面向对象程序设计方法成功地取代其它程序设计方法在程序设计领域的主导面向对象程序设计方法成功地取代其它程序设计方法在程序设计领域的主导 地位有哪些根本原因?地位有哪些根本原因? 答: 面向对象程序设计方法成功地取代其它程序设计方法的主要原因是(1)计算 机软硬件技术的超高速发展,促进了计算机应用领域的迅速扩展,带来了大规模复 杂系统的开发需求。 (2) 程序设计方法研究中不断提高的数据抽象技术为复杂 系统的开发带

6、来了更有效、更能自然表示问题世界的系统构造模型。 (3) 硬件设 备的性能提高,足以支付新方法的存储空间冗余和时间开销的代价。1. 4 有人说对象是一个有人说对象是一个“黑盒子黑盒子” ,应该怎样看待这种说法?,应该怎样看待这种说法? 答: 对象是一个“黑盒子” ,这种说法是一个很贴切的比喻。所谓“黑盒子” ,是指 从用户的观点来看一个器件或产品时,并不关心其内部构造和原理,而只关心它的 功能及如何使用这些功能。对象的封装性使对象的属性及功能的具体实现代码对于 对象的客户是不可见的。客户只能通过接口方法使用对象功能。 1. 5 试分析试分析“对象与其所属的应用程序对象与其所属的应用程序”和和“

7、对象与其所属的类对象与其所属的类”这两种关系的这两种关系的 区别。区别。 答: 对象与其所属的应用程序的关系是个别和整体的关系,对象与其所属的类的关 系是具体实例和它所对应的抽象概念的关系,二者不可混为一谈。1. 6 试归纳总结子程序、过程、函数、方法、对象接口等概念的共同点及各自的试归纳总结子程序、过程、函数、方法、对象接口等概念的共同点及各自的 特点。特点。 答: 它们都是实现程序功能的代码块。子程序相对主程序而言,过程则关注本身的 整体性。有时过程也特指无返回值的子程序。函数是有返回值的子程序,而且函数 与数学中的函数概念一致,函数返回值与输入参数是“一一对应”或“一多对应” 关系。函数

8、的返回值与子程序的输出参数的概念是有区别的,一个函数只能有一个 返回值而一个子程序可能有多个输出参数。方法特指对象封装体中的过程或函数。 对象接口是对象的公有方法。1. 7 在一个医院里有医务人员、管理人员、后勤人员、临时工等人员。医务人员在一个医院里有医务人员、管理人员、后勤人员、临时工等人员。医务人员 又分为医生、护士、化验员、药剂师。医生又有内科、外科、五官科、神经科之分。又分为医生、护士、化验员、药剂师。医生又有内科、外科、五官科、神经科之分。 管理人员又分属为行政管理、设备管理、药品管理、财务管理等部门。请用面向对管理人员又分属为行政管理、设备管理、药品管理、财务管理等部门。请用面向

9、对4象的观点对上述信息进行分析,指出哪些是类,哪些是对象,并说明类与类之间存象的观点对上述信息进行分析,指出哪些是类,哪些是对象,并说明类与类之间存 在的继承关系。若要根据上面的简要描述设计计算机医院人事管理系统,请画图表在的继承关系。若要根据上面的简要描述设计计算机医院人事管理系统,请画图表 示上述人事关系。示上述人事关系。 答: 题目中提到的都是类,没有一个是类的实例,所以没有一个是对象。其中 医务人员是基类,医生、护士、化验员、药剂师是它的四个子类,而内科医生、 外科医生、五官科医生、神经科医生又是医生的子类。另外管理人员是行政管 理人员、设备管理人员、药品管理人员、财务管理人员等子类的

10、基类。某医院人事信息内科医生外科医生五官科医生神经科医生医务人员护士化验员药剂师医生财务管理管理人员设备管理药品管理行政管理5习题习题 2 参考答案参考答案2 21 1 C+C+与与 C C 语言的关系如何?语言的关系如何? 它们的本质区别是什么?它们的本质区别是什么? 答: C+由 C 语言继承而来,并在 C 语言的基础上增加了对面向对象程序设计的支 持,是传统的结构化程序设计方法和面向对象程序设计方法的结合。C+保留了 C 语言的全部精华、与 C 语言兼容,又比 C 语言更适宜于管理大型、复杂的程序。 二者的本质区别是:C 是面向过程的语言,而 C+是面向对象的语言。C 是战术语 言,而

11、C+是战略语言。22 以下单词哪些是以下单词哪些是 C+合法的标识符?合法的标识符? public arrayI x3.5 3rd get_name num1 _sot hi! x-y what? _for 答: 合法的标识符为:get_name、num1、_sot、_for。2 23 3 保留字与一般标识符有什么不同?保留字与一般标识符有什么不同? 答: 保留字又称关键字,是系统已预先定义的一些单词。这些单词虽然符合标识符 的命名规则,但由于已经被 C+语言预先赋予了特定的含义,因而不能被程序员用 作一般的标识符来定义和使用。24 文件包含命令的形式如何?有什么作用?文件包含命令的形式如何?

12、有什么作用? 答: 文件包含命令的作用是让编译预处理器将指定文件的全部内容插入到当前源文 件的该命令行处。它有两种形式:#include 和#include “文件名“。二者的 区别在于,前者主要用于嵌入系统提供的头文件(一般存于 C+系统所在目录的 INCLUDE 子目录下) ,后者主要用于嵌入用户自己定义的文件。对于前者,C+预 处理器将在 INCLUDE 目录下搜索指定的头文件; 对于后者,C+预处理器先在当 前目录中搜索指定文件,若找不到再到 INCLUDE 目录下去搜索。25 什么叫源程序?什么叫源程序?C+程序在计算机上是如何实现的?程序在计算机上是如何实现的? 答: 用 C+等高

13、级语言编写的程序称为源程序。源程序是不能被计算机直接识别和 执行的。C+程序在计算机上的实现包括编辑、编译、连接、运行几个步骤。其中 编辑是指将源程序由键盘输入并保存,得到源程序文件; 编译是一个翻译过程,将 C+源程序翻译成计算机能直接识别的机器语言程序,得到目标文件; 连接程序把 各个目标文件和要用到的库文件连接在一起,生成可执行文件,可执行文件是计算6机能直接运行的文件。2 26 6 什么是空语句?它有什么作用?什么是空语句?它有什么作用? 答: 空语句是只有一个分号的语句。它主要用于语法上需要有一条语句但实际上又 没有任何操作可执行的场合。27 什么是什么是 C+中的块?主要用于什么地

14、方?中的块?主要用于什么地方? 答: 块即复合语句或称分程序,是括在一对花括号之间的语句序列,在语法上相当 于一条单语句,凡是在单语句可用的地方都可以使用复合语句。复合语句主要用于 语法上要求只能有一条语句,但又难以只用一条简单语句表达的情形,如循环语句 的循环体等; 或者用于形成局部化的封装体。28 判断下列描述的对与错:判断下列描述的对与错: (1)C+和 C 语言都是面向对象的语言。 (2)一个 C+源程序可以分别存放在几个源文件中。 (3)C+对标识符内的英文字母是区分大、小写的。 (4)预处理命令是在程序正常编译之后执行的。 (5)一个源程序若通过编译、连接得到了 exe 文件,执行

15、后就能得到正确的 结果。 (6)以下四种写法均是 C+合法的注释语句:/* */* */ */ /* 答: (1)错 (2)对 (3)对 (4)错 (5)错 (6)错29 分析下面程序的功能。若输入为分析下面程序的功能。若输入为 9 和和 4,写出程序的运行结果。,写出程序的运行结果。 #include void main() int n1, n2 ; cout n1n2; cout void main() float hours, seconds; couthours; seconds=hours*3600; cout b1; (3)将 b2 的值加上 b1 的值,仍赋给 b2; b2 =

16、b2 + b1; (4)输出 b1 和 b2 的值; cout void main() const double pi(3.1415926),e(2.7182818); double r=0.5;cout= 73 ) (2) ( x != y ) | ( c B ) 11(3) z switch(level) case 1: cout xy;if xy cout 0 )coutn;switch(n) case 1 : x = x +10; case 2 : x = x-10; case 3 : x = x*2; default : ; 解答: (1)第一句和第六句错。switch 后的表达式和 case 后的常量表达式只能

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号