程序设计语言 习题与答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章习题 P159-161
一、复习题
1、简述自然语言与形式语言的概念以及区别、汇编语言与机器语言的概念及区别。
自然语言是某一社会发展中形成的一种民族语言,而形式语言是进行形式化工作的元语言,它是以数学和数理逻辑为基础的科学语言。用机器指令形式编写的程序称为机器语言,用带符号或助记符的指令和地址代替二进制代码成为语言进化的目标。这些使用助记符语言的语言后来就被称之为汇编语言。(P144- P146)
2、试述计算机语言的类型,它们各有什么特点?
1.机器语言,是最低级的语言,由二进制码组成,最早期的程序员通过在纸带上打点来写程序
2.汇编语言,用助记符和地址符代替了二进制码,更易于编写。
3.高级语言,相对于汇编语言又上升了一步,更接近于自然语言,如C语言、Pascal、Java、C#等都是高级语言。(P145-147)
3、列举程序设计语言的几种范型。
程序语言大致分为命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言等范型。(P147-149)
4、简述语言虚拟机。
提示:语言虚拟机是某种语言的解释器。语言虚拟机是建立在硬件和操作系统之上,针对不同的硬件和操作系统有不同的虚拟机,通过语言虚拟机屏蔽掉硬件的差异。这样使得硬件系统能够支持这种语言编写的程序的有效执行。目前最流行的语言虚拟机是Java虚拟机。(P156)
5、计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么?
提示:主要有编译、解释等方式,也有两种方式的混合使用的形式。
编译是使用编译器将高级语言编写的源程序转换成计算机可以执行的机器语言可执行程序,也可以理解为用编译器产生可执行程序的动作。编译方式是一次编译,然后执行程序可以反复多次执行。
解释是另一种将高级语言转换为可执行程序的方式。与编译不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就要翻译一次,效率比较低。
近来随着网络的发展,为了实现跨平台但同时又保证一定的效率,出现了编译、解释混合的方式,先用伪编译形成效率较高中间代码,再用语言虚拟机进行解释执行,以屏蔽掉硬件的差异。 (P154-157)
6、请画出编译程序的总框图。如果你是一个编译程序的总设计师,设计编译程序时应当考虑哪些问题?
作为一个编译程序的总设计师,首先要深刻理解被编译的源语言其语法及语义;其次,
要充分掌握目标指令的功能及特点,如果目标语言是机器指令,还要搞清楚机器的硬件结构及操作系统的功能;第三,对编译的方法及使用的软件工具也必须准确化。总之,总设计师在设计编译程序时必须估量系统功能要求、硬件设备及软件工具等诸因素对编译程序构造的影响等。(P154-156)
7、什么是IDE?
IDE集成开发环境的简称(Integrated Develop Environment)是一套用于程序开发的软件工具集合,一般包括源代码编辑器、编译器、调试器和图形用户界面工具。(P158)
8、简述程序设计语言的基本构成元素。
程序设计语言的语法元素主要有:字符集、表达式、语句、标识符、关键字和保留字、注释等组成。(P149-P151)
9、简述标识符及其作用域的概念
标识符是程序设计时设计人员用来命名事物的符号。标识符的作用域是指其被定义的有效的范围,同一个表现形式的标识符在不再的区域里可以代表不同的含义。(P150)
10、说明将源程序转化为计算机能够识别的指令的过程。
提示:该转化过程即为编译的基本过程,包括词法分析;语法分析;中间代码生成;代码优化;目标代码生成等五个阶段,各阶段有具体的任务。(P154-155)
二、练习题
(一)填空题
1、____________语言的书写方式接近于人们的思维习惯,使程序更易阅读和理解。
高级语言(P146)
2、程序语言中的控制成分包括顺序结构、__________和循环结构。
选择结构(P153)
3、在基于继电器的计算机器时代,所谓“程序设计”实际上就是设置__________开关,所以通常的情况是“设置程序”的时间比计算时间长。
继电器(P145)
4、自然语言的基本特征包括_________和_____________________。
歧义性、不够严格和不够统一的语法结构(P144)
5、自然语言的输入可以使用___________、___________、___________、___________等方式。
6、函数与过程最明显的区别在于_________________。
{ 过程本身不返回值,而函数本身返回值 }(P154)
7、通常按照程序运行时数据的_____能否改变,将数据分为常量和变量。
{ 值 } (P151)
8、__________是将源程序转换为一种中间类型的代码,通常其生成的是非常接近机器语言的二进制代码。
伪编译(P156)
9、集成开发环境(IDE)是一套用于程序开发的软件工具集合,一般包括___________、___________、___________和___________等工具。
{ 源代码编辑器、编译器、调试器和图形用户界面 } (P158)
10、用运算符号按一定的规则连接起来的、有意义的式子称为__________。
表达式(P151)
11、保留字也叫___________,指在语言中已经定义过的字,使用者不能再将这些字来命名其他事物。
关键字(P150)
12、操作符是用来代表运算操作的符号,每个操作符表示一种运算操作。通常语言中具备___________、___________、___________和___________等等几类。
赋值操作符、算术操作符、比较操作符、逻辑操作符、位操作符(P150)
13、类是面向对象语言必须提供的由用户定义的数据类型,它是将具有相同___________、___________、___________的多个对象抽象而成的。
状态、操作和访问机制(P148)
14、科学的语言基本上是___________性、___________性而非评论性的。
描述性、断定性(P145)
15、_________是能被其他程序调用,在实现某种功能后能自动返回到调用程序去的程序。
子程序(P153)
16、形式语言是进行形式化工作的元语言,它是以________和________为基础的科学语言。
数学和数理逻辑(P145)
17、匈牙利命名法的基本原则是:标识符=____________+____________+____________。
属性类型对象描述(P150)
18、程序语言的分类没有统一的标准,根据程序设计的方法将程序语言大致分为____________、____________、____________和____________设计语言等类型。
命令式程序设计语言、面向对象的程序设计语言、函数式程序设计语言和逻辑型程序设计语言(P159)