编译原理考试练习题-西安交通大学网络教育学院 下载本文

内容发布更新时间 : 2024/6/26 18:14:40星期一 下面是文章的全部内容请认真阅读。

2019年春季《编译原理》在线作业

一、单选题(共 30 道试题,共 60 分。)V 1. 如果一个编译程序能产生不同于其宿主机的机器代码,则称它为:( ) A. 诊断编译程序 B. 优化编译程序 C. 交叉编译程序

D. 可变目标编译程序

正确答案:C 满分:2 分

2. 对应于产生式A→XY继承属性Y.y的属性计算,可能正确的语义规则是( ) A. A.a:=f(X.x,Y.y) B. Y.y:=f(A.a,Y.y) C. Y.y:=f(X.x) D. A.a:=f(Y.y)

正确答案:C 满分:2 分

3. 表达式作为实在参数可以传递给被调用的过程,替换过程体中的( ) A. 局部变量 B. 形式参数 C. 全局变量 D. 实在参数

正确答案:B 满分:2 分

4. 为了便于优化处理,三地址代码可以表示成( ) A. 三元式 B. 四元式 C. 后缀式

D. 间接三元式

正确答案:D 满分:2 分

5. 程序语言的单词符号一般可以分为5种,下面( )不需要超前搜索 A. 关键字 B. 标识符 C. 常数

D. 算符和界符

正确答案:D 满分:2 分

6. 在编译过程中,符号表的主要作用是( ) A. 帮助错误处理

B. 辅助语法错误的检查 C. 辅助语义的正确性检查 D. 辅助代码生成

E. 辅助对目标程序的优化

正确答案:B 满分:2 分

7. LR语法分析栈中存放的状态是识别( )的DFA状态 A. 前缀 B. 可归前缀 C. 项目 D. 句柄

正确答案:B 满分:2 分

8. Fortran语言的编译程序采用( )分配策略 A. 静态 B. 最佳 C. 堆式动态 D. 栈式动态

正确答案:A 满分:2 分 9. 使用三元式是为了:( ) A. 便于代码优化处理

B. 避免把临时变量填入符号表 C. 节省存储代码的空间 D. 提高访问代码的速度

正确答案:B 满分:2 分

10. 合并表达式中常量运算的目的是( ) A. 使表达式中的常量尽可能少 B. 是表达式尽可能简短

C. 将可在编译时刻计算的常量运算在编译时刻计算出来,然后用所计算出来的值替换表达式中出现的所有这种常量运算,使得生成的代码指令尽可能少 D. 以上都是

正确答案:D 满分:2 分

11. 从左线性文法构造有限自动机时,通常自动机状态个数比文法非终结符号数多( ) A. 4 B. 2 C. 0 D. 1

正确答案:D 满分:2 分 12. 程序基本块是指( ) A. 一个子程序

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

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

13. 设G是一个文法,S是开始符号。若ST*a,a?(VTèVN)*,则称a是一个( ) A. 句子 B. 句型 C. 推导 D. 语言

正确答案:B 满分:2 分

14. 算符优先分析法每次都是对( )进行归约: A. 句柄

B. 最左素短语 C. 素短语 D. 简单短语

正确答案:B 满分:2 分

15. ( )不是编译程序的组成部分。 A. 词法分析程序 B. 代码生成程序 C. 设备管理程序 D. 语法分析程序

正确答案:C 满分:2 分

16. 表达式-a+b*(-c+d)的逆波兰式是( ) A. ab+-cd+-* B. a-b+c-d+* C. a-b+c-d+* D. a-bc-d+*+

正确答案:D 满分:2 分

17. 正规表达式(ε|a|b)2表示的集合是( ) A. {ε,ab,ba,aa,bb} B. {ab,ba,aa,bb}

C. {a,b,ab,aa,ba,bb}

D. {ε,a,b,aa,bb,ab,ba} 正确答案:D 满分:2 分

18. 在整个编译期间,对符号表的操作大致都有( ) A. 查询给定名字 B. 填入新名字

C. 访问给定名字的信息 D. 更新给定名字的信息 E. 删除无用项

正确答案:B 满分:2 分

19. 文法开始符号的所有( )作为属性计算前的初始值 A. 综合属性 B. 继承属性

C. 继承属性和综合属性 D. 都不是

正确答案:B 满分:2 分

20. 有文法G=({S},{a},{S→SaS,S→ε},S),该文法是( ) A. LL(1)文法 B. 二义性文法 C. 算符优先文法 D. SLR(1)文法

正确答案:B 满分:2 分

21. 自上而下分析面临的四个问题中,不包括( ) A. 需消除左递归 B. 存在回朔 C. 虚假匹配

D. 寻找可归约串

正确答案:D 满分:2 分

22. 所谓在程序中某个给定点是活跃的,是指如果在程序中,( )