您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 编译原理复习题-给学生(2014)
《编译原理》复习题1一、单项选择题概述部分1.构造编译程序应掌握。DA.源程序B.目标语言C.编译方法D.以上三项都是2.编译程序绝大多数时间花在上。DA.出错处理B.词法分析C.目标代码生成D.表格管理3.编译程序是对。DA.汇编程序的翻译B.高级语言程序的解释执行C.机器语言的执行D.高级语言的翻译4.将编译程序分成若干“遍”,是为了。BA.提高程序的执行效率B.使程序的结构更为清晰C利用有限的机器内存并提高机器的执行效率D.利用有限的机器内存但降低了机器的执行效率词法分析部分1.DFAM(见图1-1)接受的字集为。DA.以0开头的二进制数组成的集合B.以0结尾的二进制数组成的集合C.含奇数个0的二进制数组成的集合D.含偶数个0的二进制数组成的集合2.词法分析器的输出结果是。CA.单词的种别编码B.单词在符号表中的位置C.单词的种别编码和自身值D.单词自身值3.正规式M1和M2等价是指。CA.M1和M2的状态数相等B.M1和M2的有向边条数相等C.M1和M2所识别的语言集相等D.M1和M2状态数和有向边条数相等4.词法分析器的加工对象是。CA.中间代码B.单词C.源程序D.元程序5.同正规式(a|b)*等价的正规式为。DA.(a|b)+B.a*|b*C.(ab)*D.(a*|b*)+6.两个DFA等价是指:。DA.这两个DFA的状态数相同B.这两个DFA的状态数和有向弧条数都相等C.这两个DFA的有向弧条数相等D.这两个DFA接受的语言相同7.下列符号串不可以由符号集S={a,b}上的正闭包运算产生的是:(A)A.εB.aC.aaD.ab8.称有限自动机A1和A2等价是指________。DA.A1和A2都是定义在一个字母表上的有限自动机B.A1和A2状态数和有向边数相等图1-1XY0011《编译原理》复习题2C.A1和A2状态数或有向边数相等D.A1和A2所能识别的字符串集合相等9.同正规式(a|b)+等价的正规式是_______。BA.(a|b)*B.(a|b)(a|b)*C.(ab)*(ab)D.(a|b)|(a|b)*语法分析1.在规范归约中,用来刻画可归约串。BA.直接短语B.句柄C.最左素短语D.素短语2.若B为非终结符,则A→α·Bβ为项目。DA.归约B.移进C.接受D.待约3.如果文法G是无二义的,则它的任何句子α。AA.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同4.下列动作中,不是自下而上分析动作的是:。BA.移进B.展开C.接受D.报错6.若a为终结符,则A→α·aβ为项目。BA.归约B.移进C.接受D.待约7.语法分析时所依据的是。AA.语法规则B.词法规则C.语义规则D.等价变换规则8.文法G:S→xSx|y所识别的语言是。CA.xyxB.(xyx)*C.xnyxn(n≥0)D.x*yx*9.下列动作中,不是自上而下分析动作的是:。CA.匹配B.展开C.移进D.报错10.若A为非终结符,则A→α·为项目。AA.归约B.移进C.接受D.待约11.文法G:S→xSx|xS|y所识别的语言是。AA.xmyxn(m≥n≥0)B.(xyx)*C.xnyxn(n≥0)D.x*yx*13.由文法的开始符号出发经过若干步(包括0步)推导产生的文法符号序列称为______。BA.语言B.句型C.句子D.句柄14.在自上而下的语法分析中,应从开始分析。CA.句型B.句子C.文法开始符号D.句柄15.一个文法G,若________,则称它是LL(1)文法。CA.G中不含左递归B.G无二义性C.G的LL(1)分析表中不含多重定义的条目D.G中产生式不含左公因子16.项目S’→S.为。D《编译原理》复习题3A.归约项目B.移进项目C.待约项目D.接受项目17.语法分析器的输入是:。AA.Token序列B.源程序C.目标程序D.符号表18.在LR(0)的Action表中,如果某行中存在标记为“rj”的栏,则:。AA.该行必定填满“rj”B.该行未必填满“rj”C.其他行可能也有“rj”D.goto表中也可能有“rj”19.LR分析过程中栈内存储的是。AA.活前缀B.前缀C.归约活前缀D.项目20.文法G:S→xxS|y所识别的语言是。DA.xxynB.(xxy)nC.xxnyxD.(xx)ny21.若状态k含有项目“A→α.”,对任意非终结符a,都用规则“A→α”归约的语法分析方法是。BA.LALR分析法B.LR(0)分析法C.LR(1)分析法D.SLR(1)分析法22.在SLR(1)的Action表中,如果某行中存在标记为“rj”的栏,则:。BA.该行必定填满“rj”B.该行未必填满“rj”C.其他行可能也有“rj”D.goto表中也可能有“rj”23.一个指明了在LR分析过程中的某个时刻所能看到产生式多大一部分。DA.活前缀B.前缀C.归约活前缀D.项目24.若状态k含有项目“A→α.”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A→α”归约的语法分析方法是。DA.LALR分析法B.LR(0)分析法C.LR(1)分析法D.SLR(1)分析法25.设有文法G[T]:T→T*F|FF→F↑P|PP→(T)|a该文法句型T*P↑(T*F)的句柄是下列符号串。CA.(T*F)B.T*FC.PD.P↑(T*F)26.LR分析表中的转移表(goto)是以作为列标题的。BA.终结符B.非终结符C.终结符或非终结符D.表示状态的整形数27.编译程序的语法分析器必须输出的信息是。AA.语法错误信息B.语法规则信息C.语法分析过程D.语句序列28.下列项目中为可移进项目的是。CA.E′→E.B.L→.C.L→.-LD.F→L*F.29.LR分析表中的动作表(action)是以作为列标题的。DA.终结符B.非终结符C.终结符或非终结符D.终结符和结束符#30.下列项目中为可归约项目的是。BA.E′→.EB.L→.C.L→-.LD.F→L*.F33.LR分析器的核心部分是一张分析表,该表由_________组成。D《编译原理》复习题4A.ACTION表B.GOTO表C.预测分析表D.ACTION表和GOTO表34.在递归下降子程序方法中,若文法存在左递归,则会使分析过程产生_______。DA.回溯B.非法调用C.有限次调用D.无限循环35.最左简单子树的叶结点,自左至右排列组成句型的________。CA.短语B.句型C.句柄D.间接短语36.由文法的开始符号出发经过若干步(包括0步)推导产生的文法符号序列中,如果只含有终结符,则文法符号序列称为________。CA.语言B.句型C.句子D.句柄37.LL(1)分析法中“1”的含义是在输入串中查看一个输入符号,其目的是________。CA.确定最左推导B.确定句柄C.确定使用哪一个产生式进行展开D.确定是否推导语义分析1.表达式(┐a∨b)∧(e∨f)的逆波兰表示为。BA.┐ab∨∧ef∨B.a┐b∨ef∨∧C.ab∨┐ef∨∧D.a┐b∨∧ef∨2.中间代码生成时所依据的是。CA.词法规则B.语法规则C.语义规则D.等价变换规则3.-a-(b*c/(c-d)+(-b)*a)的逆波兰表示是。(@代表后缀式中的求负运算符)CA.abc*cd-b@a*+/-@B.a@bc*cd-b@a*+/-C.a@bc*cd-/b@a*+-D.a@bc*/cd-b@a*+-4.有文法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其值为。CA.10B.34C.14D.545.有文法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其值为。CA.10B.21C.14D.246.间接三元式表示法的优点为。AA.采用间接码表,便于优化处理B.节省存储空间,不便于表的修改C.便于优化处理,节省存储空间D.节省存储空间,不便于优化处理7.文法G[S]及其语法制导翻译定义如下:产生式语义动作S’→Sprint(S.num)S→(L)S.num=L.num+1《编译原理》复习题5S→aS.num=0L→L(1),SL.num=L(1).num+S.numL→SL.num=S.num若输入为(a,(a)),且采用自底向上的分析方法,则输出为。CA.0B.1C.2D.48.四元式之间的联系是通过____________实现的。BA.指示器B.临时变量C.符号表D.程序变量9.表达式(┐a∨b)∧(c∨d)的逆波兰表示为。BA.┐ab∨∧cd∨B.a┐b∨cd∨∧C.ab∨┐cd∨∧D.a┐b∨∧cd∨10.表达式a+b+c+d的逆波兰表示为。BA.a+bc+d+B.ab+c+d+C.ab+cd++D.abc+d++11.有文法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其值为。BA.10B.21C.14D.2412.表达式a+b+c的逆波兰表示为。BA.a+bc+B.ab+c+C.+abc+D.abc++13.文法G[S]及其语法制导翻译定义如下:产生式语义动作S’→Sprint(S.num)S→(L)S.num=L.num+1S→aS.num=0L→L(1),SL.num=L(1).num+S.numL→SL.num=S.num若输入为(a,a),且采用自底向上的分析方法,则输出为。BA.0B.1C.2D.414.有一语法制导翻译定义如下:S→bAbprint“1”A→(Bprint“2”A→aprint“3”B→aA)print“4”若输入序列为b(a(a(aa)))b,且采用自底向上的分析方法,则输出序列为。BA.32224441B.34242421C.12424243D.3444221215.赋值语句X:=-(a+b)/(c-d)-(a+b*c)的逆波兰表示是。CA.Xab+cd-/-bc*a+-:=B.Xab+/cd-bc*a+--:=C.Xab+-cd-/abc*+-:=《编译原理》复习题6D.Xab+cd-/abc*+--:=16.有一语法制导翻译定义如下,其中+表示符号连接运算:S→BprintB.versB→aB.vers=aB→bB.vers=bB→BaB.vers=a+B.versB→BbB.vers=b+B.vers若输入序列为abab,且采用自底向上的分析方法,则输出序列为。DA.aabbB.ababC.bbaaD.baba17.编译程序不能检查、处理的错误是程序中的________。BA.静态语义检查B.动态语义检查C.语法错误D.词法错误(优化、存储、错误管理)1.在编译过程中,如果遇到错误应该。CA.把错误理解成局部的错误B.对错误在局部范围内进行纠正,继续向下分析C.当发现错误时,跳过错误所在的语法单位继续分析下去D.当发现错误时立即停止编译,待用户改正错误后再继续编译二、填空题概述部分:1.编译程序的开发常常采用自编译、交叉编译、自展和移植等技术实现。2.解释程序和编译程序的区别在于是否生成目标程序。3.如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分为3个阶段:编译阶段、汇编阶段和运行阶段。4.编译程序工作过程中,第一阶段输入是源程序,最后
本文标题:编译原理复习题-给学生(2014)
链接地址:https://www.777doc.com/doc-2068880 .html