03学期北京航空航天大学网考复习题编译技术讲解.docx
《03学期北京航空航天大学网考复习题编译技术讲解.docx》由会员分享,可在线阅读,更多相关《03学期北京航空航天大学网考复习题编译技术讲解.docx(53页珍藏版)》请在冰豆网上搜索。
03学期北京航空航天大学网考复习题编译技术讲解
1.乔姆斯基(Chomsky)把文法分为四种类型,即0型、1型、2型、3型。
其中3型文法是()。
A.正则文法
B.上下文无关文法
C.上下文有关文法
D.短语文法
答案:
A
2.()文法不是LL
(1)的。
A.递归
B.右递归
C.2型
D.含有公共左因子
答案:
D
3.LR(k)分析是一种自底向上的分析法,它是以下面哪个作为每一步规约的对象?
()
A.最右直接短语
B.最左直接短语
C.句柄
D.最左素短语
答案:
C
4.LR(K)方法是()。
A.从左到右分析,每次走K步的一种编译方法
B.从左到右分析,共经过K步的一种编译方法
C.从左到右分析,每次向前预测K步的一种编译方法
D.从左到右分析,是否归约句柄要向后看K个输入符号的一种编译方法
答案:
C
5.SLR
(1)分析法的名字中,“L”的含义是()。
A.自左向右进行分析
B.自右向左进行分析
C.采用最右推导的逆过程
D.采用最左推导的逆过程
答案:
A
6.编译程序绝大多数时间花在()上。
A.出错处理
B.词法分析
C.目标代码生成
D.管理表格
答案:
D
7.在使用高级语言编程时,首先可通过编译程序发现源程序的什么错误?
()
A.语法
B.语义
C.语用
D.运行
答案:
A
8.()不是编译程序的组成部分。
A.词法分析器
B.设备管理程序
C.语法分析程序
D.代码生成程序
答案:
B
9.编译程序是将()翻译成()。
A.汇编语言程序机器语言程序
B.高级语言程序汇编语言程序或机器语言程序
C.汇编语言程序或高级语言程序机器语言程序或高级语言程序
D.高级语言程序机器语言程序或高级语言程序
答案:
B
10.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括()。
A.模拟执行器
B.解释器
C.表格处理和出错处理
D.符号执行器
答案:
C
11.编译器与要编译的源程序的接口阶段是()。
A.扫描程序
B.语法分析程序
C.语义分析程序
D.代码生成器
答案:
A
12.由于受到具体机器主存容量的限制,编译程序几个不同阶段的工作往往被组合成()。
A.过程
B.程序
C.批量
D.遍
答案:
D
13.编译程序使用()区别标识符的作用域。
A.说明标识符的过程或函数名
B.说明标识符的过程或函数的静态层次
C.说明标识符的过程或函数的动态层次
D.标识符的行号
答案:
B
14.()不是NFA的成分。
A.有穷字母表
B.初始状态集合
C.终结状态集合
D.有限状态集合
答案:
B
15.编译过程中,语法分析器的任务是()。
A.分析单词是怎样构成的
B.分析单词串是如何构成语句和说明的
C.分析语句和说明是如何构成程序的
D.分析程序的结构
答案:
B
16.词法分析器的输入是()。
A.单词符号串
B.源程序
C.语法单位
D.目标程序
答案:
B
17.词法分析器用于识别()。
A.字符串
B.语句
C.单词
D.标识符
答案:
C
18.代码生成阶段的主要任务是()。
A.把高级语言翻译成汇编语言
B.把高级语言翻译成机器语言
C.把中间代码变换成依赖具体机器的目标代码
D.把汇编语言翻译成机器语言
答案:
C
19.代码优化时所依据的是()。
A.语法规则
B.词法规则
C.等价变换规则
D.语义规则
答案:
C
20.优化可生成()的目标代码。
A.运行时间较短
B.占用存储空间较小
C.运行时间短但占用内存空间大
D.运行时间短且占用内存空间小
答案:
D
21.下面哪个不是单词的描述工具?
()
A.正规式
B.有穷自动机
C.下推自动机
D.正规文法
答案:
C
22.高级语言编译程序常用的语法分析方法中,递归分析法属于()分析方法。
A.自右至左
B.自左至右
C.自底向上
D.自顶向下
答案:
D
23.设有文法G[S]:
S→S*S|S+S|(S)|a,该文法()二义性文法。
A.是
B.不是
C.不一定
答案:
A
24.把汇编语言程序翻译成机器可执行的目标程序的工作是由()完成的。
A.编译器
B.汇编器
C.解释器
D.预处理器
答案:
B
25.用高级语言编写的程序经过编译后产生的程序叫()。
A.源程序
B.目标程序
C.函数
D.过程
答案:
B
26.程序语言一般分为()和()两大类。
A.高级语言低级语言
B.低级语言通用程序语言
C.高级语言专用程序语言
D.低级语言专用程序语言
答案:
D
27.下面的文法是()。
S→aAa|aBb|bAb|bBaA→xB→x
A.LR
(1)文法
B.LALR
(1)文法
C.都不是
D.A和B
答案:
A
28.若一个句型中出现了某一产生式的右部,则此右部()是该句型的句柄。
A.一定
B.不一定
答案:
B
29.xab+cde-*f/+:
=是赋值语句()相应的后缀式。
A.x:
=a+b+c*d-e/f
B.x:
=a+(b+c)*d-e/f
C.x:
=a+b+c*(d-e)/f
D.x:
=a+b+c+(c*d)-e/f
答案:
C
30.表达式(A∨B)∧(C∨¬D∧E)的逆波兰表示为()。
A.AB∨CD¬∨E∧∧
B.AB∨CDE∧¬∨∧
C.AB∨CD¬E∧∨∧
D.AB∨CD∨¬E∧∧
答案:
A
31.以下中间代码的表示形式中,()更便于优化。
A.三元式
B.四元式
C.树
D.后缀式
答案:
B
32.程序基本块是指()。
A.一个子程序
B.一个仅有一个入口和一个出口的语句
C.一个没有嵌套的程序段
D.一组顺序执行的程序段,仅有一个入口和一个出口
答案:
D
33.间接三元式表示法的优点是()。
A.采用间接码表,便于优化处理
B.节省存储空间,不便于表的管理
C.便于优化处理,节省存储空间
D.节省存储空间,不便于优化管理
答案:
A
34.解释程序处理语言时,大多数采用的是()。
A.源程序命令被逐个直接解释执行
B.先将源程序转化为中间代码,再解释执行
C.先将源程序解释转化为目标程序,再执行
D.以上方法都可以
答案:
B
35.动态存储分配时,可以采用的分配方法有()。
(1)过程为单位的栈式动态存储分配
(2)堆存储分配(3)最佳分配方法
A.
(1)
B.
(2)
C.
(2)(3)
D.
(1)
(2)(3)
答案:
D
36.在编译方法中,动态存储分配的含义是()。
A.在运行阶段对源程序中的量进行分配
B.在编译阶段对源程序中的量进行分配
C.以上都不是
答案:
A
37.最左简单子树的末端节点构成的符号串称为()。
A.句柄
B.最左素短语
C.素短语
D.简单短语
答案:
A
38.经过编译所得到的目标程序是()。
A.四元式序列
B.间接三元式序列
C.二元式序列
D.机器语言程序或汇编语言程序
答案:
D
39.()这样一些语言,它们能被确定的有穷自动机识别,但不能用正规表达式表示。
A.存在
B.不存在
C.无法判定是否存在
答案:
B
40.在通常的语法分析方法中,()特别适用于表达式的分析。
A.算符优先分析法
B.LR分析法
C.递归下降分析法
D.LL
(1)分析法
答案:
A
41.已知文法G[S]是无二义的,它定义的语言L(G[S])中的一个句子x和一个句型y,下面正确的是()。
A.一定存在S到x的最左推导
B.一定会有S到y的两种不同推导
C.一定存在S到y的最左推导
D.一定存在唯一与x对应得语法树
答案:
D
42.如果文法G是无二义的,则它的任何句子α()。
A.最左推导和最右推导对应的语法树必定相同
B.最左推导和最右推导对应的语法树可能不同
C.最左推导和最右推导必定相同
D.可能存在两个不同的最左推导,但它们对应的语法树相同
答案:
A
43.BNF是一种广泛采用的()的工具。
A.描述规则
B.描述语言
C.描述文法
D.描述句子
答案:
C
44.文法S→abC,bC→ad是几型文法?
()
A.0型文法
B.1型文法
C.2型文法
D.3型文法
答案:
B
45.文法G所描述的语言是()的集合。
A.文法G的字汇表V中所有符号组成的符号串
B.文法G的字汇表V的闭包V*中的所有符号串
C.由文法的识别符号推出的所有符号串
D.由文法的识别符号推出的所有终结符号串
答案:
B
46.若一个文法是递归的,则它所产生语言的句子个数()。
A.必定是无穷的
B.是有限个的
C.根据具体情况而定
答案:
A
47.下面的优化项目中,不属于循环优化的是()。
A.不变运算外提
B.削弱运算强度
C.消除归纳变量?
D.合并已知运算
答案:
D
48.有限自动机有()接受状态。
A.只能一个
B.只能两个
C.只能三个
D.0个、一个或多个
答案:
D
49.编译过程中,语法分析的任务是()。
①分析单词是怎样构成的②分析单词是如何构成语句和说明的③分析语句和说明是如何构成程序的④分析程序的结构
A.②和③
B.④
C.②③④
D.①②③④
答案:
C
50.在语法分析处理中,FIRST集合、FOLLOW集合、SELECT集合均是()。
A.非终极符集
B.终极符集
C.字母表
D.状态集
答案:
B
51.编译程序中语法分析器接收以()为单位的输入。
A.单词
B.表达式
C.产生式
D.句子
答案:
A
52.文法E—>E+E|E*E|i的句子i*i+i*i有()棵不同的语法树。
A.1
B.3
C.5
D.7
答案:
C
53.给定文法如下:
S→ABA→aA|aB→bB|b句型aAB相对于A的短语是()。
A.a
B.A
C.aA
D.AB
答案:
C
54.若文法G定义的语言是无限集,则文法必然是()。
A.递归的
B.前后文无关的
C.二义性的
D.无二义性的
答案:
A
55.某个语言,它能用正规表达式表示,但是它不能使用任何正规文法表示,这个语言必然是()。
A.1型文法所对应的语言
B.含有二义的语言
C.既含有左递归又含有右递归
D.不存在的语言
答案:
D
56.给定文法,A:
:
=bA|cc,下面哪些符号串可由其推导出?
()①cc②b*cc③b*cbcc④bccbcc⑤bbbcc
A.①
B.①③④⑤
C.①⑤
D.①②⑤
答案:
D
57.与正规式r=(a|b)*等价的是()。
A.a*b*
B.(ab)*
C.(a|b)(a|b)+
D.((a|b)*)*
答案:
D
58.中间代码生成时所依据的是()。
A.语法规则
B.词法规则
C.语义规则
D.等价变换规则
答案:
C
59.下面()不是自底向上的语法分析方法。
A.SLR
(1)
B.LR
(1)
C.LL(k)
D.算符优先符
答案:
C
60.采用自上而下分析,必须()。
A.消除左递归
B.消除右递归
C.消除回溯
D.提取公共因子
答案:
C
61.编写一个计算机高级语言的源程序后,到正式上机运行之前,一般要经过()。
A.编辑
B.编译
C.连接
D.运行
E.调试
答案:
A|B|C
62.编译程序工作时,通常包括()阶段。
A.词法分析
B.语法分析
C.中间代码生成
D.语义检查
E.目标代码生成
答案:
A|B|C|E
63.常用的参数传递方式有()。
A.传地址
B.传值
C.传声明
D.传变量
E.传名
答案:
A|B|E
64.程序一般分为哪两大类?
()
A.高级语言
B.专用程序语言
C.低级语言
D.通用程序语言
答案:
A|C
65.编译程序的输出结果可以是()。
A.目标代码
B.汇编语言代码
C.中间代码
D.优化后的中间代码
E.可重定位代码
答案:
A|B|C|D|E
66.一般程序设计语言的定义都涉及()三个方面。
A.语法
B.语义
C.语用
D.程序基本符号的确定
答案:
A|B|C
67.计算机执行用高级语言编写的程序有哪些途径?
()
A.链接
B.汇编
C.解释
D.编译
答案:
C|D
68.编译过程中扫描器的任务包括()。
A.组织原程序的输入
B.识别单词属性,并输出
C.删除注解
D.行计数、列计数
E.建立符号表
答案:
A|B|C|D|E
69.下面哪些语言特征会影响存储分配策略?
()
A.过程能否递归
B.当控制从过程的活动返回时,局部变量的值是否要保留
C.过程能否访问非局部变量
D.过程调用的参数传递方式
答案:
A|B|C|D
70.代码优化的主要目标是()。
A.提高目标程序的运行速度
B.减少目标程序运行所需的空间
C.协调A和B
D.使生成的目标代码尽可能简短
答案:
A|B|C
71.编译方法中自顶向下的语法分析算法有()。
A.递归下降法
B.SLR方法
C.LL(K)分析方法
D.LR(K)方法
答案:
A|C
72.语法分析的常用方法是()。
A.自顶向下
B.自底向上
C.自左向右
D.自右向左
答案:
A|B
73.常用的两种动态存贮分配办法是()。
A.栈式动态分配
B.顺序动态分配
C.随机动态分配
D.堆式动态分配
答案:
A|D
74.关于堆式分配,下面说法正确地是()。
A.属于动态分配
B.属于静态分配
C.适用于可递归调用、具有分程序结构的语言
D.适用于允许为变量动态申请内存空间的语言
答案:
A|D
75.如果文法G存在一个句子,满足下列条件()之一时,则称该文法是二义文法。
A.该句子的最左推导与最右推导相同
B.该句子有两个不同的最左推导
C.该句子有两棵不同的最右推导
D.该句子有两棵不同的语法树
E.该句子的语法树只有一个
答案:
B|C|D
76.(a|b)a+(ba)*与下面的哪些串匹配?
()
A.ba
B.bba
C.ababa
D.aa
E.baa
答案:
A|D|E
77.ab*c*(a|b)c与下面的那些串匹配?
()
A.acbbc
B.abbcac
C.abc
D.acc
答案:
B|C
78.编译过程中,比较常见的中间语言有()。
A.波兰表示
B.逆波兰表示
C.三元式
D.四元式
答案:
B|C|D
79.继承属性值的计算依赖于分析树中它的()的属性值。
A.父结点
B.子结点
C.兄弟结点
D.父结点与子结点
答案:
A|C
80.指出哪些串是自动机可接受的?
()
A.yyy
B.xx
C.yyyxy
D.yxxy
E.yx
答案:
A|C|D|E
81.有一文法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
82.根据优化所涉及的范围,可将优化分为()。
A.局部优化
B.过程优化
C.全局优化
D.循环优化
E.四元式优化
答案:
A|C|D
83.语法分析的方法大致可分为哪两类?
()
A.算符优先分析法
B.自上而下分析法
C.自下而上分析法
D.LL
(1)分析法
答案:
B|C
84.下面()语法制导翻译中,采用拉链—回填技术。
A.赋值语句
B.布尔表达式的计算
C.条件语句
D.循环语句
答案:
B|C|D
85.栈式分配策略在下列哪些情况下行不通?
()
A.过程活动停止后,局部名字的值还必须维持
B.被调用者的活动比调用者的活动活得更长,此时活动树不能正确描绘程序的控制流
C.不遵守栈式规则的有Pascal语言和C语言的动态变量
D.Java禁止程序员自己释放空间
答案:
A|B|C|D
86.令∑={a,b},则∑上所有以b开头,后跟若干个ab的字的全体对应的正规式为()。
A.b(ab)*
B.b(ab)+
C.(ba)*b
D.(ba)+b
E.b(a|b)
答案:
A|B|D
87.对正规文法描述的语言,以下()有能力描述它。
A.0型文法
B.1型文法
C.上下文无关文法
D.右线性文法
E.左线性文法
答案:
A|B|C|D|E
88.下面()说法是错误的。
A.有向图是一个状态转换图
B.状态转换图是一个有向图
C.有向图是一个DFA
D.DFA可以用状态转换图表示
E.文法中终结符和非终结符的交集是空集
答案:
A|C
89.下列不属于banana的子串的是()。
A.b
B.baa
C.babn
D.baan
E.nan
答案:
B|C|D
90.程序语言的单词符号一般可以分为()。
A.基本字
B.标识符
C.常量
D.算符
E.界符
答案:
A|B|C|D|E
91.最小化的DFA,它的状态数最小。
答案:
对
92.最小化的DFA所识别接受的正规集最小。
答案:
错
93.若过程p第k次被调用,则p的DISPLAY表中就有k+1个元素。
答案:
错
94.LL
(1)分析法中,“1”的含义是向输入串中查看一个输入符号。
答案:
对
95.LL
(1)文法又称为预测分析方法。
答案:
对
96.一个LL
(1)文法一定是无二义和无回溯方法。
答案:
对
97.一个LL
(1)文法一定是无二义性的。
答案:
对
98.LR(0)分析法是一种规范规约法。
答案:
对
99.LR方法可以分析含有左递归的文法。
答案:
对
100.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
答案:
对
101.构造LR分析器的任务就是产生LR分析表。
答案:
对
102.LR分析方法是已知的最一般的无回溯的移进-归约方法。
答案:
对
103.一个活前缀可能有多个有效项目。
答案:
对
104.L属性定义不能采用自下而上的方法计算。
答案:
错
105.S属性定义属于L属性定义。
答案:
对
106.若M=(Σ,Q,q0,F,δ)是一个带ε-转移的NFA,并且ε∈L(M),则一定有q0∈F。
答案:
对
107.对于字母表Σ上的任一NFAM',必存在Σ上与NFAM'等价的DFAM。
答案:
对
108.在SLR
(1)分析法的名称中,S的含义是简单的。
答案:
对
109.编译程序是对高级程序的翻译。
答案:
对
110.编译程序与具体的机器有关,与具体的语言无关。
答案:
错
111.编译程序能改正源程序所有错误。
答案:
错
112.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
答案:
错
113.在程序中标识符的出现仅为使用性的。
答案:
错
114.产生式是用于定义词法成分的一种书写规则。
答案:
错
115.从功能上说,程序语言的语句大体可分为执行性语句和说明性语句两大类。
答案:
对
116.