西安交通大学《编译原理》作业考核试题

更新时间:2023-11-15 01:25:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

安交通大学《编译原理》作业考核试题

一、选择题

1. 设有文法G[S]:S→S1|S0|Sa|Sc|a|b|c,下列符号串中是该文法的句子有( ) A. ab0 B. a0c01 C. a0b0a [正确]D. bc10 满分:2 分

2. 设G为算符优先文法,G的任意终结符对a、b有以下关系成立()。 A. 若f(a)>g(b),则a>b B. 若f(a)

3. 程序基本块是指()。 A. 一个子程序

B. 一个仅有一个入口和一个出口的语句 C. 一个没有嵌套的程序段

[正确]D. 一组顺序执行的程序段,仅有一个入口和一个出口 满分:2 分

4. 如果文法G是无二义的,则它的任何句子( ) [正确]A. 最左推导和最右推导对应的语法树必定相同 B. 最左推导和最右推导对应的语法树可能不同 C. 最左推导和最右推导必定相同

D. 可能存在两个不同的最左推导,但它们对应的语法树相同 满分:2 分

5. 在目标代码生成阶段,符号表用于( )。 A. 目标代码生成 B. 语义检查 C. 语法检查 [正确]D. 地址分配 满分:2 分

6. Chomsky把文法分成四种类型,其中,()也称正规文法 A. 0型 B. 1型 C. 2型 [正确]D. 3型 满分:2 分

7. 在LR(0)的ACTION子表中,如果某一行中存在标记“rj”的栏,则( )。 [正确]A. 该行必定填满rj B. 该行未填满rj C. 其他行也有rj

D. goto子表中也有rj 满分:2 分

8. 使用三元式是为了()。 A. 便于代码优化处理

[正确]B. 避免把临时变量填入符号表 C. 节省存储代码的空间 D. 提高访问代码的速度 满分:2 分

9. 识别上下文无关语言的自动机是( ) A. 下推自动机 B. NFA [正确]C. DFA D. 图灵机 满分:2 分

10. 在LR分析法中,分析栈中存放的状态是识别规范句型( )的DFA状态。 A. 句柄 B. 前缀 [正确]C. 活前缀 D. LR(0)项目 满分:2 分

11. 描述一个语言的文法是( ) A. 唯一的 [正确]B. 不唯一的 C. 可能唯一 D. 都不正确 满分:2 分

12. 编译程序使用( )区别标识符的作用域。 A. 说明标识符的过程或函数名

[正确]B. 说明标识符的过程或函数的静态层次 C. 说明标识符的过程或函数的动态层次 D. 标识符的行号 满分:2 分

13. 使用()可以定义一个程序的意义。 [正确]A. 语义规则 B. 词法规则 C. 产生规则 D. 词法规则 满分:2 分

14. 在整个编译期间,对符号表的操作大致都有()。 A. 查询给定名字 [正确]B. 填入新名字 C. 访问给定名字的信息 D. 更新给定名字的信息 满分:2 分

15. ()语言具有这样的特点:没有分程序结构;过程定义不允许嵌套;允许过程嵌套定义。 A. Fortran B. Pascal [正确]C. C D. 都不 满分:2 分

16. 中间代码生成时所遵循的是()。 A. 语法规则 B. 词法规则 [正确]C. 语义规则 D. 等价变换规则 满分:2 分

17. 编译程序是对()。 A. 汇编程序的翻译 B. 高级语言程序的解释执行 C. 机器语言的执行 [正确]D. 高级语言的翻译 满分:2 分

18. 以()作为输出,允许自程序单独编译。 A. 绝对机器代码

[正确]B. 可再定位机器语言 C. 汇编语言程序 D. 中间语言 满分:2 分

19. 静态分配允许程序出现( )。 A. 递归过程

B. 可变体积的数据项目 [正确]C. 静态变量 D. 待定性质的名字 满分:2 分

20. 以绝对机器代码为输出,所有地址均已定位,这种代码的优点是()。 [正确]A. 可立即执行 B. 可进一步优化 C. 目标代码简短 D. 目标代码执行效率高 满分:2 分

21. 一个( )指明了在分析过程中的某时刻所能看到产生式多大一部分。 A. 活前缀 B. 前缀 [正确]C. 项目 D. 项目集 满分:2 分

22. 一个文法所描述的语言是( ) [正确]A. 唯一的

B. 不唯一的 C. 可能唯一 D. 都不正确 满分:2 分

23. 赋值语句x:=-(a+b)/(c-d)-(a+b*c)的逆波兰式表示是()。 A. xab+cd-/-bc*a+-:= B. xab+/cd-bc*a+--:= [正确]C. xab+-cd-/abc*+-:= D. xab+cd-/abc*+--:= 满分:2 分

