Skip to content

编译原理期末复习题 (选择)_编译原理选择题 - CSDN 博客

一、选择题

*1.将编译程序分成若干个 “遍” 是为了* B ** 

A. 提高程序的执行效率

B. 使程序的结构更加清晰

C. 利用有限的机器内存并提高机器的执行效率

D. 利用有限的机器内存但降低了机器的执行效率

*2.构造编译程序应掌握* D ** 

A. 源程序       B. 目标语言     C. 编译方法     D. 以上三项都是

*3.变量应当* C ** 

A. 持有左值                                          B. 持有右值

C. 既持有左值又持有右值                    D. 既不持有左值也不持有右值

*4.编译程序绝大多数时间花在* D **上。** 

A. 出错处理         B. 词法分析      C. 目标代码生成      D. 管理表格

*5.词法分析器的输出结果是* C ** 

A. 单词的种别编码                              B. 单词在符号表中的位置

C. 单词的种别编码和自身值               D. 单词自身值

*7.中间代码生成时所依据的是* C )**

A.语法规则    B.词法规则    C.语义规则    D.等价变换规则

*8.后缀式 ab+cd+/ 可用表达式* B )**来表示。** 

A、a+b/c+d     B、(a+b)/(c+d)    C、a+b/(c+d)     D、a+b+c/d

*9.程序所需的数据空间在程序运行前就可确定,称为* C )**管理技术。** 

A. 动态存储    B. 栈式存储    C. 静态存储     D. 堆式存储

*10. 堆式动态分配申请和释放存储空间遵守* D )**原则。** 

A. 先请先放    B. 先请后放    C. 后请先放     D. 任意

*11 词法分析器不能*( D )**

A. 识别出数值常量                    B. 过滤源程序中的注释

C. 扫描源程序并识别记号         D. 发现括号不匹配

*12 ( B )*这样一些语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。**

A. 存在     B. 不存在     C. 无法判定是否存在        D. 以上答案都不对

*13 两个有穷自动机等价是指它们的*( C )**

A. 状态数相等   B. 有向弧数相等   C. 所识别的语言相等   D. 状态数和有向弧数相等

*14 词法分析器用于识别*( C )**

A. 句子     B. 产生式      C. 单词      D. 句型

*15 与 (a|b)**(a|b) 等价的正规式是*( C )***

*1*6 正则表达式 R1 和 R2 等价是指**( C )**

A. R1 和 R2 都是定义在一个字母表上的正则表达式

B. R1 和 R2 使用的运算符相同

C. R1 和 R2 代表同一正则集

D. R1 和 R2 代表不同正则集

*17 如图所示自动机 M,请问下列哪个字符串不是 M 所能识别的*( D )**

A. bbaa       B. abba      C. abab        D. aabb

*1*8 有限状态自动机能识别**( C )**

A. 上下文无关语言    B. 上下文有关语言    C. 正规语言    D. 0 型文法定义的语言

*19 ( B )*不是 DFA 的成分**。

A. 有穷字母表     B. 多个初始状态的集合    C. 多个终态的集合    D. 转换函数

*20 DFA M(见图) 接受的字集为*( D )**

A. 以 0 开头的二进制数组成的集合

B. 以 0 结尾的二进制数组成的集合

C. 含奇数个 0 的二进制数组成的集合

D. 含偶数个 0 的二进制数组成的集合

*21 有穷自动机 M1 和 M2 等价是指*( C )**

A. M1 和 M2 的状态数相等

B. M1 和 M2 的有向边条数相等

C. M1 和 M2 所识别的语言集相等

D. M1 和 M2 状态数和有向边条数相等

*22 同正规式 (a|b)+ 等价的正规式是*( A )**

*23 称有限自动机 A1 和 A2 等价是指*( D )**

A. A1 和 A2 都是定义在一个字母表上的有限自动机

B. A1 和 A2 状态数和有向边数相等

C. A1 和 A2 状态数或有向边数相等

D. A1 和 A2 所能识别的字符串集合相等

*24 两个 DFA 等价是指*( D )**

A. 这两个 DFA 的状态数相同

B. 这两个 DFA 的状态数和有向弧条数都相等

C. 这两个 DFA 的有向弧条数相等

D. 这两个 DFA 接受的语言相同

*25 同正规式 (a|b) 等价的正规式为**( D )**

*26 词法分析器的加工对象是*( C )**

A. 中间代码       B. 单词        C. 源程序       D. 元程序

*27 同正规式 ab * 等价的文法是**( C )**

A. G1:S→aS|bS|ε         B. G2:S→aSb|ε

C. G3:S→ aS|Sb|ε        D. G4:S→ abS|ε

*28 如果文法 G 是无二义的,则它的任何句子α*(  A  )**

A. 最左推导和最右推导对应的语法树必定相同

B. 最左推导和最右推导对应的语法树可能不同

C. 最左推导和最右推导必定相同

D. 可能存在两个不同的最左推导,但它们对应的语法树相同

*29 采用自上而下分析,不必*( C )**

A. 消除回溯             B. 消除左递归            C. 消除右递归             D. 提取公共左因子

*3*0 识别上下文无关语言的自动机是**( A )**

A. 下推自动机           B. NFA            C. DFA              D. 图灵机

*31 ( D )*文法不是 LL(1) 的。**

A. 递归            B. 右递归            C. 2 型               D. 含有公共左因子的

