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