24. 程序所需的数据空间在程序运行前可确定,称为( )管理技术。 A. 动态存储 B. 栈式存储 [正确]C. 静态存储 D. 堆式存储 满分:2 分

25. 评价一个代码生成器最重要的指标是()。 [正确]A. 代码的正确性 B. 代码的高效性 C. 代码的简洁性 D. 代码的维护性 满分:2 分

26. 所谓在程序中某个给定点是活跃的,是指如果在程序中,()。 [正确]A. 该点以后被引用 B. 该点以后被计算 C. 该点正在被计算 D. 该点一直被计算 满分:2 分

27. Pascal中过程说明的局部变量地址分配在()。 A. 调用者的数据区中 [正确]B. 被调用者的数据区中 C. 主程序的数据区中 D. 公共数据区中 满分:2 分

28. 在编译方法中,动态存储分配的含义是( )。

[正确]A. 在运行阶段对源程序中的数组.变量.参数等进行分配 B. 在编译阶段对源程序中的数组.变量.参数进行分配

C. 在编译阶段对源程序中的数组.变量.参数等进行分配,在运行时这些数组.变量.参数的地址可根据需要改变

D. 以上都不正确 满分:2 分 29. 变量应当()。 A. 持有左值 B. 持有右值

[正确]C. 既持有左值又持有右值 D. 既不持有左值也不持有右值 满分:2 分

30. 给定文法A→bA | ca,为该文法句子的是( ) A. bba B. cab [正确]C. bca D. cba 满分:2 分

二、判断题

1. 语法分析时必须先消除文法中的左递归。( ) [正确]A. 错误 B. 正确 满分:2 分

2. 对于每一个左线性文法G1,都存在一个右线性文法G2,使得L(G1)=L(G2)。( ) A. 错误 [正确]B. 正确 满分:2 分

3. 一个文法所有句型的集合形成该文法所能接受的语言。( ) [正确]A. 错误 B. 正确 满分:2 分

4. 非终结符只有综合属性,由词法分析器提供。( ) A. 错误 [正确]B. 正确 满分:2 分

5. 若某一个句型中出现了某一产生式的右部,则此右部不一定是该句型的句柄。( ) [正确]A. 错误 B. 正确 满分:2 分

6. 二义文法是上下文无关文法。( ) A. 错误 [正确]B. 正确 满分:2 分

7. 对任意一个右线性文法G,都存在一个DFAM,满足L(G)=L(M)。( ) A. 错误 [正确]B. 正确 满分:2 分

8. 在归约过程的任一时刻,一个上下文无关文法的任何句型的直接短语一般都是唯一的。( ) [正确]A. 错误 B. 正确

满分:2 分

9. 可能有两个不同的文法G和G′,期中一个是二义的而另一个是无二义的,但是却有L(G)=L(G′)。( ) A. 错误 [正确]B. 正确 满分:2 分

10. 任何算符优先文法的句型中不会有两个相邻的非终结符号。( ) A. 错误 [正确]B. 正确 满分:2 分

11. 对于允许递归调用的程序语言,程序运行时的存储分配策略不能采用静态的存储分配策略。( ) A. 错误 [正确]B. 正确 满分:2 分

12. 只含有综合属性的属性文法是S-属性文法。( ) A. 错误 [正确]B. 正确 满分:2 分

13. “回填”技术用于对过程中的说明语句进行处理时把计算出的有关符号的属性填入符号表。 [正确]A. 错误 B. 正确 满分:2 分

14. 规范归约和规范推导是互逆的两个过程。( ) [正确]A. 错误 B. 正确 满分:2 分

15. 设M是一个NFA,并且L(M)={x,y,z},则M的状态数至少为4个。( ) [正确]A. 错误 B. 正确 满分:2 分

16. 一个二义性文法可以是SLR文法或LALR文法。( ) [正确]A. 错误 B. 正确 满分:2 分

17. 对任何一个NFAM,都存在一个DFAM',使得L(M')=L(M)。( ) A. 错误 [正确]B. 正确 满分:2 分

18. 一棵语法树表示了一个句型所有的不同推导过程,包括最右推导和最左推导。( ) A. 错误 [正确]B. 正确 满分:2 分

19. 正规文法产生的语言都可以用上下文无关文法来描述。( ) A. 错误 [正确]B. 正确

满分:2 分

20. LL(1)文法不能用LR(1)分析器来分析。( ) [正确]A. 错误 B. 正确 满分:2 分

本文来源:https://www.bwwdw.com/article/5rmv.html

Top