《编译原理》习题答案
一、单项选择题(本大题共164小题,每小题2分)
1、如果一个编译程序能产生不同于其宿主机的机器代码,则称它为( C )
A、诊断编译程序    B、优化编译程序    C、交叉编译程序    D、可变目标编译程序
2、( C )不是编译程序的组成部分。
A、词法分析程序    B、代码生成程序    C、设备管理程序    D、语法分析程序
3现代多数实用编译程序所产生的目标代码都是一种可重定位的指令代码,在运行前必须借助于一个( C )把各个目标模块,包括系统提供的库模块连接在一起,确定程序变量或常数在主存中的位置,装入内存中制定的起始地址,使之成为一个可运行的绝对指令代码的程序。
A、重定位程序    B、解释程序    C、连接装配程序    D、诊断程序;
4、产生正则语言的文法为(D)。
A、0型                B、1型                C、2型                D、3型
5、(A)是一种典型的解释型语言。
ABASIC            BC                CFORTRAN            DPASCAL
6、把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。
A、编译器            B、汇编器            C、解释器            D、预处理器
7、用高级语言编写的程序经编译后产生的程序叫(B)
A、源程序             B目标程序            C连接程序            D解释程序
8、文法G:S→b|(T)
T→T,S|S
则FIRSTVT(T)(C)。
        A、{b,,(}        B、{b,,)}        C、{b,,(,}        D、{b,,),}
9、通常一个编译程序中,不仅包含词法分析,语法分析,语分析,中间代码生成,代码优化,目标代码生成等个部分,还应包括(C)
A、模拟执行器          B解释器     C表格处理和出错处理   D符号执行器
10、编译程序绝大多数时间花在(D)上。
A、出错处理            B词法分析            C目标代码生成        D表格管理
11、设文法为:SSA|A
A→a|b
则对句子aba,下面(D)是规范推导。
        A、SundefinedSAundefinedSAAundefinedAAAundefinedaAAundefinedabAundefinedaba
B、SundefinedSAundefinedSAAundefinedAAAundefinedAAaundefinedAbaundefinedaba
C、SundefinedSAundefinedSAAundefinedSAaundefinedSbaundefinedAbaundefinedaba
D、SundefinedSAundefinedSaundefinedSAaundefinedSbaundefinedAbaundefinedaba
12、Chomsky把文法分成四种类型,其中,( D )也称正规文法
A、0型      B、1型      C、2型      D、3型
13、源程序是句子的集合,(B)可以较好地反映句子的结构。
A.、线性表            B、树                C、完全图            D、堆栈
14、词法分析器的输出结果是(D)。
A、单词自身值                                B、单词在符号表中的位置
C、单词的种别编码                        D、单词的种别编码和自身值
15、词法分析器不能(D)
A、识别出数值常量                        B、过滤源程序中的注释
C、扫描源程序并识别记号                    D、发现括号不匹配
16、文法:G:S→xSx | y所识别的语言是(D)。
A、xyx                B、(xyx)*                C、x*yx*                D、xnyxn (n≥0)
17、如果文法G是无二义的,则它的任何句子α(A)
A最左推导和最右推导对应的语法树必定相同
B最左推导和最右推导对应的语法树可能不同
C最左推导和最右推导必定相同
D、可能存在两个不同的最左推导,但它们对应的语法树相同
18、语言的词法规则一般用Chomsky的( D )型文法来描述:
A、0        B、1        C、2        D、3
19、文法
S→(L)|a
L→L,S|S
中的终结符号是( B )
A、S    B、,   C、L   D、|
20、文法G所描述的语言是( D )的集合。
A、文法G的字母表 中的所有符号组成的符号串
B、文法G的字母表 的闭包 *中的所有符号串
C、文法G的识别符号推出的所有符号串
D、文法G的识别符号推出的所有终结符号串
21、语法分析器接收以( C )为单位的输入,并产生有关信息供以后各阶段使用。
A、表达式    B、产生式    C、单词    D、语句;
22、LR(k)文法( A )。
A、都是无二义性的    B、都是二义性的    C、一部分是二义性的    D、无法判定
23、如果一个编译程序能产生不同于其宿主机的机器代码,则称它为:( C )
A、诊断编译程序    B、优化编译程序    C、交叉编译程序    D、可变目标编译程序
24、许多广为使用的语言,如Fortran、C、Pascal等,属于( A )。
A、强制式语言    B、应用式语言    C、基于规则的语言    D、面向对象的语言
25、设G是一个文法,S是开始符号。若S * ,  (VT VN)*,则称 是一个( B )。
A、句子      B、句型      C、推导      D、语言
26、赋值语句x:=-(a+b)/(c-d)-(a+b*c)的逆波兰式表示是( C )。
A、xab+cd-/-bc*a+-:=      C、xab+/cd-bc*a+--:=
C、xab+-cd-/abc*+-:=      D、xab+cd-/abc*+--:=
27、在一棵语法树中的结点的继承属性和综合属性之间的相互依赖关系可以由( C )来描述。
A、抽象语法树    B、语法规则    C、依赖图    D、三地址代码;
28、( C )语言具有这样的特点:没有分程序结构;过程定义不允许嵌套;允许过程嵌套定义。
A、Fortran    B、Pascal    C、C    D、都不是
29、Pascal中过程说明的局部变量地址分配在( B )。
A、调用者的数据区中      B、被调用者的数据区中
C、主程序的数据区中      D、公共数据区中
30、一个数据类型通常包括三要素,下面( C )不是:
A、用于区别这种类型的数据对象的属性    B、这种类型的数据对象可以具有的值
C、对这种类型的数据对象的内存分配      D、可以作用于这种类型的数据对象的操作
31、正则文法(A)二义性的。
A、可以是            B、一定不是            C、一定是
32、(B)这样一些语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。
A、存在                B、不存在            C、无法判定是否存在
33、给定文法AbA | ca,为该文法句子的是(C)
A、bba                Bcabbasic语言是解释型语言吗                Cbca                Dcba
34、设有文法G[S]:S S1|S0|Sa|Sc|a|b|c,下列符号串中是该文法的句子有(D)
A、ab0                B、a0c01            C、a0b0a            D、bc10
35、文法G产生的(D)的全体是该文法描述的语言。
A、句型                B、终结符集            C、非终结符集        D、句子
36、若文法G定义的语言是无限集,则文法必然是(A)
递归的            B、上下文无关的        C、二义性的            D、无二义性的
37、一个数据类型通常包括三种要素,下面( C )不是:
A、用于区别这种类型的数据对象的属性    B、这种类型的数据对象可以具有的值
C、对这种类型的数据对象的内存分配      D、可以作用于这种类型的数据对象的操作
38、在编译方法中,动态存储分配的含义是( A )。
A、在运行阶段对源程序中的量进行分配    B、在编译阶段对源程序中的量进行分配
C、在编译阶段对源程序中的量进行分配,在运行时这些量的地址可以根据需要修改
D、以上都不是
39、以绝对机器代码为输出,所有地址均已定位,这种代码的优点是( A )。
A、可立即执行    B、可进一步优化    C、目标代码简短    D、目标代码执行效率高
40、以( B )作为输出,允许自程序单独编译。
A、绝对机器代码    B、可再定位机器语言    C、汇编语言程序    D、中间语言
41、评价一个代码生成器最重要的指标是( A )。
A、代码的正确性    B、代码的高效性    C、代码的简洁性    D、代码的维护性。
42、文法GE→E+T|T
T→T*P|P
P→(E)|I
则句型P+T+i的句柄和最左素短语为(B)。
        A、P+T和i        B、P和P+T      C、i和P+T+I      D、P和T
