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.单词自身值
6.正规式M1和M2等价是指( C )
A. M1和M2的状态数相等 B. M1和M2的有向弧条数相等。
C. M1和M2所识别的语言集相等 D. M1和M2状态数和有向弧条数相等
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 )
16 正则表达式 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
18 有限状态自动机能识别( 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 同正规式a*b*等价的文法是( 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. 提取公共左因子
30 识别上下文无关语言的自动机是( 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 在编译过程中,如果遇到错误应该( B )
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.汇编指令和机器指令