编译原理(山东联盟-山东财经大学) 2024智慧树满分答案

查搜动馈槽兽颈腹尼弟势皋裸

熄居控澜秘臼确猾纠抄咖群味

第一章 单元测试

1、单选题:
下述描述错误的是( )。
选项:
A:高级语言程序必须经过编译或解释,才能被机器执行
B:高级语言程序很接近自然语言,不能被机器直接识别和执行
C:机器语言程序是由01组成,能被机器直接识别并执行
D:汇编语言程序是由助记符组成,能被机器直接识别并执行
答案: 【汇编语言程序是由助记符组成,能被机器直接识别并执行

2、单选题:
编译程序是一种( )。
选项:
A:翻译程序
B:汇编程序
C:目标程序
D:解释程序
答案: 【翻译程序

3、单选题:
( )不是编译程序的组成部分。
选项:
A:接口管理程序
B:词法分析程序
C:中间代码生成程序
D:语法分析程序
答案: 【接口管理程序

4、单选题:
编译程序中,语法分析器的输入是( )。
选项:
A:短语
B:表达式
C:句子
D:单词
答案: 【单词

5、单选题:
编译过程分成若干“遍”的主要目的是( )。
选项:
A:使程序的结构更为清晰
B:提高程序的执行效率
C:利用有限的机器内存且提高机器的使用效率
D:利用有限的机器内存但降低机器的使用效率
答案: 【使程序的结构更为清晰

6、判断题:
C语言编写的源程序,每次执行都要边解释边执行。
选项:
A:对
B:错
答案: 【

7、判断题:
语法分析的任务是将输入的单词序列转换成各种语法短语。
选项:
A:对
B:错
答案: 【

8、判断题:
编译程序的前端部分是和目标机器无关的分析部分。
选项:
A:对
B:错
答案: 【

9、判断题:
语义分析是在语法分析之后进行。
选项:
A:错
B:对
答案: 【

10、判断题:
编程程序生成的目标程序是机器语言编写的指令。
选项:
A:对
B:错
答案: 【

第二章 单元测试

1、单选题:
符号串abc的前缀有()个。
选项:
A:2
B:1
C:4
D:3
答案: 【4

2、单选题:
符号串x=ab,符号串y=abc,x和y的乘积(或称:连接)得到的符号串是( )。
选项:
A:cabab
B:abc
C:a2b2c
D:ababc
答案: 【ababc

3、单选题:
语法树的构成方法有( )种。
选项:
A:4
B:2
C:3
D:1
答案: 【2

4、单选题:
Chomsky文法分类中,2型文法又称为( )。
选项:
A:一般文法
B:正规文法
C:上下文无关文法
D:上下文有关文法
答案: 【上下文无关文法

5、单选题:
已知文法:G(E):
E→T | E+T
T→F | T*F
F→i
该文法的一个句子i
1+i2*i3中,句柄是( )。

选项:
A:i2*i3
B:i1
C:i3
D:i2
答案: 【i1

6、多选题:
词法分析器的输出包括单词的( )。
选项:
A:种别(也称:类别)
B:自身值
C:地址
D:长度
答案: 【种别(也称:类别);自身值

7、判断题:
空串ε的长度为0.
选项:
A:对
B:错
答案: 【

8、判断题:
bc和cb是两个不同的符号串。
选项:
A:对
B:错
答案: 【

9、判断题:
字母表的克林闭包(kleene)一定包含符号ε
选项:
A:对
B:错
答案: 【

10、判断题:
短语、直接短语、句柄都是句型的成分。
选项:
A:错
B:对
答案: 【

第六章 单元测试

1、单选题:
某属性文法,产生式S→B关联的语义计算包括{ B.f := S.f} ,据此判断.f是( )属性。
选项:
A:综合属性
B:具体属性
C:继承属性
D:遗传属性
答案: 【继承属性

2、单选题:
某属性文法,产生式E→T关联的语义计算包括{ E.val := T.val} ,据此判断.val属性应该在( )语法分析过程中进行语义计算。
选项:
A:自顶向下
B:自底向上
C:从左到右
D:从右到左
答案: 【自底向上

3、判断题:
某属性文法中,为产生式A→Aa关联的语义计算可以是{ A.n→A.n +1} 。
选项:
A:对
B:错
答案: 【

4、判断题:
语法制导的语义计算是指在语义分析的同时,顺便进行语法分析和检查。
选项:
A:对
B:错
答案: 【

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

6、判断题:
终结符号的属性值来自词法分析的结果。
选项:
A:对
B:错
答案: 【

7、判断题:
既有继承属性又有综合属性的文法是L-属性文法。
选项:
A:对
B:错
答案: 【

8、判断题:
基于属性文法的语义计算更适合在语法分析时实现语义计算。
选项:
A:对
B:错
答案: 【

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

10、判断题:
S-属性文法的语义技术是自底向上进行。
选项:
A:对
B:错
答案: 【

第七章 单元测试

1、单选题:
(a+b)/(c-d)对应的逆波兰式(后缀式)是( )。
选项:
A:ab+cd-/
B:abcd+/-
C:ab+cd/-
D:abcd-/+
答案: 【ab+cd-/

2、多选题:
已知产生式 S if B then S1,其语义规则{B.true := newlable; B.false := S.next; S1.next:=S.next; S.code := B.code ‖gen(B.true”:”)‖S1.code},下列描述正确的有( )
选项:
A:newlable表示生成一个新的语句标号
B:此处newlable的值是S1语句块的第一个语句标号
C:S.next是整个语句执行完的下一条语句标号
D:.next是继承属性,所以跳转前需要先确定语句块S的下一条语句标号
答案: 【newlable表示生成一个新的语句标号;此处newlable的值是S1语句块的第一个语句标号;S.next是整个语句执行完的下一条语句标号;.next是继承属性,所以跳转前需要先确定语句块S的下一条语句标号

3、判断题:
后缀式表示法可以不用括号,因为只要知道每个算符的目数,就能对它进行无歧义的分解计算。
选项:
A:对
B:错
答案: 【

4、判断题:
在DAG图中,每个节点对应一个运算符。
选项:
A:对
B:错
答案: 【

5、判断题:
三元式和四元式都属于三地址码。
选项:
A:对
B:错
答案: 【

6、判断题:
静态语义分析的任务最主要是检查程序结构(控制结构和数据结构)的一致性和完整性。
选项:
A:对
B:错
答案: 【

7、判断题:
赋值语句x := x+5 的四元式描述是(:= x 5 x)。
选项:
A:对
B:错
答案: 【

8、判断题:
无条件跳转语句goto L的四元式描述是(goto L – -),其中“-”表示此处不填。
选项:
A:对
B:错
答案: 【

9、判断题:
算术表达式在语义分析时直接转换成三地址码指令,不需要回填。
选项:
A:对
B:错
答案: 【

10、单选题:
表达式(a+b)/c-(a+b)*d对应的三元式形式,(a+b)的运算结果用( )表示。
选项:
A:(a+b)
B:a+b
C:(1)
D:1
答案: 【(1)

第八章 单元测试

1、判断题:
编译的各个阶段都可能要用到符号表。
选项:
A:对
B:错
答案: 【

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

3、判断题:
符号表中符号的常见属性,最关键的是符号名,要求不同符号的符号名尽可能不要相同。
选项:
A:对
B:错
答案: 【

4、判断题:
符号的作用域是通过其在符号表中是否可见体现的。
选项:
A:对
B:错
答案: 【

5、判断题:
符号表可以是单表结构,也可以是多表结构,若采用多表结构,还需要维护一个作用域栈。
选项:
A:对
B:错
答案: 【

6、判断题:
一般来说,符号表中的信息可以视为两大栏:名字栏和信息栏
选项:
A:对
B:错
答案: 【

7、判断题:
符号表可以用来帮助做名字的作用域分析。
选项:
A:对
B:错
答案: 【

8、单选题:
符号表常用的操作不包括( )。
选项:
A:检查名字是否符合标识符命名的文法
B:删除一个或一组无用的项
C:对给定名字,往表中填写或更新它的某些信息
D:查询给定的名字是否已在表中
答案: 【检查名字是否符合标识符命名的文法

9、单选题:
目标代码生成阶段,对符号名进行地址分配的依据是( )。
选项:
A:预测分析表
B:符号栈
C:DFA
D:符号表
答案: 【符号表

10、单选题:
编译程序使用( )区别名字的作用域。
选项:
A:说明名字的过程或函数名
B:说明名字的过程或函数的静态层次号
C:说明名字的过程或函数的动态层次号
D:名字的行号
答案: 【说明名字的过程或函数的静态层次号

第九章 单元测试

1、单选题:
以下关于数据存储的说法错误的是(   )。
选项:
A:

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

B:

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

C:

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

D:

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

答案: 【

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

2、单选题:
关于数据对象存储分配的描述正确的是( )。
选项:
A:数据对象中,常量存放在静态数据区,变量存放在动态数据区
B:编译完成就能确定变量个数和数据大小的存放在静态数据区,只有运行时才能确定数据对象数量和大小的存放在动态数据区
C:C语言中,所有的函数以栈式分配模式存储
D:无论何种编程语言,若要使用堆式存储模式,就必须编写编写函数显式分配和释放存储空间
答案: 【数据对象中,常量存放在静态数据区,变量存放在动态数据区

3、单选题:
关于过程/函数的活动记录描述错误的是( )。
选项:
A:过程/函数的活动记录在过程/函数被调用时创建,运行中访问并/或修改,调用结束撤销
B:过程/函数的活动记录存放着控制类信息、实际参数值、过程/函数声明的变量、临时变量等
C:过程/函数的活动记录中变量的信息,有的是变量的值,有的是变量指代的偏移地址
D:为最大限度提高存储空间的利用率,一个函数在栈区仅保留一份活动记录
答案: 【为最大限度提高存储空间的利用率,一个函数在栈区仅保留一份活动记录

4、单选题:
关于过程/程序块嵌套时,活动记录的相关描述正确的是( )。
选项:
A:过程/程序块的活动记录中,增加一个存储单元,记录作用域层数信息,按照内层变量可以访问外层变量的规则进行访问
B:过程/程序块的活动记录中,可以增加一个区域,专门存放静态链和动态链信息,通过动态链进行访问
C:过程/函数的返回值是由被调用过程/函数产生的运算结果,要存放在被调用过程/函数的活动记录中
D:过程/函数的返回值传递时,通常值传递不可靠,要用地址传递方式
答案: 【过程/程序块的活动记录中,可以增加一个区域,专门存放静态链和动态链信息,通过动态链进行访问

5、单选题:
存储组织中,为某些量动态分配存储空间的含义正确是( )。
选项:
A:在编译阶段为源程序的某些量进行分配存储空间,运行时再进行动态调整
B:在编译阶段为源程序的某些量进行分配存储空间,运行时只能访问不能修改
C:在运行时为源程序的某些量分配存储空间
D:源程序中某些量动态分配存储空间时,可以采取栈式存放,也可以堆式存放。但是二选一,一旦确定后,所有同类型变量都采用统一的存放模式
答案: 【在编译阶段为源程序的某些量进行分配存储空间,运行时再进行动态调整

6、单选题:
对于下面的高级语言程序:

procedure P(X,Y,Z);
begin
  Y:=Y+1;
  Z:=Z+X;
end P;
begin
  A:=2;
  B:=3;
  P(A+B,A,A);
  print A
end
若参数传递的方法为传值,程序执行时所输出的A是(  )

选项:
A:

2

B:

7

C:

8

D:

9

答案: 【

2

7、多选题:
一个目标程序运行所需的存储空间包括( )。
选项:
A:存放目标代码的空间
B:存放数据项目的空间
C:存放程序运行的控制数据所需单元
D:存放程序运行的连接数据所需单元
答案: 【存放目标代码的空间;存放数据项目的空间;存放程序运行的控制数据所需单元;存放程序运行的连接数据所需单元

8、多选题:
对于下面的嵌套过程语言的程序,按照最近嵌套原则进行作用域分
析,下面说法正确的是( )
program P
var a,b: integer;
procedure P1(i1,j1:integer);
var c,d: integer;

end;
procedure P2(i2,j2:integer);
var a,c: integer;
procedure P21;
var b1,b2:boolean;

end;

end;

end;

选项:
A:子程序P1可以调用子程序P21
B:子程序P2可以访问子程序P1中的变量 c
C:子程序P21可以调用子程序P1
D:子程序P21可以访问子程序P2中的形式参数i2
答案: 【子程序P21可以调用子程序P1;子程序P21可以访问子程序P2中的形式参数i2

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

10、判断题:
一个程序设计语言只能提供一种参数传递机制。
选项:
A:对
B:错
答案: 【

第十章 单元测试

1、单选题:
属于基本块的优化措施是( )。
选项:
A:删除冗余或无用代码,代码外提
B:强度削弱,循环合并
C:代码外提,删除归纳变量
D:删除多余运算,常量合并和传播
答案: 【删除多余运算,常量合并和传播

2、单选题:
关于程序流图的描述错误的是( )。
选项:
A:流图是编译器内部维护的一个抽象数据结构
B:流图的每一个节点是一个基本块
C:流图反映了程序执行过程的遍历路径
D:无法通过流图进行基本块优化
答案: 【无法通过流图进行基本块优化

3、单选题:
关于循环的描述正确是( )。
选项:
A:循环优化是针对循环体中语句的优化,包括与循环有关的和与循环无关的优化
B:代码外提是将循环体中所有循环的不变量移到循环体前面
C:归纳变量删除是将循环体出现的归纳变量直接删除
D:对大多数应用程序而言,绝大多数运行时间都在循环部分,所以代码优化主要是针对循环体的优化
答案: 【循环优化是针对循环体中语句的优化,包括与循环有关的和与循环无关的优化

4、单选题:
关于代码优化描述错误的是( )。
选项:
A:从中间代码到目标代码要进行多次变换,每次变换都是一次优化过程
B:优化的目标是生成运行速度更快、占用存储空间更小的目标代码,但往往二者很难同时达到最优
C:代码的优化和目标机有关,因此,针对不同目标机要进行不同的优化操作
D:优化的过程是不断追求最优的过程,但往往是“没有最优,只有更优”
答案: 【代码的优化和目标机有关,因此,针对不同目标机要进行不同的优化操作

5、单选题:
关于基本块的描述正确的是( )。
选项:
A:只有一个入口语句和一个出口语句
B:只有一个入口语句,但可以有多个出口语句
C:只有一个出口语句,但可以有多个入口语句
D:入口语句和出口语句不能是同一个,否则无法区分到底是入口语句还是出口语句
答案: 【只有一个入口语句,但可以有多个出口语句

6、单选题:
有关基本归纳变量的作用,错误的是
选项:
A:自身定值
B:记录循环的结果
C:计算其它同族归纳变量
D:控制循环
答案: 【记录循环的结果

7、单选题:
利用DAG进行局部优化,不能实现
选项:
A:删除公共子表达式
B:合并已知量
C:删除无用赋值
D:代码外提
答案: 【代码外提

8、单选题:
对于基本快内Out集合由In集合计算出来,而对于基本块之间,In集合由前驱基本块的Out集合计算出来。这样的数据流问题属于
选项:
A:任意路径问题
B:向前流问题
C:全路径问题
D:向后流问题
答案: 【向前流问题

9、判断题:
强度削弱是指把程序中执行时间较长的运算替换为执行时间较短的运算
选项:
A:对
B:错
答案: 【

10、判断题:
DAG是有向无环图,利用DAG可实现局部优化
选项:
A:对
B:错
答案: 【

第十一章 单元测试

1、判断题:
代码生成时,对于寄存器中最新的计算结果一定要马上送回主存单
选项:
A:对
B:错
答案: 【

2、单选题:
下列说法正确的是
选项:
A:指令的代价是目标地址模式的附加代价加1
B:指令的代价是源地址模式的附加代价和目标地址模式的附加代价之和
C:指令的代价是源地址模式的附加代价加1
D:指令的代价是源地址模式的附加代价和目标地址模式的附加代价之和再加1
答案: 【指令的代价是源地址模式的附加代价和目标地址模式的附加代价之和再加1

