第六章习题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集成开发环境的简称(IntegratedDevelopEnvironment)是一套用于程序开发的软件工具集合,一般包括源代码编辑器、编译器、调试器和图形用户界面工具。(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)19、逻辑型语言是一类以___________为基础的语言,其代表是Prolog语言,这种语言与数据库SQL语言有很多相似之处。形式逻辑(P148)20、____________的选择是语言设计的第一件事。字符集(P149)(二)选择题1、结构化程序设计主要强调的是______。A、程序的规模B、程序的易读性C、程序的执行效率D、程序的可移植性B(P146)2、程序设计语言从机器语言到高级语言的抽象,带来的主要好处是_____。A、高级语言接近算法语言,易学、易掌握B、可读性好,可维护性强,可靠性高C、设计的程序可移植性好,重用率高D、高级语言程序设计自动化程度高,开发周期短A(P146)3、下面是关于解释程序和编译程序的论述,其中正确的一条是__________A、编译程序和解释程序均能产生目标程序B、编译程序和解释程序均不能产生目标程序C、编译程序能产生目标程序而解释程序则不能D、编译程序不能产生目标程序而解释程序能A(P155)4、近来计算机报刊中常出现的“Java”一词是指_________。A、一种计算机语言B、一种计算机设备C、一个计算机厂商云集的地方D、一种新的数据库软件A(P156)5、采用编译方法的高级语言源程序在编译后_________。A、生成目标程序B、生成可在DOS下直接运行的目标程序C、生成可执行程序D、生成可在DOS下直接运行的可执行程序C(P155)6、用高级程序设计语言编写的程序,要转换成等价的可执行程序,必须经过____。A、汇编B、编辑C、解释D、编译和连接D(P155)7、计算机硬件能直接执行的只有____。A、符号语言B、机器语言C、机器语言和汇编语言D、汇编语言B(P145)8、只有当程序要执行时,它才会将原程序翻译成机器语言,并且一次只能读取、翻译并执行原程序中的一行语句,此程序称为____。A、目标程序错误!未定义书签。;B、编辑程序;C、解释程序;D、汇编程序。C(P156)9、构造编译程序应掌握____。A、源程序B、目标语言C、编译方法D、以上三项都是D(P154)10、编译程序绝大多数时间花在A、出错处理B、词法分析C、目标代码生成D、表格管理D(P154)11、如果一个变量在整个程序运行期间都存在,但是仅在说明它的函数内是可见的,这个变量的存储类型应该被说明为____。A、静态变量B、动态变量C、外部变量D、内部变量D(P152)12、在C语言中,函数的数据类型是指____。A、函数返回值的数据类型B、函数形参的数据类型C、调用该函数时的实参的数据类型D、任意指定的数据类型A13、自然语言的计算机处理可以分为___________A、文字和语音B、语义C、语法D、语用A14、DLL的优点有_____________A、程序实现模块化B、可方便地升级C、程序加载速度快D、程序不用编译ABC(P157)(三)判断题1、汇编语言语句与特定的机器指令有一一对应的关系(对)2、支撑机器语言的理论基础是冯诺依曼模型(错)3、形式化语言是人工语言符号系统发展的第三阶段(错)(四)讨论题1、简述匈牙利命名法。匈牙利命名法。其基本原则是:标识符=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。(P150)2、试比较“while型”循环结构和“do-while型”循环结构。“while型”循环结构的逻辑含义是先判断条件,若成立,则执行需要重复的程序块,然后再去判断重复条件,以决定是否继续循环。“do-while型”循环结构的逻辑含义是先执行需要重复的循环体,然后计算关系表达式,以决定是否继续循环。也就是说使用“while型”循环结构可能不进行入循环,循环体一次也不执行;而“do-while型”循环结构至少要执行一次循环体。(P153)3、试比较脚本语言与其他类型语言的区别脚本语言语法简单。脚本通常是解释运行而非编译。脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。,执行脚本语言通常需要相应的解释器。脚本编程速度更快,脚本文件明显小于高级编程语言。脚本通常是解释执行的,速度较二进制文件执行要慢,且运行时更耗内存。(P147)