43、语言的词法规则一般用Chomsky的( D )型文法来描述:
A、0        B、1        C、2        D、3
44、描述一个语言的文法是(B)
A、唯一的            B、不唯一的            C、可能唯一
45、一个文法所描述的语言是(A)
A、唯一的            B、不唯一的            C、可能唯一
46、采用自上而下分析,必须(A)。
A、消除回溯                                B、消除左递归
C、消除右递归                                D、提取公共左因子
47、编译过程中,语法分析器的任务是(A)
1分析单词的构成
2分析单词串如何构成语句
3分析语句是如何构成程序
4分析程序的结构
A、②③                B、④                C、①②③④            D、②③④
48、程序语言的单词符号一般可以分为5种,下面( B )不需要超前搜索
A、关键字  B、标识符      C、常数      D、算符和界符
49、由文法的开始符经0步或多步推导产生的文法符号序列是(C)。
        A、短语        B、句柄        C、句型        D、句子
50、从左线性文法构造有限自动机时,通常自动机状态个数比文法非终结符号数多( D )。
A、4    B、2    C、0    D、1
51、正规表达式(ε|a|b)2表示的集合是( D )。
A、{ε,ab,ba,aa,bb}            B、{ab,ba,aa,bb}
C、{a,b,ab,aa,ba,bb}         D、{ε,a,b,aa,bb,ab,ba}
52、高级语言编译程序常用的语法分析方法中,递归下降分析法属于( B )分析法。
A、自左至右    B、自顶向下    C、自底向上    D、自右向左
53、上下文无关文法可以用( C )来描述。
A、正则表达式    B、正规文法    C、扩展的BNF    D、翻译模式
54、自上而下分析面临的四个问题中,不包括( D )。
A、需消除左递归    B、存在回朔    C、虚假匹配    D、寻可归约串
55、从左线性文法构造有限自动机时,通常自动机状态个数比文法非终结符号数多( D )
  A、4    B、2    C、0    D、1
56、正规表达式(ε|a|b)2表示的集合是( D )
A、{ε,ab,ba,aa,bb}      B、{ab,ba,aa,bb}