Zhujiao057《编译原理》习题答案.docx

上传人:b****7 文档编号:10440047 上传时间:2023-02-11 格式:DOCX 页数:26 大小:34.14KB
下载 相关 举报
Zhujiao057《编译原理》习题答案.docx_第1页
第1页 / 共26页
Zhujiao057《编译原理》习题答案.docx_第2页
第2页 / 共26页
Zhujiao057《编译原理》习题答案.docx_第3页
第3页 / 共26页
Zhujiao057《编译原理》习题答案.docx_第4页
第4页 / 共26页
Zhujiao057《编译原理》习题答案.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

Zhujiao057《编译原理》习题答案.docx

《Zhujiao057《编译原理》习题答案.docx》由会员分享,可在线阅读,更多相关《Zhujiao057《编译原理》习题答案.docx(26页珍藏版)》请在冰豆网上搜索。

Zhujiao057《编译原理》习题答案.docx

Zhujiao057《编译原理》习题答案

《编译原理》习题答案

一、单项选择题(本大题共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)是一种典型的解释型语言。

A、BASICB、CC、FORTRAND、PASCAL

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、设文法为:

S→SA|A

A→a|b

则对句子aba,下面(D)是规范推导。

A、SSASAAAAAaAAabAaba

B、SSASAAAAAAAaAbaaba

C、SSASAASAaSbaAbaaba

D、SSASaSAaSbaAbaaba

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、xyxB、(xyx)*C、x*yx*D、xnyxn(n≥0)

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

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

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

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

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

18、语言的词法规则一般用Chomsky的(D)型文法来描述:

A、0B、1C、2D、3

19、文法

S→(L)|a

L→L,S|S

中的终结符号是(B)。

