编译试题——程序员部分

编译试题——程序员部分
编译试题——程序员部分

有限状态自动机可用五元组(VT,Q,δ,q0,Qr)来描述,它可对应于__A__。设有一有限状态自动机 M 的定义如下:

VT ={0,1}

Q={ q0,q1,q2}

δ定义为:

δ(q0,0)= q1 δ(q1,0)= q2

δ(q2,1)= q2 δ(q2,1)= q2

Qr={ q2}。

M 是一个__B__有限状态自动机,它所对应的状态转换图为__C__,它所能接受的语言可以用正则表达式表示为__D__,其含义为__E__。

供选择的答案:

A:① 0型文法② 1型文法③ 2型文法④ 3型文法

B:①歧义的②非歧义的③确定的④非确定的

注:图中-表示开始状态,+表示终止状态。

D:① (0|1)* ② 00 (0|1)* ③ (0|1)*00 ④ 0 (0|1)*0

E:①由 0 和 1 所组成的符号串的集合②以 0 为头符号和尾符号、由 0 和 1 所组成的符号串的集合

③以两个 0 为结束的,由 0 和 1 所组成的符号串的集合④以两个 0 为开始的,由 0 和 1 所组成的符号串的集合

语法分析方法大体上可分成自上而下和自下而上两种。自下而上分析法,是从输入符号串开始逐步进行_A_,直至_A_成文法的起始符号。自上而下分析法,则是从文法的起始符号开始反复使用产生式进行_B_直至_B_出输入符号串。

算符优先文法是一种自下而上分析方法,其文法的特点是文法的产生式中_C_。自上而下的分析方法,通常要求文法的产生式_D_ ,如_E_文法就是一种可以自上而下分析的文法。供选择的答案

A、B:①递归②综合③回归④推导

⑤分解⑥归约

C:①不含两个相邻的非终结符②不含两个相邻的终结符

③不含ε产生式④不含长度为l的产生式

D:①不以非终结符开头②不以终结符开头

③不含左递归④不含右递归

E:① LR(I)② LL(I)③ SLR(I)④LALR(I)

假设某程序语言的文法如下:

S→SaT∣T

T → T b R∣R

R→ Pd R∣P

P→ fSg∣e

其中:VT={a, b, d, e, f, g};VN={S,T,R,P};S是开始符号。那么,此方法是_A_方法。这种文法的语法分析通常采用优先距阵,优先矩阵给出了该文法中各个终结符之间的优先关系系〔大于,小于,等于,无关系)。在上述文法中,某些终结符之间的优先关系如下:

b_B_a; f_C_g; a_D_a; d_E_d。

供选择的答案

A:①正则文法②算符文法③二义文法④属性文法

B:①大于②小于③等于④无关系

C:①大于②小于③等于④无关系

D:①大于②小于③等于④无关系

E

假设某程序语言的文法如下:

S → a | b | (T)

T → T d S | S

其中:VT = {a,b,d,(,)},VN= {S,T},S是开始符号。

考察该文法,称句型 (S d (T) d b )是S的一个_A_,其中:_B_是句柄;_C_是素短语;_D_是该句型的直接短语;_E_是短语。

供选择的答案:

A:①最左推导②最右推导③规范推导④推导

B、C:① S② b ③ (T) ④S d (T)

D:①S②S,(T),b ③S,(T),T d S,b ④ ( S d ( T ) d b )

E

考察下列文法: G( VT ,VN ,E ,P )

其中: VT = { + , * ,( , ) , i }

VN = { E , T , F }

E 是开始符号

P:

E → E + T | T

T → T * F | F

F → (E)| i

F*F+T是该文法的一个句型,其中 ,__(16)__是句柄 ,__(17)__是素短语。__(18)__是该句

型的直接推导,__(19)__是该句型的最左推导。__(20)__是该文法的一个句子。

(16):A.F B.F*F C.F+T D.F*F+,T

(17):A.F B.F*F C.F+T D.F*F+T

(18):A.F*F+i B.F*F+T*F C.F*F+F*F D.i*i+T

(19):A.F*F+T*F B.F*F+T C.F*(E)+T D.(E)*F+T

(20):A.T+(i+i) B.i+(i+F) C.i D.(E)

与正规式 (alb)* 等价的正规式为__(10)__。

(10) A. a*|b* B. a*b* C. (a*b*)* D. (ab)*

已知一不确定的有穷自动机(NFA)如下图所示,采用于集法将其确定化为 DFA 的过程如下表示。

状态集 T1 中不包括编号为__(6)__的状态;状态集 T2 中的成员有__(7)__;状态集 T3 等于__(8)__;该自动机所识别的语言可以用正规式__(9)__表示。

(6) A. 2 B. 4 C. 3 D. 5

(7) A. 1,3,4,5,Z B. 2,3 C. 6 D. 4,5,Z

(8) A. {Z} B. {6} C. {4,5,Z} D. { }

(9) A. (0|1)* B. (0*|1*)*001 C. (0*|1*)*0(0|1)* D. (0*|1*)0(0|1)* (6)A (7)D (8)D (9)D (10)C

