编译原理考试题及答案汇总一、选择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+dB.(a+b)/(c+d)C.a+b/(c+d)D.a+b+c/d6.一个编译程序中,不仅包含词法分析,_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____。A.()模拟执行器B.()解释器C.()表格处理和出错处理D.()符号执行器17.文法G[N]=({b},{N,B},N,{N→b│bB,B→bN}),该文法所描述的语言是CA.()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+TT→F∣T﹡FF→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.()句型C.()单词D.()产生式34.文法分为四种类型,即0型、1型、2型、3型。其中2型文法是___D__。A.()短语文法B.()正则文法C.()上下文有关文法D.()上下文无关文法35.一个上下文无关文法G包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组__D___。A.()句子B.()句型C.()单词D.()产生式36.__A___是一种典型的解释型语言。A.()BASICB.()CC.()FORTRAND.()PASCAL37.与编译系统相比,解释系统___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.()xyxB.()(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.()说明标识符的过程或函数的静态层次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.削减运算强度破坏了临时变量在一基本块内仅被定义一次的特性。(√)17.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度。(×)18.数组元素的地址计算与数组的存储方式有关。(×)19