最新西安交通大学《编译原理》作业考核试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安交通大学《编译原理》作业考核试题
一、选择题
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. 持有右值