3、单选题:
寄存器地址模式的附加代价为( )
选项:
A:

3

B:

2

C:

0

D:

1

答案: 【

0

4、单选题:
假设H是基本块出口的活跃变量, R0和R1是可用寄存器,对下列
四元式组成基本块:
A:=B*C
D:=E+F
G:=A+D
H:=G*2
生成目标代码如下:
LD R0, B
MUL R0, C
LD R1, E
ADD R1, F
ADD R0, R1
MUL R0, 2
( )
其中括号里的代码为

选项:
A:LD R0, H
B:LD R1, H
C:ST R0, H
D:ST R1, H
答案: 【ST R0, H

5、单选题:
按照课件中的虚拟机及其指令系统,当只有一个寄存器R时,设中间代码(/ a 2 t1)为某个基本块的第一条代码,该中间代码对应的目标代码为
选项:
A:DIV R,2
B:LD R,a
DIV a,2

C:LD R,a
DIV R,2

D:DIV a,2
答案: 【LD R,a
DIV R,2

6、判断题:
目标代码生成时,为了提高效率,应考虑如何充分利用计算机的寄存器的问题
选项:
A:对
B:错
答案: 【

7、判断题:
目标代码生成中,变量的活跃信息是必须要考虑的,否则无法生成正确的目标代码
选项:
A:对
B:错
答案: 【

8、单选题:
经编译得到的目标程序是
选项:
A:三元式序列
B:四元式序列
C:机器语言程序或汇编语言程序
D:二元式序列
答案: 【机器语言程序或汇编语言程序

9、单选题:
( )不可能是目标代码
选项:
A:绝对指令代码
B:中间代码
C:汇编代码
D:可重定位指令代码
答案: 【中间代码

10、单选题:
以下说法不正确的是
选项:
A:源程序和目标程序是等价关系
B:目标代码生成时,需要考虑目标计算机的指令系统
C:窥孔优化是在中间代码层次上进行的优化工作
D:源程序到目标程序的变换是等价变换,即两者结构不同,但语义是一致的
答案: 【窥孔优化是在中间代码层次上进行的优化工作


完整版答案需支付5元购买,完整答案是全部章节的课后答案。制作这些答案花费了很多心血,希望大家理解,如需购买请点击下方红字:

点击这里,购买完整版答案

注意:完整答案是全部的课后答案,无期末答案!


萌面人优惠券

一键领取淘宝,天猫,京东,拼多多无门槛优惠券,购物省省省!

如需了解详情请点击下方红字:

点击这里,查看淘宝天猫优惠券


萌面人优惠券APP下载

支持安卓,苹果,PC电脑等设备,可查看各种大学网课答案,可一键领取淘宝,天猫,京东,拼多多无门槛优惠券

详情请点击下方红字:

点击这里,查看app详情


更多信息:如何找到本平台?

方法一:

点击下方红字,访问萌面人资料铺

点击这里,访问萌面人资料铺

方法二:

搜狗搜索:萌面人资料铺 认准域名:www.xuexianswer.com 或者域名:xuexianswer.com 点击进入

编译原理(山东联盟-山东财经大学) 2024智慧树满分答案第1张

方法三:

打开手机微信,扫一扫下方二维码,关注微信公众号:萌面人APP

本公众号可查看各种网课答案,还可免费查看大学教材答案

点击这里,可查看公众号功能介绍

编译原理(山东联盟-山东财经大学) 2024智慧树满分答案第2张编译原理(山东联盟-山东财经大学) 2024智慧树满分答案第3张


为了下次更快打开本网站,建议在浏览器添加书签收藏本网页。

添加书签方法:

1.电脑按键盘的Ctrl键+D键即可收藏本网页

2.手机浏览器可以添加书签收藏本网页


 

篇氓碧嫁虑嗅泄聘怪事览钨堑

丢岔鹿板跨浚谢胯蔬肝浆痪宋

搜索
登录
订单
帮助