中科院計算所2003年考研試題

第一部分 編譯(40’)
一、(1/01)*0*說明是什麼語言 畫出DFA(10’)
二、 S→過程調用語句/數組的賦值語句(10’)
過程調用語句爲:id(id,id,…,id)
賦值語句: id(id,…,id):=id(id,…,id)
(a)寫一個LR(1)方法(產生式不大於6個)
(b)若在LR分析同時完成語義分析,中間代碼生成,基於你的文法有什麼困 難?
三、E→E*E/+E/-E/unsigned-integer (10’)
爲上面表達式產生棧機器代碼,代碼執行後,表達式值留在棧上,自己設計所需棧機器指令,並寫清指令含義。
四、C語言中,a表示數組首址,而&a也表示數組首址,然而使用時有時並不相同,請根據下面寫出a與&a類型表達式 (10’)
(1)文件1:
tgpedef int A[10][20]
A a;
A * func ( )
{
return(a);
}
在linux上用gcc編譯
報告:第6行warning: return from
incompatible pointer type

(2)typedef int A[10][20]
A a;
A *func( )
{
return(&a);
}
無類型方面錯誤


(3)typedef int A[10][20]
typedef int B[20]
A a;
B *func( )
{
return(a);
}
無類型方面錯誤

(4) typedef int A[10][20]
A a;
func( )
{
Printf(“%d,%d,%d/n,a,a+1,&a+1);
}
main( )
{
func( );
}
結果:134518112,134518192,134518912


第二部分 操作系統(40’)
五.
1、操作系統內核有強內核和微內核,unix是前者,windowsNT是後者,簡介微內核比強內核的優點。(4’)
2、若只有進程控制,其獨立性表現在?引入線程後,獨立性有何改變(4’)
3、請求調頁存儲系統確定頁面大小的標準(4’)

六、
1.死鎖的證明
在m個同類資源,n個進程共享它,每次進程只能獲得或釋放至多一個資源,問會不會發生死鎖,若:
(1)、設每個進程所需資源數爲ri 1<=ri<=m (6’)
2、windows NT頁面大小爲4KB,採用兩級頁表機構,爲提高 設了32K或64K的Cache,試敘述windows NT地址變換過程的頁面調度策略。(10’)
3、假設有一種新磁盤技術,兩者即磁盤與內存訪問時間在同一數量級上,作下面哪些修改以採用更快的磁盤訪問速度。 (12’)
(1) 進程調度(4’) (2)內存管理(4’) (3)磁盤驅動程序(4’)


第三部分 數據結構(70分)
七. 選擇(5×2’)
八.簡答(10×2’)
說明:七和八題都很簡單,多是考察有關樹方面的小問題,第八題和填空題差不多,非常簡單,故沒抄下來.

九、(5×5’分)
1、廣義表,設H表示Get head ,T表示Get Tail 從下表中分解出原子a,請給出H、T操作序列。
L=((( )),(b,c),((b,(c,a)),(c,d)),((e),d))
2、串序列T=“abcabcabca”模式串w=“abca”用kmp算法,求next[1:10]
3、一無向圖,邊非負權值,問用Dijkstra最短路徑算法能否給出一棵生成樹?該樹是否一定是最小生成樹?說明理由。
4、判斷向一無環圖增加一邊是否會使圖中產生環的問題時,應選用什麼樣的數據結構?(一名話簡單回答)在使用這種數據結構時該判斷所需時間。
5、設向一棵空平衡二叉樹(AVL)中插入關鍵字序列爲[45,24,12,62,70,50,10,38]畫出每插入一關鍵字後該樹狀態示意圖,若在此基礎上刪除關鍵字62,給出刪除後的狀態圖。

十、(15分)有n張撲克牌,存在由記錄組成的數組A(1:n)中,每個記錄有三個域,其中,N0爲每張撲克初始序號,一旦給定不改變,Cor表示每張撲克花色,梅花<方塊<紅桃<黑桃 ,Val表子撲克數值1..13,要將這n張由小→大排序,每張只能看一次,低花色比高花色的值小,花色的大小均相同的保持原相對的次序,請寫算法,並描述所用附加存儲空間結構。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章