一、单选题(共 30 道试题,共 60 分。)V 1. 在编译程序采用的优化方法中,_____ 是在循环语句范围内进行的。 ①合并已知常量 ②删除多余运算, ③删除归纳变量 ④强度削弱 ⑤代码外提
A. ①④
B. ①⑤
C. ①④⑤
D. ③④⑤
2.设有文法G[S]: S=S*S|S+S|(S)|a 该文法____二义性文法。
A. 是
B. 不是
C. 无法判断
3.正则集合L={an|n≧0}相应的正则表达式是
A. a*
B. a+
C. aa*
D. aa+
4.若一个句型中出现了某一产生式的右部,则此右部____是该句型的句柄。
A. 一定
B. 不一定
C. 视情况而定
5.xab + cde *f/=是赋值语句( ) 相应的后缀式
A. x=a+b+c*de/f
B. x=a+(b+c)*de/f
C. x=a+b+c*(de)/f
D. x=a+b+c+(c*d)e/f
6.下面说法正确的是
A. 一个SLR(1)文法一定也是LALR(1)文法
B. 一个LR(1)文法一定也是LALR(1)文法
7.正规文法____二义性的。
A. 可以是
B. 一定不是
C. 一定是
8.“数组元素的地址计算与数组的存储方式有关”的说法是( )。
A. 错误的
B. 正确的
C. 不能确定
9.下面三个文法中,为SLR(1)文法的是______。 G1:P>PaP|b G2:P>bPb|cPc|b|c G3:P>bPb|bPc|d
A. 仅Gl
B. 仅G2
C. 仅G3
D. G2和G3
E. 都不是
10.PL/0语言的目标程序解释执行时用到的数据对象有( ):
A. 目标代码CODE
B. 符号表TABLE
C. 关键字表WORD
D. 分析表
11.算符文法是指______的文法。 ①没有形如U>…VW…的规则(U,V,W∈VN) ②终结符号集VT中任意两个符号对之间至多有一种优先关系成立 ⑧没有相同的规则右部 ④没有形如U>ε的规则
A. ①
B. ①②
C. ①②③
D. ①②③④
12.巴科斯诺尔范式(即BNF)是一种广泛采用的____的工具
A. 描述规则
B. 描述语言
C. 描述文法
D. 描述句子
13.设r=(a|b|c)(x|y|z)则L(r)中元素为( ) 个
A. 9
B. 6
C. 18
D. 27
14.编译过程中,语法分析器的任务是______ 。 a.分析单词是怎样构成的 b.分析单词串是如何构成语句和说明的 c.分析语句和说明是如何构成程序的 d.分析程序的结构
A. bc
B. d
C. bcd
D. abcd
15.算符优先文法是指______的文法。 ①没有形如U>…VW…的规则(U,V,W∈VN) ②终结符号集VT中任意两个符号对之间至多有一种优先关系成立 ⑧没有相同的规则右部 ④没有形如U>ε的规则
A. ①②
B. ①②③
C. ①②③④
D. ①②④
16.LR(K)分析方法是______。
A. 从左到右分析,每次走K步的一种编译方法
B. 从左到右分析,共经过K步的一种编译方法
C. 从左到右分析,每次向前预测K步的一种编译方法
D. 从左到右分析,每次向貌似句柄的符号串后看K个输入符号的一种编译方法
17.LR(K)文法____。
A. 都是无二义性的
B. 都是二义性的
C. 一部分是二义性的
18.数组的内情向量中肯定不含有数组的——的信息
A. 维数;;;
B. 类型
C. 维上下界
D. 各维的界差
19.编译程序生成的目标程序_______是可执行的程序。
A. 一定
B. 不一定
C. 某种情况下一定
D. 某种情况下不一定
20.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的____。
A. 必要条件
B. 充分必要条件
C. 充分条件
21.合并表达式中常量运算的目的是_____。 ①合并常量,使表达式中的常量尽可能少 ②合并常量,使表达式尽可能简短 ③将可在编译时刻计算的常量运算在编译时刻计算出来,然后用所计算出来的值替换表达式中出现的所有这种常量运算,使得生成的代码指令尽可能少
A. ①
B. ②
C. ③
D. ①②③
22.在状态转换图中,结点代表____,用圆圈表示。
A. 输入缓冲区
B. 向前搜索
C. 状态
D. 字符串
23.在使用高级语言编程时,首先可通过编译程序发现源程序的全部______错误和部分语义错误。
A. 语法
B. 语义
C. 语用
D. 运行
24.属于低级语言的是
A. Fortran
B. Pascal
C. Lisp
D. Masm
25.运算符与运算对象类型不符"属于
A. 语法错误
B. 语义错误
C. 语用错误
D. 规则
26.一个正规语言只能对应
A. 一个正规文法
B. 一个最小有限状态自动机
C. 一个下推自动机
D. 一个确定的有限自动机
27.代码优化的主要目标是( ) ① 如何提高目标程序的运行速度 ② 如何减少目标程序运行所需的空间 ③ 如何协调①和② ④ 如何使生成的目标代码尽可能短
A. ①②
B. ①②③
C. ①②④
D. ①②③④
28.语法分析的常用方法是________ 。 a.自顶向下 b.自底向上 c.自左向右 d.自右向左
A. abcd
B. ab
C. cd
D. abc
29.“算符优先关系表不一定存在对应的优先函数”的说法是( )。
A. 错误的
B. 正确的
C. 不能确定
30.一个LR(1)文法合并同心集后若不是LALR(1)文法:
A. 则可能存在移进/归约冲突
B. 则可能存在归约/归约冲突
C. 则可能存在移进/归约冲突和归约/归约冲突
D. 不存在冲突
华师《编译原理》在线作业
二、多选题(共 10 道试题,共 20 分。)V 1. 在编译程序采用的优化方法中,____是在循环语句范围内进行的。
A. 合并已知常量
B. 删除多余运算
C. 删除归纳变量
D. 强度削弱
E. 代码外提
DE
2.在下述的编译方法中,自底向上的方法有__
A. 简单优先分析
B. 算符优先分析
C. 递归下降分析
D. 预测分析技术
B
3.语法分析的常用方法是________ 。
A. 自顶向下
B. 自底向上
C. 自左向右
D. 自右向左
B
4.素短语是指____的短语。
A. 至少包含一个符号
B. 至少包含一个终结符号
C. 至少包含一个非终结符号
D. 除自身外不再包含其他终结符号
E. 除自身外不再包含其他非终结符号
F. 除自身外不再包含其他短语
G. 除自身外不再包含其他素短语
G
5.在下述的编译方法中,自顶向下的分析方法有 ____。
A. 简单优先分析
B. 算符优先分析
C. 递归下降分析
D. 预测分析技术
D
6.下面的程序段可以进行哪些优化____。 i:= 1 j:= l0 read k L:x:= x*i y:= j*i z:= x*y write j i:= i+1 if i<100 goto L halt
A. 合并已知常量
B. 删除多余运算
C. 删除归纳变量
D. 强度削弱
E. 代码外提
E
7.代码优化的主要目标是____。
A. 如何提高目标程序的运行速度
B. 如何减少目标程序运行所需的空间
C. 如何协调①和②
D. 如何使生成的目标代码尽可能短
BC
8.编译过程中,语法分析器的任务是______ 。
A. 分析单词是怎样构成的
B. 分析单词串是如何构成语句和说明的
C. 分析语句和说明是如何构成程序的
D. 分析程序的结构
CD
9.合并表达式中常量运算的目的是_____。
A. 合并常量,使表达式中的常量尽可能少;
B. 合并常量,使表达式尽可能简短
C. 将可在编译时刻计算的常量运算在编译时刻计算出来,然后用所计算出来的值替换表达式中出现的所有这种常量运算,
D. 使得生成的代码指令尽可能少
BCD
10.算符优先文法是指____的文法。
A. 没有形如U>…VW…的规则(U,V,W∈VN)
B. 终结符号集VT中任意两个符号对之间至多有一种优先关系成立
C. 没有相同的规则右部
D. 没有形如U>ε的规则
BD
华师《编译原理》在线作业
三、判断题(共 10 道试题,共 20 分。)V 1. 2 型语言可由下推自动机识别。
A. 错误
B. 正确
2.lex是一个词法分析器
A. 错误
B. 正确
3.若文法 G 定义的语言是无限集,则文法必然是前后文无关的
A. 错误
B. 正确
4.0 型文法又称为短语结构文法文法;
A. 错误
B. 正确
5.1 型文法又称为前后文无关文法文法;
A. 错误
B. 正确
6.设文法G(S为其开始符号)产生式如下: d S→aSb|ab|ε 则G是一个LR(1)文法。
A. 错误
B. 正确
7.数组元素的地址计算与数组的存储方式有关。
A. 错误
B. 正确
8.编译程序是一种常用的应用软件。
A. 错误
B. 正确
9.数组的内情向量中肯定不含数组的维数信息。
A. 错误
B. 正确
10.对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。
A. 错误
B. 正确