【编译原理】第一二章课后习题(王原生第三版)

前言

  • 课本: 编译原理(第三版)[王生原、董渊…等编著]
  • 习题: 主要习题内容是第一章到第八章,具体内容如下表
章节内容链接
第一章课后部分选择题https://blog.csdn.net/Zchengjisihan/article/details/136243955
第二章课后部分选择题https://blog.csdn.net/Zchengjisihan/article/details/136243955
第三章课后习题1(4)、5、9https://blog.csdn.net/Zchengjisihan/article/details/136264182
第四章课后习题1、2、3https://blog.csdn.net/Zchengjisihan/article/details/136264485
第五章课后习题1、4https://blog.csdn.net/Zchengjisihan/article/details/136264816
第六章课后习题11、15https://blog.csdn.net/Zchengjisihan/article/details/136276626
第七章课后习题2https://blog.csdn.net/Zchengjisihan/article/details/136277222
第八章课后习题1https://blog.csdn.net/Zchengjisihan/article/details/136277222

单选题

  1. 在数中出现非数字字符,可能是编译的()阶段报告的。

    • 词法分析
    • 语法分析
    • 语义分析
    • 代码生成
  2. 使用的函数没有定义,可能是编译的()阶段报告的。

    • 词法分析
    • 语法分析
    • 语义分析
    • 代码生成
  3. Else没有匹配的if,可能是编译的()阶段报告的。

    • 词法分析
    • 语法分析
    • 语义分析
    • 代码生成
  4. 源程序是句子的集合,()可以较好地反映句子的结构。

    • 线性表
    • 完全图
    • 堆栈
  5. 编译程序绝大多数时间花在()上。

    • 出错管理
    • 词法分析
    • 目标代码生成
    • 表格管理
  6. 通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括()。

    • 模拟执行器
    • 解释器
    • 表格处理和出错处理
    • 符号执行器
  7. ()不是编译程序的组成部分。

    • 词法分析程序
    • 代码生成程序
    • 设备管理程序
    • 语法分析程序
  8. 用高级语言编写的程序经编译后产生的程序叫()

    • 源程序
    • 目标程序
    • 连接程序
    • 解释程序
  9. ()是一种典型的解释型语言。

    • BASIC
    • C
    • FORTRAN
    • PASCAL
  10. 在自底向上的语法分析方法中,分析的关键是()

    • 寻找句柄
    • 寻找句型
    • 消除递归
    • 选择候选式
  11. 采用自上而下语法分析,必须( )。

    • 消除回溯
    • 消除左递归
    • 消除右递归
    • 提取公共左因子
  12. 描述一个语言的文法是( )

    • 唯一的
    • 不唯一
    • 可能唯一
  13. 给定文法 A → b A ∣ c a A \to bA | ca AbAca,为该文法句子的是( )

    • bba
    • cab
    • bca
    • cba
  14. 如果文法G是无二义的,则它的任何句子α( )

    • 最左推导和最右推导对应的语法树必定相同
    • 最左推导和最右推导对应的语法树可能不同
    • 最左推导和最右推导必定相同
    • 可能存在两个不同的最左推导,但它们对应的语法树相同
  15. 一个句型中最左的( )称为该句型的句柄。

    • 直接短语
    • 短语
    • 终结符
    • 非终结符
  16. 文法 G [ A ] : A → ε A → a B B → A b B → a G[A]:A→ε A→aB B→Ab B→a G[A]AεAaBBAbBa是(  )

    • 0型文法
    • 1型文法
    • 2型文法
    • 3型文法
  17. “上下文无关文法”是描述 ()的工具。

    • 词法
    • 语法
    • 语义
    • 2型文法
  18. 编译程序中词法分析器所完成的任务是从源程序识别出一个一个具有独立意义的( )

    • 表达式
    • 语句
    • 过程
    • 单词符号
  19. 若一个文法G定义的语言是无限的,则文法必然是( )

    • 递归的
    • 上下文有关的
    • 二义的
    • 无二义的
  20. 下面不是翻译程序的是( )

    • 汇编程序
    • 源程序
    • 编译程序
    • 解释程序
  21. 编译程序中语法分析器接收以( )为单位的输入。

    • 句子
    • 表达式
    • 单词
    • 产生式
  22. 若一个文法是递归的,则它产生的句子个数是( )。

    • 有限个
    • 无穷个
    • 可能有限个
    • 以上均不对
  23. 设G是一个给定的文法, S S S是文法的开始符号,如果 S → x S→x Sx(其中, x ∈ V ∗ x∈V^* xV),则称 x x x是文法G的一个( )。

    • 产生式
    • 单词
    • 候选式
    • 句型
  24. 文法 G [ N ] = ( { b } , { N , B } , N , { N → b │ b B , B → b N } ) G[N]=(\{b\},\{N,B\},N,\{N→b│bB,B→bN\}) G[N]=({b},{N,B},N,{NbbB,BbN}) ,该文法所描述的语言是( )

    • L ( G [ N ] ) = { b i ∣ i ≤ 0 } L(G[N])=\{b^i | i \le0\} L(G[N])={bii0}
    • L ( G [ N ] ) = { b 2 i ∣ i ≤ 0 } L(G[N])=\{b^{2i} | i \le0\} L(G[N])={b2ii0}
    • L ( G [ N ] ) = { b 2 i + 1 ∣ i ≤ 0 } L(G[N])=\{b^{2i+1} | i \le0\} L(G[N])={b2i+1i0}
    • L ( G [ N ] ) = { b 2 i + 1 ∣ i ≤ 1 } L(G[N])=\{b^{2i+1} | i \le1\} L(G[N])={b2i+1i1}
  25. 下面哪个不是单词的描述工具?

    • 正规式
    • 正规文法
    • 有穷自动机
    • 下推自动机
  26. 词法分析器的输出结果是()。

    • 单词自身值
    • 单词在符号表中的位置
    • 单词的种别编码
    • 单词的种别编码和自身值
  27. 自顶向下分析过程是一种试探过程,需要进行回溯。

  28. 每个文法都能改写成LL(1)文法。

多选题

  1. 数组下标越界,可能是编译的()阶段报告的。

    • 词法分析
    • 语法分析
    • 语义分析
    • 代码生成
  2. 语法分析最常用的两类方法是 ?

    • 自顶向下
    • 自底向上
    • 语法树
    • 上下文无关文法

结束语

如果有疑问欢迎大家留言讨论,你如果觉得这篇文章对你有帮助可以给我一个免费的赞吗?我们之间的交流是我最大的动力!

  • 25
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hiddenSharp429

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值