资源描述:
《编译原理试题答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、编译原理试题B得分一、单项选择题(每题1分,共20分)1、对编译系统有关概念描述正确的是(B)A.目标程序只能是机器语言B.编译程序处理的对象是源语言C.解释程序属于编译程序D.词法分析无法自动进行2.设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是什么(B)A.词法分析B.语法分析C.语义分析D.代码生成3.下面不能用于对文法进行描述的是(A)A.源语言B.EBNFC.BNFD.语法图4.设有文法G[S]:S→0S
2、1A
3、0,A→1
4、1S
5、0B,B→1A
6、0B,下列符号串中是该文法的句子的是(A)A.1010001001101B.0101001110010010C.110101
7、0011110111D.10100111011010105.文法G[S]:S→aA
8、bC
9、aA→aS
10、bBB→aC
11、bA
12、bC→aB
13、bS,则不是L(G)句子的是(B)A.a100b50ab100B.a1000b500abaC.a500b60aab2aD.a100b40ab10aa6.哪个不是DFA的构成成分(B)A.有穷字母表B.初始状态集合C.终止状态集合D.有限状态集合7.词法分析器的输入是(B)A.单词符号串B.源程序C.语法单位D.目标程序8.在词法分析阶段不能识别的是(C)A.标识符B.运算符C.四元式D.常数9.设有一段C语言程序while(i&&++j){c=2.19;j+
14、=k;i++;},经过词法分析后可以识别的单词个数是(C)A.19B.20C.21D.2310.自上而下语法分析的主要动作是(B)A.移进B.推导C.规约D.匹配11.下面不属于LL(1)分析器的自称部分是()A.LL(1)总控程序B.LL(1)分析表C.分析栈D.源程序串12.设有文法G[S]为S→AB
15、bC,A→ε
16、b,B→ε
17、aD,C→AD
18、b,D→aS
19、c则FOLLOW(A)为()A.{a,c,#}B.{c,#}C.{a,#}D.{#}13.设有文法G[S]:S→Ap
20、Bq,A→a
21、cA,B→b
22、dB,则FIRST(Ap)为()A.{p,q}B.{b,d}C.{a,c}D.其他14
23、.自下而上语法分析的主要分析动作是(B)A.推导B.规约C.匹配D.移进-规约15.算法优先分析中,可规约串是(B)A.句柄B.活前缀C.最左素短语D.素短语16.设有文法G={{S},{a},{S→SaS
24、ε},S},该文法是(B)A.LL(1)文法B.二义性文法C.SLR(1)文法D.算法优先文法17、中间代码生成时所以据的是( C )A.语法规则 B. 词法规则C.语义规则 D. 等价变换规则18、给定文法G:E→E+T
25、T,T→T*F
26、F,F→i
27、(E)则L(G)中的一个句子i+i+(i*i)*i的逆波兰表示为(C)A.iii*i++ B.ii+iii**+C.
28、ii+ii*i*+D.其他19.在编译程序中与生成中间代码的目的无关的是( B)A.便于目标代码优化 B.便于存储空间的组织C.便于目标代码的移植 D.便于编译程序的移植20.中间代码是介于源语言程序和什么之间的一种代码( D)A.源代码B.机器语言C.汇编语言D.目标代码得分二.简答(每题3分,共12分)1.什么是解释程序?2.词法分析器的主要任务是什么?3.文法有哪几部分组成?4.语法分析的基本任务是什么?得分三、解答题(本大题共6小题,每小题4分,共24分)1.写正则式:所有表示偶数的串。2.构造有限自动机M,使得:L(M)={anbn
29、cn
30、n≥1}。3.给定文法G[S]:S→aAcB
31、BdS,B→aScA
32、cAB
33、b,A→BaB
34、aBc
35、a,试检验aacb是不是其句子。4.文法G[S]=({A,B,C},{a,b,c},A,P),其中P有以下产生式组成:A→abc,A→aBbc,Bb→bB,Bc→Cbcc,bC→Cb,aC→aaB,aC→aa,问此文法表示的语言是什么?5.把下列表达式变换成后缀表达式:(x:=y:=3)+3*(x:=4)6.把下列表达式变换成后缀表达式:(AorB)and(CornotD)得分四、求解题(本大题共5小题,每小题6,共30分)1.设文法G[E]:E→E+T
36、E-T
37、T,T→T*F
38、T/F
39、
40、F,F→F↑P
41、P,P→(E)
42、i,求T*(T-i)+P的短语、直接短语、素短语和句柄。2.对文法G[R]:R→RT
43、T,T→TF
44、F,F→F*
45、C,C→(R)
46、a
47、b,消除文法左递归。3.给定程序:voidfun(intx){x++;}main(){intx=0;fun(x);printf(x);}调用函数fun时,若参数传递机制是1)按值传递,那么输出结果为多少?2)按引用传递,那么输出结果为多少?3)按值-结果传