本系列資料由"思達(dá)網(wǎng)校" 授權(quán)發(fā)布,任何網(wǎng)站不得轉(zhuǎn)載,否則追究法律責(zé)任。
●若正規(guī)表達(dá)式r=(a|b|c)(0|1)*,則L(r)中有(1)個(gè)元素。
[供選擇的答案]
(1)A.12 B.
●已知文法G(E)
E→T|E+T
T→F|T *F
F→(E)|i
句型(T *F+i)的語(yǔ)法樹(shù)中短語(yǔ)有(2),素短語(yǔ)(3),其中最左素短語(yǔ)是(4)。
[供選擇的答案]
(2)A、2個(gè) B、3個(gè) C、4個(gè) D、5個(gè)
(3)A、1個(gè) B、2個(gè) C、3個(gè) D、4個(gè)
(4)A、 (T*F+i) B、T*F+i C、T*F D、i
● 在下面的程序中,若實(shí)參a與形參x以引用調(diào)用(call by reference)的方式傳遞信息,則輸出結(jié)果為(5);若實(shí)參a與形參x以值調(diào)用(callbyvalue)的方式傳遞信息,那么輸出結(jié)果為(6)。
Mainprogram
|
Procedure addone(x)
|
[供選擇的答案]
(5) A.1 B.
(6) A.1 B.
●若正規(guī)表達(dá)式r=(a|b|c)(0|1)*,則L(r)中有(1)個(gè)元素。
[供選擇的答案]
(1)A.12 B.
[參考答案]
(1)D
[試題分析]
在本題中要求的根據(jù)正規(guī)表達(dá)式,確定其正規(guī)集合的元素個(gè)數(shù)。這里關(guān)鍵是理解閉包的概念。因?yàn)槭街杏校?SPAN lang=EN-US>0|1)*,因此可以表示任意長(zhǎng)度的0串或者1串。選D。
●已知文法G(E)
E→T|E+T
T→F|T *F
F→(E)|i
句型(T *F+i)的語(yǔ)法樹(shù)中短語(yǔ)有(2),素短語(yǔ)(3),其中最左素短語(yǔ)是(4)。
[供選擇的答案]
(2)A、2個(gè) B、3個(gè) C、4個(gè) D、5個(gè)
(3)A、1個(gè) B、2個(gè) C、3個(gè) D、4個(gè)
(4)A、 (T*F+i) B、T*F+i C、T*F D、i
[參考答案]
(2)C (3)B (4)C
[試題分析]
短語(yǔ)、直接短語(yǔ)、最左直接短語(yǔ)(句柄)、素短語(yǔ)、最左素短語(yǔ)以及推導(dǎo)、最左(最右)推導(dǎo)都是文法中最基本的概念。它們的定義相對(duì)比較抽象,因此我們可以借助語(yǔ)法推導(dǎo)樹(shù)來(lái)理解。
首先根據(jù)本題提供的文法和句型得到語(yǔ)法推導(dǎo)樹(shù)如下:
從語(yǔ)法樹(shù)我們可以看出,短語(yǔ)就是位于同一個(gè)非終端結(jié)點(diǎn)的所有葉子結(jié)點(diǎn),比如T*F、i就是是相對(duì)于T的短語(yǔ),T*F+i是相對(duì)于S的短語(yǔ), i是相對(duì)于F的短語(yǔ)。共有4個(gè),選C。而直接短語(yǔ)則進(jìn)一步要求這些葉子結(jié)點(diǎn)的非終端結(jié)點(diǎn)是它們的直接父結(jié)點(diǎn)。因此可以T*F、i都是該句型的直接短語(yǔ)。語(yǔ)法樹(shù)上最左的直接短語(yǔ)就是句柄,本題中是T*F。
所謂素短語(yǔ)是指這樣一個(gè)短語(yǔ),它至少含有一個(gè)終結(jié)符,并且除它自身之外不再含任何更小的素短語(yǔ)。最左素短語(yǔ)則指處于句型最左邊的那個(gè)素短語(yǔ)。因此本題中的素短語(yǔ)是i、T*F,共兩個(gè),選B。而最左素短語(yǔ)是T*F,選C。
對(duì)于這類型的題,還可能涉及到兩個(gè)概念:最左推導(dǎo)和最右推導(dǎo)。最左推導(dǎo)是指任何一步推導(dǎo)過(guò)程σ→β,都是對(duì)σ中的最左非終結(jié)符進(jìn)行替換。因此,在語(yǔ)法樹(shù)中也很容易看出,如果語(yǔ)法樹(shù)中的只有最左的非終結(jié)符結(jié)點(diǎn)(包括各級(jí)結(jié)點(diǎn))具有其子樹(shù),則它就是最左推導(dǎo)。最右推導(dǎo)與之類似,最右推導(dǎo)也稱規(guī)范推導(dǎo)。
● 在下面的程序中,若實(shí)參a與形參x以引用調(diào)用(call by reference)的方式傳遞信息,則輸出結(jié)果為(5);若實(shí)參a與形參x以值調(diào)用(callbyvalue)的方式傳遞信息,那么輸出結(jié)果為(6)。
Mainprogram
|
Procedure addone(x)
|
[供選擇的答案]
(5) A.1 B.
(6) A.1 B.
[參考答案]
(5)D (6)A
[試題分析]
本題考察的是函數(shù)調(diào)用中實(shí)參和形參的交換過(guò)程,C語(yǔ)言中通過(guò)傳值的方式將實(shí)參傳給形參,主調(diào)函數(shù)與被調(diào)用的函數(shù)之間傳遞數(shù)據(jù)的方式有兩種,即被調(diào)用的函數(shù)返回值給主調(diào)函數(shù)和通過(guò)參數(shù)返回?cái)?shù)據(jù)。也就是傳值調(diào)用和引用調(diào)用兩種。
在本題中,Mainprogram是主調(diào)函數(shù),addone是被調(diào)用的函數(shù),第一次是引用調(diào)用,對(duì)a的修改是針對(duì)實(shí)際參數(shù)的修改,具體過(guò)程如下:
a:=x+1;//x是指向a的,所以本式中a=2;x=1;
x:=x+2;//x被改變,x與相同,x=x+2=2+2=4
因?yàn)?/SPAN>x是指向a的,所以a是4;
第二次調(diào)用的是值調(diào)用,具體過(guò)程如下:
a:=1; //a=1;
a:=x+1;//在addone中a=2,在Mainprogram中a=1;
x:=x+2; //改變了x的值并不能改變a的值
所以a=1
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |