编译原理(山东联盟-山东财经大学)智慧树知到答案章节测试2023年_第1页
编译原理(山东联盟-山东财经大学)智慧树知到答案章节测试2023年_第2页
编译原理(山东联盟-山东财经大学)智慧树知到答案章节测试2023年_第3页
编译原理(山东联盟-山东财经大学)智慧树知到答案章节测试2023年_第4页
编译原理(山东联盟-山东财经大学)智慧树知到答案章节测试2023年_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章测试下述描述错误的是()。

A:机器语言程序是由0或1组成,能被机器直接识别并执行

B:汇编语言程序是由助记符组成,能被机器直接识别并执行

C:高级语言程序很接近自然语言,不能被机器直接识别和执行

D:高级语言程序必须经过编译或解释,才能被机器执行

答案:B编译程序是一种()。

A:翻译程序

B:汇编程序

C:目标程序

D:解释程序

答案:A()不是编译程序的组成部分。

A:中间代码生成程序

B:词法分析程序

C:语法分析程序

D:接口管理程序

答案:D编译程序中,语法分析器的输入是()。

A:表达式

B:句子

C:单词

D:短语

答案:C编译过程分成若干“遍”的主要目的是()。

A:利用有限的机器内存且提高机器的使用效率

B:使程序的结构更为清晰

C:提高程序的执行效率

D:利用有限的机器内存但降低机器的使用效率

答案:BC语言编写的源程序,每次执行都要边解释边执行。

A:错

B:对

答案:A语法分析的任务是将输入的单词序列转换成各种语法短语。

A:错

B:对

答案:B编译程序的前端部分是和目标机器无关的分析部分。

A:对

B:错

答案:A语义分析是在语法分析之后进行。

A:错

B:对

答案:B编程程序生成的目标程序是机器语言编写的指令。

A:错

B:对

答案:A第二章测试符号串abc的前缀有()个。

A:2

B:3

C:4

D:1

答案:C符号串x=ab,符号串y=abc,x和y的乘积(或称:连接)得到的符号串是()。

A:abc

B:ababc

C:cabab

D:a2b2c

答案:B语法树的构成方法有()种。

A:1

B:3

C:4

D:2

答案:DChomsky文法分类中,2型文法又称为()。

A:上下文有关文法

B:一般文法

C:正规文法

D:上下文无关文法

答案:D已知文法:G(E):E→T|E+TT→F|TFF→i该文法的一个句子i1+i2i3中,句柄是()。

A:i2*i3

B:i2

C:i3

D:i1

答案:D词法分析器的输出包括单词的()。

A:长度

B:自身值

C:种别(也称:类别)

D:地址

答案:BC空串ε的长度为0.

A:对

B:错

答案:Abc和cb是两个不同的符号串。

A:错

B:对

答案:B字母表的克林闭包(kleene)一定包含符号ε。

A:对

B:错

答案:A短语、直接短语、句柄都是句型的成分。

A:对

B:错

答案:A第三章测试请根据下述DFA的状态图,完成DFA最小化的操作。若将图中从0到5共6个状态划分为三个状态子集,{0},{1,2,4}和{3,5},

答案:已知不确定的有穷自动机NFA的状态图如下图所示:请完成下述状态转换表,图中带圈的数字表示状态的编号。

答案:1、已知不确定的有穷自动机NFA=({X,Y,Z},{0,1},f,{X},{Z}),其中映射关系f:f(X,0)={Z}

f(X,1)={X}

f(Y,0)={X,Y}

f(Z,0)={X,Z}

f(Z,1)={Y},请补全下列状态转换表。

答案:第四章测试已知文法G(E)如下:E→TE’

E’→+E|ε

T→FT’

T’→T|ε

F→PF’F’→*F’|ε

P→(E)|a|b|^完成下列判定该文法是否是LL(1)文法的工作。

答案:第五章测试已知拓展文法G(S)的产生式如下:S¢®EE®aA|bBA®cA|dB®cB|d实现由项目集的方法构造LR(0)分析表,完成下列题目。

答案:第六章测试某属性文法,产生式S→B关联的语义计算包括{B.f:=S.f},据此判断.f是()属性。

A:继承属性

B:遗传属性

C:具体属性

D:综合属性

答案:A某属性文法,产生式E→T关联的语义计算包括{E.val:=T.val},据此判断.val属性应该在()语法分析过程中进行语义计算。

A:从左到右

B:自顶向下

C:自底向上

D:从右到左

答案:C某属性文法,产生式B→Bb关联的语义计算是B→{B1.in_num:=B.in_num}B1b{B.num:=B1.num-1},在自顶向下语法分析时,对于应该先计算的属性描述正确的是()。

A:综合属性.in_num

B:继承属性.num

C:综合属性.num

D:继承属性.in_num

答案:D某属性文法中,为产生式A→Aa关联的语义计算可以是{A.n→A.n+1}。

A:对

B:错

答案:BS-属性文法的语义技术是自底向上进行。

A:错

B:对

答案:B语法制导的语义计算是指在语义分析的同时,顺便进行语法分析和检查。

A:对

B:错

答案:B原来的文法G(S)的基础上,为其文法符号关联具有特定意义的属性,并为产生式关联语义计算或条件谓词,就构成属性文法。

A:错

B:对

答案:B终结符号的属性值来自词法分析的结果。

A:错

B:对

答案:B既有继承属性又有综合属性的文法是L-属性文法。

A:对

B:错

答案:A基于属性文法的语义计算更适合在语法分析时实现语义计算。

A:对

B:错

答案:B第七章测试(a+b)/(c-d)对应的逆波兰式(后缀式)是()。

A:ab+cd-/

B:abcd+/-

C:abcd-/+

D:ab+cd/-

答案:A表达式(a+b)/c-(a+b)*d对应的三元式形式,(a+b)的运算结果用()表示。

A:(a+b)

B:(1)

C:a+b

D:1

答案:B已知产生式S→ifBthenS1,其语义规则{B.true:=newlable;B.false:=S.next;S1.next:=S.next;S.code:=B.code‖gen(B.true’:’)‖S1.code},下列描述正确的有()

A:此处newlable的值是S1语句块的第一个语句标号

B:S.next是整个语句执行完的下一条语句标号

C:newlable表示生成一个新的语句标号

D:.next是继承属性,所以跳转前需要先确定语句块S的下一条语句标号

答案:ABCD后缀式表示法可以不用括号,因为只要知道每个算符的目数,就能对它进行无歧义的分解计算。

A:错

B:对

答案:B在DAG图中,每个节点对应一个运算符。

A:错

B:对

答案:B三元式和四元式都属于三地址码。

A:对

B:错

答案:A静态语义分析的任务最主要是检查程序结构(控制结构和数据结构)的一致性和完整性。

A:对

B:错

答案:A赋值语句x:=x+5的四元式描述是(:=x5x)。

A:对

B:错

答案:B无条件跳转语句gotoL的四元式描述是(gotoL--),其中“-”表示此处不填。

A:错

B:对

答案:B算术表达式在语义分析时直接转换成三地址码指令,不需要回填。

A:对

B:错

答案:A第八章测试编译的各个阶段都可能要用到符号表。

A:对

B:错

答案:A对一般的程序设计而言,其编译程序的符号表应包含哪些内容及何时填入信息不能一概而论。

A:对

B:错

答案:A符号表中符号的常见属性,最关键的是符号名,要求不同符号的符号名尽可能不要相同。

A:对

B:错

答案:A符号的作用域是通过其在符号表中是否可见体现的。

A:对

B:错

答案:B符号表可以是单表结构,也可以是多表结构,若采用多表结构,还需要维护一个作用域栈。

A:错

B:对

答案:B一般来说,符号表中的信息可以视为两大栏:名字栏和信息栏

A:对

B:错

答案:A符号表可以用来帮助做名字的作用域分析。

A:对

B:错

答案:A符号表常用的操作不包括()。

A:检查名字是否符合标识符命名的文法

B:删除一个或一组无用的项

C:对给定名字,往表中填写或更新它的某些信息

D:查询给定的名字是否已在表中

答案:A目标代码生成阶段,对符号名进行地址分配的依据是()。

A:符号表

B:DFA

C:预测分析表

D:符号栈

答案:A编译程序使用()区别名字的作用域。

A:说明名字的过程或函数名

B:说明名字的过程或函数的静态层次号

C:说明名字的过程或函数的动态层次号

D:名字的行号

答案:B第九章测试以下关于数据存储的说法错误的是(

)。

A:目标程序在目标机中运行时,都置身在一个连续的逻辑地址空间

B:在静态数据区,数据对象并不是一个字节一个字节连续存放,存放时需要“留白”处理,目的是为了“边界对齐”

C:目标程序代码通常存放在静态代码区,过程/函数存放在动态数据区的栈区

D:程序运行时,存储空间需要为机器的操作系统和体系结构等代码预留一部分存储空间

答案:A关于数据对象存储分配的描述正确的是()。

A:C语言中,所有的函数以栈式分配模式存储

B:数据对象中,常量存放在静态数据区,变量存放在动态数据区

C:编译完成就能确定变量个数和数据大小的存放在静态数据区,只有运行时才能确定数据对象数量和大小的存放在动态数据区

D:无论何种编程语言,若要使用堆式存储模式,就必须编写编写函数显式分配和释放存储空间

答案:B关于过程/函数的活动记录描述错误的是()。

A:过程/函数的活动记录在过程/函数被调用时创建,运行中访问并/或修改,调用结束撤销

B:为最大限度提高存储空间的利用率,一个函数在栈区仅保留一份活动记录

C:过程/函数的活动记录存放着控制类信息、实际参数值、过程/函数声明的变量、临时变量等

D:过程/函数的活动记录中变量的信息,有的是变量的值,有的是变量指代的偏移地址

答案:B关于过程/程序块嵌套时,活动记录的相关描述正确的是()。

A:过程/程序块的活动记录中,可以增加一个区域,专门存放静态链和动态链信息,通过动态链进行访问

B:过程/函数的返回值是由被调用过程/函数产生的运算结果,要存放在被调用过程/函数的活动记录中

C:过程/函数的返回值传递时,通常值传递不可靠,要用地址传递方式

D:过程/程序块的活动记录中,增加一个存储单元,记录作用域层数信息,按照内层变量可以访问外层变量的规则进行访问

答案:A存储组织中,为某些量动态分配存储空间的含义正确是()。

A:在编译阶段为源程序的某些量进行分配存储空间,运行时只能访问不能修改

B:源程序中某些量动态分配存储空间时,可以采取栈式存放,也可以堆式存放。但是二选一,一旦确定后,所有同类型变量都采用统一的存放模式

C:在运行时为源程序的某些量分配存储空间

D:在编译阶段为源程序的某些量进行分配存储空间,运行时再进行动态调整

答案:D对于下面的高级语言程序:…procedureP(X,Y,Z);begin

Y:=Y+1;

Z:=Z+X;endP;begin

A:=2;

B:=3;

P(A+B,A,A);

printAend若参数传递的方法为传值,程序执行时所输出的A是(

)

A:2

B:9

C:7

D:8

答案:A一个目标程序运行所需的存储空间包括()。

A:存放程序运行的连接数据所需单元

B:存放目标代码的空间

C:存放数据项目的空间

D:存放程序运行的控制数据所需单元

答案:ABCD对于下面的嵌套过程语言的程序,按照最近嵌套原则进行作用域分析,下面说法正确的是()programPvara,b:integer;procedureP1(i1,j1:integer);varc,d:integer;…end;procedureP2(i2,j2:integer);vara,c:integer;procedureP21;varb1,b2:boolean;…end;…end;…end;

A:子程序P21可以访问子程序P2中的形式参数i2

B:子程序P21可以调用子程序P1

C:子程序P2可以访问子程序P1中的变量c

D:子程序P1可以调用子程序P21

答案:AB对于在编译时不能确定程序运行时数据空间的大小、允许递归调用的程序设计语言,一般采取静态存储分配策略。

A:对

B:错

答案:B一个程序设计语言只能提供一种参数传递机制。

A:错

B:对

答案:A第十章测试属于基本块的优化措施是()。

A:删除多余运算,常量合并和传播

B:代码外提,删除归纳变量

C:强度削弱,循环合并

D:删除冗余或无用代码,代码外提

答案:A关于程序流图的描述错误的是()。

A:流图反映了程序执行过程的遍历路径

B:无法通过流图进行基本块优化

C:流图是编译器内部维护的一个抽象数据结构

D:流图的每一个节点是一个基本块

答案:B关于循环的描述正确是()。

A:对大多数应用程序而言,绝大多数运行时间都在循环部分,所以代码优化主要是针对循环体的优化

B:归纳变量删除是将循环体出现的归纳变量直接删除

C:代码外提是将循环体中所有循环的不变量移到循环体前面

D:循环优化是针对循环体中语句的优化,包括与循环有关的和与循环无关的优化

答案:D关于代码优化描述错误的是()。

A:优化的目标是生成运行速度更快、占用存储空间更小的目标代码,但往往二者很难同时达到最优

B:从中间代码到目标代码要进行多次变换,每次变换都是一次优化过程

C:代码的优化和目标机有关,因此,针对不同目标机要进行不同的优化操作

D:优化的过程是不断追求最优的过程,但往往是“没有最优,只有更优”

答案:C关于基本块的描述正确的是()。

A:只有一个入口语句,但可以有多个出口语句

B:只有一个出口语句,但可以有多个入口语句

C:入口语句和出口语句不能是同一个,否则无法区分到底是入口语句还是出口语句

D:只有一个入口语句和一个出口语句

答案:A有关基本归纳变量的作用,错误的是

A:控制循环

B:自身定值

C:记录循环的结果

D:计算其它同族归纳变量

答案:C利用DAG进行局部优化,不能实现

A:删除无用赋值

B:代码外提

C:删除公共子表达式

D:合并已知量

答案:B对于基本快内Out集合由In集合计算出来,而对于基本块之间,In集合由前驱基本块的Out集合计算出来。这样的数据流问题属于

A:任意路径问题

B:向前流问题

C:向后流问题

D:全路径问题

答案:B强度削弱是指把程序中执行时间较长的运算替换为执行时间较短的运算

A:对

B:错

答案:ADAG是有向无环图,利用DAG可实现局部优化

A:对

B:错

答案:A第十一章测试代码生成时,对于寄存器中最新的计算结果一定要马上送回主存单

A:错

B:对

答案:A下列说法正确的是

A:指令的代价是源地址模式的附加代价和目标地址模式的附加代价之和再加1

B:指令的代价是源地址模式的附加代价加1

C:指令的代价是目标地址模式的附加代价加1

D:指令的代价是源地址模式的附加代价和目标

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论