编译试题——程序员部分
有限状态自动机可用五元组(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)__是与该自动机等价的正规式。