A、SB、,C、LD、|

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*,(VTVN)*,则称是一个(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、FortranB、PascalC、CD、都不是

29、Pascal中过程说明的局部变量地址分配在(B)。

A、调用者的数据区中B、被调用者的数据区中

C、主程序的数据区中D、公共数据区中

30、一个数据类型通常包括三种要素,下面(C)不是:

A、用于区别这种类型的数据对象的属性B、这种类型的数据对象可以具有的值

C、对这种类型的数据对象的内存分配D、可以作用于这种类型的数据对象的操作

31、正则文法(A)二义性的。

A、可以是B、一定不是C、一定是

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

A、存在B、不存在C、无法判定是否存在

33、给定文法A→bA|ca,为该文法句子的是(C)

A、bbaB、cabC、bcaD、cba

34、设有文法G[S]:

SS1|S0|Sa|Sc|a|b|c,下列符号串中是该文法的句子有(D)

A、ab0B、a0c01C、a0b0aD、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、文法G:

E→E+T|T

T→T*P|P

P→(E)|I

则句型P+T+i的句柄和最左素短语为(B)。

A、P+T和iB、P和P+TC、i和P+T+ID、P和T

43、语言的词法规则一般用Chomsky的(D)型文法来描述:

A、0B、1C、2D、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、4B、2C、0D、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、扩展的BNFD、翻译模式

54、自上而下分析面临的四个问题中,不包括(D)。

A、需消除左递归B、存在回朔C、虚假匹配D、寻找可归约串

55、从左线性文法构造有限自动机时,通常自动机状态个数比文法非终结符号数多(D)

A、4B、2C、0D、1

56、正规表达式(ε|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}

57、词法分析器的输入是(A)。

A、符号串B、源程序C、语法单位D、目标程序

58、两个有穷自动机等价是指它们的(C)。

A、状态数相等B、有向弧数相等

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

59、若状态k含有项目“A→α·”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A→α”归约的语法分析方法是(D)。

A、LALR分析法B、LR(0)分析法C、LR

(1)分析法D、SLR

(1)分析法

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

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

61、在使用高级语言编程时,首先可通过编译程序发现源程序的全部和部分(A)错误。

A、语法B、语义C、语用D、运行

62、所谓在程序中某个给定点是活跃的,是指如果在程序中,(A)。

A、该点以后被引用B、该点以后被计算C、该点正在被计算D、该点一直被计算

63、LR语法分析栈中存放的状态是识别(B)的DFA状态。

A、前缀B、可归前缀C、项目D、句柄

64、算符优先分析法每次都是对(B)进行归约:

A、句柄B、最左素短语C、素短语D、简单短语

65、有文法G=({S},{a},{S→SaS,S→ε},S),该文法是(B)。

A、LL

(1)文法B、二义性文法C、算符优先文法D、SLR

(1)文法

66、文法开始符号的所有(B)作为属性计算前的初始值。

A、综合属性B、继承属性C、继承属性和综合属性D、都不是

67、对应于产生式A→XY继承属性Y.y的属性计算,可能正确的语义规则是(C)。

A、A.a:

=f(X.x,Y.y)B、Y.y:

=f(A.a,Y.y)C、Y.y:

=f(X.x)D、A.a:

=f(Y.y)

68、布尔表达式计算时可以采用某种优化措施,比如AandB用if-then-else可解释为(B)。

A、ifAthentrueelseB;B、ifAthenBelsefalse;

C、ifAthenfalseelsetrue;D、ifAthentrueelsefalse;

69、合并表达式中常量运算的目的是(D)。

A、使表达式中的常量尽可能少

B、是表达式尽可能简短

C、将可在编译时刻计算的常量运算在编译时刻计算出来,然后用所计算出来的值替换表达式中出现的所有这种常量运算,使得生成的代码指令尽可能少

D、以上都是

70、语法分析器接收以(C)为单位的输入,并产生有关信息供以后各阶段使用。

A、表达式B、产生式C、单词D、语句;

71、LR语法分析栈中存放的状态是识别(B)的DFA状态。

A、前缀B、可归前缀C、项目D、句柄;

72、中间代码生成所依据的是(C)。

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

73、一个(C)指明了在分析过程中的某时刻所能看到产生式多大一部分。

A、活前缀B、前缀C、项目D、项目集

74、在LR(0)的ACTION子表中,如果某一行中存在标记“rj”的栏,则(A)。

A、该行必定填满rjB、该行未填满rj

C、其他行也有rjD、goto子表中也有rj

75、对应于产生式A→XY继承属性Y.y的属性计算,可能正确的语义规则是(C)。

A、A.a:

=f(X.x,Y.y)B、Y.y:

=f(A.a,Y.y)C、Y.y:

=f(X.x)D、A.a:

=f(Y.y);

76、就文法的描述能力来说,有(C)。

A、SLR

(1)⊂LR(0)B、LR

(1)⊂LR(0)

C、SLR

(1)⊂LR

(1)D、无二义文法⊂LR

(1)

77、乔姆斯基(Chomsky)把文法分为四种类型,即0型、1型、2型、3型。

其中3型文法是(B)

A、非限制文法B、正则文法C、上下文有关文法D、上下文无关文法

78、一个句型中的(A)称为该句型的句柄。

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

79、在自底向上的语法分析方法中,分析的关键是(D)

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

80、若项目集Ik含有A→α·,则在状态k时,仅当面临的输入符号a∈FOLLOW(A)时,才采取“A→α·”动作的一定是(D)。

A、LALR文法B、LR(0)文法C、LR

(1)文法D、SLR

(1)文法

81、在LR分析法中,分析栈中存放的状态是识别规范句型(C)的DFA状态。

A、句柄B、前缀C、活前缀D、LR(0)项目

82、为了便于优化处理,三地址代码可以表示成(D)。

A、三元式B、四元式C、后缀式D、间接三元式

83、使用三元式是为了(B)。

A、便于代码优化处理B、避免把临时变量填入符号表

C、节省存储代码的空间D、提高访问代码的速度

84、表达式-a+b*(-c+d)的逆波兰式是(D)。

A、ab+-cd+-*B、a-b+c-d+*C、a-b+c-d+*D、a-bc-d+*+

85、若a为终结符,则A→α·aβ为(B)项目

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

86、评价一个代码生成器最重要的指标是(A)。

A、代码的正确性B、代码的高效性C、代码的简洁性D、代码的维护性

87、以绝对机器代码为输出,所有地址均已定位,这种代码的优点是(A)。

A、可立即执行B、可进一步优化C、目标代码简短D、目标代码执行效率高

88、一个上下文无关文法G包括四个组成部分,它们是一组非终结符号,一组终结符号,一个开始符号,以及一组(B)

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

89、词法分析器用于识别(C)

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

90、编译程序是一种(B)

A、汇编程序B、翻译程序C、解释程序D、目标程序

91、按逻辑上划分,编译程序第三步工作是(A)

A、语义分析B、词法分析C、语法分析D、代码生成

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

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

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

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

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

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

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

94、表达式-a+b*(-c+d)的逆波兰式是(D)。

A、ab+-cd+-*B、a-b+c-d+*C、a-b+c-d+*D、a-bc-d+*+

95、在整个编译期间,对符号表的操作大致都有(B)。

A、查询给定名字B、填入新名字C、访问给定名字的信息

D、更新给定名字的信息E、删除无用项

96、在编译过程中,符号表的主要作用是(B)。

A、帮助错误处理B、辅助语法错误的检查C、辅助语义的正确性检查

D、辅助代码生成E、辅助对目标程序的优化

97、教材介绍了三种符号表的构造和处理方法,其中(B)中常把符号表组织成二叉树形式。

A、线性组织B、排序组织和二分法C、杂凑(散列)组织D、非线性组织

98、编译过程中,语法分析器的任务就是(B)

A、分析单词是怎样构成的B、分析单词串是如何构成语句和说明的

C、分析语句和说明是如何构成程序的D、分析程序的结构

99、若一个文法是递归的,则它所产生的语言的句子(A)。

A、是无穷多个B、是有穷多个C、是可枚举的D、个数是常量

100、识别上下文无关语言的自动机是(C)

A、下推自动机B、NFAC、DFAD、图灵机

101、编译原理各阶段工作都涉及(B)

A、词法分析B、表格管理C、语法分析D、语义分析

102、正则表达式R1和R2等价是指(C)

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

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

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

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

103、编译程序使用(B)区别标识符的作用域。

A、说明标识符的过程或函数名B、说明标识符的过程或函数的静态层次

C、说明标识符的过程或函数的动态层次D、标识符的行号

104、表达式作为实在参数可以传递给被调用的过程,替换过程体中的(B)。

A、局部变量B、形式参数C、全局变量D、实在参数

105、两个不同过程的活动,其生存期是(B)。

A、重叠的,不嵌套的B、不重叠的,嵌套的

C、重叠的,嵌套的D、不重叠的,不嵌套的

106、设G为算符优先文法,G的任意终结符对a、b有以下关系成立(C)。

A、若f(a)>g(b),则a>bB、若f(a)

C、a~b都不一定成立D、a~b一定成立

107、有限状态自动机能识别(C)。

A、上下文无关文法B、上下文有关文法

C、正规文法D、短语文法

108、已知文法G[S]:

S→A1,A→A1|S0|0。

与G等价的正规式是(C)

A、0(0|1)*B、1*|0*1C、0(1|10)*1D、1(10|01)*0

109、与(a|b)*(a|b)等价的正规式是(C)。

A、a*|b*B、(ab)*(a|b)C、(a|b)(a|b)*D、(a|b)*

110、(D)文法不是LL

(1)的。

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

111、给定文法A→bA|cc,则符号串①cc②bcbc③bcbcc④bccbcc⑤bbbcc中,是该文法句子的是(D)

A、①B、③④⑤C、②④D、①⑤

112、LR

(1)文法都是(C)

A、无二义性且无左递归B、可能有二义性但无左递归

C、无二义性但可能是左递归D、可以既有二义性又有左递归

113、文法E→E+E|E*E|i的句子i*i+i*i有(C)棵不同的语法树。

A、1B、3C、5D、7

114、文法S→aaS|abc定义的语言是(C)。

A、{a2kbc|k>0}B、{akbc|k>0}C、{a2k-1bc|k>0}D、{akakbc|k>0}

115、将编译程序分成若干个“遍”是为了(B)。

A、提高程序的执行效率

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

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

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

116、构造编译程序应掌握(D)。

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

117、变量应当(C)。

A、持有左值B、持有右值

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

118、下列关于标识符和名字叙述中,正确的是(C)。

A、标识符有一定的含义B、名字是一个没有意义的字符序列

C、名字有确切的属性D、A~C都不正确

119、(D)不可能是目标代码。

A、汇编指令代码B、可重定位指令代码

C、绝对指令代码D、中间代码

120、若B为非终结符,则A→.B为(D)。

A、移进项目B、归约项目C、接受项目D、待约项目

121、在运行空间的划分中有一个单独的区域叫堆,用来存放(C)。

A、目标代码B、静态数据C、动态数据D、过程参数

122、Fortran语言的编译程序采用(A)分配策略。

A、静态B、最佳C、堆式动态D、栈式动态

123、使用(A)可以定义一个程序的意义。

A、语义规则B、词法规则

C、产生规则D、词法规则

124、词法分析器的输入是(B)。

A、单词符号串B、源程序

C、语法单位D、目标程序

125、程序所需的数据空间在程序运行前可确定,称为(C)管理技术。

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

126、堆式动态分配申请和释放存储空间遵守(D)原则。

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

127、静态分配允许程序出现(C)。

A、递归过程B、可变体积的数据项目C、静态变量D、待定性质的名字

128、在编译方法中,动态存储分配的含义是(A)。

A、在运行阶段对源程序中的数组、变量、参数等进行分配

B、在编译阶段对源程序中的数组、变量、参数进行分配

C、在编译阶段对源程序中的数组、变量、参数等进行分配,在运行时这些数组、变量、参数的地址可根据需要改变

D、以上都不正确

129、中间代码生成时所遵循的是(C)。

A、语法规则B、词法规则

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

130、编译程序是对(D)。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1