Zhujiao057《编译原理》习题答案 下载本文

内容发布更新时间 : 2024/5/20 19:51:06星期一 下面是文章的全部内容请认真阅读。

西安交通大学网络教育学院

《编译原理》习题答案

一、单项选择题(本大题共164小题,每小题2分)

1、如果一个编译程序能产生不同于其宿主机的机器代码,则称它为( C )。

A、诊断编译程序 B、优化编译程序 C、交叉编译程序 D、可变目标编译程序 2、( C )不是编译程序的组成部分。

A、词法分析程序 B、代码生成程序 C、设备管理程序 D、语法分析程序

3、现代多数实用编译程序所产生的目标代码都是一种可重定位的指令代码,在运行前必须借助于一个( C )把各个目标模块,包括系统提供的库模块连接在一起,确定程序变量或常数在主存中的位置,装入内存中制定的起始地址,使之成为一个可运行的绝对指令代码的程序。

A、重定位程序 B、解释程序 C、连接装配程序 D、诊断程序; 4、产生正则语言的文法为(D)。

A、0型

B、1型

C、2型

D、3型

5、(A)是一种典型的解释型语言。

A、BASIC

B、C

C、FORTRAN

D、PASCAL

6、把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。

A、 编译器

B、汇编器

C、解释器

D、预处理器

7、用高级语言编写的程序经编译后产生的程序叫(B)

A、 源程序

B、目标程序

C、连接程序

D、解释程序

8、文法G:S→b|∧(T)

T→T,S|S

则FIRSTVT(T)(C)。

A、{b,∧,(}

B、{b,∧,)}

C、{b,∧,(,,}

D、{b,∧,),,}

9、通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括(C)。

A、 模拟执行器

B、解释器 C、表格处理和出错处理 D、符号执行器

10、编译程序绝大多数时间花在(D)上。

A、 出错处理

B、词法分析

C、目标代码生成

D、表格管理

11、设文法为:S→SA|A

A→a|b

则对句子aba,下面(D)是规范推导。

西安交通大学网络教育学院

A、S?SA?SAA?AAA?aAA?abA?aba B、S?SA?SAA?AAA?AAa?Aba?aba C、S?SA?SAA?SAa?Sba?Aba?aba D、S?SA?Sa?SAa?Sba?Aba?aba

12、Chomsky把文法分成四种类型,其中,( D )也称正规文法 A、0型 B、1型 C、2型 D、3型 13、源程序是句子的集合,(B)可以较好地反映句子的结构。

A.、线性表

B、树

C、完全图

D、堆栈

14、词法分析器的输出结果是(D)。

A、单词自身值

B、单词在符号表中的位置 D、单词的种别编码和自身值

C、单词的种别编码 15、词法分析器不能(D)

A、识别出数值常量

B、过滤源程序中的注释 D、发现括号不匹配

C、扫描源程序并识别记号

16、文法:G:S→xSx | y所识别的语言是(D)。

A、 xyx

B、(xyx)*

C、x*yx*

D、xnyxn (n≥0)

17、如果文法G是无二义的,则它的任何句子α(A)

A、最左推导和最右推导对应的语法树必定相同 B、最左推导和最右推导对应的语法树可能不同 C、最左推导和最右推导必定相同

D、 可能存在两个不同的最左推导,但它们对应的语法树相同 18、语言的词法规则一般用Chomsky的( D )型文法来描述: A、0 19、文法 S→(L)|a L→L,S|S

中的终结符号是( B )。

A、S B、, C、L D、| 20、文法G所描述的语言是( D )的集合。

B、1

C、2

D、3

西安交通大学网络教育学院

A、文法G的字母表?中的所有符号组成的符号串 B、文法G的字母表?的闭包?*中的所有符号串 C、文法G的识别符号推出的所有符号串 D、文法G的识别符号推出的所有终结符号串

21、语法分析器接收以( C )为单位的输入,并产生有关信息供以后各阶段使用。 A、表达式 B、产生式 C、单词 D、语句; 22、LR(k)文法( A )。

A、都是无二义性的 B、都是二义性的 C、一部分是二义性的 D、无法判定 23、如果一个编译程序能产生不同于其宿主机的机器代码,则称它为:( C )。

A、诊断编译程序 B、优化编译程序 C、交叉编译程序 D、可变目标编译程序 24、许多广为使用的语言,如Fortran、C、Pascal等,属于( A )。

A、强制式语言 B、应用式语言 C、基于规则的语言 D、面向对象的语言 25、设G是一个文法,S是开始符号。若S?*?,??(VT?VN)*,则称?是一个( B )。 A、句子 B、句型 C、推导 D、语言

26、赋值语句x:=-(a+b)/(c-d)-(a+b*c)的逆波兰式表示是( C )。 A、xab+cd-/-bc*a+-:= C、xab+/cd-bc*a+--:= C、xab+-cd-/abc*+-:= D、xab+cd-/abc*+--:=

27、在一棵语法树中的结点的继承属性和综合属性之间的相互依赖关系可以由( C )来描述。 A、抽象语法树 B、语法规则 C、依赖图 D、三地址代码;

28、( C )语言具有这样的特点:没有分程序结构;过程定义不允许嵌套;允许过程嵌套定义。 A、Fortran B、Pascal C、C D、都不是 29、Pascal中过程说明的局部变量地址分配在( B )。 A、调用者的数据区中 B、被调用者的数据区中 C、主程序的数据区中 D、公共数据区中

30、一个数据类型通常包括三种要素,下面( C )不是:

A、用于区别这种类型的数据对象的属性 B、这种类型的数据对象可以具有的值 C、对这种类型的数据对象的内存分配 D、可以作用于这种类型的数据对象的操作 31、正则文法(A)二义性的。

A、 可以是

B、一定不是

C、一定是

32、(B)这样一些语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。

A、 存在

B、不存在

C、无法判定是否存在