您的当前位置:首页正文

编译概念复习题(参考答案)

2021-12-08 来源:星星旅游


编译概念复习题(参考答案)

一、填空题

1.高级程序设计语言是根据 定义的。

A.词法规则 B.语法规则

C.语义规则 D.以上三项规则

2.编译程序各阶段工作都涉及到 。

A.词法分析 B.表格管理

C.语法分析 D.语义分析

3.编译程序将源程序加工成目标程序是 之间的转换。

A.词法 B.语法

C.语义 D.规则

4.解释程序和编译程序的区别在于 。

A.是否生成中间代码 B.加工的对象不同

C.使用的实现技术不同 D.是否生成目标程序

5.一遍扫描的编译程序的优点是 。

A.算法清晰 B.便于分工

C.便于优化 D.编译速度快

6.编译程序不能够检查、处理的错误是程序中的 。

A.静态语义错误 B.动态语义错误

C.语法错误 D.词法错误

7.开发一个编译程序应掌握 。

A.源语言 B.目标语言

C.编译技术 D.以上三项都是

8.中间代码生成所依据的是语言的 。

A.词法规则 B.语法规则

C.语义规则 D.产生规则

10.测试一个编译程序时使用的测试数据是 。

A.源程序 B.中间代码

C.目标程序 D.任意数据

11.可以作为目标代码的语言是 。

A.高级语言 B.中间语言

C.低级语言 D.程序设计语言

12.编译程序检查、处理源程序中的错误具体指的是 。

A.词法错误 B.语法错误

C.语义错误 D.以上三项都是

13.同正则表达式(a | b)+等价的正则表达式是 。

A.(a | b) * B.(a | b) (a | b) *

C.(a b)* (a b) D.(a | b)| (a | b)*

14.词法分析器的输出结果是 。

A.单词自身 B.单词的机内符

C.单词的词义信息 D.单词的词法信息

15.如果一个正则表达式所代表的集合是无穷的,则它必含有 运算。

A.连接运算:“·” B.或运算:“|”

C.闭包运算:“*” D.括弧:“(” 和 “)”

16.称有限自动机A1和A2等价是指 。

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

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

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

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

17.DFA同NFA的不同之处是 。

A.DFA的一个状态发出的边不能相同,而NFA的一个状态可以发出多条相同的边

B.DFA可以含有多个终止状态,而NFA可以含有多个初始状态

C.DFA和NFA 所描述的字符串集合不同

D.DFA同NFA使用的构造技术和对象不同

18.同正则表达式(a | b)*等价的正则表达式是 。

A.(a | b)+ B.a* | b*

C.(a b)* D.(a* | b*)+

19.词法分析器的加工对象是 。

A.中间代码 B.单词

C.源程序 D.元程序

20.称正则表达式R1和R2等价是指 。

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

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

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

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

21.如果一个有限自动机所能识别的字符串集合是无穷的,则它必 。

A.含有多个状态 B.含有多条有向边

C.含有多个终止状态 D.含有回路

22.DFA同NFA的不同之处是 。

A.DFA只能含有一个终止状态,而NFA可以含有多个终止状态

B.DFA只能含有一个初始状态,而NFA可以含有多个初始状态

C.DFA和NFA 所描述的字符串集合不同

D.DFA同NFA使用的构造技术和对象不同

23.同正则表达式a*b*等价的文法是 。

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

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

24.如果一个文法G是二义性文法,则必存在某个句子x∈L(G),该句子 。

A.存在两个不同的最右推导和一个最左推导

B.存在两个不同的最左推导和一个最右推导

C.最左推导和最右推导不同

D.存在两个不同的最左推导和两个不同的最右推导

25.称文法G1和G2等价是指 。

A.L(G1)≡L(G2) B.L(G1)=L(G2)

C.L(G1)⊆L(G2) D.L(G2)⊆L(G1)

26.由文法的开始符出发通过若干步(包括0步)推导产生的文法符号序列是 。

A.语言 B.句型

C.句子 D.句柄

