admin 管理员组文章数量: 1086019
2025年1月1日发(作者:使用int函数四舍五入取整)
编译原理-题库
1、关于有限自动机叙述正确的是()
A、 有限自动机分为确定的有限自动机和不确定的有限自动机
B、 有限自动机可由状态转换图表达
C、 有限自动机可由状态转换矩阵表达
D、 有限自动机可以识别正规集
答案: ABCD
2、编译原理各阶段的工作都涉及到()
A、 表格管理
B、 语法分析
C、 出错处理
D、 代码优化
答案: AC
3、程序语言一般分为()和()
A、 高级语言
B、 专用程序语言
C、 低级语言
D、 通用程序语言
答案: AC
4、高级语言的翻译方式有()和()
A、 汇编方式
B、 模拟方式
C、 解释方式
D、 编译方式
答案: CD
5、语法分析器的常用方法是()
A、 自顶向下
B、 自底向上
C、 自左向右
D、 自右向左
答案: AB
6、请说明你使用的语法分析方法()
A、 LL1
B、 OPG
C、 LR
D、 YACC
答案: ABCD
7、数据的逻辑结构有哪些()
A、 集合结构
B、 线性结构
C、 树形结构
D、 图形结构
答案: ABCD
8、NFA与DFA的不同之处()
A、 初态定义不同
B、 字母表定义不同
C、 转换函数定义不同
D、 终态定义不同
答案: AC
9、
A、
B、
C、
D、
答案: A
10、
A、
B、
C、
D、
答案: C
11、
A、
是
B、 不是
C、 无法判断
D、 可能
答案: A
12、
A、 上下文有关
B、 上下文无关
C、 正则
D、 0型
答案: C
13、
A、
B、
C、
D、
答案: D
14、
A、
B、
C、
D、
答案: D
15、LL(1)文法的充要条件是( )。
A、
B、 该文法对应的LL(1)分析表中每个项目最多只有一条产生式。
C、 A和B
D、 都不是
答案: B
16、文法A->aAb|ab生成的语言是( )。
A、 {ab}
B、 {aAb}
C、
D、
答案: C
17、以下说法中正确的是( )
A、
B、
C、
D、
答案: B
18、8. 正则式的“*”读作( )。
A、 并且
B、 连接
C、 正则闭包
D、 闭包
答案: D
19、一个LR(0)文法一定是SLR(1)文法。
答案: 正确
20、在类型声明文法中,类型属性type是继承属性。
答案: 正确
21、在构造递归下降伪代码时,将非终结符A翻译为一个匹配过程match(A)。
答案: 错误
22、三元式和四元式都是三地址码的实现形式。
答案: 正确
23、存在这样的语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。
答案: 错误
24、LL(1)分析中“移进-归约”中使用( )完成分析。
A、 哈希表
B、 队列
C、 线性表
D、 显式栈
答案: D
25、LR(0)文法的充要条件是( )。
A、 对应的LR(0)项目DFA中每个项目都没有移进-归约冲突;
B、 对应的LR(0)项目DFA中每个项目都没有归约-归约冲突;
C、 A和B
D、 都不是
答案: C
26、编译程序中的语义分析器接受以( )为单位的输入,并产生信息供以后各阶段使用。
A、 语法树
B、 子程序
C、 单词
D、 语句
答案: A
27、编译器的( )阶段将记号流转换成语法树。
A、 语法分析
B、 语义分析
C、 代码生成
D、 词法分析
答案: A
28、编译器的( )阶段可将源程序的字符流收集到若干记号中。
A、 语法分析
B、 语义分析
C、 代码生成
D、 词法分析
答案: D
29、高级语言编译程序常用的语法分析方法中,递归下降分析法属于_____ 分析方法。
A、 项有;
B、 自左至右
C、 自上而下
D、 自下而上
E、 自右向左
答案: B
30、合成属性的计算可以通过对语法树进行( )遍历进行。
A、 前序
B、 中序
C、 后序
D、 任意
答案: C
31、某C语言源代码文件包含#include ,( )将对源代码进行处理,把文件stdio.h包含进去。
A、 编译器
B、 解释器
C、 汇编器
D、 预处理器
答案: D
32、可以描述一个语言的文法不是唯一的。( )
答案: 正确
33、在带进制数文法中,值属性val是继承属性。( )
答案: 错误
34、编译器所生成的目标代码都是直接可以在硬件上运行的机器语言。( )
答案: 错误
35、三地址码和DAG都是中间代码。( )
答案: 正确
36、
答案: 错误
37、乔姆斯基的2型文法是这样一种语言,其产生式限制为( )。
A、 α->β
B、 P->β
C、 P->a或P->aβ
D、 αPγ->αβγ
答案: B
38、文法AaA | b属于正则文法,正则文法在乔姆斯基层次中对应于( )文法。
A、 1型
B、 2型
C、 3型
D、 0型
答案: C
39、一个句型的最左直接短语称为该句型的_______。
A、 句型
B、 短语
C、 简单短语
D、 句柄
答案: D
40、一个语言的文法是_____。
A、 惟一的
B、 不惟一的
C、 个数有限的
答案: B
41、以下说法中正确的是( )。
A、 任何语言都可以描述为一个正则表达式。
B、 对于任何一个NFA M,都存在一个DFA M’,满足L(M)= L(M’)。
C、 任何一个DFA只有一个终态。
D、 NFA的弧上标记只含输入字母表中的元素。
答案: B
42、在使用高级语言编程时,首先可通过编译程序发现源程序的全部______错误和部分语义错误
A、 语法
B、 语义
C、 语用
D、 运行
答案: A
43、在状态转换图中,结点代表____,用圆圈表示。
A、 输入缓冲区
B、 向前搜索
C、 状态
D、 字符串
答案: C
44、正则式的“|”读作______。
A、 并且
B、 或者
C、 连接
D、 闭包
答案: B
45、字母表是 {0, 1},写出以01 结尾的所有串的正规式是( )。
A、 (0|1)*01
B、 0*1*01
C、 1*0*01
D、 (01)*
答案: A
46、综合属性的依赖关系在语法树表现为( )。
A、 节点向子节点
B、 节点向父节点
C、 兄弟指向右兄弟
D、 兄弟指向左兄弟
答案: B
47、
答案: 错误
48、简单算术表达式文法中值是继承属性。( )
答案: 错误
49、LEX是用来生成词法分析程序的程序。( )
答案: 正确
50、LL(1)文法都不是二义性的。( )
答案: 正确
51、LR(0)文法不一定是SLR(1)文法。( )
答案: 正确
52、试将布尔表达式a翻译成四元式(设起始四元式标号为100)。
答案:
100: if a
101: T1:=0
102: goto 104
103: T1:=1
104: if c
105: T2:=0
106: goto 108
107: T2:=1
53、设标识符为以一个字母(letter)开头、后跟任意字母或者数字(digit)的串,请画出识别标
识符的DFA。
答案:
54、
答案:
55、
答案:
;
56、
答案:
57、
答案:
(+, x, y, t1)
;
(>, t1, 3, t2)
;
左
;
58、
答案:
59、
答案:
60、
答案:
61、
答案:
属性
;
62、
答案:
三地址码
;
DAG
;
63、
答案:
64、
答案:
65、
答案:
输入串
;
归约
;
66、
答案:
67、
答案:
68、
答案:
69、
答案:
;
70、
答案:
71、
答案:
72、
答案:
73、
答案:
74、
答案:
75、表达式a-b*(c+d)对应的逆波兰式是 。
答案:
abcd+*-
;
76、程序设计语言中名字的作用域一般遵循 的原则,即若有多个同名定义,该名字的引用应对应于
与其引用最近的那个声明。
答案:
最近嵌套
;
77、若文法G的某个句子存在两棵以上的语法树,则称该文法是 文法。
答案:
二义性
;
78、自上而下语法分析方法的基本思想是:从文法的 出发,不断进行 ,最终得到输入串。
答案:
开始符号
;
推导
;
79、简述编译的有哪几个阶段?各阶段的作用是什么?
答案:
编译程序的工作一般分为五个阶段:
(1)词法分析:对源程序字符流进行扫描和分解,识别出一个个单词符号。
(2)语法分析:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位。
(3)语义分析和中间代码产生:检查源程序的语义错误(如:变量是否定义、类型是否正确等),
并收集代码生成阶段要用到的类型信息。对各类不同语法范畴按语言的语义进行初步翻译。
(4)优化:对于前阶段产生的中间代码进行加工变换,以期在最后阶段产生更高效的目标代码。
(5)目标代码产生:把中间代码变换成特定机器上的目标代码。
80、将正则表达式a b | a 翻译为N FA。
答案:
81、令文法G为:
ND| ND
D0|1|…|9
(1) 该文法的语言是什么?
(2) 给出句子456的最左推导。
答案:
(1)该文法生成的语言是正整数。
(2)N=>ND=>NDD=>DDD=>4DD=>45D=>456
82、将下面的算术表达式翻译成四元式。
2+(3+(4+5))
答案:
将下面的算术表达式翻译成四元式。
2+(3+(4+5))
(+,4,5,t1)
(+,3,t1,t2)
(+,2,t2,t3)
83、程序的执行方式主要有哪几种?请各举1例。
答案: 解释执行,如:Basic;编译执行,如:C;混合型,如:JAVA。
84、简述前端和后端,并说明为什么要区分前端和后端。
答案: 区分前端和后端的目的是为了减少对内存容量的要求,使程序逻辑结构清晰; 优化更充分,
有利于移植。
85、程序执行的方式有解释型、编译型和()三种
答案: 混合型;
86、下列选项中,不需要使用编译程序的事
A、 C
B、 BASIC
C、 JAVA
D、 以上都是
答案: B
87、翻译程序
答案: 把某一种语言程序(称为源语言程序)等价地转换成另一种语言程序(称为目标语言程序)
的程序
88、根据不同用途和侧重,编译程序可分为以下哪几种
A、 诊断编译程序
B、 优化编译程序
C、 交叉编译程序
D、 可变目标编译程序
答案: ABCD
89、()专门用于帮助程序开发和调试
A、 交叉编译程序
B、 诊断编译程序
C、 可变目标编译程序
D、 优化编译程序
答案: B
90、交叉编译程序主要作用是
A、 着重提高代码效率
B、 专门用于帮助程序开发和调试
C、 不需重写编译程序中与机器无关的部分就能改变目标级
D、 产生不同于其宿主主机的机器代码
答案: D
91、诊断编译程序专门用于帮助程序开发和调试
答案: 正确
92、()不需要重写编译程序中与机器无关的部分就能改变目标机
A、 诊断编译程序
B、 可变目标编译程序
C、 优化编译程序
D、 交叉编译程序
答案: B
93、解释程序
答案: 把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行源程序本身
94、目前最常见的目标代码形式是
A、 绝对指令代码
B、 可重定位指令代码
C、 汇编指令代码
D、 无法判断
答案: B
95、曾经的表格包括
A、 符号名表
B、 常数表
C、 标号表
D、 过程引用表
答案: ABCD
96、表格的格式至少包含()和相关信息
答案: 名字;
97、简述出错处理程序的作用是
答案: 发现原程序中的错误,把有关错误信息报告给用户
98、"遍"
答案: 所谓“遍”,就是对源程序或源程序的中间表示从头到尾扫描一次,并完成相应处理,生成
新的中间结果或目标程序。
99、一便可以由若干段组成
答案: 正确
100、程序设置语言方式可以单遍编译,也可以多变编译
答案: 正确
101、如果层次越深,所需遍数越少
答案: 错误
102、下列选项中,编译的前端是
A、 目标需要
B、 中间语言
C、 源语言
D、 无法判断
答案: C
103、下列选项中,与编译后端有关的是
A、 词法分析
B、 语法分析
C、 中间代码产生
D、 目标代码产生
答案: D
104、逻辑程序设计中常用的语言是()
A、 FORTRAN
B、 COBOL
C、 PROLOG
D、 AD
答案: C
105、进行系统程序设计常使用()语言
A、 COBOL
B、 C/C++
C、 AD
D、 PROLOG
答案: B
106、与机器语言或汇编语言比较,高级语言的优点在于哪些方面
答案: 1.较接近于数学语言和工程语言,比较直观、自然和易于理解;2.便于验证其正确性,易于
改错3.;编写效率高;4.易于移植。
107、程序本质上是一定字符集上的一个字符串
答案: 正确
108、不可再细化是单词符号特征之一
答案: 正确
109、下列选项中,单词符号一般包括
A、 常数
B、 基本字
C、 界符
D、 算符
答案: ABCD
110、一组规则,用它可以定义一个程序的意义
答案: 正确
111、ADA语言中采用的是()
A、 操作语义
B、 指称语义
C、 代数语义
D、 无法判断
答案: B
112、描述数据和对数据的运算是程序语言的基本功能
答案: 正确
113、一个数据类型通常包括属性、取值范围及()三个要素
答案: 操作;
114、确定数组的数组大小是可变的
答案: 错误
115、()是一组数据化的记录结构
A、 栈
B、 表格
C、 线性表
D、 字符串
答案: C
116、Ada语言通过()提供了数据封装的支持
答案: 程序包;
117、表达式是由运算量和()组成
答案: 算符;
118、在数学上成立的代数性质在计算机上也完全成立
答案: 错误
119、但是性质能引用到什么程度是具体的语言不同而不同
答案: 正确
120、Chomsky文法中都由四部分组成,对产生式的限制有所不同
答案: 正确
121、()文法的产生式形为A→β
A、 1型
B、 2型
C、 3型
D、 4型
答案: B
122、3型文法的产生形式为()
A、 A→β
B、 α→β
C、 A→B
D、 A→α
答案: D
123、简述词法分析的任务
答案: 词法分析的任务:从左至右逐个字符地对源程序进行扫描,产生一个个单词符号
124、词法分析器的功能包括输入原程序和()
答案: 输入单词符号;
125、二元组包含两个字段,分别是单词种别和()
答案: 单词自身的值;
126、单词种别通常用()表示
答案: 整数编码;
127、若一个种别只有一个单词符号,则种别编码就代表该单词符号
答案: 正确
128、常数的值可表示成标准的二进制形式
答案: 正确
129、词法分析作为一个独立阶段时,其优点包括
A、 结构简洁
B、 清晰
C、 条理化
D、 有利于集中考虑词法分析的一些细节问题
答案: ABCD
130、输入串最开始是放在()中
答案: 输入缓冲区;
131、预处理子程序的工作包括
A、 跳格
B、 回车
C、 剔除无用的空白
D、 区分标号区
答案: ABCD
132、所有的基本字都是保留字,用户不能用他们做自己的标识符
答案: 正确
133、ch是指
A、 字符数组
B、 字符变量
C、 整型函数
D、 以上都不是
答案: B
134、正规表达式用于形式化的描述()的格式
答案: 字符串;
135、基本正规表达式组成部分包括
答案: 由一个单字符a(其中a在正规字符的字母表∑中)以及元字符空串(空串,不含任何字符的
串)或元字符空集(空集)组成。
136、正规集可以用正规表达式表示
答案: 正确
137、一个字集合是正规集当且仅当它能用正规式表示
答案: 正确
138、所有词法结构一般都可以用正规式描述
答案: 正确
139、DFAM所识别的字的全体记为()
答案: L(M);
140、简述非确定有限自动机(NFA)的定义
答案: 对于任何两个有限自动机M和M',如果L(M)=L(M'),则称M与M'等价。
141、DFA可以表示为状态转换图或状态转换矩阵
答案: 正确
142、判定两个自动机等价性的算法是存在的
答案: 正确
143、一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态
答案: 错误
144、编译程序与解释程序均为翻译程序
答案: 正确
145、简述编译程序的组成
答案: 编译程序主要由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优
化程序、目标代码生成程序、信息表管理程序、错误检查处理程序组成
146、哪个不是编译系统的组成部分
A、 词法分析器
B、 代码生成器
C、 设备管理程序
D、 语法分析器
答案: C
147、设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是什么
A、 词法分析
B、 无法分析
C、 语义分析
D、 代码生成
答案: B
148、下面不能用于对文法进行描述的是
A、 源语言
B、 EBNF
C、 BNF
D、 语法图
答案: A
149、词法分析器的输入是目标程序
答案: 错误
150、在词法分析阶段不能识别的是
A、 标识符
B、 运算符
C、 四元式
D、 常数
答案: C
151、简述DFA状态最少化的基本思想
答案: 把M的状态集划分为一些不相交的子集,使得任何两个不同子集的状态是可区别的,而同一子
集的任何两个状态是等价的。
152、终态不需要识别任何串已经到达终态了
答案: 正确
153、在编译程序中与生成中间代码的目的是便于存储空间的组织
答案: 错误
154、写出以a开头和结尾的所有小写字母串正则表达式
答案: ^a[./n]*a$
155、所有表示偶数的数字串
答案: ^0|2|4|6|8|([1-9]+[0-9]*[0|2|4|6|8]+)$
156、LL(1)分析是使用递归调用来完成分析
答案: 错误
157、简述左递归的定义
答案: 一个文法是左递归的,若我们可以找出其中存在某非终端符号A,最终会推导出来的句型
(sentential form)里面包含以自己为最左符号(left-symbol)的句型。
158、一个文法G,若存在P经过一次或多次推导得到Pa(即能推导出以P开头的式子),则称G是左递
归的
答案: 正确
159、左递归分为直接左递归和()
答案: 间接左递归;
160、间接左递归经过一次推导就可以看出文法存在左递归
答案: 错误
161、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰
答案: 正确
162、采用自上而下分析,必须
A、 消除左递归
B、 消除右递归
C、 消除回溯
D、 提取公共左因子
答案: C
163、采用()语法分析时,必须消除文法的左递归
答案: 自上而上;
164、分析程序由一组递归过程组成,文法中每个非终结符对应一个过程
答案: 正确
165、递归下降分析器
答案: 分析程序由一组递归过程组成,文法中每个非终结符对应一个过程;所以这样的分析程序称
为递归下降分析器
166、简述ADVANCE过程主要作用
答案: 把输入串指示器IP指向下一个输入符号,即读入一个单字符号
167、()表示当前所指的输入符号
A、 ADVANCE
B、 SYM,IP
C、 ERROR
D、 以上都不是
答案: B
168、简述构造递归下降分析的基本方法
答案: 将一个非终结符A的文法规则看作将识别A的一个过程的定义
169、每个非终结符有对应的子程序的定义
答案: 正确
170、表示()规则的图形表示法称语法图
答案: EBNF;
171、语法图中使用圆或椭圆表示()
A、 序列
B、 选择
C、 非终结符
D、 终结符
答案: D
172、语法图中使用()表示非终结图
A、 方框
B、 圆
C、 椭圆
D、 带箭头的线
答案: A
173、语法图中方框或矩形表示序列和选择
答案: 错误
174、消除着左递归和提取左因子将有助于获得无多重定义的分析表M
答案: 正确
175、一个文法G的预测分析表M不含多重定义入口,当且仅当该文法为LL(1)的
答案: 正确
176、语法分析的方法包括自上而下分析法和()
答案: 自下而上分析法;
177、预测分析方法是自上而下分析法
答案: 错误
178、预测分析程序优点有
A、 直观
B、 简单
C、 宜于手工实现
D、 迅速
答案: ABC
179、自下而上分析基本思想是从()
答案: 输入串;
180、自下而上分析方法常用有算符优先分析法和()
答案: LR分析法;
181、LR分析法适合分析表达式
答案: 错误
182、归约的基本思想是
答案: 用一个寄存符号的先进后出栈,把输入符号一个一个地移进到栈里,当栈顶形成某个产生式
的候选式时,即把栈顶的这一部分替换成(归约为)该产生式的左部符号。
183、一个句型的最左直接短语称为该句型的句柄
答案: 正确
184、()作为栈底符号
答案: "#";
185、LR分析法是在()年有Knuth提出
A、 1866
B、 1965
C、 1967
D、 1980
答案: B
186、规范归约的关键问题是寻找()
答案: 句柄;
187、“现实”是指
A、 以右符号栈的内容
B、 当前的输入符号
C、 根据产生式推测未来可能遇到的输入符号
D、 以上都不是
答案: B
188、LR分析方法是把"历史"及"展望"综合抽象成状态;由()和现行的输入符号唯一确定每一步工
作
答案: 栈顶的状态;
189、ACTION[s,a]所规定的动作中,()宣布分析成功,停止分析器工作
A、 移进
B、 归约
C、 接受
D、 报错
答案: C
190、LR文法
答案: 对于一个文法,如果能够构造一张分析表,使得它的每个入口均是唯一确定的,则这个文法
就称为LR文法。
191、栈内的如果出现句柄,句柄一定在栈的底部
答案: 错误
192、栈内永远不会出现句柄之后的符号
答案: 正确
193、活前缀
答案: 只规范句型的一个前缀,这种前缀不含句柄之后的任何符号
194、A→α.称为()
A、 接受项目
B、 移进项目
C、 待约项目
D、 归约项目
答案: D
195、归约项目S’→α.称为
A、 接受项目
B、 待约项目
C、 归约项目
D、 移进项目
答案: A
196、构成识别一个文法活前缀的DFA的项目集(状态)的全体称为()
答案: 文法的LR(0)项目集规范族;
197、假定文法G是一个以S为开始符号的文法,引进一个新的非终结符S',并加进一个产生式S→→S,
构造一个文法G',S'是G'的开始符号。那么,我们称G'是G的拓广文法。
答案: 正确
198、假若一个文法G的拓广文法G的活前缀识别自动机中的每个状态(项目集)含有多个归约项目
答案: 错误
199、LR(0)文法没有实用价值
答案: 正确
200、属性是编程语言结构的任意特性
答案: 正确
201、属性包括
A、 表达式的值
B、 变量的数据类型
C、 程序的目标代码
D、 数的有效位数
答案: ABCD
202、属性与文法符号相关,表示方法类似面向对象
答案: 正确
203、属性文法又称属性翻译文法,是在()提出,由一组语义规则构成
A、 1962年
B、 1968年
C、 1965年
D、 1980年
答案: B
204、属性可以进行利用语义规则进行计算和传递
答案: 正确
205、属性成分为综合属性和()两类
答案: 继承属性;
206、终结符只有综合属性,由词法分析器提供
答案: 错误
207、非终结符既可有综合属性也可有继承属性
答案: 正确
208、属于计算规则中只能使用相应产生式中的文法符号的属性
答案: 正确
209、语义规则所描述的工作可以包括
A、 属性计算
B、 静态语义检查
C、 符号表操作
D、 代码生成
答案: ABCD
210、在无法树中,一个结点的继承属性由此结点的()或兄弟结点的某些属于确定
答案: 父结点;
211、有源程序的语法结构所驱动的处理办法称为()
答案: 语法制导翻译法;
212、语义规则的计算包括
A、 产生代码
B、 在符号表中存放信息
C、 给出错误信息
D、 执行任何和其他动作
答案: ABCD
213、抽象语法树
答案: 在语法树中去掉那些对翻译不必要的信息,从而获得更有效的源程序中间表示。这种经变换
后的语法树称之为抽象语法树
214、S-属性文法适合于一遍扫描的自上而下分析
答案: 错误
215、L-属性文法适合于一遍扫描的()分析
A、 自上而下
B、 自下而上
C、 随机
D、 无法判断
答案: A
216、S-属性文法只含有综合属性
答案: 正确
217、如果既有综合属性又有继承属性,在建立模式时必须保证哪些要求
答案: 1.产生式右边的符号的继承属性必须在这个符号以前的动作中计算出来;2.一个动作不能引
用这个动作右边的符号的综合属性;3.产生式左边非终结符的综合属性只有在它所引用的所有属性都
计算出来以后才能计算。计算这种属性的动作通常可放在产生式右端的未尾。
218、一个动作不能引用这个动作右边的符号的综合属性
答案: 正确
219、产生式右边的符号的继承属性必须在这个符号以前的动作中计算出来
答案: 正确
220、为了构造不带回溯的自自顶向下语法分析方法时,必须消除文法中的左递归
答案: 正确
221、静态语义检查包括
A、 控制流检查
B、 一致性检查
C、 相关名字检查
D、 名字的作用域分析
答案: ABCD
222、中间语言(复杂性界于源语言和目标语言之间)的好处包括
A、 便于进行与机器无关的代码优化工作
B、 易于移植
C、 使编译程序的结构在逻辑上更为简单明确
D、 易于窜改
答案: ABC
223、图表示包括DAG和()
答案: 抽象语法树;
224、三地址代码包括三元式、四元式和()三种常见的实现形式
答案: 间接三元式;
225、若E是一个变量或常量,则E的后缀是E自身
答案: 正确
226、如果E是(E)形式的表达式,则E的后缀式就是E的后缀式
答案: 正确
227、对表达式中的每个子表达式,DAG图中都有一个结点
答案: 正确
228、下列选项中,属于三地址语句种类的是
A、 x:=y op z
B、 x:=op y
C、 x:=y
D、 goto L
答案: ABCD
229、一个带有四个域的记录结构,这四个域分别称为op,arg1,arg2及()
答案: result;
230、用于控制语句的条件式是布尔表达式的基本作用之一
答案: 正确
231、布尔表达式是一段代码声明,它最终只有true和false两个取值
答案: 正确
232、最简单的布尔表达式是等式,这种布尔表达式用来测试一个值是否与另一个值相同
答案: 正确
233、布尔表达式2==4的值为()
答案: FALSE;
234、布尔表达式是布尔运算量和()符按一定语法规则组成的式子
答案: 逻辑运算;
235、不论是布尔变量还是布尔表达式,都只能取逻辑值True或False
答案: 正确
236、布尔表达式的翻译中只能进行一遍扫描
答案: 错误
237、对于常规AND(&)运算符和条件AND(&&)运算符来说,只有当运算符两边的子表达式的值都为真
时,整个布尔表达式的值为真
答案: 正确
238、常规AND(&)运算符和条件AND(&&)运算符区别在于
答案: 正规AND (&)运算符每次都计算运算符两边的子表达式的值,但是对于条件AND运算符来说,
只有当第一个子表达式的值为真时,才计算第二个表达式的值。条件运算符(&& 和 ||) 通常称为运
算优化的运算符,因为有时不需要计算整个表达式的值。
239、python不支持的数据类型有
A、 char
B、 int
C、 float
D、 list
答案: A
240、下列选项中,语法单位的形成规则不包括
A、 表达式
B、 基本字
C、 分程序
D、 函数
答案: B
241、程序语言的基本功能包括描述数据和()的运算
答案: 对数据;
242、高级需要分类包括
A、 强制式语言
B、 应用式语言
C、 基于规则的语言
D、 面向对象语言
答案: ABCD
243、面向对象语言具有
A、 封装性
B、 继承性
C、 多态性
D、 功能性
答案: ABC
244、()注重程序所表示的功能
A、 基于规则的语言
B、 强制式语言
C、 应用式语言
D、 面向对象语言
答案: C
245、一个名字能被使用的区域范围称作这个名字的()
答案: 作用域;
246、下列选项中,程序需要的语法描述中错误的是
A、 考虑一个有穷字母表∑字符集
B、 ∑上的字是指由∑中的字符所构成的一个有穷序列
C、 其中每一个元素称为一个字符
D、 每个元素的字符名称不同
答案: D
247、终结符是一个语言的不可再分的符号,在程序语言中对应于单词
答案: 正确
248、非终结符描述语法范畴不包括
A、 表达式
B、 语句
C、 过程
D、 基本字
答案: D
249、最左推导是指任何一步αβ都是对α中的最右非终结符进行替换
答案: 错误
250、用一张图表示一个句型的推导过程称为()
答案: 语法树;
251、如果一个文法存在某个句子对应两颗不同的语法树,则说这个文法是二义的
答案: 正确
252、对于口*中的任何字a,若存在一条从初态到某一终态的道路,且这条路上所有弧上的标记符连接
成的字等于a,则称a为()
答案: DFA M所识别(接收);
253、若E是(E)形式的表达式,那么E的后缀式就是()的后缀式
答案: E;
254、计算布尔表达式通常采用的方法有
答案: 通常采用两种方法1.如同计算算术表达式一样一步步算;2.采用某种优化措施
255、编译器的()阶段可将原程序的字符收集到若干记号中
A、 语法分析
B、 语义分析
C、 代码生成
D、 词法分析
答案: D
256、文法A→aA|b属于正则文法,正则文法在乔姆斯基层次中对于()文法
A、 1型
B、 2型
C、 3型
D、 0型
答案: C
257、某C语言源代码文件包含#include ,()将对源代码进行处理,把文件stdio.h包含进去。
A、 编译器
B、 解释器
C、 汇编器
D、 预处理器
答案: D
258、对于文法中的每条产生式是LL(1)文法的充要条件
答案: 错误
259、任何语言都可以描述为一个正则表达式
答案: 错误
260、任何一个DFA只有一个终态
答案: 错误
261、DFA的弧上标记只含输入字母表中的元素
答案: 错误
262、合成属性的计算可以通过对语法树进行()遍历进行
A、 前序
B、 中序
C、 后序
D、 任意
答案: C
263、正则式的“*”读作()
A、 并且
B、 连接
C、 正则闭包
D、 闭包
答案: D
264、编译程序中的语义分析器接收以()为单位的输入,并产生信息供以后各阶段使用
A、 语法树
B、 子程序
C、 单词
D、 语句
答案: A
265、一个LR(0)文法中一定是SLR(1)文法
答案: 正确
266、在类型声明文法中,属于类型type是继承属性
答案: 正确
267、三元式和四元都是三地址码的实现形式
答案: 正确
268、若文法G的某个句子存在两颗以上的语法树,则称该文法是()文法
答案: 二义性;
269、编辑器的词法分析阶段将记号流转换成语法树
答案: 错误
270、不是每个正则表达式e都有等价的NFAM.满足L(e)=L(M)。
答案: 错误
271、对于任何一个NFAM,都存在一个DFAM,足L(M)=L(M)
答案: 正确
272、DFA的弧上标记只含输入字母表中的元素和空串。
答案: 错误
273、NFA的弧上标记只含输入字母表中的元素答案
答案: 错误
274、把可重定位代码变成可执行代码的工作室由()完成的
A、 编译器
B、 预处理器
C、 装配/连接器
D、 汇编器
答案: C
275、可以描述一个语言的文法不是唯一的
答案: 正确
276、在带进制数文法中,值属性val是继承属性
答案: 错误
277、编译器所生成的目标代码都是直接可以在硬件运行的机器语言。
答案: 错误
278、三地址码和DAG都是中间代码
答案: 正确
279、在使用高级语言编程时,首先可通过编译程序发现源程序的全部()错误和部分语义错误。
A、 语法
B、 语义
C、 语用
D、 运行
答案: A
280、一个语言的文法是
A、 唯一的
B、 不唯一的
C、 个数有限的
D、 无法判断
答案: B
281、一个句型的最左直接短语称为该句型的
A、 句型
B、 短语
C、 简单短语
D、 句柄
答案: D
282、正则式的“|”读作
A、 并且
B、 或者
C、 连接
D、 闭包
答案: B
283、简单算术表达式文法中值是继承属性
答案: 错误
284、LL(1)文法都不是二义性的
答案: 正确
版权声明:本文标题:临沂大学继续教育编译原理-题库 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1735769481a1689618.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论