学期编译技术.docx
《学期编译技术.docx》由会员分享,可在线阅读,更多相关《学期编译技术.docx(40页珍藏版)》请在冰豆网上搜索。
学期编译技术
1.将编译程序分成若干个“遍”是为了()。
A.提高程序的执行效率
B.使程序的结构更加清晰
C.利用有限的机器内存并提高机器的执行效率
D.利用有限的机器内存但降低了机器的执行效率
答案:
B
2.()文法不是LL
(1)的。
A.递归
B.右递归
型
D.含有公共左因子
答案:
D
3.在LR(0)的ACTION子表中,如果某一行中存在标记“rj”的栏,则()。
A.该行必定填满rj
B.该行未填满rj
C.其他行也有rj
子表中也有rj
答案:
A
4.在LR分析法中,分析栈中存放的状态是识别规范句型()的DFA状态。
A.句柄
B.前缀
C.活前缀
(0)项目
答案:
C
5.若项目集Ik含有A→α.,则在状态K时,仅当面临的输入符号a∈Follow(A)时,才采用“A→α.”动作的一定是()。
文法
(0)文法
(1)文法
(1)文法
答案:
D
6.()和代码优化部分不是每个编译程序都必需的。
A.语法分析
B.中间代码生成
C.词法分析
D.目标代码生成
答案:
B
7.()不是编译程序的组成部分。
A.词法分析器
B.设备管理程序
C.语法分析程序
D.代码生成程序
答案:
B
8.汇编程序是将汇编语言程序翻译成()。
A.高级语言程序
B.机器语言程序
C.低级语言程序
D.机器语言或高级语言程序
答案:
B
9.编译的各个阶段工作都涉及()。
A.词法分析
B.表格管理
C.语法分析
D.语义分析
答案:
B
10.()不是NFA的成分。
A.有穷字母表
B.初始状态集合
C.终结状态集合
D.有限状态集合
答案:
B
11.设G是一个给定的文法,S是文法的开始符号,如果S->x(其中x∈V*),则称x是文法G的一个()。
A.候选式
B.句型
C.单词
D.产生式
答案:
D
12.编译过程中,语法分析器的任务是()。
A.分析单词是怎样构成的
B.分析单词串是如何构成语句和说明的
C.分析语句和说明是如何构成程序的
D.分析程序的结构
答案:
B
13.词法分析器的输出结果是()。
A.单词的种别编码
B.单词在符号表中的位置
C.单词的种别编码和自身值
D.单词自身值
答案:
C
14.编译程序中的语法分析器接受以()为单位的输入,并产生有关信息供以后各阶段使用。
A.表达式
B.产生式
C.单词
D.语句
答案:
C
15.编译程序在优化时()用到原程序中的注释。
A.可能要
B.不可能
答案:
B
16.代码生成属于编译器的()。
A.语义分析
B.语法分析
C.代码生成
D.综合
答案:
D
17.削减运算强度是对()的一种优化。
A.表达式
B.过程
C.基本块
D.循环
答案:
D
18.高级语言编译程序常用的语法分析方法中,递归分析法属于()分析方法。
A.自右至左
B.自左至右
C.自底向上
D.自顶向下
答案:
D
19.关于短语和句柄,正确的叙述是()。
A.短语就是句柄
B.直接短语才可能是句柄
C.最左短语一定是句柄
D.最右短语一定是句柄
答案:
B
20.正则文法()二义性的。
A.可以是
B.一定不是
C.一定是
D.可以不是
答案:
B
21.把汇编语言程序翻译成机器可执行的目标程序的工作是由()完成的。
A.编译器
B.汇编器
C.解释器
D.预处理器
答案:
B
22.解释程序和编译程序是两类程序语言处理程序,它们的主要区别在于()。
A.单用户与多用户的差别
B.对用户程序的差错能力
C.机器执行效率
D.是否生成目标代码
答案:
D
(1)文法()二义性的。
A.都是
B.都不是
C.不一定都是
答案:
B
24.在编译过程中,组织的符号表是()。
A.必须是唯一的
B.应当按符号的不同属性分为几个
C.可以唯一的也可按符号表不同属性分为几个
D.以上均不对
答案:
C
25.在目标代码生成阶段,符号表用()。
A.目标代码生成
B.语义检查
C.语法检查
D.地址分配
答案:
D
26.程序语言一般分为()两大类。
A.高级语言低级语言
B.低级语言通用程序语言
C.高级语言专用程序语言
D.低级语言专用程序语言
答案:
D
(K)文法()。
A.都是无二义性的
B.都是二义性的
C.一部分是二义性的
答案:
A
28.一个LR
(1)文法合并同心集后,如果不是LALR
(1)文法必定存在()。
A.移进--归约冲突
B.归约--归约冲突
答案:
B
29.规范规约是()。
A.最左规约
B.最右规约
C.动态规约
D.静态规约
答案:
A
30.如果文法是无二义的,那么规范归约是指()。
A.最左推导的逆过程
B.最右推导的逆过程
C.规范推导
D.最左归约的逆过程
答案:
B
31.过程P1调用P2时,连接数据不包含()。
A.嵌套层次显示表
B.老SP
C.返回地址
D.全局DISPLAY地址
答案:
A
+cde-*f/+:
=是赋值语句()相应的后缀式。
:
=a+b+c*d-e/f
:
=a+(b+c)*d-e/f
:
=a+b+c*(d-e)/f
:
=a+b+c+(c*d)-e/f
答案:
C
33.对任何一个编译程序来说,产生中间代码是()。
A.不可缺少的
B.不一定必要的
答案:
B
34.程序基本块是指()。
A.一个子程序
B.一个仅有一个入口和一个出口的语句
C.一个没有嵌套的程序段
D.一组顺序执行的程序段,仅有一个入口和一个出口
答案:
D
35.间接三元式表示法的优点是()。
A.采用间接码表,便于优化处理
B.节省存储空间,不便于表的管理
C.便于优化处理,节省存储空间
D.节省存储空间,不便于优化管理
答案:
A
36.解释程序处理语言时,大多数采用的是()。
A.源程序命令被逐个直接解释执行
B.先将源程序转化为中间代码,再解释执行
C.先将源程序解释转化为目标程序,再执行
D.以上方法都可以
答案:
B
37.与编译系统相比,解释系统()。
A.比较简单,可移植性好,执行速度快
B.比较复杂,可移植性好,执行速度快
C.比较简单,可移植性差,执行速度慢
D.比较简单,可移植性好,执行速度慢
答案:
D
38.一个句型中称为句柄的是该句型的最左()。
A.非终结符号
B.短语
C.句子
D.直接短语
答案:
D
39.一个句型中的最左()称为该句型的句柄。
A.短语
B.简单短语
C.素短语
D.终结符号
答案:
B
40.在规范规约中,用()来刻画可规约串。
A.直接短语
B.句柄
C.最左素短语
D.素短语
答案:
B
41.类型转换时,整数到实数的转换称为()。
A.截断
B.舍入
C.拓展
D.收缩
答案:
C
42.表达式a-(-b)*c的逆波兰表示(#表示单目减)为()。
#c*
#c*-
#*c-
#c-*
答案:
B
43.赋值语句x=a+b*((a+c)*d+e)的逆波兰式是()。
+ac+d*c+=
+de+**+=
+d*e+*+=
均不对
答案:
C
44.()这样一些语言,它们能被确定的有穷自动机识别,但不能用正规表达式表示。
A.存在
B.不存在
C.无法判定是否存在
答案:
B
45.下面说法正确的是()。
A.一个SLR
(1)文法一定也是LALR
(1)文法
B.一个LR
(1)文法一定也是LALR
(1)文法
答案:
A
46.素短语是指()的短语。
①至少包含一个符号②至少包含一个终结符号③至少包含一个非终结符号④除自身外不再包含其他终结符号⑤除自身外不再包含其他非终结符号⑥除自身外不再包含其他短语⑦除自身外不再包含其他素短语
A.①④
B.①⑤
C.②④
D.②⑦
答案:
D
47.算符优先分析是一种自底向上的分析方法,它是以()作为每一步规约的对象。
A.句柄
B.最右直接短语
C.最左素短语
D.最左直接短语
答案:
C
48.设G为算符优先文法,G的任意终结符对a、b有以下关系成立()。
A.若f(a)>g(b),则a>b
B.若f(a)<g(b),则a<b
~b都不一定成立
~b一定成立
答案:
C
49.若一个文法是递归的,则它所产生的语言的句子()。
A.是无穷多个
B.是有穷多个
C.是可枚举的
D.个数是常量
答案:
A
50.如果文法G是无二义的,则它的任何句子α()。
A.最左推导和最右推导对应的语法树必定相同
B.最左推导和最右推导对应的语法树可能不同
C.最左推导和最右推导必定相同
D.可能存在两个不同的最左推导,但它们对应的语法树相同
答案:
A
51.若B为非终结符,则A—>.B为()。
A.移进项目
B.规约项目
C.接受项目
D.待约项目
答案:
D
的3型语言是这样一种语言,其产生式限制为()。
:
:
=π
:
:
=aA:
:
=aB
C.α:
:
=β
D.αAβ:
:
=απβ
答案:
B
53.文法()是3型文法。
→ABA→aB→b
→a
→XYaA→1B→0
→aABA→bB→a
答案:
B
54.给定文法,A—>Aa|b,下面的符号串可由其推导出的是()。
答案:
C
55.若一个文法是递归的,则它所产生语言的句子个数()。
A.必定是无穷的
B.是有限个的
C.根据具体情况而定
答案:
A
56.下列()优化方法不是针对循环优化进行的。
A.强度削弱
B.删除归纳变量
C.删除多余变量
D.代码外提
答案:
C
57.若a为终结符,则A→α.aβ为()项目。
A.归约
B.移进
C.接受
D.待约
答案:
B
58.有限状态自动机能识别()。
A.上下文无关文法
B.上下文有关文法
C.正规文法
D.短语文法
答案:
C
59.下面哪个文法是右递归的?
()
→TE|T
→aT
→(E)
→a
答案:
A
60.语法分析器则可以发现源程序中的()。
A.语义错误
B.语法和语义错误
C.错误并校正
D.语法错误
答案:
D
61.文法E—>E+E|E*E|i的句子i*i+i*i有()棵不同的语法树。
答案:
C
62.()是两类程序语言处理程序。
A.高级语言程序和低级语言程序
B.解释程序和编译程序
C.编译程序和操作系统
D.系统程序和应用程序
答案:
B
63.文法G产生的()的全体是该文法描述的语言。
A.句型
B.终结符集
C.非终结符集
D.句子
答案:
D
64.一个文法所描述的语言是()。
A.唯一的
B.不唯一的
C.可能唯一,也可能不唯一
答案:
A
65.栈式动态分配与管理在过程返回时应做的工作有()。
A.保护SP
B.恢复SP
C.包含TOP
D.恢复TOP
答案:
B
66.某个语言,它能用正规表达式表示,但是它不能使用任何正规文法表示,这个语言必然是()。
型文法所对应的语言
B.含有二义的语言
C.既含有左递归又含有右递归
D.不存在的语言
答案:
D
67.正规式m1和m2等价是指()。
和m2的状态数相等
和m2的有向弧条数相等
和m2所识别的语言集相等
和m2状态数和有向弧条数相等
答案:
C
68.图的正规表达式为()。
A.{0,1}*
B.{0,1}*-1|0{0,1}*
C.{0,1}*-10{0,1}*
D.{0,1}*-{10}*
答案:
C
69.一个正规语言只能对应()。
A.一个正规文法
B.一个最小有限状态自动机
答案:
B
70.中间代码生成时所依据的是()。
A.语法规则
B.词法规则
C.语义规则
D.等价变换规则
答案:
C
71.常用的中间代码形式不含()。
A.三元式
B.四元式
C.逆波兰式
D.语法树
答案:
D
72.下面哪种不是自底向上的语法分析文法?
()
(1)
(k)
C.算符优先法
(1)
答案:
B
73.自顶向下分析试图为输入符号串构造一个()。
A.语法树
B.有向无环图
C.最左推导
D.最右推导
答案:
C
74.描述文法符号语义的属性有两种,一种称为综合属性,另一种成为继承属性,其中综合属性值的计算依赖于分析树中它的()的属性值。
A.父结点
B.子结点
C.兄弟结点
D.父结点与兄弟结点
答案:
B
75.文法G:
E→E+T|T,T→T*P|P,P→(E)|I,则句型P+T+i的句柄和最左素短语为()。
+T和i
和P+T
和P+T+I
和T
答案:
B
76.编译程序必须完成的工作有()。
A.词法分析
B.语法分析
C.语义分析
D.代码生成
E.中间代码生成
答案:
A|B|C|D
77.编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过()。
A.编辑
B.编译
C.连接
D.运行
E.调试
答案:
A|B|C
78.编译程序各阶段的工作都涉及到()。
A.词法分析
B.表格管理
C.出错处理
D.语义分析
E.词法分析
答案:
B|C
79.编译程序工作时,通常包括()阶段。
A.词法分析
B.语法分析
C.中间代码生成
D.语义检查
E.目标代码生成
答案:
A|B|C|E
80.程序一般分为哪两大类?
()
A.高级语言
B.专用程序语言
C.低级语言
D.通用程序语言
答案:
A|C
81.一般程序设计语言的定义都涉及()三个方面。
A.语法
B.语义
C.语用
D.程序基本符号的确定
答案:
A|B|C
82.计算机执行用高级语言编写的程序有哪些途径?
()
A.链接
B.汇编
C.解释
D.编译
答案:
C|D
83.编译过程中扫描器的任务包括()。
A.组织原程序的输入
B.识别单词属性,并输出
C.删除注解
D.行计数、列计数
E.建立符号表
答案:
A|B|C|D|E
84.下面哪些语言特征会影响存储分配策略?
()
A.过程能否递归
B.当控制从过程的活动返回时,局部变量的值是否要保留
C.过程能否访问非局部变量
D.过程调用的参数传递方式
答案:
A|B|C|D
85.编译方法中自顶向下的语法分析算法有()。
A.递归下降法
方法
(K)分析方法
(K)方法
答案:
A|C
86.如果文法G存在一个句子,满足下列条件()之一时,则称该文法是二义文法。
A.该句子的最左推导与最右推导相同
B.该句子有两个不同的最左推导
C.该句子有两棵不同的最右推导
D.该句子有两棵不同的语法树
E.该句子的语法树只有一个
答案:
B|C|D
87.(a|b)a+(ba)*与下面的哪些串匹配?
()
答案:
A|D|E
*c*(a|b)c与下面的那些串匹配?
()
答案:
B|C
89.编译过程中,比较常见的中间语言有()。
A.波兰表示
B.逆波兰表示
C.三元式
D.四元式
答案:
B|C|D
90.继承属性值的计算依赖于分析树中它的()的属性值。
A.父结点
B.子结点
C.兄弟结点
D.父结点与子结点
答案:
A|C
91.目标代码有哪几种形式?
()
A.机器语言
B.汇编语言
C.高级语言
D.待装配机器语言模块
答案:
A|B|D
92.指出哪些串是自动机可接受的?
()
答案:
A|C|D|E
93.有一文法G:
S→AB,A→aAb|ε,B→cBd|ε,它不产生下面()集合。
A.{anbmcndm|n,m≥0}
B.{anbncmdm|n,m>0}
C.{anbmcmdn|n,m≥0}
D.{anbncmdm|n,m≥0}
E.{anbncndn|n≥0}
答案:
A|C
94.(a|b)a+(ba)*与下面的()串匹配。
答案:
A|D
95.根据优化所涉及的范围,可将优化分为()。
A.局部优化
B.过程优化
C.全局优化
D.循环优化
E.四元式优化
答案:
A|C|D
96.语法分析的方法大致可分为哪两类?
()
A.算符优先分析法
B.自上而下分析法
C.自下而上分析法
(1)分析法
答案:
B|C
97.对二义性文法来说,一颗语法树往往代表了()。
A.多种推导过程
B.多种最左推导过程
C.一种最左推导过程
D.仅一种推导过程
E.一种最右推导过程
答案:
A|C
98.下面()语法制导翻译中,采用拉链—回填技术。
A.赋值语句
B.布尔表达式的计算
C.条件语句
D.循环语句
答案:
B|C|D
99.运行阶段的存储组织与管理的目的是()。
A.提高编译程序的运行速度
B.提高目标程序的运行速度
C.为运行阶段的存储分配作准备
答案:
B|C
100.令∑={a,b},则∑上所有以b开头,后跟若干个ab的字的全体对应的正规式为()。
(ab)*
(ab)+
C.(ba)*b
D.(ba)+b
(a|b)
答案:
A|B|D
101.对正规文法描述的语言,以下()有能力描述它。
型文法
型文法
C.上下文无关文法
D.右线性文法
E.左线性文法
答案:
A|B|C|D|E
102.过程调用时,参数的传递方法通常有()。
A.传值
B.传地址
C.传结果
D.传名
答案:
A|B|C|D
103.下列语法分析技术中,属于自顶向下的分析技术有()。
A.递归下降分析法
分析法
C.算符优先分析法
分析法
答案:
A|B
104.程序语言的单词符号一般可以分为()。
A.基本字
B.标识符
C.常量
D.算符
E.界符
答案:
A|B|C|D|E
105.给定文法,A—>bA|cc,下面符号串可由其推导出的是()。
*cc
*cbcc
答案:
A|B|E
106.最小化的DFA,它的状态数最小。
答案:
对
107.一个LL
(1)文法一定是无二义性的。
答案:
对
方法可以分析含有左递归的文法。
答案:
对
属性定义不能采用自下而上的方法计算。
答案:
错
110.若M=(Σ,Q,q0,F,δ)是一个带ε-转移的NFA,并且ε∈L(M),则一定有q0∈F。
答案:
对
111.在SLR
(1)分析法的名称中,S的含义是简单的。
答案:
对
112.编译程序是对汇编程序的翻译。
答案:
错
113.在程序中标识符的出现仅为使用性的。
答案:
错
114.产生式是用于定义词法成分的一种书写规则。
答案:
错
115.词法分析器的输出常用三元式表示。
答案:
错
116.设计词法分析程序可以借助于状态转换图。
答案:
对
117.编译程序中错误处理的任务是对检查出的错误进行修改。
答案:
错
118.树形表示和四元式不便于优化,而三元式和间接三元式则便于优化。
答案:
错
119.源程序到目标程序的变换是等价变换,即两者结构不同,但语义是一致的。
答案:
对
120.源程序和目标程序是等价关系。
答案:
对
121.递归下降法允许任一非终结符是直接左递归的。
答案:
错
122.二义文法不是上下文无关文法。
答案:
错
123.把汇编语言程序翻译成机器可执行的目标程序的工作是由编译器完成的。
答案:
对
124.解释程序和编译程序一样,生成目标代码。
答案:
错
125.无论三元式表示还是间接三元式表示的中间代码,其三元式在三元式表中的位置一旦确定就很难改变。
答案:
对
126.非终结符可以有综合属性,但不能有继承属性。
答案:
对
127.在编译处理过程中,符号表只有在词法分析阶段和语法分析阶段才是有用。