|
一、单选题(共 14 道试题,共 70 分。)V 1.
" F* _" x" i( V1 T! m7 o. E0 D& t编译过程中, 语法分析器的任务是( ). E' i9 H7 F" e s2 q
(1) 分析单词是怎样构成的! ]2 |. ~& L+ q4 o. N
(2) 分析单词串是如何构成语句和说明的
* i {3 H. J. i3 H( G$ A(3) 分析语句和说明是如何构成程序的& q R. p( I6 W5 M: g
(4) 分析程序的结构" Y, D" Q/ a1 [. U) {
A. (2)和(3)4 m, D7 T" i. h7 n7 X' K! ^
B. (4)4 |% Y, Y2 t' n; T
C. (2),(3),(4)
! W% r. o7 U# { J0 ?. [D. (1),(2),(3),(4)
. M% X, E" z6 Q- n 满分:5 分6 d6 F: k2 @! Q; t) y
2. 程序设计语言单词通常可分如下四类 ).
" z! `6 Z/ l4 \A. 关键字, 标识符, 常数, 界符$ k) B! l; n Y/ j5 W/ C
B. 关键字, 变量, 常数, 界符
2 M- q* @, ~8 q. k UC. 整型 , 字符型, 俘点型, 布尔型4 i( a* C: y2 q. x7 d% L6 I
满分:5 分- w! \' f6 l6 N6 w8 G
3. ) T- K" }! F) `3 q
当过程名出现在可执行语句中时, 就说过程在该点被( ).+ T$ r& n5 M3 a
A. 引用* Y6 x9 v; y- f1 J. _
B. 调用6 U% P6 }! J, q& m9 Y/ q
C. 使用
' K0 Y \" H3 X vD. 执行) M5 O6 W1 n: X; I, ~
满分:5 分- N. X3 K: X6 i0 u" ^
4. 已知语言L={anbbn|n>=1}, 则下述文法( )可以产生语言L.
0 k! F% N9 f9 Y9 n' w4 jA. Z -> aZb|aAb|b A -> aAb|b
6 m( Q) c+ e9 f/ q( e7 BB. A -> aAb A -> b
L) t7 p4 [. ^C. Z -> AbB A -> aA|a B -> bB|b
, f8 P- |7 \& V% T8 I1 j+ _% ZD. Z -> aAb A -> aAb|b
% o7 W7 C, y& H2 B2 u 满分:5 分3 J% R4 n; Z* r8 }, h5 K+ O
5. ! x# x2 _9 `+ V! K$ Y1 g
填写下面文法 G(S)的 SELECT 集 ,并回答是否是 LL(1) 文法:
/ n# E* o0 N, U V9 t G(S): S -> a A b (1) | d S (2)
/ p2 l9 ~6 G& e \ A -> a A (3) | ε (4)
2 R5 d8 q9 `# E1 A6 fSELECT(①)={ } , SELECT(②)={ } , SELECT(③)={ }, SELECT(④)={ } 8 z- T6 K1 w1 o/ P3 P, n
A. a, d, a, b, 不是; M( U' b! h, h/ t# J4 X2 `7 \
B. a, d, a, b, 是7 R# o; d# k7 R7 } t
C. a, a, d, b, 不是& U& M8 w9 m; d( z
D. a, b, a, b, 是
6 D5 G F6 r! Y% W 满分:5 分
: J* P( L" e" F$ i9 |2 V4 W6. 通常,正规式包含如下三种运算:( ).
5 [1 U+ G2 t5 \; rA. 连接, 或, 方幂
) j; x" Q# t+ h3 O! m: u# OB. 连接, 方幂, 闭包2 i) ?/ z% i) z8 b7 m2 n
C. 连接, 或, 闭包0 j' `3 e: U* S8 X8 u. s6 ^
满分:5 分) H* j v, b6 t5 i9 y2 h, w' {
7.
, z, i/ m. \* ^- l! q符号表是编译程序最主要的数据结构,用来存储标识符的( )。+ u) O& a& C/ }7 ^4 T* _1 j
A. . A" x+ k0 G; }) ?/ S
词法信息
$ X7 B# @+ d8 M6 n9 tB. 8 B0 [- ]. h8 \2 o$ W9 a! C! W: h
语法信息
: w$ Z$ M7 q. n" M* x7 F, W, EC. 7 I, Z" i* i9 X8 F; T) Q
语义信息3 c7 I. k5 T3 G5 M
D. T1 ]) ~: p' g8 P5 ]8 [4 l
语用信息
6 @+ z4 m. s1 W( ~8 D8 ?8 _6 x' B 满分:5 分. T6 H7 s* H! Z& U+ _2 K: ?3 r( m7 L9 l
8. 下列不属于字符串banana的子串是( ) k4 r1 D% r4 V2 U: Y/ U5 q
A. b5 J' U# ]! ?5 x; n7 }
B. ban
0 q3 F. O! F5 J& m& F0 A: |C. babn t: u4 r9 D5 J2 a, k- c0 V
D. bana
: @/ \5 U4 {: }) |; i$ i* M) J# |0 P 满分:5 分& G6 @8 C/ f& `2 B1 T. o* @
9. 文法G所描述的语言是( )的集合.
E, Z( ^# e$ B2 M! ?# F- e; m6 B: yA. 文法G的字符表∑中所有符号组成的符号串
8 A' R! S, e1 u- }8 HB. 文法G的字符表∑的闭包∑*中的所有符号串$ e" H) ^. x% t) Z
C. 由文法的开始符号推出的所有符号串
9 a$ C+ Z; I! [1 ]% b* ^% ~! yD. 由文法的开始符号推出的所有终结符号串9 N8 e w" @& \
满分:5 分! l$ |' N" R4 ~5 C$ x Q5 X
10.
1 ^2 F7 _: [ N$ `0 A) ^0 k+ Z指出下述自动机(FA)所定义的字符串集合:
0 @3 d) [ U- B! M( e4 h2 n6 ^3 q0 L; J, q
Y( @! ]) \% O& d$ g- g3 U+ L6 V; g: N3 Z3 G, y7 C+ Y
A. L(FA)={ a, abcn|n>0 }
! u* B E$ D6 s* ^" Q4 NB. L(FA)={ a, abcn|n>=0 }1 k0 @- F3 W# s& w
C. L(FA)={ a, abcn|n>=1 }
7 \4 p4 E% X0 m 满分:5 分% f! ?& s% o, c" y- w* ]% L7 U' U4 u
11.
9 k' Y1 e( k7 B/ ^+ Q- g- `已知文法G(E): E -> TE’2 q$ r2 s% y$ R- S( t7 Y
E’-> +TE’|ε/ e5 J( ]1 A& Q; C3 u: @) }/ h1 g
T -> FT’
- n. p& A, @, ] a9 \3 K2 b T’-> *FT’|ε( s! q' F8 L4 u- |: A- B
F -> id|(E)3 [7 g9 _" w& j, W$ S8 `
(1) FIRST(TE’)=( )
2 N4 Q& ^; I. u8 P4 @$ J A. {(, id} B. {S, id} C. {*,)} D. {+, *}
. y: M; l" t' D b" o (2) FOLLOW(E)=( )
$ h; h1 z# H4 w, o/ k- k4 W" D+ } A. {), +} B. {(, )} C. {#, )} D. {), *}
* u" ~' K8 X5 p0 D8 o0 ]; [A. - M1 ^7 A5 q7 c
A , B# `+ d3 R+ U J5 A1 O) s
$ Z* Z8 Q0 I5 Q- d5 _) M
B. B , C }+ s& U: e/ y
C. C , D
; ] T: @. R& V2 TD. A , C9 P% t$ I" J: H \5 b& r
满分:5 分, N2 k. I. i+ t
12. 常值表达式节省的目的是( ).6 w/ W6 Z1 x3 V; S* S
A. 使表达式中的常量尽可能少4 e; U( E n$ {5 M1 I1 b* x5 H
B. 使表达式尽可能简短
1 f. o0 F' G: ]C. 将可在编译时刻计算的常量运算, 在编译时刻计算出来, 用其值替换表达式中出现的所有这种常量运算, 使其生成的代码指令尽可能少
1 r( T$ t: ~' i7 C) P ] 满分:5 分- X" A2 W# S& s. d+ J1 u- _
13. 编译程序生成的目标程序( )是机器语言的程序.1 l! e F% O& V! F2 }- Q3 R' n
A. 一定
; b/ i j# d5 bB. 不一定
/ {* D. L' m" u Z2 s 满分:5 分( _: A9 h. o- j! J1 F7 @8 H
14. . _/ p6 a$ I( a3 K: G# Y
设有类型说明: TYPE atype=ARRAY[1..2] OF ARRAY[1..5] OF real;
; L5 G. w' ]; d4 | 下面符号表, 哪一个是正确的?, @6 T6 G$ M* M/ g: f' i
(1)
9 D0 y( }3 Y, F3 K 3 T( h/ C; c w0 f9 r4 B2 j# z6 ^
(2)
9 t2 V* H* \; n+ ] 5 W( ~* ]1 `9 e% K
A. (1)
7 S2 R0 M% [. ?B. (2)7 h! M* p1 }+ Z2 N( c) i
满分:5 分
9 a' U B# R1 I" d+ E1 L. N
1 m! b% H* r, G: V% `+ ]0 o! o8 n二、判断题(共 5 道试题,共 25 分。)V 1.
1 g! u, h* q0 v; ^2 p1 z语法分析的任务,是对给定的符号串,判定其是否是某文法的句子。
3 V' i+ H# x+ d; p& c1 B. _7 qA. 错误
/ l* u; E- v1 H7 J+ w( e* RB. 正确
7 Y& W1 a9 f* J3 f- Y/ O 满分:5 分1 X; S+ ^( N3 [+ H
2.
" ]8 a$ X5 ?6 k/ L/ [4 d" D设有过程说明: / @ Q* Q+ [4 N4 s1 l
PROCEDURE sem( x:integer );' R9 e+ H: a8 U6 c+ G8 D0 G
CONST inum=20;
2 Y) ]+ o6 ]/ T: K! `) ^. h& ` TYPE atype=ARRAY[1..2] OF ARRAY[1..5] OF real;
2 M* Q2 D2 a2 _$ z' q VAR a,b : atype ;* m9 T$ Q2 ?; p: t; |( R, J
下面符号表的相应内容是否正确?( K# T& ?) H2 |% d
4 a, }+ N7 u) [* A
正确资料见光盘/ Z6 `1 L& G1 U! y5 w6 s; p; A
A. 错误$ Q& w4 p, M9 z( F# u2 M' f4 r# I: c; w
B. 正确
5 L- @0 W$ R1 ~" l 满分:5 分
$ n) x: T# x. b z3 \' e8 l3.
& v) h L2 L( |, ?: [" }3 q已知下述 pascal 程序片段和符号表如下:
3 d3 Y* r- v* P4 S T( T4 l) f
2 f# D; L! \( q+ ^9 a1 V procedure lex ; var a:real; begin a:=5 end;
' B, d: x( k* k& @& I& z
; |+ l2 V! d' Z- X % e; D5 q5 n; a) W+ h; t
. Q, h- |5 ?0 t( [7 w
下列Token表示:lex ( i , i2 ) , var ( k , k2 ) , : ( p , p2 ), 5 ( c, c1 ); t# {$ a" U4 j; m" y, B3 m# C
lex ( i , i1 )7 ^6 E* D4 }. L& v
A. 错误% N5 E0 \! y- G6 m" }
B. 正确# E4 x+ L1 _3 w. H. y7 t& Y
满分:5 分
3 a* Y5 {# k* i' |4. 8 P; t& ^' o8 k8 `
已知上下文无关文法为 G(S)=( Vn , Vt ,S , P ), 则:
: {/ Z1 S/ y4 ~5 a 3 l6 [ u' h1 i! h3 n
① 若有 S α; 那么称α是句型;
# T% y% |4 M! k3 i/ W& ]
8 ]3 Y3 y- R: G4 T ② 若有 S α 且 α∈Vt*; 那么称α是句子 ; ! |% d3 q' K$ @" G+ X) }% {3 b
A. 错误
7 b8 W% N, W, X# _3 p3 u' ZB. 正确
2 e ]0 u7 w/ k4 \# p1 N% p0 w 满分:5 分
& ]& u3 k9 R+ P5. : }% E. I7 T7 t
已知下述 c 程序片段和给定的符号表如下, main() { int a ,b ; b=2*a+5 ;} : J" j% @7 a8 t0 E. k- A2 |# |, j
- o7 x# c2 \+ p1 _2 ~: F5 W" V4 L
% I& y b. Y2 D. T$ K# }! z9 ~; l2 x+ p; r; j1 ` v" W4 L u1 `4 d
TOKEN表示:int ( k , k2 ) , b ( i , i2 ) , 5 ( c , c2 )
4 t1 R( n2 k K8 E8 E4 q0 H' u
" r" L% K3 z$ x9 C- AA. 错误1 H1 s, V, W& g& [
B. 正确
6 w# |" `' t7 F1 J$ b 满分:5 分 # Z% v. b6 l3 I* M6 @
S* @" T Q/ M8 L( }三、多选题(共 1 道试题,共 5 分。)V 1.
5 j! v& O6 } [0 i+ j! v/ q2 X6 q设下述文法 G(Z): Z -> aAb , A -> cA | d
2 o5 r: ]: G* E% G LR( )分析表1:! x, U Z8 v! L4 Z8 f3 ?. c% t: V
! \1 Q9 \) H+ f j/ g, I' T& m) ~ LR( )分析表2:
5 v c' [& Q! J/ t. S, k' c# a : |+ t% y( t7 e: V
选择下面正确的说法.
9 r0 Y7 M v9 S, W# e6 Q! |6 PA. LR( )分析表1是正确的.; {4 h" _' l; H. r0 F' s
B. LR( )分析表2是正确的.1 g$ B; n& s" f8 U+ L1 r
C. 该文法是LR ( 0 )文法.
3 Z+ O: a* B8 L0 [# z( e, V y! {D. 该文法不是LR ( 0 )文法.8 f0 q% q4 G7 Q+ e4 Q M6 W
满分:5 分
& g% o% D9 ^; }" Q
) m) N9 x3 R6 H/ _* j# A |
|