*32 在自上而下的语法分析中,应从*( C )**开始分析。**

A. 句型            B. 句子              C. 文法开始符号              D. 句柄

*33 一个文法 G,若*( C )**,则称它是 LL(1)文法。**

A.G 中不含左递归                                                     B. G 无二义性   

C. G 的 LL(1)分析表中不含多重定义的条目          D. G 中产生式不含左公因子

*34 语法分析器的输入是*( A )**

A. Token 序列            B. 源程序             C. 目标程序              D. 符号表

*35 在语法分析处理中,FIRST 集合、FOLLOW 集合均是*( B )**

A. 非终结符集           B. 终结符集            C. 字母表              D. 状态集

*36 在编译过程中,如果遇到错误应该*( C )**

A. 把错误理解成局部的错误

B. 对错误在局部范围内进行纠正,继续向下分析

C. 当发现错误时,跳过错误所在的语法单位继续分析下去

D. 当发现错误时立即停止编译,待用户改正错误后再继续编译

*37 已知文法 G[S]:S→eT|RT T→DR|ε R→dR|ε D→a|bd***求 FIRST(S)=**( D )**

A. {e}      B. {e,d,a,b}      C. {e,d }       D. {e,d,a,b,ε}

*38 已知文法 G[S]:S→eT|RT T→DR|ε R→dR|ε D→a|bd***求 FOLLOW(D)=**( C )**

A. {d,e}     B. {d,ε}     C. {d,#}    D. {a,d}      E. 错

*39 若 a 为终结符,则 A→α·aβ为*( B )**项目。**

A. 归约      B. 移进       C. 接受      D. 待约

*40 一个句型中的*( A )**称为该句型的句柄。**

A. 最左直接短语      B. 最右直接短语      C. 终结符       D. 非终结符

*41 在自底向上的语法分析方法中,分析的关键是*( A )**

A. 寻找句柄      B. 寻找句型      C. 消除递归      D. 选择候选式

*42 在自顶向下的语法分析方法中,分析的关键是*( D )**

A. 寻找句柄      B. 寻找句型      C. 消除递归      D. 选择候选式

*43 下列动作中,不是自下而上分析动作的是*( B )**

A. 移进        B. 展开      C. 接受        D. 报错

*44 下列动作中,不是自上而下分析动作的是*( C )**

A. 匹配        B. 展开      C. 移进        D. 报错

*45 LR 分析表中的转移表(goto)是以*( B )**作为列标题的。**

A. 终结符     B. 非终结符    C. 终结符或非终结符     D. 表示状态的整型数

*46 LR 分析表中的动作表(action)是以*( D )**作为列标题的。**

A. 终结符     B. 非终结符    C. 终结符或非终结符     D. 终结符和结束符#

*47 下列项目中为可归约项目的是*( B )**

A. E′→· E            B. L→·            C. L→-· L               D. F→L*· F

*48 LR 分析器的核心部分是一张分析表,该表由*( D )**组成。**

A. ACTION 表    B. GOTO 表    C. 预测分析表    D. ACTION 表和 GOTO 表

*49 设 G 是一个给定的文法, S 是文法的开始符号,如果 S->x( 其中 x∈*(N|T)*), 则称 x 是文法 G 的一个* B )*** 

A.候选式      B.句型       C.单词        D.产生式

*50*. 中间代码主要包括**( C )**                                               

A. 三元式,四元式                               B. 后缀式,三地址码

C. 后缀式,三地址码,树,图             D. 树,图

*51*. 连接名字的声明和名字的引用的桥梁是**( B )**                       

A. 中间代码          B. 符号表             C. 作用域           D. 语法树

*52*. 活动之间的通信方式有两种,一种是子程序调用,还有一种是**( C )**

A. 递归调用             B. 嵌套调用            C. 消息传递            D. 参数传递

*53*. 代码**生成器的输入**是**( B )**                                      

A. 记号流          B. 中间代码和符号表信息          C. 语法树和分析树           D. 三地址码

*54*. 代码优化的方法中不包含**( C )**                                   

A. 窥孔优化            B. 强度削弱            C. 构造流图           D. 基本块优化

*55 一段顺序执行的代码称为一个* A )**                               

A. 基本块             B. 流图              C. 循环             D. 下次引用信息

*56. 在一个基本***内部进行优化称为**( D )**                             

A. 窥孔优化           B. 全局优化           C. 消除死代码           D. 基本块优化

*57*. 以下属于语义分析的基本方法的是**( A )**                               

A. 语法制导翻译            B. 自上而下分析            C. 自下而上分析            D. 递归下降分析

*58*. 下述关于顺序执行的程序的活动树上各节点之间的关系错误的说法是**( B )**

A. 同一层次的活生存期不交            B. 任何一时刻只有一个活动处于生存期

C. 任何时刻,处于生存期的活动构成一条从根节点到某节点的路径

D. 路径上各节点的生存期是嵌套的

*59*. 在一个基本块内,为变量分配寄存器还是内存的依据是**( C )**        

A. 变量的作用域和活跃信息            B. 变量的生存期和下次引用信息

C. 变量的下次引用信息和活跃信息    D. 变量的类型和下次引用信息

*60*. 目标代码的形式是**( D )**                                         

A. 三地址码和机器指令         B. 汇编指令           C. 机器指令             D. 汇编指令和机器指令