编译原理试题汇总编译原理期末试题8套含答案大题集 联系客服

发布时间 : 星期六 文章编译原理试题汇总编译原理期末试题8套含答案大题集更新完毕开始阅读4ceca5d9df88d0d233d4b14e852458fb770b3804

编译原理考试题及答案汇总

一、选择

1.将编译程序分成若干个“遍”是为了_B__。

A . 提高程序的执行效率 B.使程序的结构更加清晰

C. 利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指__C__。

A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。

C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等 3.中间代码生成时所依据的是 _C_。

A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 4.后缀式 ab+cd+/可用表达式__B_来表示。

A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d

6. 一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化, 目标代码生成等五个部分。

A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析 7. 词法分析器用于识别__C___。

A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符 8. 语法分析器则可以发现源程序中的___D__。

A.( ) 语义错误 B.( ) 语法和语义错误 C.( ) 错误并校正 D.( ) 语法错误 9. 下面关于解释程序的描述正确的是__B___。

(1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言

(3) 解释程序是为打开编译程序技术的僵局而开发的

A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3) 10. 解释程序处理语言时 , 大多数采用的是__B___方法。

A.( ) 源程序命令被逐个直接解释执行

B.( ) 先将源程序转化为中间代码 , 再解释执行 C.( ) 先将源程序解释转化为目标程序 , 再执行 D.( ) 以上方法都可以

11. 编译过程中 , 语法分析器的任务就是__B___。

(1) 分析单词是怎样构成的 (2) 分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的 (4) 分析程序的结构

A.( ) (2)(3) B.( ) (2)(3)(4)C.( ) (1)(2)(3) D.( ) (1)(2)(3)(4) 12. 编译程序是一种___C__。

A. ( ) 汇编程序 B.( ) 翻译程序 C.( ) 解释程序 D.( ) 目标程序 13. 文法 G 所描述的语言是_C____的集合。

