《编译原理试题A及答案(共8页).doc》由会员分享,可在线阅读,更多相关《编译原理试题A及答案(共8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上编译原理试题A得 分一、单项选择题(每题1分,共20分)1、哪个不是编译系统的组成部分 ( C )A 词法分析器 B. 代码生成器C 设备管理程序 D. 语法分析器2. 设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是什么( B )A词法分析 B. 语法分析C语义分析 D. 代码生成3. 下面不能用于对文法进行描述的是 ( A )A源语言 B. EBNF CBNF D. 语法图4. 设有文法GS: SS1|S0|Sa|Sc|a|b|c,下列符号串中不是该文法的句子的是 (A )A ab0 B. a0c01 C aaa D. bc105. 文法GS:SaAAb
2、BBa|aS ,则L(G)为 (C )A(ab)na|n1 B. a (ba)n|n1C(aba)n|n1 D. (aba)n|n06. 哪个不是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+=k; i+; ,经过词法分析后可以识别的单词个数是 ( B )A19 B.20 C21 D.2310自上而下语法分析的主要动
3、作是 (B )A移进 B. 推导 C规约 D. 匹配11.下面不属于LL(1)分析器的组成部分是 (D )ALL(1)总控程序 B. LL(1)分析表C分析栈 D.源程序串12.设有文法GS为SAB|bC, A|b,B|aD,CAD|b,DaS|c则FOLLOW(A)为 (A )Aa,c,# B.c,# Ca,# D.#13.设有文法GS:SAp|Bq,Aa|cA,Bb|dB ,则FIRST(Ap)为 ( C )Ap,q B. b,d Ca,c D. 其他14.自下而上语法分析的主要分析动作是 (D )A推导 B. 规约 C匹配 D. 移进-规约15.算法优先分析中,可规约串是 ( C ) A
4、句柄 B活前缀 C最左素短语 D素短语16. 设有文法G=S,a,SSaS|,S,该文法是 (B )ALL(1)文法 B二义性文法 CSLR(1)文法 D算法优先文法17、中间代码生成时所以据的是 (C) A语法规则 B词法规则 C语义规则 D等价变换规则18、给定文法G: EE+T|T,TT*F|F,Fi|(E)则L(G)中的一个句子i+i+(i*i)*i的逆波兰表示为 ( C)Aiii*i+ Bii+iii*+ Cii+ii*i*+ D其他19在编译程序中与生成中间代码的目的无关的是 (B) A便于目标代码优化 B便于存储空间的组织 C便于目标代码的移植 D便于编译程序的移植20中间代码是
5、介于源语言程序和什么之间的一种代码 (D )A源代码 B. 机器语言 C. 汇编语言 D. 目标代码 得 分二简答(每题3分,共12分)1. 什么是编译程序?编译程序是将源语言程序翻译为目标语言程序的程序。2. 词法分析器的主要任务是什么? 词法分析器的主要任务是逐步扫描和分解构成源程序的字符串,识别出一个一个的单词符号。3 有限自动机有哪几部分组成?有限自动机是一个五元组,由非空的有限状态集、输入字母表、状态转换函数、唯一的起始状态和接受状态集组成。4. 语法分析的基本任务是什么?在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单元。得 分三、解答题(本大题共6小题,每小题4
6、分,共24分)1.写正则式:所有小写字母a开头和结尾的串。a(a|b|z)*a2.构造有限自动机M,使得:L(M)=anbn|n1。应是L(M)=anbm|n,m13.给定文法GS:SaAcB|BdS,BaScA|cAB|b,ABaB|aBc|a,试检验aacbccb是不是其句子。不是其句子4.文法GS:SAc|aB,Aab,Bbc,写出L(G)的全部元素。L(G)=abc题目应该是写出文法的全部元素:开始符号:S;VT=a,b,c;VN=S,A,B;P= SAc, SaB, Aab,Bbc 5.把下列表达式变换成后缀表达式:(x:=x+3)*4xx3+:=4*6. 把下列表达式变换成后缀表达
7、式:(not A and B) or (C or not D)A not B and C D not or or得 分四、求解题(本大题共5小题,每小题6,共30分)1 设文法GE: EE+T|E-T|T,TT*F|T/F|F,FFP|P,P(E)|i,求T*(T-i)+P的短语、直接短语、素短语和句柄。短语T,i, T-i ,(T-i),T*(T-i), P,T*(T-i)+P直接短语T, i , P素短语i句柄T2. 对文法GR:RR | T | T,TTF|F,FF*|C,C(R)|a|b,消除文法左递归。 RTR1,R1|TR1|, TFT1,T1FT1|, FCF1, F1*F1|,
8、C(R)|a|b3. 给定程序: void fun(int x,int y) x+;y+;main() int x=0; fun(x,x); printf(x);调用函数fun时,若参数传递机制是1)按值传递,那么输出结果为多少? 2)按引用传递,那么输出结果为多少? 3)按值-结果传递,那么输出结果为多少?答:1)按值传递,输出0 2)按引用传递,输出2 3)按值-结果传递,输出14. 把下列表达式翻译成三地址代码:i:=(j+k)*(10+m)。t1:= j+kt2:=10+mi:=t1*t25.已知文法G的EBNF表示为: AB,BXA,X(a|b)a|b,试用C语言写出其递归下降子程序
9、。AB,BXA,X(a|b)a|b即ABBXAX(a|b)a|b可以先变换:BX B A() if ( sym= ) scaner(); B(); else error();B() X();if(sym= ) scaner(); while(sym=) scaner();B(); else error();X()if(sym=a) scanner();else if(sym=b) scanner(); else error();while(sym=a or sym=b) scanner();得 分五、综合题(本大题共2小题,每小题7分,共14分)1将下列NFA确定化,并画出最小化的DFA。 输入a 输入b0 0,1 1 1 0,1 1 0,1 0,1 10 1,2 f(1,a)=2 f(2,a)=2 f(1,b)=1 f(2,b)=11,2等价得 分2. 给定文法GS:SAS|b,ASA|a,1)构造它的LR(0)项目集规范簇;2)构造识别该文法所有活前缀的DFA。项目集规范族:I0:S .SS.ASS.bA.SAA.aI1: S S.AS.AA.SAA.aS.ASS.b等DFA即我们经常画出的图(I0、I1等之间有弧和弧上标记的符号)参看习题4.8专心-专注-专业
限制150内