当前位置:文档之家› 奥鹏西安交通大学2020年3月课程考试《编译原理》参考资料答案

奥鹏西安交通大学2020年3月课程考试《编译原理》参考资料答案

西安交通大学课程考试复习资料单选题1.有文法G=({S},{a},{S→SaS,S→ε},S),该文法是( )。

A.LL(1)文法B.二义性文法C.算符优先文法D.SLR(1)文法;答案: B2.正规表达式(ε|a|b)2表示的集合是( )A.{ε,ab,ba,aa,bb}B.{ab,ba,aa,bb}C.{a,b,ab,aa,ba,bb}D.{ε,a,b,aa,bb,ab,ba}答案: D3.以( )作为输出,允许自程序单独编译。

A.绝对机器代码B.可再定位机器语言C.汇编语言程序D.中间语言答案: B4.Fortran语言的编译程序采用( )分配策略。

A.静态B.最佳C.堆式动态D.栈式动态答案: A5.两个不同过程的活动,其生存期是( )。

A.重叠的,不嵌套的B.不重叠的,嵌套的C.重叠的,嵌套的D.不重叠的,不嵌套的答案: B6.表达式作为实在参数可以传递给被调用的过程,替换过程体中的( )。

A.局部变量B.形式参数C.全局变量D.实在参数答案: B7.编译程序使用( )区别标识符的作用域。

A.说明标识符的过程或函数名B.说明标识符的过程或函数的静态层次C.说明标识符的过程或函数的动态层次D.标识符的行号答案: B8.表达式-a+b*(-c+d)的逆波兰式是( )。

A.ab+-cd+-*B.a-b+c-d+*C.a-b+c-d+*D.a-bc-d+*+答案: D9.使用三元式是为了( )。

A.便于代码优化处理B.避免把临时变量填入符号表C.节省存储代码的空间D.提高访问代码的速度答案: B10.为了便于优化处理,三地址代码可以表示成( )。

A.三元式B.四元式C.后缀式D.间接三元式答案: D11.布尔表达式计算时可以采用某种优化措施,比如A and B用if-then-else可解释为( )。

A.if A then true else BB.if A then B else false;C.if A then false else true;D.if A then true else false;答案: B12.对应于产生式A→XY继承属性Y.y的属性计算,可能正确的语义规则是( )。

A.A.a:=f(X.x,Y.y)B.Y.y:=f(A.a,Y.y)C.Y.y:=f(X.x)D.A.a:=f(Y.y);答案: C13.有文法G=({S},{a},{S→SaS,S→ε},S),该文法是( )。

A.LL(1)文法B.二义性文法C.算符优先文法D.SLR(1)文法;答案: B14.算符优先分析法每次都是对( )进行归约:A.句柄B.最左素短语C.素短语D.简单短语答案: B15.LR语法分析栈中存放的状态是识别( )的DFA状态。

A.前缀B.可归前缀C.项目D.句柄;答案: B16.语法分析器接收以( )为单位的输入,并产生有关信息供以后各阶段使用。

A.表达式B.产生式C.单词D.语句;答案: C17.上下文无关文法可以用( )来描述。

A.正则表达式B.正规文法C.扩展的BNFD.翻译模式答案: C18.一个数据类型通常包括三种要素,下面( )不是:A.用于区别这种类型的数据对象的属性B.这种类型的数据对象可以具有的值C.对这种类型的数据对象的内存分配D.可以作用于这种类型的数据对象的操作答案: C19.( )不是编译程序的组成部分。

A.词法分析程序B.代码生成程序C.设备管理程序D.语法分析程序答案: C20.如果一个编译程序能产生不同于其宿主机的机器代码,则称它为( )。

A.诊断编译程序B.优化编译程序C.交叉编译程序D.可变目标编译程序答案: C21.下述方法中,( )不是自下而上分析方法。

A.规范归约B.算符优先分析法C.递归下降分析法D.LR分析法答案: C22.程序所需的数据空间在程序运行前可确定,称为( )管理技术。

A.动态存储B.栈式存储C.静态存储D.堆式存储答案: C23.过程信息表不包含( )。

A.过程入口地址B.过程的静态层次C.过程名D.过程参数信息答案: B24.在一棵语法树中的结点的继承属性和综合属性之间的相互依赖关系可以由()来描述。

A.抽象语法树B.语法规则C.依赖图D.三地址代码答案: C25.给定文法A→bA | ca,为该文法句子的是( )A.bbaB.cabC.bcaD.cba答案: C26.Pascal的if语句满足( )。

A.最远匹配原则B.动态作用域规则C.静态作用域规则D.最近匹配原则答案: D27.在目标代码生成阶段,符号表用于( )。

A.目标代码生成B.语义检查C.语法检查D.地址分配答案: D28.Pascal中过程说明的局部变量地址分配在()。

A.调用者的数据区中B.被调用者的数据区中C.主程序的数据区中D.公共数据区中答案: B29.若一个文法是递归的,则它所产生的语言的句子( )。

A.是无穷多个B.是有穷多个C.是可枚举的D.个数是常量答案: A30.后缀式ab+cd+/可用表达式( )来表示。

A.a+b/c+dB.(a+b)/(c+d)C.a+b/(c+d)D.a+b+c/d答案: B31.一个( )指明了在分析过程中的某时刻所能看到产生式多大一部分。

A.活前缀B.前缀C.项目D.项目集答案: C32.编译程序使用( )区别标识符的作用域。

