编译原理复习题-给学生(简) 下载本文

《编译原理》复习题

A.0 B.1 C.2 D.4

37.四元式之间的联系是通过 _______B____________实现的。 A.指示器 B.临时变量 C.符号表 D.程序变量 38.将编译程序分成若干“遍”,是为了( B )。

A.提高程序的执行效率 B.使程序的结构更为清晰 C.利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率

39.一个编译程序在编译时,大多数时间花在( D )上。 A.出错处理 B.词法分析 C.目标代码生成 D.表格管理及处理

40. 下列符号串不可以由符号集?={a,b}上的正闭包运算产生的是:(A ) A. ε B. a C. aa D. ab 41.词法分析器的输出是:( C )

A.单词在符号表中的位置 B.单词的自身值 C.单词的自身值和单词的种类码 D.单词的种类码 42. 两个DFA等价是指:( D ) A. 这两个DFA的状态数相同

B. 这两个DFA的状态数和有向弧条数都相等 C. 这两个DFA的有向弧条数相等 D. 这两个DFA接受的语言相同

43.生成中间代码时所依据的是( C )。

A.语法规则 B.词法规则 C.语义规则 D.等价变换规则 44.表达式(┐a∨b)∧(c∨d)的逆波兰表示为(B )。 A.┐ab∨∧cd∨ B.a┐b∨cd∨∧ C.ab∨┐cd∨∧ D.a┐b∨∧cd∨

45.有文法G及其语法制导翻译如下所示(语义规则中的*和+分别是常规意义下的算术运算符): E→E(1) ∧ T {E.val = E(1).val * T.val} E→T { E.val = T.val}

T→T(1)# n {T.val = T(1).val + n.val } T→ n {T.val = n.val}

则分析句子2 ∧ 3 # 4其值为( C )。 A. 10 B. 21 C. 14 D. 24 46.表达式a+b+c+d的逆波兰表示为( B )。

5

《编译原理》复习题

A.a+bc+d+ B.ab+c+d+ C.ab+cd++ D.abc+d++ 47. 文法G[S]及其语法制导翻译定义如下: 产生式 语义动作 S’ → S print(S.num) S → (L) S.num = L.num +1

S → a S.num = 0

L →L(1), S L.num = L(1).num + S.num

L →S L.num = S.num

若输入为(a,(a)),且采用自底向上的分析方法,则输出为( C )。 A.0 B.1 C.2 D.4

48.若a为终结符,则A→α. aβ为( B )。 A.归约项目 B.移进项目 C.待约项目 D.接受项目 49.若B为非终结符,则A→α. Bβ为( C )。 A.归约项目 B.移进项目 C.待约项目 D.接受项目 50. 项目A→α. 为( A )。

A.归约项目 B.移进项目 C.待约项目 D.接受项目 51. 语法分析器的输入是:( A )

A. Token序列 B. 源程序 C. 目标程序 D. 符号表

52. 在LR(0)的Action表中,如果某行中存在标记为“rj”的栏,则:( A ) A. 该行必定填满“rj” B. 该行未必填满“rj” C. 其他行可能也有“rj” D. goto表中也可能有“rj” 53. LR分析过程中栈内存储的是( A )。 A. 活前缀 B. 前缀 C. 归约活前缀 D. 项目

54.文法G:S → x xS | y 所识别的语言是( D )。

A.xxy* B.(xxy)* C.xx*yx D.(xx)*y 55.若状态k含有项目“A→α.”,对任意非终结符a,都用规则“A →α”归约的语法分析方法是( BA.LALR分析法 B.LR(0)分析法 C.LR(1)分析法 D.SLR(1)分析法

56.在编译过程中,如果遇到错误应该( C )。 A. 把错误理解成局部的错误

B. 对错误在局部范围内进行纠正,继续向下分析

C. 当发现错误时,跳过错误所在的语法单位继续分析下去

D. 当发现错误时立即停止编译,待用户改正错误后再继续编译 57.将编译程序分成若干“遍”,是为了( B )

A.提高程序的执行效率 B.使程序的结构更为清晰 C.利用有限的机器内存并提高机器的执行效率 D.利用有限的机器内存但降低了机器的执行效率

58.下列符号串不可以由符号集?={a,b}上的正闭包运算产生的是:( A ) A. ε B. a

。6

) 《编译原理》复习题

C. aa D. ab 59.表达式(┐a∨b)∧(e∨f)的逆波兰表示为( B )。 A.┐ab∨∧ef∨ B.a┐b∨ef∨∧ C.ab∨┐ef∨∧ D.a┐b∨∧ef∨

