一、单选题(共 40 道试题,共 80 分。)V 1. 把一个高级语言程序翻译成机器可执行的目标程序的工作由下列程序之一完成( )。
A. 汇编程序
B. 解释程序
C. 编译程序
D. 预处理程序
满分:2 分
2. Pascal的if语句满足( )。
A. 最远匹配原则
B. 动态作用域规则
C. 静态作用域规则
D. 最近匹配原则
满分:2 分
3. 2型文法也称为( )。
A. 短语文法
B. 上下文无关文法
C. 右线性文法
D. 左性性文法
满分:2 分
4. 下面哪个文法是左递归的( )。
A. E→E+T|T
B. T→F*T
C. E→(E)
D. E→a
满分:2 分
5. 在LR分析法中,分析栈中存放的状态是识别规范句型( )的DFA状态。
A. 句柄
B. 前缀
C. 活前缀
D. LR(0)项目
满分:2 分
6. 编译程序必须完成的工作有( ) 。 (1) 词法分析 (2) 语法分析 (3) 语义分析 (4) 目标代码生成 (5) 中间代码生成 (6) 代码优化
A. (1)(2)(3)(4)
B. (1)(2)(3)(4)(5)
C. (1)(2)(3)(4)(5)(6)
D. (1)(2)(3)(4)(6)
满分:2 分
7. ( )是描述语言的语法结构的形式规则。
A. 文法
B. 语义
C. 词法
D. 语法
满分:2 分
8. 优化所依循的原则是( )。
A. 正规式
B. 上下文无关文法
C. 语言的语义规则
D. 程序的等价变换规则
满分:2 分
9. 语法分析器的输出是( )。
A. 源程序
B. 单词符号
C. 语法单位
D. 中间代码
满分:2 分
10. 赋值语句X::=-(a+b)/(c-d)-(a+b*c)r的逆波兰表示是( )。
A. Xab+cd-/-bc*a+-:=
B. Xab+/cd--bc*a+--:=
C. Xab+-cd-/abc*+-:=
D. Xab+cd-/abc*+--:=
满分:2 分
11. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于( )分析方法。
A. 自左至右
B. 自上而下
C. 自下而上
D. 自右向左
满分:2 分
12. 文法 E→(E)产生的语言是( )。
A. 空集
B. ()
C. (E)
D. ((((E))))
满分:2 分
13. 最适合动态建立数据实体的内存分配方式是( )。
A. 栈式分配
B. 堆式分配
C. 编译时预先分配
D. 以上三种均可
满分:2 分
14. 通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括( )。
A. 模拟执行器
B. 解释器
C. 表格处理和出错处理
D. 符号执行器
满分:2 分
15. 编译程序中语法分析器接收以( )为单位的输入。
A. 单词
B. 表达式
C. 产生式
D. 句子
满分:2 分
16. 最常用的中间代码形式是( )。
A. 二元式
B. 三元式
C. 四元式
D. 树形表示
满分:2 分
17. 下述方法中,( )不是自下而上分析方法。
A. 规范归约
B. 算符优先分析法
C. 递归下降分析法
D. LR分析法
满分:2 分
18. 已知文法:S→aAa|aBb|bAb|bBaA→x B→x ,则( )
A. LR(1)文法
B. LALR(1)文法
C. 都不是
D. A和B
满分:2 分
19. 若一个文法是递归的,则它所产生的句子个数( )。
A. 必定是无穷的
B. 是有限个的
C. 根据具体情况而定
D. 不确定
满分:2 分
20. 文法G的一棵语法树叶结点的自左至右排列是G的一个( )。
A. 句子
B. 句型
C. 句柄
D. 素短语
满分:2 分
21. LR(1)文法都是( )。
A. 无二义性且无左递归
B. 可能有二义性但无左递归
C. 无二义性但可能是左递归
D. 可以既有二义性又有左递归
满分:2 分
22. 表达式(a+b)*(c+d)的后缀式表示为( )。
A. a+b*c+d
B. +ab*+cd
C. ab+cd+*
D. 无法表示
满分:2 分
23. 规范归约(最左归约-最右推导的逆过程)的关键问题是( )。
A. 确定符号表
B. 寻找单词
C. 寻找句柄
D. 定位错误
满分:2 分
24. 下列选项中,不属于优化编译程序提供的对代码的各种变换必须遵循的原则的是( )。
A. 等价原则
B. 有效原则
C. 最佳原则
D. 合算原则
满分:2 分
25. Σ={0,1}上的正规式(0|1)* 表示( )。
A. 0开头的串
B. 1开头的串
C. 有一个0和一个1的串
D. 由0、1组成的任意串
满分:2 分
26. ( )是指源程序中不符合语法或词法规则的错误,这些错误一般在词法分析或语法分析时能检测出来。
A. 语义错误
B. 语法错误
C. 短语错误
D. 短句错误
满分:2 分
27. 正则文法( )二义性的。
A. 可以是
B. 一定不是
C. 一定是
D. 可以不是
满分:2 分
28. 编译程序诸阶段的工作往往是( )。
A. 顺序
B. 并行
C. 成批
D. 穿插
满分:2 分
29. 类型转换时,整数到实数的转换称为( )。
A. 截断
B. 舍入
C. 拓展
D. 收缩
满分:2 分
30. 由于受到具体机器主存容量的限制,编译程序几个不同阶段的工作往往被组合成( )。
A. 过程
B. 程序
C. 批量
D. 遍
满分:2 分
31. 语义分析与中间代码产生所依循的是( )。
A. 正规式
B. 上下文无关文法
C. 语言的语义规则
D. 有限自动机
满分:2 分
32. 如果r、s是正规式,则下面( )不一定是正规式。
A. rs
B. r|s
C. r*
D. r+s
满分:2 分
33. 在编译时安排所有数据对象的存储单元的分配策略属于( )。
A. 静态分配策略
B. 动态分配策略
C. 栈式分配策略
D. 堆分配策略
满分:2 分
34. 描述一个语言的文法是( )。
A. 唯一的
B. 不唯一的
C. 可能唯一
D. 可能不唯一
满分:2 分
35. ( )是指源程序中不符合语义规则的错误,这些错误一般在语义分析时能检测出来。
A. 语义错误
B. 语法错误
C. 短语错误
D. 短句错误
满分:2 分
36. 有限自动机可以有( )个初始状态。
A. 一个
B. 两个
C. 三个
D. 多个
满分:2 分
37. ( )的任务是把中间代码(或经过优化处理之后)变换成特定机器上的低级语言代码。
A. 词法分析
B. 语法分析
C. 优化
D. 目标代码生成
满分:2 分
38. ( )是为每个标识符保存一个记录的数据结构,记录的域是标识符的属性。
A. 符号表
B. 代码表
C. 源程序
D. 出错表
满分:2 分
39. 在自下而上的语法分析方法中,分析的关键是( )。
A. 寻找句柄
B. 寻找句型
C. 消除递归
D. 选择候选式
满分:2 分
40. 下面关于解释程序的描述正确的是( )。 (1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的
A. (1)(2)
B. (1)
C. (1)(2)(3)
D. (2)(3)
满分:2 分
二、多选题(共 10 道试题,共 20 分。)V 1. 一个上下文无关文法G包括四个组成部分( )。
A. 终结符号
B. 非终结符号
C. 开始符号
D. 一组产生式
满分:2 分
2. 在如下上下文无关文法G中: stmt-sequence → stmt; stmt-sequence | stmt stmt → s 哪些是终结符号?( )
A. stmt-sequence
B. stmt
C. s
D. ;
满分:2 分
3. 在如下上下文无关文法G中: stmt-sequence → stmt; stmt-sequence | stmt stmt → s 下面哪些是可以由该文法推导出的句型?( )
A. stmt; stmt-sequence
B. s
C. s;s
D. s;s;stmt
满分:2 分
4. 程序设计工具包括( )。
A. 编译程序
B. 编辑程序
C. 连接程序
D. 调试工具
满分:2 分
5. 描述词法分析的有效工具是( )。
A. 正规式
B. 上下文无关文法
C. 语言的语义规则
D. 有限自动机
满分:2 分
6. 常用的中间代码表示形式有( )。
A. 三元式
B. 四元式
C. 间接三元式
D. 逆波兰记号
满分:2 分
7. 按照语法分析树的建立方法,可以粗略地把语法分析办法分成两类( )。
A. 自左向右分析法
B. 自右向左分析法
C. 自顶而下分析法
D. 自下而上分析法
满分:2 分
8. 根据不同的用途和侧重,编译程序可分为( )。
A. 诊断编译程序
B. 优化编译程序
C. 交叉编译程序
D. 可变目标编译程序
满分:2 分
9. 编译器中常用的文法分析有( )。
A. 自上而下分析算法
B. 自下而上分析算法
C. Earley算法
D. Cocke-Younger-Kassimi算法
满分:2 分
10. 常见的初等数据类型包括( )。
A. 数值数据
B. 逻辑数据
C. 字符数据
D. 指针数据
满分:2 分