|
一、单选题(共 14 道试题,共 70 分。)V 1. + u# c4 Z% U6 C# `
编译过程中, 语法分析器的任务是( ).' b1 q# M R$ x8 i/ e/ Y4 v
(1) 分析单词是怎样构成的% O/ H4 \: ]6 s$ p: z- X/ `9 C
(2) 分析单词串是如何构成语句和说明的 p. {. U% ^! C: g/ r/ Z
(3) 分析语句和说明是如何构成程序的: F' R: |6 `* q* c
(4) 分析程序的结构- G3 J7 I1 \2 J$ d" E
A. (2)和(3)
: d4 C" {% V+ h$ h$ h8 tB. (4)
7 q( k, V Q8 }, x- {! JC. (2),(3),(4): e8 u, i2 G! L! u7 k2 L# y8 Y
D. (1),(2),(3),(4)
" q; G% U& P3 P" K 满分:5 分, b% u! s4 H' [4 O
2. 程序设计语言单词通常可分如下四类 ).
6 O: P; ]* A' r* vA. 关键字, 标识符, 常数, 界符4 q! `9 Q2 {; j' J
B. 关键字, 变量, 常数, 界符
- d1 Q3 y& v' A! h! _C. 整型 , 字符型, 俘点型, 布尔型: z% s: M* @6 |, O
满分:5 分
- e4 o, ~7 b3 S9 h6 X" A3. 2 v2 N! I# h1 n* r! U! U7 c4 f3 x( v
当过程名出现在可执行语句中时, 就说过程在该点被( ).
& a7 _" c0 l9 r& T& GA. 引用
$ [0 D- `) Y1 {4 `! _B. 调用
1 n/ B, L7 u( L d( `C. 使用
" v. t3 p# y% X0 Z* HD. 执行, ]1 I+ ^6 `5 D0 U# T0 W8 `
满分:5 分
4 P: w& ]+ J" R8 i4 ~4. 已知语言L={anbbn|n>=1}, 则下述文法( )可以产生语言L.% W3 R# K( [" [
A. Z -> aZb|aAb|b A -> aAb|b
3 n/ s+ B! e0 L" ]) e+ \B. A -> aAb A -> b# ~& v- z; u; U8 T
C. Z -> AbB A -> aA|a B -> bB|b5 D/ k0 e1 q, @7 x; `
D. Z -> aAb A -> aAb|b
( |$ @6 o; l5 M* X- K 满分:5 分, D, f9 N7 M/ H; d, E4 i
5. & Q8 E3 ^/ l6 M* m, ?
填写下面文法 G(S)的 SELECT 集 ,并回答是否是 LL(1) 文法:9 S0 h! ^5 y2 s9 y! s' W
G(S): S -> a A b (1) | d S (2)
0 Y2 _2 R+ l0 ^6 Q$ g A -> a A (3) | ε (4)4 E9 Z6 Y, ]# d; q: L+ G$ [
SELECT(①)={ } , SELECT(②)={ } , SELECT(③)={ }, SELECT(④)={ } 0 O1 z5 e1 g: X5 e7 ~& x: b
A. a, d, a, b, 不是
" U7 E9 K* d/ L7 uB. a, d, a, b, 是' }, m% C. l! W7 N, b8 s8 A" V
C. a, a, d, b, 不是
" c1 L8 S- \3 Z7 y3 \2 m& _D. a, b, a, b, 是. f/ i Q6 s$ p
满分:5 分
5 [+ u) L% o. N; @& i2 n6. 通常,正规式包含如下三种运算:( ).
% v) V1 I8 `- x( b4 SA. 连接, 或, 方幂
; i i8 z0 v2 [! {/ s2 D3 {; B/ _B. 连接, 方幂, 闭包
9 H2 S" x1 ^7 gC. 连接, 或, 闭包
& s. y, P" G; S \- Y! F% a+ C 满分:5 分6 y+ l: X4 {/ w& n' s
7. 1 J a" W2 I9 v/ n/ ?/ o; ]
符号表是编译程序最主要的数据结构,用来存储标识符的( )。' q9 M. p) D; n- G" E, `
A.
9 Z! o- H5 y8 G6 w% h% L词法信息3 |" P) ]' S" B/ \
B. + I' B1 M! ?1 c
语法信息) t9 p, a2 n' M. P& x L
C.
9 b; s# N# ]( @8 {语义信息
7 n! A# @3 I. G9 ?( RD.
9 F1 @+ ^% _: L7 }. j语用信息+ e0 P, _) F6 _$ U/ T8 ?. V
满分:5 分! p' K. `9 H: ?1 L+ F
8. 下列不属于字符串banana的子串是( )/ R5 c3 ]' Q" B" S0 [
A. b
9 B& r# h4 A, dB. ban
, e+ E' X( F h/ ?) X1 c QC. babn9 ]8 ]! S6 t- p* X8 y g2 c3 v
D. bana5 C5 F6 ~+ H2 |& L0 g$ ?; X q/ G
满分:5 分; [3 e- ~- \5 K( S+ M0 m
9. 文法G所描述的语言是( )的集合.
5 W2 }# @3 {8 u6 I2 |' }A. 文法G的字符表∑中所有符号组成的符号串. G% E: G/ w# {
B. 文法G的字符表∑的闭包∑*中的所有符号串
- O3 E, H' u8 d7 Z5 B# v9 y7 GC. 由文法的开始符号推出的所有符号串
$ y, p6 N* S+ ^$ \) f2 R2 aD. 由文法的开始符号推出的所有终结符号串0 ?) K) s5 D5 d9 J* F& O' W' E6 m
满分:5 分5 y1 g1 K4 V6 a1 d8 I/ r
10. $ u& E; E: }0 G7 p0 v7 z
指出下述自动机(FA)所定义的字符串集合:
! R! U. ?: F0 e4 O
; P$ q0 \0 X6 j/ d 8 X$ d/ ~$ f- `
) U; h; P6 w0 G; Z2 i+ q
A. L(FA)={ a, abcn|n>0 }$ C6 P, h W' l! j) L2 y
B. L(FA)={ a, abcn|n>=0 }! X( L' o- ?# C6 U3 U$ D* W
C. L(FA)={ a, abcn|n>=1 }' w& R; p: H9 ], J
满分:5 分
2 Y2 o2 V4 p9 ~2 f0 e11. + B# W9 P! [/ O; J
已知文法G(E): E -> TE’# l2 ^, `( p6 V! ]
E’-> +TE’|ε
3 D2 a2 e5 f7 { q& C) O/ { T -> FT’/ K" C; ^% x: u. u: k/ s
T’-> *FT’|ε
# W5 R8 ]' E" H% s, a F -> id|(E)4 v" Q' {& I( u3 e2 ^; J2 g" ]
(1) FIRST(TE’)=( )
. \% E* n' a( [% c) d! k- G, j1 ` A. {(, id} B. {S, id} C. {*,)} D. {+, *}
7 f" ~0 `5 u7 D4 P1 C, }8 \ (2) FOLLOW(E)=( )
3 i4 A \# O- R. I A. {), +} B. {(, )} C. {#, )} D. {), *}
9 v1 a/ G) ]" ]* [A. ( L b- ~: ?2 a; A; n& K) O7 k
A , B) X4 k5 q" q8 e: P$ {8 |; ]
9 r) i. M1 \9 ?7 o8 ^B. B , C
# {" D' K! l. J. C V; K( dC. C , D
' q4 J" D* h/ }9 O' LD. A , C
) m& V9 T7 u# S/ ?% V 满分:5 分
L8 b3 N2 Z2 @! l/ y# i12. 常值表达式节省的目的是( ).; [6 l) Q7 x: i6 I$ O
A. 使表达式中的常量尽可能少3 a @/ }0 p/ h4 ~$ `2 W* ^0 H
B. 使表达式尽可能简短5 w' N6 ^0 j r0 O. X! p6 I
C. 将可在编译时刻计算的常量运算, 在编译时刻计算出来, 用其值替换表达式中出现的所有这种常量运算, 使其生成的代码指令尽可能少; [3 |" n4 B( d
满分:5 分! B5 }1 H2 Q/ `6 [7 n
13. 编译程序生成的目标程序( )是机器语言的程序.
4 q* d7 ?* ~1 A+ \8 n2 B& TA. 一定5 c) [9 a1 Y! l5 f2 y
B. 不一定, ?" M- X6 }& ]7 @) f) K8 T
满分:5 分2 ?6 C9 X, n: F
14.
; s2 s9 X V% _* R" j4 g: }% h* W设有类型说明: TYPE atype=ARRAY[1..2] OF ARRAY[1..5] OF real;) ~" [9 V: I. {% \
下面符号表, 哪一个是正确的?' w6 C; @; ~" ?
(1)4 b' [) |. ^) n& D) H6 z3 C
a( u* `/ _; |3 |8 U1 w
(2)0 t6 N4 I1 x, d) X( W7 {0 R9 `
1 t# F9 J( j" m, X5 m& R& x
A. (1)
6 @& ?! ?1 _6 `& SB. (2), a1 c |* x8 u7 Q: Y
满分:5 分 8 ^& m; ?, z- x
1 ~3 D. u2 U- W/ _; z$ ^
二、判断题(共 5 道试题,共 25 分。)V 1.
m3 I# T; S1 w# _' o语法分析的任务,是对给定的符号串,判定其是否是某文法的句子。
' K4 n4 U" c( ^, {2 }6 J3 i/ MA. 错误
/ r0 I, u: g4 Y8 T: {" IB. 正确
& ]; @ q3 C3 K& D; s* @0 r0 g8 | 满分:5 分
: z# ?2 y2 A9 V/ B |2. 5 Z$ w, y5 c! E
设有过程说明:
I) a4 @" ?5 s0 z: i8 { PROCEDURE sem( x:integer );% j) j8 ~0 o m. `# @+ A" U* ]
CONST inum=20;
4 m* E! g7 S; J TYPE atype=ARRAY[1..2] OF ARRAY[1..5] OF real;
9 m8 ?2 h# v1 J# w VAR a,b : atype ;* I7 m5 W% X( L: x
下面符号表的相应内容是否正确?! }2 N! J$ a! x
; w0 x- f* f! u/ N6 r* a
正确资料见光盘
: a/ {: T% I; R% oA. 错误& X/ N5 ~& H0 N1 F6 v) C; D
B. 正确
7 S6 }. z1 L1 Q0 L& h; v; M 满分:5 分+ ?0 o3 V# I& x6 J5 p, z
3. 1 x8 r2 g8 P* z
已知下述 pascal 程序片段和符号表如下:! b* E+ @6 Z! l A
3 p% R( B. X, A) N6 y7 D2 i$ Y- e
procedure lex ; var a:real; begin a:=5 end;: W3 Y/ x l/ U, k1 q
: t# L- a, u1 N. {
: I, s9 K, {0 ?$ X' R- N5 A* v3 I( b" U9 V
下列Token表示:lex ( i , i2 ) , var ( k , k2 ) , : ( p , p2 ), 5 ( c, c1 )
8 ~! t- Q7 s" m5 ilex ( i , i1 )2 S6 r7 S5 V2 a3 F- @/ {7 @# @
A. 错误2 E' S7 S0 E8 K: E
B. 正确; p. b* E6 Z7 A" Z
满分:5 分0 s. |9 ]% B. {9 z
4.
, \" _3 Q: h. @+ W已知上下文无关文法为 G(S)=( Vn , Vt ,S , P ), 则:: Y: n! r% ]& T
S7 y3 t+ A$ n+ h9 r ① 若有 S α; 那么称α是句型;
' C; U; T: S4 v* O( I
" n2 J. ^8 r; @6 k( ?# e ② 若有 S α 且 α∈Vt*; 那么称α是句子 ; 5 n. S/ P' V l1 r$ V
A. 错误0 ^- P7 ~8 U, k* P" u/ ^$ q2 X
B. 正确, N7 H) r$ M Y- ]
满分:5 分
$ ~9 D" h' A" J" W) ^& t. n5.
S+ I# o5 r2 W已知下述 c 程序片段和给定的符号表如下, main() { int a ,b ; b=2*a+5 ;} # I4 z; m4 H2 u
7 _' c. h# u" l O
4 N6 A- @2 H6 @; L# k T) r4 p" |- }2 K# A; w+ |. `
TOKEN表示:int ( k , k2 ) , b ( i , i2 ) , 5 ( c , c2 )
8 [4 @5 ^" {5 w: w
% T8 C% r) M4 A$ C" m; W; {6 i' _A. 错误
; v) `6 N# |, {" z1 A7 v( LB. 正确/ V4 V$ V L. G; m/ U
满分:5 分
], i* m" t' o5 T# |5 |& c: X" Y8 o" p4 H, `4 c
三、多选题(共 1 道试题,共 5 分。)V 1.
5 _$ s' p+ i4 A! `1 U# r设下述文法 G(Z): Z -> aAb , A -> cA | d . |& `; X0 `) L
LR( )分析表1:
Z7 M4 H& I. ^$ v/ v2 V; _
5 ~: J6 T; B4 A8 T$ }- x6 E/ J& F LR( )分析表2:! g& O7 U9 k+ V6 a2 c
& A. r c- O3 r- m, y 选择下面正确的说法. [/ M. b+ }! m: x
A. LR( )分析表1是正确的.
4 W' ]1 K6 `0 r- l+ h, t7 eB. LR( )分析表2是正确的.4 _1 Z/ J5 t# x6 ] s l; K
C. 该文法是LR ( 0 )文法.
+ u1 a9 n, r: g; k$ U, BD. 该文法不是LR ( 0 )文法.
6 [- y0 n2 D* a! l# K 满分:5 分 + V# A; ~* q/ J
2 n V3 M' b. K" M* j/ s
|
|