编译原理试题A及答案.docx

上传人:b****5 文档编号:4494704 上传时间:2022-12-01 格式:DOCX 页数:7 大小:42.65KB
下载 相关 举报
编译原理试题A及答案.docx_第1页
第1页 / 共7页
编译原理试题A及答案.docx_第2页
第2页 / 共7页
编译原理试题A及答案.docx_第3页
第3页 / 共7页
编译原理试题A及答案.docx_第4页
第4页 / 共7页
编译原理试题A及答案.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

编译原理试题A及答案.docx

《编译原理试题A及答案.docx》由会员分享,可在线阅读,更多相关《编译原理试题A及答案.docx(7页珍藏版)》请在冰豆网上搜索。

编译原理试题A及答案.docx

编译原理试题A及答案

编译原理试题A

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

1、哪个不是编译系统的组成部分(C)

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→S1|S0|Sa|Sc|a|b|c,下列符号串中不是该文法的句子的是

(A)

A.ab0B.a0c01C.aaaD.bc10

5.文法G[S]:

S→aA

A→bB

B→a|aS,则L(G)为(C)

A.{(ab)na|n≥1}B.{a(ba)n|n≥1}

C.{(aba)n|n≥1}D.{(aba)n|n≥0}

6.哪个不是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)

A.19B.20C.21D.23

10.自上而下语法分析的主要动作是(B)

A.移进B.推导C.规约D.匹配

11.下面不属于LL

(1)分析器的组成部分是(D)

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.{a,c,#}B.{c,#}C.{a,#}D.{#}

13.设有文法G[S]:

S→Ap|Bq,A→a|cA,B→b|dB,则FIRST(Ap)为(C)

A.{p,q}B.{b,d}C.{a,c}D.其他

14.自下而上语法分析的主要分析动作是(D)

A.推导B.规约C.匹配D.移进-规约

15.算法优先分析中,可规约串是(C)

A.句柄B.活前缀C.最左素短语D.素短语

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

A.LL

(1)文法B.二义性文法

C.SLR

(1)文法D.算法优先文法

17、中间代码生成时所以据的是(C  )

A.语法规则    B.  词法规则C.语义规则   D. 等价变换规则

18、给定文法G:

E→E+T|T,T→T*F|F,F→i|(E)

则L(G)中的一个句子i+i+(i*i)*i的逆波兰表示为(C)

A.iii*i++ B.ii+iii**+C.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.写正则式:

所有小写字母a开头和结尾的串。

a(a|b|…|z)*a

2.构造有限自动机M,使得:

L(M)={anbn|n≥1}。

应是L(M)={anbm|n,m≥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)的全部元素。

L(G)={abc}

题目应该是写出文法的全部元素:

开始符号:

S;VT={a,b,c};VN={S,A,B};P={S→Ac,S→aB,A→ab,B→bc}

5.把下列表达式变换成后缀表达式:

(x:

=x+3)*4

xx3+:

=4*

6.把下列表达式变换成后缀表达式:

(notAandB)or(CornotD)

AnotBandCDnotoror

得分

四、求解题(本大题共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的短语、直接短语、素短语和句柄。

短语T,i,T-i,(T-i),T*(T-i),P,T*(T-i)+P

直接短语T,i,P

素短语i

句柄T

2.对文法G[R]:

R→R’|’T|T,T→TF|F,F→F*|C,C→(R)|a|b,消除文法左递归。

R→TR1,R1→’|’TR1|ε,T→FT1,T1→FT1|ε,F→CF1,F1→*F1|ε,C→(R)|a|b

3.给定程序:

voidfun(intx,inty)

{

x++;y++;

}

main()

{

intx=0;

fun(x,x);

printf(x);

}

调用函数fun时,若参数传递机制是1)按值传递,那么输出结果为多少?

2)按引用传递,那么输出结果为多少?

3)按值-结果传递,那么输出结果为多少?

答:

1)按值传递,输出0

2)按引用传递,输出2

3)按值-结果传递,输出1

4.把下列表达式翻译成三地址代码:

i:

=(j+k)*(10+m)。

t1:

=j+k

t2:

=10+m

i:

=t1*t2

5.已知文法G的EBNF表示为:

A→[B,B→X]{A},X→(a|b){a|b},试用C语言写出其递归下降子程序。

A→[B,B→X]{A},X→(a|b){a|b}即

A→[B

B→X]{A}

X→(a|b){a|b}

可以先变换:

B→X]{[B}

A()

{if(sym==’[‘){scaner();B();}

elseerror();

}

B()

{X();

if(sym==’]‘){scaner();

while(sym==’[‘)

{scaner();B();}

}elseerror();

}

X()

{if(sym==’a‘){scanner();}

elseif(sym==’b‘){scanner();}elseerror();

while(sym==’a‘orsym==’b‘)

{scanner();}

}

 

得分

五、综合题(本大题共2小题,每小题7分,共14分)

1.将下列NFA确定化,并画出最小化的DFA。

输入a输入b

{1}{0,1}{1}

{1}{0,1}{1}

{0,1}{0,1}{1}

{0}{1,2}f(1,a)=2f(2,a)=2f(1,b)=1f(2,b)=1

{1,2}等价

 

得分

2.给定文法G[S]:

S→AS|b,A→SA|a,

1)构造它的LR(0)项目集规范簇;

2)构造识别该文法所有活前缀的DFA。

项目集规范族:

I0:

S’→.S

S→.AS

S→.b

A→.SA

A→.a

I1:

S’→S.

A→S.A

A→.SA

A→.a

S→.AS

S→.b

DFA即我们经常画出的图(I0、I1等之间有弧和弧上标记的符号)

参看习题4.8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1