60.有文法G及其语法制导翻译如下所示(语义规则中的*和+分别是常规意义下的算术运算符): E→E(1) ∧ T {E.val = E(1).val * T.val} E→T {E.val = T.val}

T→T(1)# n {T.val = T(1).val + n.val } T→ n {T.val = n.val}

则分析句子3 ∧ 3 # 4其值为( B )。

A. 10 B. 21 C. 14 D. 24 61.表达式a+b+c的逆波兰表示为( B )。 A.a+bc+ B.ab+c+ C.+abc+ D.abc++ 62. 文法G[S]及其语法制导翻译定义如下: 产生式 语义动作 S’ → S print(S.num) S → (L) S.num = L.num +1

S → a S.num = 0

L →L(1), S L.num = L(1).num + S.num

L →S L.num = S.num

若输入为(a, a),且采用自底向上的分析方法,则输出为( B )。 A.0 B.1 C.2 D.4

63. 在SLR(1)的Action表中,如果某行中存在标记为“rj”的栏,则:( B ) A. 该行必定填满“rj” B. 该行未必填满“rj” C. 其他行可能也有“rj” D. goto表中也可能有“rj”

64. 一个( D )指明了在LR分析过程中的某个时刻所能看到产生式多大一部分。 A. 活前缀 B. 前缀 C. 归约活前缀 D. 项目

65.文法G:S → xS | y 所识别的语言是( D )。 A.xy* B.(xy)* C.xx*yx D.x*y 66.若状态k含有项目“A→α.”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A →α”归约的语法分析方法是( D )。

A.LALR分析法 B.LR(0)分析法 C.LR(1)分析法 D.SLR(1)分析法 67.设有文法G[T]: T→T*F|F F→F↑P|P P→(T)|a

该文法句型T*P↑(T*F)的句柄是下列符号串( C )

A.(T*F) B. T*F C. P D. P↑(T*F)

68.LR分析表中的转移表(goto)是以( B )作为列标题的。

A.终结符 B.非终结符 C.终结符或非终结符 D.表示状态的整形数

7

《编译原理》复习题

69.编译程序的语法分析器必须输出的信息是( A ) A.语法错误信息 B.语法规则信息 C.语法分析过程 D.语句序列 70.下列项目中为可移进项目的是( C )。

A.E′→E . B.L→. C.L→-.L D.F→L*F. 71.有一语法指导定义如下: S→bAb print “1” A→(B print “2” A→a print “3” B→aA) print “4” 若输入序列为b(a(a(aa)))b,且采用自底向上的分析方法,则输出序列为( B ) A.32224441 B.34242421 C.12424243 D.34442212 72.同正规式(a|b)*等价的正规式为( D ) A.(a|b)+ B.a*|b* C.(ab)* D.(a*|b*)+ 73.词法分析器的加工对象是( C ) A.中间代码 B.单词 C.源程序 D.元程序 74.在自下而上的语法分析中,应从( B )开始分析。

A.句型 B.句子 C.文法开始符号 D.句柄

75.赋值语句X:=-(a+b)/(c-d)-(a+b*c)的逆波兰表示是( C ) A. Xab+cd-/-bc*a+-:= B. Xab+/cd-bc*a+--:= C. Xab+-cd-/ a bc* +-:= D. Xab+cd-/abc* +--:= 76.设有文法G[T]: T→T*F|F F→F↑P|P P→(T)|a

该文法句型T*F↑(T*F)的句柄是下列符号串( B )

A.(T*F) B. T*F C. P D. P↑(T*F)

77.LR分析表中的动作表(action)是以( D )作为列标题的。

A.终结符 B.非终结符 C.终结符或非终结符 D.终结符和结束符$ 78.下列项目中为可归约项目的是( B )。

A.E′→.E B.L→. C.L→-.L D.F→L*.F 79.有一语法指导定义如下,其中+表示符号连接运算: S→B print B.vers B→a B.vers=a B→b B.vers=b

B→Ba B.vers=a+B.vers B→Bb B.vers=b+B.vers

若输入序列为abab,且采用自底向上的分析方法,则输出序列为( D )

A.aabb B.abab C.bbaa D.baba 80.同正规式(a|b)*等价的正规式为( D ) A.(a|b)+ B.a*|b* C.(ab)* D.(a*|b*)+

共 4 页 第 1 页

81.词法分析器的加工对象是( C )

A.中间代码 B.单词 C.源程序 D.元程序

8