当前位置:文档之家› 最新西安交通大学《编译原理》作业考核试题

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

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

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

一、选择题

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)

[正确]C. a~b都不一定成立

D. a~b一定成立

满分:2 分

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. 持有右值

相关主题
文本预览
相关文档 最新文档