27.最左简单子树的叶结点,自左至右排列组成句型的 。

A.短语 B.简单短语

C.句柄 D.素短语

28.CFG文法G:S→[ S ] | [ ]所产生的语言是 。

A.[ m ] n (m,n>0) B.[ m ] n (m,n>1)

C.[ m ] m (m≥1) D.[ n ] n(n≥0)

29.如果一个文法G是无二义性文法,则对任一句子x∈L(G),该句子 。

A.可能存在两个不同的最右推导

B.可能存在两个不同的最左推导

C.最左推导和最右推导不同

D.仅存在一个最左推导和一个最右推导

30.正则文法的句型具有的特点是 。

A.句型中仅含一个非终结符或不含非终结符

B.句型中仅含一个非终结符或只含终结符

C.句型中仅含一个非终结符且在句型的最右端,或不含非终结符

D.句型中可含多个非终结符且在句型的最左端,或不含非终结符

31.规范推导是 。

A.最右推导的逆过程 B.最左推导

C.最左归约的逆过程 D.最右规约的逆过程

32.在自顶向下语法分析中,要求文法满足 。

A.无左递归 B.无左公因子

C.无右递归 D.无回溯

33.一个文法G是LL(1)文法的充要条件是对每一个非终结符A的任意两个不同产生式A→α | β,有 。

A.FIRST(α)∩FIRST(β)=Φ

B.FIRST(α)∩FOLLOW(A)=Φ

C.SELECT(A→α)∩SELECT(A→β)=Φ

D.SELECT(A→α)∩SELECT(A→β)≠Φ

34.一个文法是简单优先文法应满足的条件是 。

⑴ 没有形如A→…BC…的产生式(A,B,C∈VN)

⑵ 没有形如A→ε产生式

⑶ 任意两个终结符号之间至多存在一种优先关系

⑷ 没有相同的产生式右部

可选项有:

A.⑴⑵⑶ B.⑵⑶⑷ C.⑴⑶⑷ D.⑴⑵⑷ 35.算符优先分析法每次都是对 进行归约。

A.短语 B.最左素短语

C.素短语 D.句柄

36.一个文法G,若 ,则称它是LL(1)文法。

A.G中不含左递归

B.G无二义性

C.G的LL(1)分析表不含多重定义

D.G中产生式不含左公因子

37.设有文法G=({S},{a},{ S→SaS | ε},S),该文法是 。

A.LL(1)文法 B.LR(0)文法

C.算符优先文法 D.二义性文法

38.若B为非终结符,则A→α·Bβ为 项目。

A.移入 B.待约

C.归约 D.接受

39.LR分析器核心部分是一张分析表,该表由 组成。

A.ACTION表 B.GOTO表

C.LL(1)分析表 D.ACTION表和GOTO表

40.在递归子程序方法中,如果文法存在左递归,则会使分析过程产生 。

A.回溯 B.非法调用

C.有限次调用 D.无限循环

41.编译程序的语法分析器必须输出的信息是 。

A.语法错误信息 B.语法规则信息

C.语法分析过程 D.语句序列

42.一个文法是算符优先文法应满足的条件是 。

⑴ 没有形如A→…BC…的产生式(A,B,C∈VN)

⑵ 没有形如A→ε产生式

⑶ 任意两个终结符号之间至多存在一种优先关系

⑷ 没有相同的产生式右部

可选项有:

A.⑴ B.⑴⑵ C.⑴⑵⑶ D.⑴⑵⑶⑷

43.算符优先文法与算符优先函数的关系描述中正确的是 。

A.一个算符优先文法一定存在算符优先函数与之对应

B.一个算符优先文法一定存在多对算符优先函数与之对应

C.一个算符优先文法一定存在有限对算符优先函数与之对应

D.一个算符优先文法可能存在也可能不存在算符优先函数与之对应

44. LL(1)分析法中的“1”的含义是向输入串中查看一个输入符号,其目的是 。

A.确定最左推导

B.确定可归前缀

C.确定分析一步使用的产生式右部匹配串

