编译原理复习题给学生简.docx
- 文档编号:10440388
- 上传时间:2023-02-11
- 格式:DOCX
- 页数:63
- 大小:506.31KB
编译原理复习题给学生简.docx
《编译原理复习题给学生简.docx》由会员分享,可在线阅读,更多相关《编译原理复习题给学生简.docx(63页珍藏版)》请在冰豆网上搜索。
编译原理复习题给学生简
一、单项选择题
1.构造编译程序应掌握。
D
a.源程序b.目标语言
c.编译方法d.以上三项都是
2.编译程序绝大多数时间花在上。
D
a.出错处理b.词法分析
c.目标代码生成d.表格管理
3.DFAM(见图1-1)接受的字集为。
D
a.以0开头的二进制数组成的集合
b.以0结尾的二进制数组成的集合
c.含奇数个0的二进制数组成的集合
d.含偶数个0的二进制数组成的集合
4.-a-(b*c/(c-d)+(-b)*a)的逆波兰表示是。
(@代表后缀式中的求负运算符)C
a.abc*cd-b@a*+/-@b.a@bc*cd-b@a*+/-
c.a@bc*cd-/b@a*+-d.a@bc*/cd-b@a*+-
5.在规范归约中,用来刻画可归约串。
B
a.直接短语b.句柄
c.最左素短语d.素短语
6.若B为非终结符,则A→α·Bβ为项目。
D
a.归约b.移进
c.接受d.待约
7.中间代码生成时所依据的是。
C
a.语法规则b.词法规则
c.语义规则d.等价变换规则
8.有文法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}
则分析句子1∧2∧3#4其值为。
C
a.10b.34c.14d.54
9.如果文法G是无二义的,则它的任何句子α。
A
a.最左推导和最右推导对应的语法树必定相同
b.最左推导和最右推导对应的语法树可能不同
c.最左推导和最右推导必定相同
d.可能存在两个不同的最左推导,但它们对应的语法树相同
10.下列动作中,不是自下而上分析动作的是:
。
B
a.移进b.展开
c.接受d.报错
11.编译程序是对。
D
a.汇编程序的翻译b.高级语言程序的解释执行
c.机器语言的执行d.高级语言的翻译
12.词法分析器的输出结果是。
C
a.单词的种别编码b.单词在符号表中的位置
c.单词的种别编码和自身值d.单词自身值
13.正规式M1和M2等价是指。
C
a.M1和M2的状态数相等
b.M1和M2的有向边条数相等
c.M1和M2所识别的语言集相等
d.M1和M2状态数和有向边条数相等
14.在规范归约中,用来刻画可归约串。
B
a.直接短语b.句柄
c.最左素短语d.素短语
15.若a为终结符,则A→α·aβ为项目。
B
a.归约b.移进
c.接受d.待约
16.语法分析时所依据的是。
A
a.语法规则b.词法规则
c.语义规则d.等价变换规则
17.文法G:
S→xSx|y所识别的语言是。
C
a.xyxb.(xyx)*
c.xnyxn(n≥0)d.x*yx*
18.如果文法G是无二义的,则它的任何句子α。
A
a.最左推导和最右推导对应的语法树必定相同
b.最左推导和最右推导对应的语法树可能不同
c.最左推导和最右推导必定相同
d.可能存在两个不同的最左推导,但它们对应的语法树相同
19.下列动作中,不是自上而下分析动作的是:
。
C
a.匹配b.展开
c.移进d.报错
20.词法分析器的输出结果是。
C
a.单词的种别编码b.单词在符号表中的位置
c.单词的种别编码和自身值d.单词自身值
21.-a-(b*c/(c-d)+(-b)*a)的逆波兰表示是。
(@代表后缀式中的求负运算符)C
a.abc*cd-b@a*+/-@b.a@bc*cd-b@a*+/-
c.a@bc*cd-/b@a*+-d.a@bc*/cd-b@a*+-
22.在规范归约中,用来刻画可归约串。
B
a.直接短语b.句柄
c.最左素短语d.素短语
23.若B为非终结符,则A→α·为项目。
A
a.归约b.移进
c.接受d.待约
24.文法G:
S→xSx|xS|y所识别的语言是。
A
a.xmyxn(m≥n≥0)b.(xyx)*
c.xnyxn(n≥0)d.x*yx*
25.有文法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.10b.21
c.14d.24
26.间接三元式表示法的优点为。
A
a.采用间接码表,便于优化处理
b.节省存储空间,不便于表的修改
c.便于优化处理,节省存储空间
d.节省存储空间,不便于优化处理
27.下列动作中,不是自上而下分析动作的是:
。
C
a.匹配b.展开
c.接受d.报错
28.同正规式(a|b)+等价的正规式是______B___________。
A.(a|b)*B.(a|b)(a|b)*C.(ab)*(ab)D.(a|b)|(a|b)*
29.称有限自动机A1和A2等价是指_______D________。
A.A1和A2都是定义在一个字母表上的有限自动机
B.A1和A2状态数和有向边数相等
C.A1和A2状态数或有向边数相等
D.A1和A2所能识别的字符串集合相等
30.由文法的开始符号出发经过若干步(包括0步)推导产生的文法符号序列称为______B________。
A.语言B.句型C.句子D.句柄
31.在自上而下的语法分析中,应从C开始分析。
A.句型B.句子C.文法开始符号D.句柄
32.一个文法G,若________C____________,则称它是LL
(1)文法。
A.G中不含左递归B.G无二义性
C.G的LL
(1)分析表中不含多重定义的条目D.G中产生式不含左公因子
33.在规范归约中,用______B______来刻画可归约串。
A.直接短语B.句柄C.素短语D.短语
34.若a为终结符,则A→α·aβ为_______B______项目。
A.归约B.移进C.接受D.待约
35.中间代码生成时所依据的是C。
A.词法规则B.语法规则C.语义规则D.等价变换规则
36.文法G[S]及其语法制导翻译定义如下:
产生式语义动作
S’→Sprint(S.num)
S→(L)S.num=L.num+1
S→aS.num=0
L→L
(1),SL.num=L
(1).num+S.num
L→SL.num=S.num
若输入为(a,(a)),且采用自底向上的分析方法,则输出为C。
A.0B.1C.2D.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. aaD. 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.10B.21
C.14D.24
46.表达式a+b+c+d的逆波兰表示为(B)。
A.a+bc+d+B.ab+c+d+
C.ab+cd++D.abc+d++
47.文法G[S]及其语法制导翻译定义如下:
产生式语义动作
S’→Sprint(S.num)
S→(L)S.num=L.num+1
S→aS.num=0
L→L
(1),SL.num=L
(1).num+S.num
L→SL.num=S.num
若输入为(a,(a)),且采用自底向上的分析方法,则输出为(C)。
A.0B.1
C.2D.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→xxS|y所识别的语言是(D )。
A.xxy*B.(xxy)*C.xx*yxD.(xx)*y
55.若状态k含有项目“A→α.”,对任意非终结符a,都用规则“A→α”归约的语法分析方法是(B )。
A.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
C. aaD. 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.10B.21
C.14D.24
61.表达式a+b+c的逆波兰表示为(B)。
A.a+bc+B.ab+c+
C.+abc+D.abc++
62.文法G[S]及其语法制导翻译定义如下:
产生式语义动作
S’→Sprint(S.num)
S→(L)S.num=L.num+1
S→aS.num=0
L→L
(1),SL.num=L
(1).num+S.num
L→SL.num=S.num
若输入为(a,a),且采用自底向上的分析方法,则输出为(B)。
A.0B.1
C.2D.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*yxD.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*FC.PD.P↑(T*F)
68.LR分析表中的转移表(goto)是以(B)作为列标题的。
A.终结符B.非终结符C.终结符或非终结符D.表示状态的整形数
69.编译程序的语法分析器必须输出的信息是(A)
A.语法错误信息B.语法规则信息C.语法分析过程D.语句序列
70.下列项目中为可移进项目的是(C)。
A.E′→E.B.L→.C.L→-.LD.F→L*F.
71.有一语法指导定义如下:
S→bAbprint“1”
A→(Bprint“2”
A→aprint“3”
B→aA)print“4”
若输入序列为b(a(a(aa)))b,且采用自底向上的分析方法,则输出序列为(B)
A.32224441B.34242421C.12424243D.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-/abc*+-:
=
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*FC.PD.P↑(T*F)
77.LR分析表中的动作表(action)是以(D)作为列标题的。
A.终结符B.非终结符C.终结符或非终结符D.终结符和结束符$
78.下列项目中为可归约项目的是(B)。
A.E′→.EB.L→.C.L→-.LD.F→L*.F
79.有一语法指导定义如下,其中+表示符号连接运算:
S→BprintB.vers
B→aB.vers=a
B→bB.vers=b
B→BaB.vers=a+B.vers
B→BbB.vers=b+B.vers
若输入序列为abab,且采用自底向上的分析方法,则输出序列为(D)
A.aabbB.ababC.bbaaD.baba
80.同正规式(a|b)*等价的正规式为(D)
A.(a|b)+B.a*|b*C.(ab)*D.(a*|b*)+
共4页第1页
81.词法分析器的加工对象是(C)
A.中间代码B.单词C.源程序D.元程序
82.在自上而下的语法分析中,应从(C)开始分析。
A.句型B.句子C.文法开始符号D.句柄
83.赋值语句X:
=-(a+b)/(c-d)-(a+b*c)的逆波兰表示是(C)
E.Xab+cd-/-bc*a+-:
=
F.Xab+/cd-bc*a+--:
=
G.Xab+-cd-/abc*+-:
=
H.Xab+cd-/abc*+--:
=
84.编译程序不能检查、处理的错误是程序中的_______B_________。
A.静态语义检查B.动态语义检查C.语法错误D.词法错误
85.在LR(0)的ACTION子表中,如果某一行中有标记为“rj”的栏,则_______C__________。
A.该行既有rj又有SjB.其它行也有rj
C.该行一定填满rjD.该行未填满rj
86.同正规式(a|b)+等价的正规式是_________B________________。
A.(a|b)*B.(a|b)(a|b)*C.(ab)*(ab)D.(a|b)|(a|b)*
87.在规范归约中,用______B______来刻画可归约串。
A.直接短语B.句柄C.素短语D.短语
88.若a为终结符,则A→α·aβ为_______B______项目。
A.归约B.移进C.接受D.待约
89.一个文法G,若________C____________,则称它是LL
(1)文法。
A.G中不含左递归B.G无二义性
C.G的LL
(1)分析表中不含多重定义的条目D.G中产生式不含左公因子
90.LR分析器的核心部分是一张分析表,该表由_______D___________组成。
A.ACTION表B.GOTO表C.预测分析表D.ACTION表和GOTO表
91.构造编译程序应该掌握_______D__________。
A.源程序B.目标语言C.编译方法D.以上三项都是
92.在递归子程序方法中,若文法存在左递归,则会使分析过程产生___D__________。
A.回溯B.非法调用C.有限次调用D.无限循环
93.最左简单子树的叶结点,自左至右排列组成句型的________C____________。
A.短语B.句型C.句柄D.间接短语
94.如果一个正规式所代表的集合是无穷的,则它必含有的运算是__________C___________。
A.连接运算“·”B.或运算“|”C.闭包运算“*”D.括号“(”和“)”
95.同正规式a*b*等价的文法是________C___________。
A.G1:
S→aS|bS|εB.G2:
S→aSb|εC.G3:
S→aS|Sb|εD.G4:
S→abS|ε
96.由文法的开始符号出发经过若干步(包括0步)推导产生的文法符号序列称为______B________。
A.语言B.句型C.句子D.句柄
97.四元式之间的联系是通过_______B____________实现的。
A.指示器B.临时变量C.符号表D.程序变量
98.编译程序的语法分析器必须输出的信息是________A____________。
A.语法错误信息B.语法规则信息C.语法分析过程D.语句序列
99.LL
(1)分析法中“1”的含义是在输入串中查看一个输入符号,其目的是_______C___________。
A.确定最左推导B.确定句柄
C.确定使用哪一个产生式进行展开D.确定是否推导
100.称正规式R1和R2等价是指__________C_______________。
A.R1和R2都是定义在同一个字母表上的正规式
B.R1和R2使用的运算符相同
C.R1和R2代表同一个正规集
D.R1和R2代表不同的正规集
二、填空题
概述部分:
1.编译程序的开发常常采用自编译、交叉编译、自展和移植等技术实现。
2.解释程序和编译程序的区别在于是否生成目标程序。
3.如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分为3个阶段:
编译阶段、汇编阶段和运行阶段。
4.编译程序工作过程中,第一阶段输入是源程序,最后阶段的输出为目标程序。
5.编译过程通常可分为5个阶段词法分析阶段、语法分析阶段、语义分析和中间代码生成阶段、优化阶段和目标代码生成阶段。
6.如果编译阶段生成的目标程序是某特定计算机系统的机器代码程序,则源程序的执行分为两大阶段:
编译阶段和运行阶段。
7.对编译程序而言,输入数据是源程序,输出结果是目标程序。
8.贯穿于编译程始终的工作有符号表处理和出错处理。
词法分析部分:
1.词法分析的工作是将源程序中的字符串变换成单词符号流的过程,所遵循的是语言的构词规则。
2.若两个正规式所表示的正规集相同,则认为二者是等价的。
3.若两个正规式所表示的正规集相同,则认为二者是等价的。
4.正规式R1和R2等价是指_______表示相同的正规集。
5.词法分析器的输入是源程序字符串,输出结构是二元式(单词种别,单词自身的值)。
词法分析所遵循的是语言的构词规则。
6.确定的有限自动机是一个五元组,包含的五个元分别是:
状态集合、字母表、初态、终态集、状态转换函数集合。
7.有限自动机是更一般化的状态转换图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 复习题 学生