一、单选题(共 30 道试题,共 60 分。)V
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)<g(b),则a<b
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. 持有右值
C. 既持有左值又持有右值
D. 既不持有左值也不持有右值
满分:2 分
30. 给定文法A→bA | ca,为该文法句子的是( )
A. bba
B. cab
C. bca
D. cba
满分:2 分