D.确定是否推导

45.若a为终结符,则A→α • aβ为 项目。

A.移入 B.待约

C.归约 D.接受

46.可归前缀是指 。

A.规范句型的前缀 B.活前缀

C.含有句柄的活前缀 D.句柄

47.下述关于标识符和名字的叙述中,正确的为 。

A.标识符有一定的含义

B.名字有确切的属性

C.名字是一个没有意义的字符序列

D.标识符和名字是等同的

48.下列错误属于静态语义错误的是 。 A.括弧不配对 B.出现非法字符

C.类型不相容 D.溢出

49.属于标识符“种属”属性信息的描述是 。 A.整型 B.变量

C.地址 D.指针

50.不属于标识符“类型”属性信息的描述是 。 A.整型 B.实型

C.指针 D.类型

51.函数表达式sqrt (-8)是错误的,它属于 错误。 A.语法 B.词法

C.静态语义 D.动态语义

52.有一语法制导翻译算法如下: S→bAb { print “1”}

A→(B { print “2”}

A→a { print “3”}

B→aA) { print “4”}

若输如序列为b(a(a(aa)))b,且采用自底向上的分析方法,则输出序列为 。

A.32224441 B.34242421

C.12424243 D.34442212

53.使用 可以把语句翻译成四元式序列。 A.词法规则 B.语法规则

C.语义规则 D.等价变换规则

54.在语法制导翻译中不采用拉链—回填技术的语句是 。 A.转向语句 B.赋值语句

C.条件语句 D.循环语句

55.下面逆波兰式(后缀式)中,能正确表示算术表达式a+b+c+d的是 。 A.abcd+++ B.abc+d++

C.ab+cd++ D.ab+c+d+

二、判断题 (正确打(√)、错误打(×))

1.(√)源程序同目标程序是等价关系。

2.(×)用高级语言编写的源程序都必须通过编译,产生目标程序后才能运行。

3.(×)高级语言程序到低级语言程序的转换是结构上的变换。

4.(×)多遍扫描的编译程序的多遍是指多次重复读源程序。

5.(√)解释程序虽然不产生目标程序,但它可能产生中间代码。

6.(√)DFA同NFA等价。

7.(×)使用正则运算能够描述定义在字母表上的所有符号串集合。

8.(×)一个有限自动机中,有且仅有一个初始状态。

9.(×)一个有限自动机中,有且仅有一个终止状态。

10.(×)有限自动机的作用是实现单词的生成。

11.(√)使用有限自动机可以实现单词的识别。

12.(√)对任一正则表达式e,都存在一个DFA A,使L(e)=L(A)。

13.(√)最小化的DFA,它的状态个数最少。

14.(√)如果一个语言的句子是无穷的,则定义该语言的文法一定是递归的。

15.(×)在编译技术中由于使用前后文无关文法描述程序设计语言,所以程序设计语言是前后文无关语言。

16.(√)一个语言的文法是不惟一的。

17.(×)二义性文法是可以判定的。

18.(×)每个非终结符产生的终结符号串集都是该语言子集。

19.(√)规范归约是最右推导的逆过程。

20.(×)语法分析器可以检查程序中出现的所有错误。

21.(√)一个LL(1)文法一定是无二义性和无回溯文法。

22.(×)一个素短语一定是短语,反之一个短语也是素短语。

23.(√)所有LR分析器的总控程序都是一样的,只是分析表各有不同。

24.(√)类型检查主要指类型相容性检查。

25.(×)一个算符优先文法有且仅有一对优先函数与之对应。

26.(×)单优先方法和LR方法都是按句柄进行归约,所以它们确定句柄的方法相同。

27.(×)二义性文法一定不能应用于语法分析器的设计。

28.(×)运算对象排列的先后顺序,后缀式同中缀式不同。

29.(×)语法制导翻译方法可用来产生各种中间代码,但不能用来产生目标代码。 30.(×)后缀表示法是指把运算对象放在运算符的后面。

因篇幅问题不能全部显示,请点此查看更多更全内容