1、编译原理试题样题一、单项选择题(共 10 题,每题 1 分,共 10 分)1. 在词法分析阶段不能识别的是 ( )A标识符 B. 运算符 C四元式 D. 常数2. 设有表达式 a*b-c,将其中 a*b 识别为表达式的编译阶段是什么( )A词法分析 B. 语法分析C语义分析 D. 代码生成3. 词法分析器的输入是 ( )A单词符号串 B.源程序 C语法单位 D.目标程序4. 哪个不是 DFA M 的构成成分 ( )A 有穷字母表 B. 初始状态集合C 终止状态集合 D. 有限状态集合5.对编译系统有关概念描述正确的是 ( )A 目标程序只能是机器语言 B. 编译程序处理的对象是源语言C 解释程
2、序属于编译程序 D. 词法分析无法自动进行6. 在词法分析阶段不能识别的是 ( )A标识符 B. 运算符 C四元式 D. 常数7. 自下而上语法分析的主要分析动作是 ( )A推导 B. 规约 C匹配 D. 移进8.下面不属于 LL(1)分析器的组成部分是 ( )ALL(1)总控程序 B. LL(1)分析表C分析栈 D.源程序串9. 设有一段 C 语言程序while(ij+=k;i+;经过词法分析后可以识别的单词个数是 ( )A19 B.20 C21 D.2310设有文法 GS:SAp|Bq,Aa|cA,Bb|dB ,则 FIRST(Ap)为 ( )Ap,q B. b,d Ca,c D. 其他二
3、、简单题(30 分)1.编译程序和解释程序有什么区别?2.令文法为 ET|E+T|E-TTF|T*F|T/FF(E)|i给出分析句子(i+i)*i 的语法树3规范规约在规约过程中有什么限制?请说明。4. 语法分析的基本任务是什么?5. G(S): SSS|(S) |( )是二义性的吗?请给于说明。6. 把下列表达式变换成后缀表达式:(a-d)*b+c/e7. 对文法 GR:Si| (T)TT,S|S消除文法左递归。三、计算题(30 分)1. 给出以 10 结尾的二进制整数的正则表达式。2. 构造一个非确定有限自动机 M,使得其对应的正则式为: 10(0|1 ) *(0|1)。3. 给出语言 L
4、=a nbn|n0相应文法。4. 已知文法 G:SApAa|cABb|dB给出此文法非终结符的 FIRST 集和 FOLLOW 集5. 请将表达式 (a+b)*(c+d)-(a+b+c)表示为四元式序列。四、综合题(30 分)1. 将下列 NFA M 确定化。2. 对以下四元式中的循环进行优化:I=1Read J,KL: A=K+1B=J+1C=A*BWrite CI=I+1If I100 goto Lhalt3考虑下面文法 G:Sa|(T)|TT,S|S给出句子(a,a), ,(a),a)的规范规约及每一步的句柄。4. 考虑文法:SAS|bA SA|a构造这个文法的 LR(0)项目集规范族及识别活前缀的 DFA M。5. 设有文法:PROGRAMbegin d ; S endSd;S|sTT|;sT1) 试构造该文法的 LL(1)分析表;2) 给出句子 begin d; s; s end 的分析过程。