奥鹏中国地质大学北京网考资料 编译原理新doc.docx
《奥鹏中国地质大学北京网考资料 编译原理新doc.docx》由会员分享,可在线阅读,更多相关《奥鹏中国地质大学北京网考资料 编译原理新doc.docx(19页珍藏版)》请在冰豆网上搜索。
奥鹏中国地质大学北京网考资料编译原理新doc
单选题
1.()是两类程序语言处理程序.
A.高级语言程序和低级语言程序B.解释程序和编译程序C.编译程序和操作系统D.系统程序和应用程序
答案:
B
2.解释程序处理语言时,大多数采用的是()方法.
A.源程序命令被逐个直接解释执行B.先将源程序转化为中间代码,再解释执行C.先将源程序解释转化为目标程序,再执行D.以上方法都可以
答案:
A
3.()是一种典型的解释型语言.
A.BASICB.CC.FORTRAND.PASCAL
答案:
A
4.与编译系统相比,解释系统().
A.比较简单,可移植性好,执行速度快B.比较复杂,可移植性好,执行速度快C.比较简单,可移植性差,执行速度慢D.比较简单,可移植性好,执行速度慢
答案:
D
5.编译程序是一种().
A.汇编程序B.翻译程序C.解释程序D.目标程序
答案:
B
6.编译程序是对().
A.汇编程序的翻译B.高级语言程序的解释执行C.机器语言的执行D.高级语言的翻译
答案:
D
7.用高级语言编写的程序经编译后产生的程序叫().
A.源程序B.目标程序C.连接程序D.解释程序
答案:
B
8.将编译程序分成若干个“遍”是为了().
A.提高程序的执行效率B.使程序的结构更加清晰C.利用有限的机器内存并提高机器的执行效率D.利用有限的机器内存但降低了机器的执行效率
答案:
B
9.构造编译程序应掌握().
A.源程序B.目标语言C.编译方法D.以上三项都是
答案:
D
10.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括().
A.模拟执行器B.解释器C.表格处理和出错处理D.符号执行器
答案:
C
11.编译程序绝大多数时间花在()上.
A.出错处理B.词法分析C.目标代码生成D.管理表格
答案:
D
12.程序的基本块是指().
A.一个子程序B.一个仅有一个入口和一个出口的语句C.一个没有嵌套的程序段D.一组顺序执行的程序段,仅有一个入口和一个出口
答案:
D
13.变量应当().
A.持有左值B.持有右值C.既持有左值又持有右值D.既不持有左值也不持有右值
答案:
C
14.数组的内情向量中肯定不含有数组的()的信息.
A.维数B.类型C.维上下界D.各维的界差
答案:
A
15.一个上下文无关文法G包括四个组成部分:
一组终结符,一组非终结符,一个开始符号,以及一组().
A.字符串B.产生式C.非开始符号D.文法
答案:
B
16.一个文法所描述的语言是().
A.唯一的B.不唯一的C.可能唯一,也可能不唯一D.都不对
答案:
A
17.文法G产生的()的全体是该文法描述的语言.
A.句型B.终结符集C.非终结符集D.句子
答案:
D
18.若文法G定义的语言是无限集,则文法必然是().
A.递归的B.前后文无关的C.二义性的D.无二义性的
答案:
A
19.文法分为四种类型,即0型,1型,2型,3型.其中2型文法是().
A.短语文法B.正则文法C.上下文有关文法D.上下文无关文法
答案:
C
20.四种形式语言文法中,1型文法又称为()文法.
A.短语文法B.正则文法C.上下文有关文法D.上下文无关文法
答案:
D
21.正规式M1和M2等价是指().
A.M1和M2的状态数相等B.Ml和M2的有向弧条数相等C.M1和M2所识别的语言集相等D.Ml和M2状态数和有向弧条数相等
答案:
C
22.词法分析器的输出结果是().
A.单词的种别编码B.单词在符号表中的位置C.单词的种别编码和自身值D.单词自身值
答案:
C
23.词法分析器用于识别().
A.字符串B.语句C.单词D.标识符
答案:
C
24.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即().
A.字符B.单词C.句子D.句型
答案:
B
25.一个句型中称为句柄的是该句型的最左().
A.非终结符号B.短语C.句子D.直接短语
答案:
D
26.下推自动机识别的语言是().
A.0型语言B.1型语言C.2型语言D.3型语言
答案:
C
27.如果文法G是无二义的,则它的任何句子α().
A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同
答案:
A
28.采用自上而下分析,必须().
A.消除左递归B.消除右递归C.消除回溯D.提取公共左因子
答案:
C
29.在规范归约中,用()来刻画可归约串.
A.直接短语B.句柄C.最左素短语D.素短语
答案:
B
30.若a为终结符,则A->α·aβ为()项目.
A.归约B.移进C.接受D.待约
答案:
B
31.高级语言编译程序常用的语法分析方法中,递归下降分析法属于()分析方法.
A.自左向右B.自顶向下C.自底向上D.自右向左
答案:
B
32.在通常的语法分析方法中,()特别适用于表达式的分析.
A.算符优先分析法B.LR分析法C.递归下降分析法D.LL
(1)分析法
答案:
A
33.语法分析器则可以发现源程序中的().
A.语义错误B.语法和语义错误C.错误并校正D.语法错误
答案:
D
34.后缀式ab+cd+/可用表达式()来表示.
A.a+b/c+dB.(a+b)/(c+d)C.a+b/(c+d)D.a+b+c/d
答案:
B
35.中间代码生成时所依据的是().
A.语法规则B.词法规则C.语义规则D.等价变换规则
答案:
C
36.()和代码优化部分不是每个编译程序都必需的.
A.语法分析B.中间代码生成C.词法分析D.目标代码生成
答案:
B
37.常用的中间代码形式不含().
A.三元式B.四元式C.逆波兰式D.语法树
答案:
D
38.代码优化的目的是().
A.节省时间B.节省空间C.节省时间和空间把编译程序进行等价交换
答案:
C
39.优化可生成()的目标代码.
A.运行时间较短B.占用存储空间较小C.运行时间短但占用内存空间大D.运行时间短且占用存储空间小
答案:
D
40.下列()优化方法不是针对循环优化进行的.
A.强度削弱B.删除归纳变量C.删除多余运算D.代码外提
答案:
C
41.基本块内的优化为().
A.代码外提,删除归纳变量B.删除多余运算,删除无用赋值C.强度削弱,代码外提D.循环展开,循环合并
答案:
B
42.代码生成阶段的主要任务是().
A.把高级语言翻译成汇编语言B.把高级语言翻译成机器语言C.把中间代码变换成依赖具体机器的目标代码D.把汇编语言翻译成机器语言
答案:
C
43.在目标代码生成阶段,符号表用于().
A.目标代码生成B.语义检查C.语法检查D.地址分配
答案:
D
44.程序所需的数据空间在程序运行前就可确定,称为()管理技术.
A.动态存储B.栈式存储C.静态存储D.堆式存储
答案:
C
45.堆式动态分配申请和释放存储空间遵守()原则.
A.先请先放B.先请后放C.后请先放D.任意
答案:
D
46.编译程序使用()区别标识符的作用域.
A.说明标识符的过程或函数名B.说明标识符的过程或函数的静态层次C.说明标识符的过程或函数的动态层次D.标识符的行号
答案:
B
47.生成能被5整除的正整数的文法G[Z]是().
A.G(Z):
Z→AC,A→BA|B,B→0|1|2|…|9,C→0|5B.G(Z):
Z→AC,A→BA|ε,B→0|1|2|…|9,C→0|5C.G(Z):
Z→AC|5,A→BA|B,B→0|1|2|…|9,C→0|5D.G(Z):
Z→AC|C,A→BA|B,B→0|1|2|…|9,C→0|5
答案:
C
48.符号串ab1b2是给定文法G[A]:
A→aB,B→bB|b的句子,该句子的句柄是().
A.b1B.b2C.cD..b1b2
答案:
B
49.一般程序设计语言的定义都涉及()三个方面.①语法 ②语义 ③语用 ④程序基本符号的确定
A.①,②和③B.①,②和④C.①,③和④D.②,③和④
答案:
B
50.下述语句类中,()在编译阶段通常不产生可执行代码.
A.赋值语句B.流程控制语句C.说明语句D.输入输出语句
答案:
C
51.算符文法是指()的文法.①没有形如U→...VW...的规则(U,V,WVN)②VT中任意两个符号之间至多存在一种算符优先关系③没有相同右部的规则④没有形如U→ε的规则
A.①B.①和②C.①,②和③D.①,②,③和④
答案:
A
52.已知文法G[E]:
E→ABC,A→1|2|3|4|5|6|7|8|9,B→BA|B0|ε,C→0|2|4|6|8,对符号串128,它的最左推导是().
A.EÞABCÞAB8ÞABA8ÞAB28ÞA28Þ128B.EÞABCÞABACÞAACÞ1ACÞ12CÞ128C.EÞABCÞ1BCÞ1BACÞ1ACÞ12CÞ128D.EÞABCÞ1BCÞ1BACÞ1ACÞ1A8Þ128
答案:
C
53.程序的基本块是指().
A.不含无条件转移语句的程序段B.不含条件转移语句的程序段C.不含停机的语句程序段D.仅含有一个入口语句和一个出口语句的顺序程序段
答案:
D
54.在编译程序采用的优化方法中,()是在循环语句范围内进行的.①合并已知常量 ②删除多余运算 ③删除归纳变量 ④强度削弱 ⑤代码外提
A.①④B.①⑤C.①④⑤D.③④⑤
答案:
D
55.设有文法G[I]:
I→I1|I0|Ia|Ic|a|b|c,下列符号串中是该文法的句子的有().①ab0 ②a0c01 ③aaa ④bc10
A.①B.②③④C.③④D.①②③④
答案:
B
56.LR(0)分析法中,语法分析栈中存放的状态是识别规范句型()的DFA状态.
A.前缀B.活前缀C.LR(0)项目D.句柄
答案:
B
57.常用()来识别一个正规集
A.无穷自动机B.图灵机C.下推自动机D.有穷自动机
答案:
D
58.文法所描述的语言是()的集合.
A.文法的字汇表V中符号组成的符号串B.文法的字汇表V中终结符号组成的符号串C.由文法开始符推导的符号串D.由文法开始符推导的终结符号串
答案:
D
59.LL
(1)文法中第一个L表示().
A.最左推导B.最左归约C.从左到右识别输入串D.规范归约
答案:
C
60.编译程序前三个阶段完成的工作是()
A.词法分析,语法分析和代码优化代码生成,代码优化和词法分析B.词法分析,语法分析,语义分析和中间代码生成C.词法分析,语法分析和代码优化
答案:
C
判断题
1.逆波兰表示法表示表达式时无须使用括号.
T.对F.错
答案:
T
2.静态数组的存储空间可以在编译时确定.
T.对F.错
答案:
F
3.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用.
T.对F.错
答案:
F
4.树形表示和四元式不便于优化,而三元式和间接三元式则便于优化.
T.对F.错
答案:
F
5.计算机高级语言翻译成低级语言只有解释一种方式.
T.对F.错
答案:
F
6.用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行.
T.对F.错
答案:
F
7.在编译中进行语法检查的目的是为了发现程序中所有错误.
T.对F.错
答案:
F
8.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同.
T.对F.错
答案:
T
9.编译程序与具体的机器有关,与具体的语言无关.
T.对F.错
答案:
F
10.编译程序是对高级语言程序的解释执行.
T.对F.错
答案:
F
11.程序语言的语言处理程序是一种应用软件.
T.对F.错
答案:
F
12.在程序中标识符的出现仅为使用性的.
T.对F.错
答案:
F
13.仅考虑一个基本块,不能确定一个赋值是否真是无用的.
T.对F.错
答案:
T
14.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型,种属,所占单元大小,地址等等.
T.对F.错
答案:
F
15.一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态.
T.对F.错
答案:
T
16.一个有限状态自动机中,有且仅有一个唯一的终态.
T.对F.错
答案:
F
17.产生式是用于定义词法成分的一种书写规则.
T.对F.错
答案:
F
18.若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄.
T.对F.错
答案:
F
19.一个句型的句柄一定是文法某产生式的右部.
T.对F.错
答案:
T
20.词法分析作为单独的一遍来处理较好.
T.对F.错
答案:
F
21.正则文法其产生式为A->a,A->Bb,A,B∈VN,a,b∈VT.
T.对F.错
答案:
F
22.正规文法产生的语言都可以用上下文无关文法来描述.
T.对F.错
答案:
F
23.设r和s分别是正规式,则有L(r|s)=L(r)L(s).
T.对F.错
答案:
F
24.确定的自动机以及不确定的自动机都能正确地识别正规集.
T.对F.错
答案:
T
25.每个文法都能改写为LL
(1)文法.
T.对F.错
答案:
T
26.一个LL(l)文法一定是无二义的.
T.对F.错
答案:
F
27.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的.
T.对F.错
答案:
T
28.语法分析时必须先消除文法中的左递归.
T.对F.错
答案:
F
29.综合属性是用于“自上而下”传递信息.
T.对F.错
答案:
F
30.规范归约和规范推导是互逆的两个过程.
T.对F.错
答案:
F
31.递归下降法允许任一非终极符是直接左递归的.
T.对F.错
答案:
T
32.递归下降分析法是自顶向上分析方法.
T.对F.错
答案:
T
33.算符优先关系表不一定存在对应的优先函数.
T.对F.错
答案:
F
34.一个算符优先文法可能不存在算符优先函数与之对应.
T.对F.错
答案:
T
35.自底而上语法分析方法的主要问题是候选式的选择.
T.对F.错
答案:
F
36.LR法是自顶向下语法分析方法.
T.对F.错
答案:
F
37.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点.
T.对F.错
答案:
T
38.构造LR分析器的任务就是产生LR分析表.
T.对F.错
答案:
T
39..LR分析技术无法适用二义文法.
T.对F.错
答案:
F
40.简单优先文法允许任意两个产生式具有相同右部.
T.对F.错
答案:
F
41.程序中的表达式语句在语义翻译时不需要回填技术.
T.对F.错
答案:
T
42.削减运算强度破坏了临时变量在一基本块内仅被定义一次的特性.
T.对F.错
答案:
T
43.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度.
T.对F.错
答案:
F
44.对中间代码的优化依赖于具体的计算机.
T.对F.错
答案:
F
45.数组元素的地址计算与数组的存储方式有关.
T.对F.错
答案:
F
46.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题.
T.对F.错
答案:
F
47.逆波兰法表示的表达式亦称前缀式.
T.对F.错
答案:
T
填空题
1.编译方式与解释方式的根本区别在于##.
答案:
是否生成目标代码
2.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为##.
答案:
编译程序
3.对编译程序而言,输入数据是##,输出结果是目标程序.
答案:
源程序
4.编译程序的工作过程一般划分为5个阶段:
词法分析,##,语义分析与中间代码生成,代码优化及目标代码生成.
答案:
语法分析
5.一个名字的属性包括##和作用域.
答案:
类型
6.设G是一个给定的文法,S是文法的开始符号,如果S->x(其中x∈VT*),则称x是文法的一个##.
答案:
句子
7.扫描器的任务是从源程序中识别出一个个##.
答案:
单词符号
8.规范规约是最##规约.
答案:
左
9.词法分析基于##文法进行,即识别的单词是该类文法的句子.
答案:
正则
10.文法符号的属性有综合属性和##.
答案:
继承属性
11.语法分析器的输入是##,其输出是语法单位.
答案:
单词符号串
12.语法分析的有效工具是##.
答案:
语法树
13.语法分析最常用的两类方法是##和自下而上分析法.
答案:
自上而下
14.分析句型时,应用算符优先分析技术时,每步被直接归约的是##.
答案:
最左素短语
15.应用LR分析技术时,每步被直接归约的是##.
答案:
句柄
16.自顶向下的语法分析方法的基本思想是:
从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行##,试图推导出文法的句子,使之与给定的输入串匹配.
答案:
直接推导
17.自底向上的语法分析方法的基本思想是:
从输入串入手,利用文法的产生式一步一步地向上进行##,力求归约到文法的开始符号.
答案:
直接归约
18.自上而下分析法采用##,归约,错误处理,接受等四种操作.
答案:
移进
19.一个LR分析器包括两部分:
一个总控程序和##.
答案:
一张分析表
20.递归下降法不允许任一非终极符是直接##递归的.
答案:
左
21.对于文法的每个产生式都配备了一组属性的计算规则,称为##.
答案:
语义规则
22.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是##.
答案:
二义性文法
23.预测分析程序是使用一张分析表和一个##进行联合控制的.
答案:
符号栈
简答题
1.简述编译程序各组成部分的主要功能.
答案:
词法分析器:
输入源程序,进行词法分析,输出单词符号.语法分析器:
在词法分析的基础上,根据语言的语法规则(文法规则)把单词符号串分解成各类语法单位,并判断输入串是否构成语法上正确的“程序”.中间代码生成器:
按照语义规则把语法分析器归约(或推导)出的语法单位翻译成一定形式的中间代码,比如说四元式.优化:
对中间代码进行优化处理.目标代码生成器:
把中间代码翻译成目标语言程序.表格管理模块保存一系列的表格,登记源程序的各类信息和编译各阶段的进展情况.编译程序各阶段所产生的中间结果都记录在表格中,所需信息多数都需从表格中获取,整个编译过程都在不断地和表格打交道.出错处理程序对出现在源程序中的错误进行处理.此外,编译的各阶段都可能出现错误,出错处理程序对发现的错误都及时进行处理.
2.文法G[S]为:
S->Ac|aBA->abB->bc写出L(G[S])的全部元素.
答案:
S=>Ac=>abcS=>aB=>abc所以L(G[S])={abc}
3.什么是句子?
什么是语言?
答案:
设G是一个给定的文法,S是文法的开始符号,如果Sx(其中x∈VT*),则称x是文法的一个句子.设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:
L(G)={x│Sx,x∈VT*}.
4.一字母表∑={a,b},试写出∑;上所有以a为首的字组成的正规集相对应的正规式.
答案:
正规式a(a|b)*