1. 程式人生 > >軟考 DFA的狀態轉換圖+正規式

軟考 DFA的狀態轉換圖+正規式

1.

[解析] 至少要有一個.或E,所以在BCD中。
然後不含+,所以在CD中。

然後觀察5出去的兩條邊(對應於.後的字元),如果是數字的話,就不能出現E了,所以選C。

具體來說

0是入口,6是出口,初始進入0狀態,必需最終到達6狀態
A 3857,狀態過程:0->1->1->1->1
B 1.2E+5,E+5狀態過程:0->1->5->2->? 
C -123.67,狀態過程:0->4->1->1->1->5->6->6

D 0.576E10,狀態過程:0->1->5->6->6->6->?


2. 集合L=ambm|m≥0______。

A.可用正規式“a*b*”表示
B.不能用正規式表示,但可用非確定的有限自動機識別
C.可用正規式“ambm”表示
D.不能用正規式表示,但可用上下文無關文法表示

[解析] 正規式只能表示給定結構的固定次數的重複或者沒有指定次數的重複。本題中指定了m的重複次數,但是m是不固定的,所以,不能用正規式表示(A、C錯誤)。
對於每個非確定的有限自動機,都有一個與其等價的正規式,因此B不正確。
上下文無關文法的捕述功能比正規式更強大,可以表示次數不固定的重複,所以D是正確的

3.若一個程式語言可以提供連結串列的定義和運算,則其執行時的()。

A.資料空間適合採用靜態儲存分配策略


B.資料空間必須採用堆儲存分配策略
C.指令空間需要採用棧結構
D.指令程式碼必須放入堆區

[解析] 連結串列一般使用動態分配策略。陣列空間往往使用靜態儲存分配策略。
記憶體中供使用者使用的儲存空間可以分為三部分:程式區、靜態儲存區和動態儲存區。動態儲存區又分為棧區和堆區。
程式區:用來存放程式程式碼的記憶體區。
靜態儲存區:用來儲存程式中的全域性變數和區域性變數。
棧區:程式執行過程中存放臨時資料,可用來儲存函式呼叫時的現場和返回地址,也可以用來存放形式引數變數和自動區域性變數等。
堆區:一個自由儲存區域,程式通過動態儲存分配函式來使用它,用於諸如連結串列等的儲存。