已知文法G[S]:S→A0|Bl,A→S1|1,B→S0|0;该文法属于乔姆斯基定义的__(12)__文法,它不能产生串__(13)__。

(12) A. 0型 B. 1型 C. 2型 D. 3型

(13) A. 0011 B. 1010 C. 1001 D. 0101

●语言L={ambn|m≥0,n≥1}的正规表达式是__(14)__。

(14) A. a*bb* B. aa*bb* C. aa*b* D. a*b*

●一个文法G=(N,T,P,S),其中N是非终结符号的集合,T是终结符号的集合,P是产生

式集合,S是开始符号,令集合V=N∪T,那么G所描述的语言是__(15)__ 的集合。(15) A.由S推导出的所有符号串B.由S推导出的所有终结符号串

C.V中所有符号组成的符号串D.V的闭包中的所有符号串

下图为一确定有限自动机的状态转换图,与该自动机等价的正规表达式是__(12)__,图中的__(13)__是可以合并的状态。

(12)A.(a|b)*bb(a*b*)* B.(a|b)*bba*|b*

C.(a*b*)bb(a|b)*

D.(a*|b*)*bb(a*|b*)

(13)A.0和1 B.2和3 C.1和2 D.0和3

编译的优化工作对于下面程序段构造的控制流程图有__(15)__个基本块。

A:=0

j:=100

i:=1loop1: B:=j+1

C:=B+I

A:=A+C

if i=100 goto loop2

i:=i+1 Goto loop1

loop2: write A

halt

(15)A.1 B.2 C.3 D. 4

● 文法G[S]:S→xSx|y所描述的语言是__(16)__ (n≥0)。

(16)A.(xyx)n B.xyxn C.xynx D.xnyxn

B (16) D (11) B (12) A (13) B (14) C(15) D

某一非确定性有限自动机(NFA)的状态转换图如图5所示,该NFA等价的正规式是__(28)__与该NFA等价的DFA是__(29)__。

(28)B (29)A

某一确定性有限自动机(DFA)的状态转换图如下图所示,令d=0|1|2|…|9, 则以下字符串中,不能被该DFA接受的是____(28)____,与该DFA等价的正规式是_(29)___。(其中,ε表示空字符)

① 3857 ② 1.2E+5 ③ -123 . ④ .576E10

供选择的答案:

(28)A.①②③ B.①②④ C.②③④D.①②③④(29)A.(-d|d)d*E(-d|d)d*|(-d|d)*.d*(ε|E(-d|d)d*)

B.(-d|d)dd*(.|ε)d*|(ε|E(-d|d)d*)

C.(-|d)dd*E(-|d)d*|(-d|d)dd*.d*(ε|E(-|d)d*)

D.(-d|d)dd*E(-d|d)d*|(-d|d|)dd*.d*(ε|E(-dd*|dd*))

●对于以下编号为①、②、③的正规式,正确的说法是___(30)___。

① (aa*|ab) *b ② (a|b) *b ③ ((a|b) *|aa) *b

供选择的答案:

(30)A.正规式①、②等价 B.正规式①、③等价

C.

编译程序进行词法分析时不能____(27)____。D

供选择的答案:

(27)A.过滤源程序中的注释 B.扫描源程序并识别记号

C.指出出错行号

D.查出拼错的保留字(关键字)

●某一确定有限自动机(DFA)的状态转换图如下图所示,该DFA接受的字符串集是

____(28)___,与之等价的正规式是___(29)___。

供选择的答案:

(28)A.以1开头的二进制代码串组成的集合

B.以1结尾的二进制代码串组成的集合

C.包含偶数个0的二进制代码串组成的集合

D.包含奇数个0的二进制代码串组成的集合

(29)A.1*0(0|1)* B.((0|1*0)*1*)*

C.1*((0|1)0)*

D.(1*(01*0)*)*

对于下面的文法G[S],(44)是其句子(从S出发开始推导)。G[S]:S→M|(S,M)M→P|MP P→a|b|c|…|x|x|z

(44)A.((a,F)) B.((fac,bb),g) C.(abc) D.(c,(da))

● 与逆波兰式ab+ -c*d-对应的中缀表达式是(45)。

(45)A.a-b-c*d B.-(a+b)*c-d C.-a+b*c-d D.(a+b)*(-c-d)

● 下面的C程序代码段在运行中会出现(46)错误。

int i=0;

while(i<10);

{i=i+l;}

(46)A.语法 B.类型不匹配 C.变量定义 D.动态语义

B B D

下图是一有限自动机的状态转换图,该自动机所识别语言的特点是(45),等价的正规式为(46)。

(45)A.由符号a、b构成且包含偶数个a的串

B.由符号a、b构成且开头和结尾符号都为a的串

C.由符号a、b构成的任意串

D.由符号a、b构成且b的前后必须为a的串

(46)A.(a∣b)*(aa)* B.a(a∣b)*a C.(a∣b)* D.a(ba)*a

若将有限状态自动机(DFA)识别的0、1符号串看作二进制数,则__(6)__识别的是能被十进制数3整除的正整数,__(7)__是与该自动机等价的正规式。

相关主题
相关文档
最新文档