A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串 B.( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串 C.( ) 由文法的开始符号推出的所有终极符串 D. ( ) 由文法的开始符号推出的所有符号串

14. 文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 3 型文法是___B__。

A. ( ) 短语文法 B.( ) 正则文法 C.( ) 上下文有关文法 D.( ) 上下文无关文法 15. 一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一 组终结符号,一个开始符号,以及一组 __D___。

A.( ) 句子 B.( ) 句型 C.( ) 单词 D.( ) 产生式 16. 通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目 标代码生成等五个部分,还应包括_C____。

1 / 110

A.( ) 模拟执行器 B .( ) 解释器

C.( ) 表格处理和出错处理 D.( ) 符号执行器

17. 文法 G[N]= ( {b} , {N , B} , N , {N→b│ bB , B→bN} ),该文法所描述 的语言是C

A.( ) L(G[N])={bi│ i ≥ 0} B.( ) L(G[N])={b2i│ i≥ 0} C.( ) L(G[N])={b2i+1│ i ≥ 0} D.( ) L(G[N])={b2i+1│ i ≥ 1} 18. 一个句型中的最左_B____称为该句型的句柄。

A.( ) 短语 B.( ) 简单短语 C.( ) 素短语 D.( ) 终结符号

19.设 G 是一个给定的文法,S 是文法的开始符号,如果 S->x( 其中 x∈V*), 则称 x 是 文法 G 的一个___B__。

A.( ) 候选式 B .( ) 句型 C.( ) 单词 D.( ) 产生式 20. 文法 G[E] : E →T∣E + T T →F∣T ﹡ F F →a∣ ( E )

该文法句型 E + F ﹡ (E + T) 的简单短语是下列符号串中的_____。

① ( E + T ) ②E + T ③F ④ F ﹡ (E + T)

A.( ) ① 和 ③ B.( ) ② 和 ③ C.( ) ③ 和 ④ D.( ) ③ 21. 若一个文法是递归的,则它所产生的语言的句子__A___。

A.( ) 是无穷多个 B .( ) 是有穷多个 C.( ) 是可枚举的 D.( ) 个数是常量 22. 词法分析器用于识别___C__。

A.( ) 句子 B .( ) 句型 C.( ) 单词 D.( ) 产生式

23. 在语法分析处理中, FIRST 集合、 FOLLOW 集合、 SELECT 集合均是_B____。

A . ( ) 非终极符集 B .( ) 终极符集 C.( ) 字母表 D . ( ) 状态集 24. 在自底向上的语法分析方法中,分析的关键是__A___。

A .( ) 寻找句柄 B .( ) 寻找句型 C .( ) 消除递归 D .( ) 选择候选式 25. 在 LR 分析法中,分析栈中存放的状态是识别规范句型___C__的 DFA 状态。

A .( ) 句柄 B .( ) 前缀 C .( ) 活前缀 D .( ) LR(0) 项目 26. 文法 G 产生的__D___的全体是该文法描述的语言。

A.( ) 句型 B.( ) 终结符集 C.( ) 非终结符集 D.( ) 句子 27. 若文法 G 定义的语言是无限集,则文法必然是 ___A__

A.( ) 递归的 B .( ) 前后文无关的 C .( ) 二义性的 D.( ) 无二义性的

28. 四种形式语言文法中,1 型文法又称为 __A___文法。

A.( ) 短语结构文法 B .( ) 前后文无关文法 C.( ) 前后文有关文法 D.( ) 正规文法 29. 一个文法所描述的语言是__A___。

A.( ) 唯一的 B.( ) 不唯一的

C.( ) 可能唯一,好可能不唯一 D.( ) 都不对 30. __B___和代码优化部分不是每个编译程序都必需的。

A.( ) 语法分析 B .( ) 中间代码生成 C.( ) 词法分析 D.( ) 目标代码生成 31._B____是两类程序语言处理程序。

A.( ) 高级语言程序和低级语言程序 B .( ) 解释程序和编译程序 C.( ) 编译程序和操作系统 D.( ) 系统程序和应用程序 32. 数组的内情向量中肯定不含有数组的_A____的信息。

A . ( ) 维数 B.( ) 类型 C.( ) 维上下界 D.( ) 各维的界差

33. 一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号, 一个开始符号,以及一组 __D___。

A.( ) 句子 B.( ) 句型

2 / 110

C.( ) 单词 D.( ) 产生式

34. 文法分为四种类型,即 0 型、1 型、2 型、3 型。其中 2 型文法是___D__。

A . ( ) 短语文法 B .( ) 正则文法

C.( ) 上下文有关文法 D.( ) 上下文无关文法

35.一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号, 一个开始符号,以及一组 __D___。

A.( ) 句子 B.( ) 句型 C.( ) 单词 D.( ) 产生式 36.__A___是一种典型的解释型语言。

A.( ) BASIC B.( ) C C.( ) FORTRAN D.( ) PASCAL 37.与编译系统相比,解释系统___D__。

A.( ) 比较简单 , 可移植性好 , 执行速度快 B.( ) 比较复杂 , 可移植性好 , 执行速度快 C .( ) 比较简单 , 可移植性差 , 执行速度慢 D.( ) 比较简单 , 可移植性好 , 执行速度慢

38.用高级语言编写的程序经编译后产生的程序叫__B___。

A.( ) 源程序 B .( ) 目标程序 C.( ) 连接程序 D.( ) 解释程序

39.编写一个计算机高级语言的源程序后 , 到正式上机运行之前,一般要经过___B__这几步:

(1) 编辑 (2) 编译 (3) 连接 (4) 运行

A . ( ) (1)(2)(3)(4) B.( ) (1)(2)(3) C.( ) (1)(3) D.( ) (1)(4) 40.把汇编语言程序翻译成机器可执行的目标程序的工作是由__A___完成的。

A.( ) 编译器 B.( ) 汇编器 C.( ) 解释器 D.( ) 预处理器 41.词法分析器的输出结果是__C___。

A.( ) 单词的种别编码 B.( ) 单词在符号表中的位置 C.( ) 单词的种别编码和自身值 D.( ) 单词自身值 42. 文法 G :S→xSx|y 所识别的语言是__C___。

A.( ) xyx B.( ) (xyx)* C .( ) xnyxn(n≥0) D.( ) x*yx* 43.如果文法 G 是无二义的,则它的任何句子α___A__。

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

D.( ) 可能存在两个不同的最左推导,但它们对应的语法树相同 44.构造编译程序应掌握___D___。

A.( ) 源程序 B .( ) 目标语言 C.( ) 编译方法 D.( ) 以上三项都是 45.四元式之间的联系是通过__B___实现的。

A.( ) 指示器 B .( ) 临时变量 C.( ) 符号表 D.( ) 程序变量

46.表达式( ┐ A ∨B)∧(C∨D)的逆波兰表示为___B__。

A . ( ) ┐ AB∨∧CD∨ B .( ) A ┐ B∨CD∨∧ C.( ) AB∨┐ CD∨∧ D.( ) A┐ B ∨∧CD∨ 47. 优化可生成__D___的目标代码。

A.( ) 运行时间较短 B.( ) 占用存储空间较小

C.( ) 运行时间短但占用内存空间大 D.( ) 运行时间短且占用存储空间小 48.下列__C____优化方法不是针对循环优化进行的。

A . ( ) 强度削弱 B .( ) 删除归纳变量 C.( ) 删除多余运算 D.( ) 代码外提 49.编译程序使用__B___区别标识符的作用域。

A . ( ) 说明标识符的过程或函数名

B.( ) 说明标识符的过程或函数的静态层次

3 / 110

C.( ) 说明标识符的过程或函数的动态层次 D . ( ) 标识符的行号

50.编译程序绝大多数时间花在___D__ 上。

A.( ) 出错处理 B.( ) 词法分析 C.( ) 目标代码生成 D.( ) 表格管理 51. 编译程序是对__D___。

A.( ) 汇编程序的翻译 B .( ) 高级语言程序的解释执行 C.( ) 机器语言的执行 D.( ) 高级语言的翻译 52. 采用自上而下分析,必须__C___。

A.( ) 消除左递归 B .( ) 消除右递归 C.( ) 消除回溯 D.( ) 提取公共左因子 53.在规范归约中,用__B___来刻画可归约串。

A.( ) 直接短语 B.( ) 句柄

C.( ) 最左素短语 D.( ) 素短语

54. 若 a 为终结符,则 A ->α ? aβ 为__B___项目。

A.( ) 归约 B .( ) 移进 C.( ) 接受 D.( ) 待约 55.间接三元式表示法的优点为__A___。

A.( ) 采用间接码表,便于优化处理 B .( ) 节省存储空间,不便于表的修改 C.( ) 便于优化处理,节省存储空间 D.( ) 节省存储空间,不便于优化处理 56.基本块内的优化为___B__。

A . ( ) 代码外提,删除归纳变量 B.( ) 删除多余运算,删除无用赋值 C.( ) 强度削弱,代码外提 D.( ) 循环展开,循环合并 57. 在目标代码生成阶段,符号表用___D__。

A.( ) 目标代码生成 B.( ) 语义检查 C.( ) 语法检查 D.( ) 地址分配

58.若项目集 Ik 含有 A ->α ? ,则在状态 k 时,仅当面临的输入符号 a∈FOLLOW(A)时,才采取“A ->α ? ”动作的一定是__D___。

A . ( ) LALR 文法 B.( ) LR(0)文法 C.( ) LR(1)文法 D.( ) SLR(1)文法

59.堆式动态分配申请和释放存储空间遵守__D___原则。

A . ( ) 先请先放 B.( ) 先请后放 C.( ) 后请先放 D . ( ) 任意

二、判断

1.计算机高级语言翻译成低级语言只有解释一种方式。(×)

2.在编译中进行语法检查的目的是为了发现程序中所有错误。(×)

3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系 统功能完全相同。 (√ )

4.正则文法其产生式为 A->a , A->Bb, A,B∈VN , a 、 b∈VT 。 (×) 5.每个文法都能改写为 LL(1) 文法。 (√)

6.递归下降法不允许任一非终极符是直接左递归的。 (√) 7.算符优先关系表不一定存在对应的优先函数。 (×)

8.自底而上语法分析方法的主要问题是候选式的选择。 (×) 9.LR 法是自顶向下语法分析方法。 (×)

10.简单优先文法允许任意两个产生式具有相同右部。 (×)

11.“ 用高级语言书写的源程序都必须通过编译, 产生目标代码后才能投入运行 ”这种说法。( × ) 12 .若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄。( × ) 13 .一个句型的句柄一定是文法某产生式的右部。 ( √) 14 .在程序中标识符的出现仅为使用性的。 ( × ) 15 .仅考虑一个基本块,不能确定一个赋值是否真是无用的。 ( √ ) 16 .削减运算强度破坏了临时变量在一基本块内仅被定义一次的特性。 ( √ )

4 / 110