# 编译原理选择题练习

  1. 编译程序是一种常用的软件 。

    • 应用
    • 系统
    • 支撑
    • 自动化
  2. 编译程序分成若干个 “遍” 是为了

    • 提高程序的执行效率
    • 使程序的结构更加清晰
    • 利用有限的机器内存并提高机器的执行效率
    • 利用有限的机器内存但降低了机器的执行效率
  3. 对于使用的函数没有定义的错误信息,是编译的阶段报告的。

    • 词法分析
    • 语法分析
    • 语义分析
    • 代码生成
  4. 和代码优化部分不是每个编译程序都必需的。

    • 语法分析
    • 中间代码生成
    • 词法分析
    • 目标代码生成
  5. 词法分析器用于识别

    • 字符串
    • 语句
    • 单词
    • 标识符
  6. 语法分析器则可以发现源程序中的

    • 语义错误
    • 语法和语义错误
    • 错误并校正
    • 语法错误
  7. 编译程序绝大多数时间花费在上。

    • 出错处理
    • 词法分析
    • 目标代码生成
    • 表格管理
  8. 不可能是目标代码的是

    • 汇编指令代码
    • 可重定位指令代码
    • 绝对指令代码
    • 中间代码
  9. 描述一个语言的文法是

    • 唯一的
    • 不唯一的
    • 可能唯一,也可能不唯一
  10. 若文法 G 定义的语言是无限集,则文法必然是

    • 前后文无关文法
    • 正规文法
    • 二义性文法
    • 递归文法
  11. 给定文法 G [A]:A→bA∣cc 试问在下面的符号串中,为文法句子的是

    • cc
    • bcbc
    • bcbcc
    • bccbcc
  12. 由文法的开始符经 0 步或多步推导产生的文法符号序列是

    • 短语
    • 句柄
    • 句型
    • 句子
  13. 文法 G 产生的的全体是该文法描述的语言。

    • 句型
    • 终结符集
    • 非终结符集
    • 句子
  14. 一个文法所描述的语言是

    • 唯一的
    • 不唯一的
    • 可能唯一,好可能不唯一
  15. 设有以下方法

    GN: N→N’
        N’ → D | N’D
        D →  0|1|2……|9
    

    下列哪个句型中有最右推导

    • 2D
    • D6D
    • N‘88
    • DND
  16. 设有文法

    G[S]:S→ABS|Aa|b
    A→a
    B→b|SBB|ε
    

    该文法的一个句子:abbaa 对应的语法树如图,试问根据该语法树,求得该句子的短语有个。

    • 8 个
    • 6 个
    • 7 个
    • 9 个
  17. 设有文法 G [I]: I→I0 | I1 | I a | Ic | a | b | c 下列符号串中是该文法的句子的有

    ①ab0
    ②a0c01
    ③aaa
    ④bc10
    

    可选项有:.

    • ②③④
    • ③④
    • ①②③④
  18. 文法 G:S→xSx|y 所识别的语言是

    • xyx
    • (xyx)*
    • xnyxn (n>=0)
    • x*y+
  19. 文法 G [N]=({b}, {N, B}, N, {N→b│bB, B→bN}), 该文法所描述的语言是

    • L(G[N])={b^(i)│i≥0}
    • L(G[N])={b^(2i)│i≥0}
    • L(G[N])={b^(2i+1)│i≥0}
    • L(G[N])={b^(2i+1)│i≥1}
  20. 设文法为:S→SA|A A→a|b 则对句子 aba, 下面 是规范推导。

    • S->SA->SAA->AAA->aAA->abA->aba
    • S->SA->SAA->AAA->AAa->Aba->aba
    • S->SA->SAA->SAa->Sba->Aba->aba
    • S->SA->Sa->SAa->Sba->Aba->aba
  21. 如果文法 G 是无二义性的,则它的任何句子

    • 最左推导和最右推导对应的语法树必定相同
    • 最左推导和最右推导对应的语法树可能不同
    • 最左推导和最右推导必定相同
    • 可能存在两个不同的最左推导,但它们对应的语法树相同
  22. 在编译中产生语法树是为了

    • 语法分析
    • 语义分析
    • 词法分析
    • 产生目标代码
  23. 一个句型中的最左称为该句型的句柄。

    • 短语
    • 简单短语
    • 素短语
    • 终结符号
  24. 文法 G 所描述的语言是的集合。

    • 文法 G 的字母表 V 中所有符号组成的符号串
    • 文法 G 的字母表 V 的闭包 V * 中的所有符号串
    • 由文法的开始符号推出的所有终极符串
    • 由文法的开始符号推出的所有符号串
  25. 设 G 是一个给定的文法,S 是文法的开始符号,如果 S->x (其中 x∈V*), 则称 x 是文法 G 的一个

    • 候选式
    • 句型
    • 单词
    • 产生式
  26. 文法

    G[E]:   E->T | E+T
            T->F | T*F
            F->a | (E)
    该文法句型 E + F ﹡(E + T) 的简单短语
    ①(E + T)
    ② E + T
    ③ F
    ④ F﹡(E + T)
    

    是下列符号串中的

    • ① 和 ③
    • ② 和 ③
    • ③ 和 ④
  27. 若一个文法是递归的,则它所产生的语言的句子

    • 是无穷多个
    • 是有穷多个
    • 是可枚举的
    • 个数是常量
  28. 如果 L (M1)=L (M2), 则 M1 与 M2

    • 等价
    • 都是二义的
    • 都是无二义的
    • 它们的状态数相等
  29. 文法 G: E→E+T|T T→T*P|P P→(E)|i 则句型 P+T+i 的句柄为

    • P+T
    • P
    • P+T+i
    • i
  30. 文法 G:S→S+T|T1 T→T*P|P P→(S)|i 句型 P+T+i 的短语有

    • i,P+T
    • P,P+T,i,P+T+i
    • P+T+i
    • P, P+T, i
  31. 正则式的 “*” 读作

    • 并且
    • 或者
    • 连接
    • 闭包
  32. LL (1) 文法的条件是

    • 对形如 U→X1︱X2︱…︱Xn 的产生式,要求 SELECT(U→Xi)∩SELECT(U→Xj)=, (i≠j)
    • 对形如 U→X1︱X2︱…︱Xn 的产生式,若 Xiε, 要求 FIRST(Xi)∩FOLLOW(U)=
    • A 和 B
    • 都不是
  33. 在语法分析处理中,FIRST 集合、 FOLLOW 集合、 SELECT 集合均是

    • 非终极符集
    • 终极符集
    • 字母表
    • 状态集
  34. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于 分析方法。

    • 自左至右
    • 自顶向下
    • 自底向上
    • 自右向左
  35. 采用自上而下分析,必须

    • 消除左递归
    • 消除右递归
    • 消除回溯
    • 提取公共左因子
  36. 词法分析所依据的是

    • 语义规则
    • 构词规则
    • 语法规则
    • 等价变换规则
  37. 词法分析器的输出结果是

    • 单词的种别编码
    • 单词在符号表中的位置
    • 单词的种别编码和自身的值
    • 单词自身值
  38. 正规式 M1 和 M2 等价是指_。

    • M1 和 M2 状态数相等
    • M1 和 M2 的有向弧条数相等
    • M1 和 M2 所识别的语言集合相等
    • M1 和 M2 状态数和有向弧条数相等
  39. 在状态转换图中,结点代表 用圆圈表示。

    • 输入缓冲区
    • 向前搜索
    • 状态
    • 字符串
  40. 词法分析器的输入是

    • 单词符号串
    • 源程序
    • 语法单位
    • 目标程序
  41. 有限状态自动机能识别

    • 上下文无关文法
    • 上下文有关文法
    • 正规文法
    • 短语文法
  42. 在自底向上的语法分析方法中,分析的关键是

    • 寻找句柄
    • 寻找句型
    • 消除递归
    • 选择候选式
  43. 算符优先分析每次归约的是

    • 最左直接短语
    • 直接短语
    • 最左素短语
    • 控制结点
  44. 文法 G:S→b|∧|(T) T→T∨S|S 则 FIRSTVT (T)=

    • { b, ∧, ( }
    • { b, ∧, ) }
    • { b, ∧, (, ∨ }
    • { b, ∧, ), ∨ }
  45. 有文法 G:E→E*T | T T→T+I | i 句子 1+2*8+6 按该文法 G 归约,其值为

    • 23
    • 42
    • 30
    • 17
  46. 如果文法是无二义的,那么规范归约是指

    • 最左推导的逆过程
    • 最右推导的逆过程
    • 规范推导
    • 最左归约的逆过程
  47. 在 LR 分析法中,分析栈中存放的状态是识别规范句型 的 DFA 状态。

    • 句柄
    • 前缀
    • 活前缀
    • LR (0) 项目
  48. 若项目集 Ik 含有 A->r.[n] 和 B->α.a [m] 项目,则在状态 Ik 时,仅当面临的输入符号 a∈FOLLOW (A) 时,才采取 “A->α.[n]” 动作的一定是

    • LALR 文法
    • LR (0) 文法
    • LR (1) 文法
    • SLR (1) 文法
  49. 在 LR (0) 的 ACTION 子表中,如果某一行中存在标记为 “rj” 的栏,则____。

    • 该行必定填满 rj
    • 该行未填满 rj
    • 其他行也有 rj
    • goto 子表中也有 rj
  50. 若状态 Ik 含有项目 “A→α.[n]”, 且仅当输入符号 a∈FOLLOW (A) 时,才用规则 “A →α[n]” 归约的语法分析方法是__。

    • LALR 分析法
    • LR (0) 分析法
    • LR (1) 分析法
    • SLR (1) 分析法
  51. 使用可以定义一个程序的意义。

    • 语义规则
    • 词法规则
    • 产生规则
    • 左结合规则
  52. 终结符具有__属性。

    • 传递
    • 继承
    • 抽象
    • 综合
  53. 有文法 G 及其语法制导翻译如下所示:则分析句子 1∧2∧3#4 其值为

    • 10
    • 34
    • 14
    • 54
  54. 数组 A[1..20,1..10] 的首地址偏移量为 0, 按行存储,每个元素占一个字节,存储器按字编址,则 A[i,j] 的偏移地址为__。

    • (i-1)×10+(j-1)
    • (i-1)×20+(j-1)
    • (i-1)+ (j-1)×10
    • (i-1)+ (j-1)×20
  55. 中间代码生成时所依据的是

    • 语法规则
    • 词法规则
    • 语义规则
    • 等价变换规则
  56. 四元式之间的联系是通过__实现的。

    • 指示器
    • 临时变量
    • 符号表
    • 程序变量
  57. 下面_不能作为一个基本块的入口。

    • 程序的第一个语句
    • 条件语句转移到的语句
    • 无条件语句之后的下一条语句
    • 无条件语句转移到的语句
  58. 一个控制流程图就是具有_的有向图。

    • 唯一入口结点
    • 唯一出口结点
    • 唯一首结点
    • 唯一尾结点
  59. 基本块内的优化为

    • 代码外提,删除归纳变量
    • 删除多余运算,删除无用赋值
    • 强度削弱,代码外提
    • 循环展开,循环合并
  60. 下列优化方法不是针对循环优化进行的。

    • 强度削弱
    • 删除归纳变量
    • 删除多余运算
    • 代码外提
  61. 优化行事件较短。

    • 占用存储空间较小
    • 运行事件短但占用内存空间大
    • 运行时间短且占用存储空间小
  62. 代码优化的目的是

    • 节省时间
    • 节省空间
    • 节省时间和空间
    • 把编译程序进行等价交换