编译原理试题A-201212

更新时间:2023-11-22 14:27:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

编译原理试题A

得 分 一、单项选择题(每题1分,共20分)

1、哪个不是编译系统的组成部分 ( ) A. 词法分析器 B. 代码生成器 C. 设备管理程序 D. 语法分析器

2. 设有表达式a*b-c,将其中a*b识别为表达式的编译阶段是什么

( )

A.词法分析 B. 语法分析 C.语义分析 D. 代码生成

3. 下面不能用于对文法进行描述的是 ( ) A.源语言 B. EBNF C.BNF D. 语法图

4. 设有文法G[S]: S→S1|S0|Sa|Sc|a|b|c,下列符号串中不是该文法的句子的是

( )

A. ab0 B. a0c01 C. aaa D. bc10

5. 文法G[S]: S→aA A→bB

B→a|aS ,则L(G)为 ( ) A.{(ab)na|n≥1} B. {a (ba)n|n≥1} C.{(aba)n|n≥1} D. {(aba)n|n≥0}

6. 哪个不是DFA的构成成分 ( ) A. 有穷字母表 B. 初始状态集合 C. 终止状态集合 D. 有限状态集合

7.词法分析器的输入是 ( ) A.单词符号串 B.源程序 C.语法单位 D.目标程序

8.在词法分析阶段不能识别的是 ( ) A.标识符 B. 运算符 C.四元式 D. 常数

9.设有一段C语言程序 while(i&&++j) {

c=2.19; j+=k; i++;

} ,经过词法分析后可以识别的单词个数是 ( ) A.19 B.20 C.21 D.23

10.自上而下语法分析的主要动作是 ( ) A.移进 B. 推导 C.规约 D. 匹配

11.下面不属于LL(1)分析器的自称部分是 ( ) A.LL(1)总控程序 B. LL(1)分析表 C.分析栈 D.源程序串

12.设有文法G[S]为

S→AB|bC, A→ε|b,B→ε|aD,C→AD|b,D→aS|c

则FOLLOW(A)为 ( ) A.{a,c,#} B.{c,#} C.{a,#} D.{#}

13.设有文法G[S]:

S→Ap|Bq,A→a|cA,B→b|dB ,则FIRST(Ap)为 ( ) A.{p,q} B. {b,d} C.{a,c} D. 其他

14.自下而上语法分析的主要分析动作是 ( ) A.推导 B. 规约 C.匹配 D. 移进-规约

15.算法优先分析中,可规约串是 ( ) A.句柄 B.活前缀 C.最左素短语 D.素短语

16. 设有文法G={{S},{a},{S→SaS|ε},S},该文法是 ( )

A.LL(1)文法 B.二义性文法 C.SLR(1)文法 D.算法优先文法

17、中间代码生成时所以据的是 ( ) A.语法规则 B. 词法规则 C.语义规则 D. 等价变换规则

18、给定文法G: E→E+T|T,T→T*F|F,F→i|(E)

则L(G)中的一个句子i+i+(i*i)*i的逆波兰表示为 ( ) A.iii*i++ B.ii+iii**+ C.ii+ii*i*+ D.其他

19.在编译程序中与生成中间代码的目的无关的是 ( ) A.便于目标代码优化 B.便于存储空间的组织 C.便于目标代码的移植 D.便于编译程序的移植

20.中间代码是介于源语言程序和什么之间的一种代码 A.源代码 B. 机器语言 C. 汇编语言 D. 得 分 二.简答(每题3分,共12分)

1. 什么是编译程序?

2. 词法分析器的主要任务是什么?

3. 有限自动机有哪几部分组成?

4. 语法分析的基本任务是什么?

) 目标代码 得 分 三、解答题(本大题共6小题,每小题4分,共24分)

1.写正则式:所有小写字母a开头和结尾的串。 2.构造有限自动机M,使得:L(M)={anbn|n≥1}。

3.给定文法G[S]:S→aAcB|BdS,B→aScA|cAB|b,A→BaB|aBc|a,试检验aacbccb是不是其句子。

4.文法G[S]:S→Ac|aB,A→ab,B→bc,写出L(G)的全部元素。

5.把下列表达式变换成后缀表达式:(x:=x+3)*4

6. 把下列表达式变换成后缀表达式:(not A and B) or (C or not D)

得 分 四、求解题(本大题共5小题,每小题6,共30分)

1. 设文法G[E]: E→E+T|E-T|T,T→T*F|T/F|F,F→F↑P|P,P→(E)|i,求T*(T-i)+P的短语、直接短语、素短语和句柄。

2. 对文法G[R]:R→R’|’T|T,T→TF|F,F→F*|C,C→(R)|a|b,消除文法左递归。

本文来源:https://www.bwwdw.com/article/0wpv.html

Top