A.说明标识符的过程或函数名B.说明标识符的过程或函数的静态层次C.说明标识符的过程或函数的动态层次D.标识符的行号答案: B33.文法开始符号的所有()作为属性计算前的初始值。

A.综合属性B.继承属性C.继承属性和综合属性D.都不是答案: B34.文法G产生的( )的全体是该文法描述的语言。

A.句型B.终结符集C.非终结符集D.句子答案: D35.在下述的编译方法中,自底向上的方法有()。

A.简单优先分析B.算符优先分析C.递归下降分析D.预测分析技术E.LR(K)分析F.SLR(k)分析G.LL(k)分析LR(K)分析答案: F36.文法G产生的()的全体是该文法描述的语言。

A.句型B.终结符集C.非终结符集D.句子答案: D37.常见的中间代码形式不包含()A.三元式B.四元式C.逆波兰式D.语法树答案: D38.编译过程中,语法分析器的任务是( )①分析单词的构成②分析单词串如何构成语句③分析语句是如何构成程序④分析程序的结构A.②③B.④C.①②③④D.②③④答案: A39.用高级语言编写的程序经编译后产生的程序叫( )A.源程序B.目标程序C.连接程序D.解释程序答案: B40.语法分析应遵循()。

A.语义规则B.语法规则C.构词规则D.等价变换规则答案: C41.LR(1)文法都是( )A.无二义性且无左递归B.可能有二义性但无左递归C.无二义性但可能是左递归D.可以既有二义性又有左递归答案: C42.由文法的开始符经0步或多步推导产生的文法符号序列是()。

A.短语B.句柄C.句型D.句子答案: C43.数组的内情向量中肯定不含数组的()信息A.维数B.类型C.各维的上下界D.各维的界差答案: B44.以()作为输出,允许自程序单独编译。

A.绝对机器代码B.可再定位机器语言C.汇编语言程序D.中间语言答案: B45.把汇编语言程序翻译成机器可执行的目标程序的工作是由( )完成的。

A.编译器B.汇编器C.解释器D.预处理器答案: B46.设有文法G[S]:S→S1|S0|Sa|Sc|a|b|c,下列符号串中是该文法的句子有( )A.ab0B.a0c01C.a0b0aD.bc10答案: D47.有限状态自动机能识别()。

A.上下文无关文法B.上下文有关文法C.正规文法D.短语文法答案: C48.赋值语句x:=-(a+b)/(c-d)-(a+b*c)的逆波兰式表示是()。

A.xab+cd-/-bc*a+-:=B.xab+/cd-bc*a+--:=C.xab+-cd-/abc*+-:=D.xab+cd-/abc*+--:=答案: C49.四元式表示法的优点为( )。

A.不便于优化处理,但便于表的更动B.不便于优化处理,但节省存储空间C.便于优化处理,也便于表的更动D.便于表的更动,也节省存储空间答案: C50.文法:G:S→xSx | y所识别的语言是( )。

A.xyxB.(xyx)*C.x*yx*D.xnyxn (n≥0)答案: D51.在整个编译期间,对符号表的操作大致都有()。

A.查询给定名字B.填入新名字C.访问给定名字的信息D.更新给定名字的信息答案: B52.( )这样一些语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。

A.存在B.不存在C.无法判定是否存在D.其他都不正确答案: B53.LR(k)文法( )A.都是无二义性的B.都是二义性的C.一部分是二义性的D.无法判定答案: A54.源程序是句子的集合,( )可以较好地反映句子的结构。

A.线性表B.树C.完全图D.堆栈答案: B55.有限自动机( )个接受状态。

A.只能有一个B.只能有两个C.只能有三个D.可以有0个、一个或多个答案: D56.()不可能是目标代码。

A.汇编指令代码B.可重定位指令代码C.绝对指令代码D.中间代码答案: D57.文法E→E+E|E*E|i的句子i*i+i*i有( )棵不同的语法树。

A.1B.3C.5D.7答案: C58.给定文法A→bA|cc,则符号串①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbcc中,是该文法句子的是( )B.③④⑤C.②④D.①⑤答案: D59. 现代多数实用编译程序所产生的目标代码都是一种可重定位的指令代码,在运行前必须借助于一个把各个目标模块,包括系统提供的库模块连接在一起,确定程序变量或常数在主存中的位置,装入内存中制定的起始地址,使之成为一个可运行的绝对指令代码的程序。

A.重定位程序;B.解释程序;C.连接装配程序;D.诊断程序;答案: C60.数组的内情向量中肯定不含有数组的()的信息A.维数B.类型C.维上下界D.各维的界差答案: A61.描述一个语言的文法是()A.唯一的B.不唯一的C.可能唯一,也可能不唯一答案: B62.在编译过程中,符号表的主要作用是()。

A.帮助错误处理B.辅助语法错误的检查C.辅助语义的正确性检查D.辅助代码生成63.以________作为输出,允许自程序单独编译。

A.绝对机器代码;B.可再定位机器语言;C.汇编语言程序;D.中间语言;答案: B64.编译程序是对()。

A.汇编程序的翻译B.高级语言程序的解释执行C.机器语言的执行D.高级语言的翻译答案: D65.一个文法所描述的语言是( )A.唯一的B.不唯一的C.可能唯一D.都不正确答案: A66.采用自上而下分析,必须( )。

相关主题