計算機復(fù)習(xí)要點_第1頁
計算機復(fù)習(xí)要點_第2頁
計算機復(fù)習(xí)要點_第3頁
計算機復(fù)習(xí)要點_第4頁
計算機復(fù)習(xí)要點_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

數(shù)據(jù)結(jié)構(gòu)要點

第一章概論

數(shù)據(jù)就是指能夠被計算機識別、存儲和加工處理的信息的載體。

數(shù)據(jù)元素是數(shù)據(jù)的基本單位,可以由若干個數(shù)據(jù)項組成。數(shù)據(jù)項是具有獨立含義的最

小標識單位。

數(shù)據(jù)結(jié)構(gòu)的定義:?邏輯結(jié)構(gòu):從邏輯結(jié)構(gòu)上描述數(shù)據(jù),獨立于計算機。?線性結(jié)構(gòu):

一對一關(guān)系。

?線性結(jié).多對多關(guān)系。

?存儲結(jié)構(gòu):是邏輯結(jié)構(gòu)用計算機語言的實現(xiàn)。?順序存儲結(jié)構(gòu):如數(shù)組。

?鏈式存儲結(jié)構(gòu):如鏈表。

?索引存儲結(jié)構(gòu):?稠密索引:每個結(jié)點都有索引項。

?稀疏索引:每組結(jié)點都有索引項。

?散列存儲結(jié)構(gòu):如散列表。

?數(shù)據(jù)運算。?對數(shù)據(jù)的操作。定義在邏輯結(jié)構(gòu)上,每種邏輯結(jié)構(gòu)都有一個運算集合。

-常用的有:檢索、插入、刪除、更新、排序。

數(shù)據(jù)類型:是一個值的集合以及在這些值上定義的一組操作的總稱。?原子類型:由

語言提供。

構(gòu)墓型:由用戶借助于描述機制定義,是導(dǎo)出類型。

抽象數(shù)據(jù)類型ADT:?是抽象數(shù)據(jù)的組織和與之的操作。相當于在概念層上描述問題。

?優(yōu)點是將數(shù)據(jù)和操作封裝在一起實現(xiàn)了信息隱藏。

程序設(shè)計的實質(zhì)是對實際問題選擇一種好的數(shù)據(jù)結(jié)構(gòu),設(shè)計一個好的算法。算法取決

于數(shù)據(jù)結(jié)構(gòu)。

算法是一個良定義的計算過程,以一個或多個值輸入,并以一個或多個值輸出。

評價算法的好壞的因素:?算法是正確的;

?執(zhí)行算法的時間;

?執(zhí)行算法的存儲空間(主要是輔助存儲空間);

?算法易于理解、編碼、調(diào)試。

時間復(fù)雜度:是某個算法的時間耗費,它是該算法所求解問題規(guī)模n的函數(shù)。

漸近時間復(fù)雜度:是指當問題規(guī)模趨向無窮大時,該算法時間復(fù)雜度的數(shù)量級???/p>

間復(fù)雜度:是某個算法的空間耗費,它是該算法所求解問題規(guī)模n的函數(shù)。

算法的時間復(fù)雜度和空間復(fù)雜度合稱算法復(fù)雜度。

第二章線性表

線性表是由nNO個數(shù)據(jù)元素組成的有限序列。n=0是空表;非空表,只能有一個開

始結(jié)點,有且只能有一個終端結(jié)點。

線性表上定義的基本運算:?構(gòu)造空表:Initlist(L)

順序表是按線性表的邏輯結(jié)構(gòu)次序依次存放在一組地址連續(xù)的存儲單元中。在存儲單

元中的各元素的物理位置和邏輯結(jié)構(gòu)中各結(jié)點相鄰關(guān)

系是一致的。地址計算:L0Ca6=L0Ca(l)+(i-l)*d;(首地址為1)

在順序表中實現(xiàn)的基本運算:?插入:平均移動結(jié)點次數(shù)為n/2;平均時間復(fù)雜度均

為0(n)。

?刪除:平均移動結(jié)點次數(shù)為(n-l)/2;平均時間復(fù)雜度均為0(n)。

線性表的鏈式存儲結(jié)構(gòu)中結(jié)點的邏輯次序和物理次序不一定相同,為了能正確表示結(jié)

點間的邏輯關(guān)系,在存儲每個結(jié)點值的同時,還存儲

了其后繼結(jié)點的地址信息(即指針或鏈)。這兩部分信息組成鏈表中的結(jié)點結(jié)構(gòu)。一個

單鏈表由頭指針的名字來命名。

單鏈表運算:?建立單鏈表?頭插法:s->next=head;head=s;生成的順序與輸入順序

相反。平均時間復(fù)雜度均為0(n)。

?尾插法:head=rear=null;if(head=null)head=s;elser->next=s;r=s;平均時間復(fù)雜度均

為0(n)

?加頭結(jié)點的算法:對開始結(jié)點的操作無需特殊處理,統(tǒng)一了空表和非空表。

?查找?按序號:與查找位置有關(guān),平均時間復(fù)雜度均為0(n)。

?按值:與輸入實例有關(guān),平均時間復(fù)雜度均為0(n)。

?插入運算:p=GetNode(L,i-1);s->next=p->next;p->next=s;平均時間復(fù)雜度均為

0(n)

,刪除運算:p=GetNode(L,i-l);r=p->next;p->next=r->next;free(r);平均時間復(fù)雜

度均為0(n)

單循環(huán)鏈表是一種首尾相接的單鏈表,終端結(jié)點的指針域指向開始結(jié)點或頭結(jié)點。鏈

表終止條件是以指針等于頭指針或尾指針。

采用單循環(huán)鏈表在實用中多采用尾指針表示單循環(huán)鏈表。優(yōu)點是查找頭指針和尾指針

的時間都是0(1),不用遍歷整個鏈表。

雙鏈表就是雙向鏈表,就是在單鏈表的每個結(jié)點里再增加一個指向其直接前趨的指針

域prior,形成兩條不同方向的鏈。由頭指針head惟一

確定。

雙鏈表也可以頭尾相鏈接構(gòu)成雙(向)循環(huán)鏈表。

雙鏈表上的插入和刪除時間復(fù)雜度均為0(l)o

順序表和鏈表的比較:?基于空間:?順序表的存儲空間是靜態(tài)分配,存儲密度為1;

適于線性表事先確定其大小時采用。

?鏈表的存儲空間是動態(tài)分配,存儲密度VI;適于線性表長度變化大時采用。

?基于時間:?順序表是隨機存儲結(jié)構(gòu),當線性表的操作主要是查找時,宜采用。

?以插入和刪除操作為主的線性表宜采用鏈表做存儲結(jié)構(gòu)。

?若插入和刪除主要發(fā)生在表的首尾兩端,則宜采用尾指針表示的單循環(huán)鏈表。

第三章棧和隊列

棧(Stack)是僅限制在表的一端進行插入和刪除運算的線性表,稱插入、刪除這一端為

棧頂,另一端稱為棧底。表中無元素時為空棧。棧

的修改是按后進先出的原則進行的,我們又稱棧為LIFO表(LastInFirstOut)。通常棧

有順序棧和鏈棧兩種存儲結(jié)構(gòu)。

棧的基本運算有六種:

?構(gòu)造空棧:InitStack(S)

,判??眨篠tackEmpty(S)

?判棧滿:StackFull(S)

?進棧:Push(S,x)

,退棧:Pop(S)

,取棧頂元素:StackTop(S)

隊列(Queue)是一種運算受限的線性表,插入在表的一端進行,而刪除在表的另一端

進行,允許刪除的一端稱為隊頭(front),允許插入的

一端稱為隊尾(rear),隊列的操作原則是先進先出的,又稱作FIFO表(FirstInFirst

Out)o隊列也有順序存儲和鏈式存儲兩種存儲結(jié)

構(gòu)。

隊列的基本運算有六種:?置空隊:InitQueue(Q)?判隊空:QueueEmpty(Q),判隊

滿:QueueFull(Q)?入隊:EnQueue(Q,x)?出隊:DeQueue(Q)?取隊頭元素:QueueFront(Q)

順序隊歹!J的"假上溢"現(xiàn)象:由于頭尾指針不斷前移,超出向量空間。這時整個向量空

間及隊列是空的卻產(chǎn)生了"上溢"現(xiàn)象。

為了克服"假上溢"現(xiàn)象引入循環(huán)向量的概念,是把向量空間形成一個頭尾相接的環(huán)

形,這時隊列稱循環(huán)隊列。

判定循環(huán)隊列是空還是滿,方法有三種:?一種是另設(shè)一個布爾變量來判斷;

?第二種是少用一^^元素空間,入隊時先測試((rear+1)%m=front)?滿:空;

?第三種就是用一個計數(shù)器記錄隊列中的元素的總數(shù)。

隊列的鏈式存儲結(jié)構(gòu)稱為鏈隊列,一個鏈隊列就是一個操作受限的單鏈表。為了便于

在表尾進行插入(入隊)的操作,在表尾增加一個尾指

針,一個鏈隊列就由一個頭指針和一個尾指針唯一地確定。鏈隊列不存在隊滿和上溢

的問題。在鏈隊列的出隊算法中,要注意當原隊中只

有一個結(jié)點時,出隊后要同進修改頭尾指針并使隊列變空。

第四章串

串的基本運算有:

,求串長strlen(char*s)

,串復(fù)制strcpy(char*to,char*from)

,串聯(lián)接strcat(char*to,char*from)

,串比較charcmp(char*sl,char*s2)

,字符定位strchr(char*s,chare)

.串是特殊的線性表(結(jié)點是字符),所以串的存儲結(jié)構(gòu)與線性表的存儲結(jié)構(gòu)類似。串的

順序存儲結(jié)構(gòu)簡稱為順序串。

順序串又可按存儲分配的不同分為:?靜態(tài)存儲分配:直接用定長的字符數(shù)組來定

義。優(yōu)點是涉及串長的操作速度快,但不適合插入、

鏈接操作。

?動態(tài)存儲分配:是在定義串時不分配存儲空間,需要使用時按所需申的長度分配存

儲單元。

串的鏈式存儲就是用單鏈表的方式存儲串值,串的這種鏈式存儲結(jié)構(gòu)簡稱為鏈串。鏈

串與單鏈表的差異只是它的結(jié)點數(shù)據(jù)域為單個字符。

為了解決"存儲密度"低的狀況,可以讓一個結(jié)點存儲多個字符,即結(jié)點的大小。

第五章多維數(shù)組和廣義表

數(shù)組一般用順序存儲的方式表示。存儲的方式有:?行優(yōu)先順序,也就是把數(shù)組逐

行依次排列。PASCAL.C

?列優(yōu)先順序,就是把數(shù)組逐列依次排列。FORTRAN

地址的計算方法:?按行優(yōu)先順序排列的數(shù)組:LOCa(ij尸LOCa(ll)+((i-l)*n+(j-l))*d。

■按列優(yōu)先順序排列的數(shù)組:LOCa(ij)=LOCa(11)+(0-1)*n+(i-1))*do

矩陣的壓縮存儲:為多個相同的非零元素分配一個存儲空間;對零元素不分配空間。

特殊矩陣的概念:所謂特殊矩陣是指非零元素或零元素分布有一定規(guī)律的矩陣。

稀疏矩陣的概念:一個矩陣中若其非零元素的個數(shù)遠遠小于零元素的個數(shù),則該矩陣

稱為稀疏矩陣。

稀疏矩陣的壓縮存儲方式用三元組表把非零元素的值和它所在的行號列號

做為一個結(jié)點存放在一起,用這些結(jié)點組成的一個線性表來表示

。但這種壓縮存儲方式將失去隨機存儲功能。加入行表記錄每行的非零元素在三

元組表中的起始位置,即帶行表的三元組表。

***

廣義表是n(n20)個元素的有限序列,其中的元素是原子或者是一個廣義表。

第六章樹

***

樹是n個結(jié)點的有限集合,非空時必須滿足:只有一個稱為根的結(jié)點;其余結(jié)點

形成m個不相交的子集,并稱根的子樹。

根是開始結(jié)點;結(jié)點的子樹數(shù)稱度;度為0的結(jié)點稱葉子(終端結(jié)點);度不為0

的結(jié)點稱分支結(jié)點(非終端結(jié)點);除根外的分支結(jié)點稱內(nèi)部

結(jié)點;

有謠旋是子樹有左,右之分的樹;無序樹是子樹沒有左,右之分的樹;森林是m

個互不相交的樹的集合;

樹的四種不同表示方法:?樹形表示法;?嵌套集合表示法;?凹入表示法?廣義

表表示法。

***

二叉樹的定義:是n?0個結(jié)點的有限集,它是空集(n=0)或由一個根結(jié)點及兩棵

互不相交的分別稱作這個根的左子樹和右子樹的二叉樹組

成。

二叉樹不是樹的特殊情形,與度數(shù)為2的有序樹不同。

二叉樹的4個重要性質(zhì):??二叉樹上第i層上的結(jié)點數(shù)目最多為2人(i-l)(i2l).;

?深度為k的二叉樹至多有(2”)-1個結(jié)點(k?l);

?.在任意一棵二叉樹中,若終端結(jié)點的個數(shù)為nO,度為2的結(jié)點數(shù)為n2,則

n0=n2+l;

?.具有n個結(jié)點的完全二叉樹的深度為int(log2n)+lo

滿二叉樹是一-棵深度為k,結(jié)點數(shù)為(2")-1的二叉樹;完全二叉樹是滿二叉樹在

最下層自右向左去處部分結(jié)點;

***

二叉樹的順序存儲結(jié)構(gòu)就是把二叉樹的所有結(jié)點按照層次順序存儲到連續(xù)的存

儲單元中。(存儲前先將其畫成完全二叉樹)

樹的存儲結(jié)構(gòu)多用的是鏈式存儲。BinTNode的結(jié)構(gòu)為lchild|data|rchild,把所有

BinTNode類型的結(jié)點,加上一個指向根結(jié)點的BinTree

型頭指針就構(gòu)成了二叉樹的鏈式存儲結(jié)構(gòu),稱為二叉鏈表。它就是由根指針root

唯一確定的。共有2n個指針域,n+1個空指針。

***

根據(jù)訪問結(jié)點的次序不同可得三種遍歷:先序遍歷(前序遍歷或先根遍歷),中序

遍歷(或中根遍歷)、后序遍歷(或后根遍歷)。時間復(fù)雜度

為0(n).

***

利用二叉鏈表中的n+1個空指針域來存放指向某種遍歷次序下的前趨結(jié)點和后

繼結(jié)點的指針,這些附加的指針就稱為"線索",加上線索的

二叉鏈表就稱為線索鏈表。線索使得查找中序前趨和中序后繼變得簡單有效,但

對于查找指定結(jié)點的前序前趨和后序后繼并沒有什么作用

0

***

樹和森林及二叉樹的轉(zhuǎn)換是唯一對應(yīng)的。

轉(zhuǎn)換方法:?樹變二叉樹:兄弟相連,保留長子的連線。

?二叉樹變樹:結(jié)點的右孩子與其雙親連。

?森林變二叉樹:樹變二叉樹,各個樹的根相連。

***

樹的存儲結(jié)構(gòu):?有雙親鏈表表示法:結(jié)點data|parent,對于求指定結(jié)點的雙親

或祖先十分方便,但不適于求指定結(jié)點的孩子及后代

O

,孩子鏈表表示法:為樹中每個結(jié)點data|next設(shè)置一個孩子鏈表firstchild,

并將data|firstchild存放在一個向量中。

?雙親孩子鏈表表示法:將雙親鏈表和孩子鏈表結(jié)合。

,孩子兄弟鏈表表示法:結(jié)點結(jié)構(gòu)leftmostchild|data|rightsibing,附加兩個分別

指向該結(jié)點的最左孩子和右鄰兄弟的指針域。

***

樹的前序遍歷與相對應(yīng)的二叉樹的前序遍歷一致;樹的后序遍歷與相對應(yīng)的二叉

樹的中序遍歷一致。

***

樹的帶權(quán)路徑長度是樹中所有葉結(jié)點的帶權(quán)路徑長度之和。樹的帶權(quán)路徑長度最

小的二叉樹就稱為最優(yōu)二叉樹(即哈夫曼樹)。

在葉子的權(quán)值相同的二叉樹中,完全二叉樹的路徑長度最短。

哈夫曼樹有n個葉結(jié)點,共有2n-l個結(jié)點,沒有度為1的結(jié)點,這類樹又稱為

嚴格二叉樹。

***

變長編碼技術(shù)可以使頻度高的字符編碼短,而頻度低的字符編碼長,但是變長編

碼可能使解碼產(chǎn)生二義性。如00、01、0001這三個碼無法

在解碼時確定是哪一個,所以要求在字符編碼時任一字符的編碼都不是其他字符

編碼的前綴,這種碼稱為前綴碼(其實是非前綴碼)。

哈夫曼樹的應(yīng)用最廣泛地是在編碼技術(shù)上,它能夠容易地求出給定字符集及其概

率分布的最優(yōu)前綴碼。哈夫曼編碼的構(gòu)造很容易,只要畫

好了哈夫曼樹,按分支情況在左路徑上寫代碼0,右路徑上寫代碼1,然后從上

到下到葉結(jié)點的相應(yīng)路徑上的代碼的序列就是該結(jié)點的最優(yōu)

前綴碼。

第七章圖

***

圖的邏輯結(jié)構(gòu)特征就是其結(jié)點(頂點)的前趨和后繼的個數(shù)都是沒有限制的,即任

意兩個結(jié)點之間之間都可能相關(guān)。

圖GraphG=(V,E),V是頂點的有窮非空集合,E是頂點偶對的有窮集。

有向圖Digraph:每條邊有方向;無向圖Undigraph:每條邊沒有方向。

有向完全圖:具有n*(n-l)條邊的有向圖;無向完全圖:具有n*(n-l)/2條邊的無

向圖;

有根圖:有一個頂點有路徑到達其它頂點的有向圖;簡單路徑:是經(jīng)過頂點不同

的路徑;簡單回路是開始和終端重合的簡單路徑;

網(wǎng)絡(luò):是帶權(quán)的圖。

***

圖的存儲結(jié)構(gòu):?鄰接矩陣表示法:用一個n階方陣來表示圖的結(jié)構(gòu)是唯一的,

適合稠密圖。?無向圖:鄰接矩陣是對稱的。

?有向圖:行是出度,列是入度。

建立鄰接矩陣算法的時間是O(n+n八2+e),其時間復(fù)雜度為0(22)

?鄰接表表示法:用頂點表和鄰接表構(gòu)成不是唯一的,適合稀疏圖。?頂點表結(jié)

構(gòu)vertex|firstedge,指針域存放鄰接表頭指針。

?鄰接表:用頭指針確定。?無向圖稱邊表;

?有向圖又分出邊表和逆鄰接表;

?鄰接表結(jié)點結(jié)構(gòu)為adjvex|next,

時間復(fù)雜度為O(n+e).,空間復(fù)雜度為O(n+e).o

圖的遍歷:?深度優(yōu)先遍歷:借助于鄰接矩陣的列。使用棧保存已訪問結(jié)點。

?廣度優(yōu)先遍歷:借助于鄰接矩陣的行。使用隊列保存已訪問結(jié)點。

***

生成樹的定義:若從圖的某個頂點出發(fā),可以系統(tǒng)地訪問到圖中所有頂點,則遍

歷時經(jīng)過的邊和圖的所有頂點所構(gòu)成的子圖稱作該圖的生

成樹。

最小生成樹:圖的生成樹不唯一,從不同的頂點出發(fā)可得到不同的生成樹,把權(quán)

值最小的生成樹稱為最小生成樹(MST)。

構(gòu)造最小生成樹的算法:?Prim算法的時間復(fù)雜度為0(22)與邊數(shù)無關(guān)適于稠

密圖。

?Kruskal算法的時間復(fù)雜度為0(lge),主要取決于邊數(shù),較適合于稀疏圖。

***

最短路徑的算法:?Dijkstra算法,時間復(fù)雜度為0(22).?類似于prim算法。

***

拓撲排序:是將有向無環(huán)圖G中所有頂點排成一個線性序列,若<u,v>dE(G),

則在線性序列u在v之前,這種線性序列稱為拓撲序列。

拓撲排序也有兩種方法:?無前趨的頂點優(yōu)先,每次輸出一個無前趨的結(jié)點并刪

去此結(jié)點及其出邊,最后得到的序列即拓撲序列。

?無后繼的結(jié)點優(yōu)先:每次輸出一個無后繼的結(jié)點并刪去此結(jié)點及其入邊,最

后得到的序列是逆拓撲序列。

第八章排序

***

記錄中可用某一項來標識一個記錄,則稱為關(guān)鍵字項,該數(shù)據(jù)項的值稱為關(guān)鍵字。

排序是使文件中的記錄按關(guān)鍵字遞增(或遞減)次序排列起來。?基本操作:比較

關(guān)鍵字大小;改變指向記錄的指針或移動記錄。

?存儲結(jié)構(gòu):順序結(jié)構(gòu)、鏈表結(jié)構(gòu)、索引結(jié)構(gòu)。

經(jīng)過排序后這些具有相同關(guān)鍵字的記錄之間的相對次序保持不變,則稱這種排序

方法是穩(wěn)定的,否則排序算法是不穩(wěn)定的。

排序過程中不涉及數(shù)據(jù)的內(nèi)、外存交換則稱之為"內(nèi)部排序"(內(nèi)排序),反之,若

存在數(shù)據(jù)的內(nèi)外存交換,則稱之為外排序。

內(nèi)部排序方法可分五類:插入排序、選擇排序、交換排序、歸并排序和分配排序。

評價排序算法好壞的標準主要有兩條:執(zhí)行時間和所需的輔助空間,另外算法的

復(fù)雜程序也是要考慮的一個因素。

***

插入排序:?直接插入排序:?逐個向前插入到合適位置。

?哨兵(監(jiān)視哨)有兩個作用:?作為臨變量存放R[i]

?是在查找循環(huán)中用來監(jiān)視下標變量j是否越界。

?直接插入排序是就地的穩(wěn)定排序。時間復(fù)雜度為0(22),比較次數(shù)為

(n+2)(n-l)/2;移動次數(shù)為(n+4)(n-l)/2;

?希爾排序:?等間隔的數(shù)據(jù)比較并按要求順序排列,最后間隔為1。

?希爾排序是就地的不穩(wěn)定排序。時間復(fù)雜度為0(21.25),比較次數(shù)為(M1.25);

移動次數(shù)為(L6n八1.25);

交換排序:?冒泡排序:?自下向上確定最輕的一個。,自上向下確定最重的一

個。?自下向上確定最輕的一個,后自上向下確定最重的

-------O

?冒泡排序是就地的穩(wěn)定排序。時間復(fù)雜度為0(22),比較次數(shù)為n(n-l)/2;移

動次數(shù)為3n(n-l)/2;

?快速排序:?以第一個元素為參考基準,設(shè)定、動兩個指針,發(fā)生交換后指

針交換位置,直到指針重合。重復(fù)直到排序完成。

?快速排序是非就地的不穩(wěn)定排序。時間復(fù)雜度為O(nlog2n),比較次數(shù)為

n(n-l)/2;

選擇排序:?直接選擇排序:?選擇最小的放在比較區(qū)前。

?直接選擇排序就地的不穩(wěn)定排序。時間復(fù)雜度為0(22)。比較次數(shù)為n(n-l)/2;

?堆排序?建堆:按層次將數(shù)據(jù)填入完全二叉樹,從int(n/2)處向前逐個調(diào)整

位置。

?然后將樹根與最后一個葉子交換值并斷開與樹的連接并重建堆,直到全斷開。

?堆排序是就地不穩(wěn)定的排序,時間復(fù)雜度為O(nlog2n),不適宜于記錄數(shù)較

少的文件。。

歸并排序:?先兩個一組排序,形成(n+l)/2組,再將兩組并一組,直到剩下一

組為止。

-歸并排序是非就地穩(wěn)定排序,時間復(fù)雜度是O(nlog2n),

分配排序:?箱排序:?按關(guān)鍵字的取值范圍確定箱子數(shù),按關(guān)鍵字投入箱子,

鏈接所有非空箱。

?箱排序的平均時間復(fù)雜度是線性的0(n).

?基數(shù)排序:?從低位到高位依次對關(guān)鍵字進行箱排序。

?基數(shù)排序是非就穩(wěn)定的排序,時間復(fù)雜度是0(d*n+d*rd)。

各種排序方法的比較和選擇:?.待排序的記錄數(shù)目n;n較大的要用時間復(fù)雜

度為O(nlog2n)的第九章查找

***

查找的同時對表做修改操作(如插入或刪除)則相應(yīng)的表稱之為動態(tài)查找表,否則

稱之為靜態(tài)查找表。

衡量查找算法效率優(yōu)劣的標準是在查找過程中對關(guān)鍵字需要執(zhí)行的平均比較次

數(shù)(即平均查找長度ASL).

***

線性表查找的方法:?順序查找:逐個查找,ASL=(n+l)/2;

?二分查找:取中點int(n/2)比較,若小就比左區(qū)間,大就比右區(qū)間。用二叉判定

樹表示。ASL=(£(每層結(jié)點數(shù)*層數(shù)))/No

?分塊查找。要求“分塊有序”,將表分成若干塊內(nèi)部不一定有序,并抽取各塊

中的最大關(guān)鍵字及其位置建立有序索引表。

***

二叉排序樹(BST)定義是:二叉排序樹是空樹或者滿足如下性質(zhì)的二叉樹:?若

它的左子樹非空,則左子樹上所有結(jié)點的值均小于根結(jié)點

的值;

?若它的右子樹非空,則右子樹上所有結(jié)點的值均大于根結(jié)點的值;

?左、右子樹本身又是一棵二叉排序樹。

二叉排序樹的插入、建立、刪除的算法平均時間性能是O(nlog2n)。

二叉排序樹的刪除操作可分三種情況進行處理:?*P是葉子,則直接刪除*P,

即將*P的雙親*parent中指向*P的指針域置空即可。

?*PN有一個孩子*child,此時只需將*child和*p的雙親直接連接就可刪去*p.

?*p有兩個孩子,則先將*p結(jié)點的中序后繼結(jié)點的數(shù)據(jù)到*p,刪除中序后繼結(jié)點。

***

關(guān)于B-樹(多路平衡查找樹)。它適合在磁盤等直接存取設(shè)備上組織動態(tài)的查找

表,是一種外查找算法。建立的方式是從下向上拱起。

***

散列技術(shù):將結(jié)點按其關(guān)鍵字的散列地址存儲到散列表的過程稱為散列。散列函

數(shù)的選擇有兩條標準:簡單和均勻。

常見的散列函數(shù)構(gòu)的造方法:??平方取中法:hash=int((xA2)%100)

?.除余法:表長為m,hash=x%m

?.相乘取整法:hash=int(m*(x*A-int(x*A));A=0.618

?.隨機數(shù)法:hash=random(x)0

***

處理沖突的方法:.開放定址法:?一般形式為hi=(h(key)+di)%mlWiWm-1,

開放定址法要求散列表的裝填因子aWl。

,開放定址法類型:?線性探查法:address=(hash(x)+i)%m;

,二次探查法:address=(hash(x)+iA2)%m;

,雙重散列法:address=(hash(x)+i*hash(y))%m;

?拉鏈法:?是將所有關(guān)鍵字為同義詞的結(jié)點鏈接在同一個單鏈表中。

?拉鏈法的優(yōu)點:?拉鏈法處理沖突簡單,且無堆積現(xiàn)象;

?鏈表上的結(jié)點空間是動態(tài)申請的適于無法確定表長的情況;

?拉鏈法中a可以大于1,結(jié)點較大時其指針域可忽略,因此節(jié)省空間;

?拉鏈法構(gòu)造的散列表刪除結(jié)點易實現(xiàn)。

?拉鏈法也有缺點:當結(jié)點規(guī)模較小時,用拉鏈法中的指針域也要占用額外空間,

還是開放定址法省空間。

第十章文件

***

文件是性質(zhì)相同的記錄的集合。記錄是文件中存取的基本單位,數(shù)據(jù)項是文件可

使用的最小單位,數(shù)據(jù)項有時稱字段或者屬性。

文件?邏輯結(jié)構(gòu)是一種線性結(jié)構(gòu)。

?操作有:檢索和維護。并有實時和批量處理兩種處理方式。

文件?存儲結(jié)構(gòu)是指文件在外存上的組織方式。

?基本的組織方式有:順序組織、索引組織、散列組織和鏈組織。

?常用的文件組織方式:順序文件、索引文件、散列文件和多關(guān)鍵字文件。

評價一個文件組織的效率,是執(zhí)行文件操作所花費的時間和文件組織所需的存儲

空間。

檢索功能的多寡和速度的快慢,是衡量文件操作質(zhì)量的重要標志。

***

順序文件是指按記錄進入文件的先后順序存放、其邏輯順序和物理順序一致的文

件。主關(guān)鍵字有序稱順序有序文件,否則稱順序無序文件。

一切存儲在順序存儲器(如磁帶)上的文件都只能順序文件,只能按順序查找法存

取。

順序文件的插入、刪除和修改只能通過復(fù)制整個文件實現(xiàn)。

***

索引文件的組織方式:通常是在主文件之外建立一張索引表指明邏輯記錄和物理

記錄之間一一對應(yīng)的關(guān)系,它和主文件一起構(gòu)成索引文件。

索引非順序文件中的索引表為稠密索引。索引順序文件中的索引表為稀疏索弓L

若記錄很大使得索引表也很大時,可對索引表再建立索引,稱為查找表。是一種

靜態(tài)索引。

索3諭序文件常用的有兩種:?ISAM索引順序存取方法:是專為磁盤存取文

件設(shè)計的,采用靜態(tài)索引結(jié)構(gòu)。

?VSAM虛擬存儲存取方法:采用B+樹作為動

態(tài)索引結(jié)構(gòu),由索引集、順序集、數(shù)據(jù)集組成。

***

散列文件是利用散列存儲方式組織的文件,亦稱為直接存取文件。

散列文件?優(yōu)點是:文件隨機存放,記錄不需要排序;插入刪除方便;存取速

度快;不需要索引區(qū),節(jié)省存儲空間。

?缺點是:不能進行順序存取,只能按關(guān)鍵字隨機存取,且詢問方式

限地簡單詢問,需要重新組織文件。

***

多重表文件:對需要查詢的次關(guān)鍵字建立相應(yīng)的索引,對相同次關(guān)鍵字的記錄建

一個鏈表并將鏈表頭指針、長度、次關(guān)鍵字作為索引表的索引項。

倒排表:次關(guān)鍵字索引表稱倒排表,主文件和倒排表構(gòu)成倒排文件。

計算機組成原理

第1章概論

一、名詞解釋:

歷年真題:

名詞解釋題:

(2002年)1.主機:由CPU、存儲器與I/O接口合在一起構(gòu)成的處理系統(tǒng)

稱為主機。

(2003年)16.主機:由CPU、存儲器與I/O接口合在一起構(gòu)成的處理系

統(tǒng)稱為主機。

(2004年)18.ALU算術(shù)邏輯運算單元,負責(zé)執(zhí)行各種算術(shù)運算和邏輯運

算。

(2005年)21.應(yīng)用軟件:完成應(yīng)用功能的軟件,專門為解決某個應(yīng)用領(lǐng)

域中的具體任務(wù)而編寫。

近4年都考了名稱解釋,所以第一章的名稱解釋是考試的重點,這里給大家

列出了名詞解釋大家要熟悉一下,這都是本章的基本概念,也有利于做選擇題及

填空題。

1.主機:由CPU、存儲器與I/O接口合在一起構(gòu)成的處理系統(tǒng)稱為主機。

2.CPU:中央處理器,是計算機的核心部件,由運算器和控制器構(gòu)成。

3.運算器:計算機中完成運算功能的部件,由ALU和寄存器構(gòu)成。

4.ALU:算術(shù)邏輯運算單元,負責(zé)執(zhí)行各種算術(shù)運算和邏輯運算。

5.外圍設(shè)備:計算機的輸入輸出設(shè)備,包括輸入設(shè)備,輸出設(shè)備和外存儲

設(shè)備。

6.數(shù)據(jù):編碼形式的各種信息,在計算機中作為程序的操作對象。

7.指令:是一種經(jīng)過編碼的操作命令,它指定需要進行的操作,支配計算

機中的信息傳遞以及主機與輸入輸出設(shè)備之間的信息傳遞,是構(gòu)成計算機軟件的

基本元素。

8.透明:在計算機中,從某個角度看不到的特性稱該特性是透明的。

9.位:計算機中的一個二進制數(shù)據(jù)代碼,計算機中數(shù)據(jù)的最小表示單位。

10.字:數(shù)據(jù)運算和存儲的單位,其位數(shù)取決于具體的計算機。

11.字節(jié):衡量數(shù)據(jù)量以及存儲容量的基本單位。1字節(jié)等于8位二進制信

息。

12.字長:一個數(shù)據(jù)字中包含的位數(shù),反應(yīng)了計算機并行計算的能力。一般

為8位、16位、32位或64位。

13.地址:給主存器中不同的存儲位置指定的一個二進制編號。

14.存儲器:計算機中存儲程序和數(shù)據(jù)的部件,分為內(nèi)存和外存。

15.總線:計算機中連接功能單元的公共線路,是一束信號線的集合,包括

數(shù)據(jù)總線.地址總線和控制總線。

16.硬件:由物理元器件構(gòu)成的系統(tǒng),計算機硬件是一個能夠執(zhí)行指令的設(shè)

備。

17.軟件:由程序構(gòu)成的系統(tǒng),分為系統(tǒng)軟件和應(yīng)用軟件。

18.兼容:計算機部件的通用性。

19.軟件兼容:一個計算機系統(tǒng)上的軟件能在另一個計算機系統(tǒng)上運行,并

得到相同的結(jié)果,則稱這兩個計算機系統(tǒng)是軟件兼容的。

20.程序:完成某種功能的指令序列。

21.寄存器:是運算器中若干個臨時存放數(shù)據(jù)的部件,由觸發(fā)器構(gòu)成,用于

存儲最頻繁使用的數(shù)據(jù)。

22.容量:是衡量容納信息能力的指標。

23.主存:一般采用半導(dǎo)體存儲器件實現(xiàn),速度較高.成本高且當電源斷開

時存儲器的內(nèi)容會丟失。

24.輔存:一般通過輸入輸出部件連接到主存儲器的外圍設(shè)備,成本低,存

儲時間長。

25.操作系統(tǒng):主要的系統(tǒng)軟件,控制其它程序的運行,管理系統(tǒng)資源并且

為用戶提供操作界面。

26.匯編程序:將匯編語言程序翻譯成機器語言程序的計算機軟件。

27.匯編語言:采用文字方式(助記符)表示的程序設(shè)計語言,其中大部分

指令和機器語言中的指令一一對應(yīng),但不能被計算機的硬件直接識別。

28.編譯程序:將高級語言程序轉(zhuǎn)換成機器語言程序的計算機軟件。

29.解釋程序:解釋執(zhí)行高級語言程序的計算機軟件,解釋并立即執(zhí)行源程

序的語句。

30.系統(tǒng)軟件:計算機系統(tǒng)的一部分,進行命令解釋、操作管理、系統(tǒng)維護、

網(wǎng)絡(luò)通信、軟件開發(fā)和輸入輸出管理的軟件,與具體的應(yīng)用領(lǐng)域無關(guān)。

31.應(yīng)用軟件:完成應(yīng)用功能的軟件,專門為解決某個應(yīng)用領(lǐng)域中的具體任

務(wù)而編寫。

32.指令流:在計算機的存儲器與CPU之間形成的不斷傳遞的指令序列。

從存儲器流向控制器。

33.數(shù)據(jù)流:在計算機的存儲器與CPU之間形成的不斷傳遞的數(shù)據(jù)序列。

存在于運算器與存儲器以及輸入輸出設(shè)備之間。

34.接口:計算機主機與外圍設(shè)備之間傳遞數(shù)據(jù)與控制信息的電路。計算機

可以與多種不同的外圍設(shè)備連接,因而需要有多種不同的輸入輸出接口。

選擇題沒有考過

二、填空題:

(2000年)系統(tǒng)軟件主要包括:和及診斷程序等。

操作系統(tǒng)語言處理程序

(2005年)18.構(gòu)成中央處理器的兩大部件是和o

運算器控制器

三、改錯題:

(2000年)1.運算器的功能就是執(zhí)行加、減、乘、除四則運算。

運算器的功能就是算術(shù)運算和邏輯運算

(2005年)18.構(gòu)成中央處理器的兩大部件是和o

硬盤的存儲容量常用GB表示,1GB=1O24MB

三、數(shù)據(jù)編碼:

定點數(shù)編碼:

(2000年)2.如果X為負數(shù),由[X]補求[-X]補是將()0

A.[X]補各值保持不變

B.[X]補符號位變反,其它各位不變

C.[X]補除符號位外,各位變反,未位加1

D.[X]補連同符號位一起各位變反,未位加1

【分析]不論X是正數(shù)還是負數(shù),由[X]補求[-X]補的方法是對[X]補求補,

即連同符號位一起按位取反,末位加1。

【答案1D

(2001年)2.若x補=0.1101010,則x原=()0

A.1.0010101B.1.0010110C.0.0010110D.0.1101010

【分析工正數(shù)的補碼與原碼相同,負數(shù)的補碼是用正數(shù)的補碼按位取反,

末位加1求得。此題中X補為正數(shù),則X原與X補相同。

【答案]D

(2002年)2.若x=10U,則[x]補=()0

A.01011B.1011C.0101D.10101

【分析】:x為正數(shù),符號位為0,數(shù)值位與原碼相同,結(jié)果為01011。

【答案】:A

(2003年)8.若[X]補=1.1011,則真值X是()。

A.-0.1011B.-0.0101C.0.1011D.0.0101

【分析[[X]補=1.1011,其符號位為1,真值為負;真值絕對值可由其補碼

經(jīng)求補運算得到,即按位取后得0.0100再末位加1得0.0101,故其真值為-0.0101。

【答案1B

(2004年)13.設(shè)有二進制數(shù)x=-1101110,若采用8位二進制數(shù)表示,則[X]

補()。

A.11101101B.10010011C.00010011D.10010010

【分析】:x=-1101110為負數(shù),負數(shù)的補碼是將二進制位按位取反后在最

低位上加1,故[x]補=10010010o

【答案]D

(2005年)1.若[X]補=0.1011,則真值X=()o

A.0.1011B.0.0101C.1.1011D.1.0101

【分析】:[X]補=0.1011,其符號位為0,真值為正;真值就是0.1011。

【答案】:A

由上可見,有關(guān)補碼每年都考。同學(xué)也要注意一下移碼。

(2001)3.若定點整數(shù)64位,含1位符號位,補碼表示,則所能表示的絕對

值最大負數(shù)為()。

A.-264B.-(264-1)C.-263D.-(263-1)

【分析工字長為64位,符號位為1位,則數(shù)值位為63位。當表示負數(shù)時,數(shù)

值位全0為負絕對值最大,為-263。

【答案】:c

(2002年)3.某機字長8位,含一位數(shù)符,采用原碼表示,則定點小數(shù)所能表

示的非零最小正數(shù)為()

A.2-9B.2-8C.1-D.2-7

【分析工求最小的非零正數(shù),符號位為0,數(shù)值位取非0中的原碼最小值,此8

位數(shù)據(jù)編碼為:00000001,表示的值是:2-7o

【答案】:D

第3章存儲系統(tǒng)

一、名詞解釋:

歷年真題:

(2001年)2.DRAM:動態(tài)隨機訪問存儲器,利用電容電荷存儲信息。

(2001年)6.邏輯地址:程序員編程所用的地址以及CPU通過指令訪問

主存時所產(chǎn)生的地址。

(2001年)10.隨機存取方式:可按地址訪問存儲器任一編址單元,其訪

問時間相同且與地址無關(guān)。

六年以來就考了這3個名稱解釋,而且近4年都沒有考,所以第三章的名稱

解釋不是考試的重點,這里給大家列出了名詞解釋大家要熟悉一下,這都是本章

的基本概念,有利于做選擇題及填空題。

1.RAM:隨機訪問存儲器,能夠快速方便的訪問地址中的內(nèi)容,訪問的速

度與存儲位置無關(guān)。

2.ROM:只讀存儲器,一種只能讀取數(shù)據(jù)不能寫入數(shù)據(jù)的存儲器。

3.SRAM:靜態(tài)隨機訪問存儲器,采用雙穩(wěn)態(tài)電路存儲信息。

4.DRAM:動態(tài)隨機訪問存儲器,利用電容電荷存儲信息。

5.EDODRAM:增強數(shù)據(jù)輸出動態(tài)隨機訪問存儲,采用快速頁面訪問模式

并增加了一個數(shù)據(jù)鎖存器以提高數(shù)據(jù)傳輸速率。

6.PROM:可編程的ROM,可以被用戶編程一次。

7.EPROM:可擦寫可編程的ROM,可以被用戶編程多次??孔贤饩€激發(fā)

浮置柵上的電荷以達到擦除的目的。

8.EEPROM:電可擦寫可編程的ROM,能夠用電子的方法擦除其中的內(nèi)容。

9.SDRAM:同步型動態(tài)隨機訪問存儲器,在系統(tǒng)時鐘控制下進行數(shù)據(jù)的讀

寫。

10.快閃存儲器:一種非揮發(fā)性存儲器,與EEPROM類似,能夠用電子的

方法擦除其中的內(nèi)容。

11.相聯(lián)存儲器:一種按內(nèi)容訪問的存儲器,每個存儲單元有匹配電路,可

用于是cache中查找數(shù)據(jù)。

12.多體交叉存儲器:由多個相互獨立、容量相同的存儲體構(gòu)成的存儲器,

每個存儲體獨立工作,讀寫操作重疊進行。

13.訪存局部性:CPU的一種存取特性,對存儲空間的90%的訪問局限于

存儲空間的10%的區(qū)域中,而另外10%的訪問則分布在90%的區(qū)域中。

14.直接映象:cache的一種地址映象方式,一個主存塊只能映象到cache

中的唯個指定塊。

15.全相聯(lián)映象:cache的一種地址映象方式,一個主存塊可映象到任何cache

塊。

16.組相聯(lián)映象:cache的一種地址映象方式,將存儲空間分成若干組,各

組之間用直接映象,組內(nèi)各塊之間用全相聯(lián)映象。

17.全寫法(寫直達法):cache命中時的一利更新策略,寫操作時將數(shù)據(jù)既

寫入cache又寫入主存,但塊變更時不需要將調(diào)出的塊寫回主存。

18.寫回法:cache命中時的「?種更新策略,寫cache時不寫主存,而當cache

數(shù)據(jù)被替換出去時才寫回主存。

19.按寫分配:cache不命中時的一種更新策略,寫操作時把對應(yīng)的數(shù)據(jù)塊

從主存調(diào)入cacheo

20.不按寫分配:cache不命中時的一種更新策略,寫操作時該地址的數(shù)據(jù)

塊不從主存調(diào)入cacheo

一般寫回法采用按寫分配法,寫直達法則采用不按寫分配法。

21.虛擬存儲器:為了擴大容量,把輔存當作主存使用,所需要的程序和數(shù)

據(jù)由輔助的軟件和硬件自動地調(diào)入主存,對用戶來說,好像機器有一個容量很大

的內(nèi)存,這個擴大了的存儲空間稱為虛擬存儲器

22.層次化存儲體系:把各種不同存儲容量、不同訪問速度、不同成本的存

儲器件按層次構(gòu)成多層的存儲器,并通過軟硬件的管理將其組成統(tǒng)一的整體,使

所存儲的程序和數(shù)據(jù)按層次分布在各種存儲器件中。

23.訪問時間:從啟動訪問存儲器操作到操作完成的時間。

24.訪問周期時間:從一次訪問存儲的操作到操作完成后可啟動下一次操作

的時間。

25.帶寬:存儲器在連續(xù)訪問時的數(shù)據(jù)吞吐率。

26.段式管理:一種虛擬存儲器的管理方式,把虛擬存儲空間分成段,段的

長度可以任意設(shè)定,并可以放大或縮小。

27.頁式管理:一種虛擬存儲器的管理方式,把虛擬存儲空間和實際存儲空

間等分成固定容量的頁,需要時裝入內(nèi)存,各頁可裝入主存中不同的實際頁面位

置。

28.段頁式管理:一種虛擬存儲器的管理方式,將存儲空間邏輯模塊分成段,

每段又分成若干頁。

29.固件:固化在硬件中的固定不變的常用軟件。

30.邏輯地址:程序員編程所用的地址以及CPU通過指令訪問主存時所產(chǎn)

生的地址。

31.物理地址:實際的主存儲器的地址稱為“真實地址”。

二、選擇填空題:

歷年真題評析:

2000年:

5.動態(tài)半導(dǎo)體存儲器的特點是()o

A.在工作中存儲器內(nèi)容會產(chǎn)生變化

B.每次讀出后,需要根據(jù)原存內(nèi)容重新寫入一遍

C.每隔一定時間,需要根據(jù)原存內(nèi)容重新寫入一?遍

D.在工作中需要動態(tài)地改變訪存地址

【分析工動態(tài)半導(dǎo)體存儲器是利用電容存儲電荷的特性記錄信息,由于電

容會放電,必須在電荷流失前對電容充電,即刷新。方法是每隔一定時間,根據(jù)

原存內(nèi)容重新寫入一遍。

【答案]C

8.地址線A15?A0(低),若選取用16Kxi存儲芯片構(gòu)成64KB存儲器則應(yīng)由

地址碼譯碼產(chǎn)生片選信號。

【分析】:用16Kxi芯片構(gòu)成64KB的存儲器,需要的芯片數(shù)量為:(64KX8)/(16K

X1)=32,每8片一組分成4組,每組按位擴展方式組成一個16Kx8位的模塊,

4個模塊按字擴展方式構(gòu)成64KB的存儲器。存儲器的容量為64K=216,需要16

位地址,選用A15-A0為地址線;每個模塊的容量為16K=214需要14位地址,

選用A13-A0為每個模塊提供地址;A15、A14通過2-4譯碼器對4個模塊進行

片選。

【答案】:A15,A14

9.有靜態(tài)RAM與動態(tài)RAM可供選擇,在構(gòu)成大容量主存時,一般就選擇

()。

【分析工靜態(tài)RAM特點是存取速度快,單位價格(每字節(jié)存儲空間的價

格)較高;動態(tài)RAM則是存取速度稍慢,單位價格較低。所以考慮價格因素,

在構(gòu)成大容量的存儲器時一般選擇動態(tài)存儲器。

【答案】:動態(tài)RAM

2001年:

11.高速緩沖存儲器Cache一般采?。ǎ?

A.隨機存取方式

B.順序存取方式

C.半順序存取方式

D.只讀不寫方式

【分析工Cache是為提高存儲器帶寬而在主存儲器和CPU之間增加的存儲

器,目的是用來存儲使用頻繁的數(shù)據(jù)和指令,存取方式應(yīng)與主存儲器相同,均為

隨機存取方式。

【答案】:A

12.若存儲周期250ns,每次讀出16位,則該存儲器的數(shù)據(jù)傳送率為()。

A.4X106字節(jié)/秒B.4M字節(jié)/秒

C.8X106字節(jié)/秒D.8M字節(jié)/秒

【分析】:存儲周期250ns,換算為250X10-9秒;每個存儲周期可讀出16位,

為兩個字節(jié),則數(shù)據(jù)傳送率為:2字節(jié)/(250X10-9)秒,即8X106字節(jié)/秒。

【答案】:C

13.半導(dǎo)體靜態(tài)存儲器SRAM的存儲原理是()。

A.依靠雙穩(wěn)態(tài)電路B.依靠定時刷新

C.依靠讀后再生D.信息不再變化

【分析工半導(dǎo)體靜態(tài)存儲器SRAM是由雙穩(wěn)態(tài)電路構(gòu)成,并依靠其穩(wěn)態(tài)特

性來保存信息;動態(tài)存儲器DRAM是利用電容器存儲電荷的特性存儲數(shù)據(jù),依

靠定時刷新和讀后再生對信息進行保存,而ROM中的信息一經(jīng)寫入就不再變化。

【答案]A

2002年:

6.一般來講,直接映象常用在()o

A.小容量高速CacheB.大容量高速Cache

C.小容量低速CacheD.大容量低速Cache

【分析工直接映象的地址轉(zhuǎn)換速度快,但塊的沖突概率較高。在大容量高

速Cache系統(tǒng)中使用直接映象方式,即可以發(fā)揮Cache的高速度,又可以減少塊

的沖突概率。

【答案工B

7.下列存儲器中,()速度最快。

A.硬盤B.光盤C.磁帶D.半導(dǎo)體

存儲蓄能

i分析工由于存儲器原理和結(jié)構(gòu)的不同,各種存儲器的訪問速度各不相同。

以上存儲器中訪問速度由快到慢的順序為:半導(dǎo)體存儲器、硬盤、光盤、磁帶。

【答案】:D

2003年:

15.在下列Cache替換算法中,一般說來哪一種比較好()。

A.隨機法B.先進先出法

C.后進先出法D.近期最少使用法

【分析工在Cache替換算法中,隨機法是隨機地確定替換的存儲單元,先

進先出法是替換最早調(diào)入的存儲單元,它們都沒有根據(jù)程序訪存局部性原理,命

中率較低;近期最少使用法比較正確地利用了程序訪存局部性原理,替換出近期

用得最少的存儲塊,命中率較高,是一種比較好的替換算法。而后進先出法不是

Cache所使用的替換算法,此法在堆棧存儲結(jié)構(gòu)中使用。

【答案】:D

2004年:

8.表示主存容量的常用單位為()。

A.數(shù)據(jù)塊數(shù)B.字節(jié)數(shù)C.扇區(qū)數(shù)D.記錄項

數(shù)

【分析】:表示主存容量的常用單位字節(jié)B,是基本單位。此外還有KB、

MB、GB、TBo

【答案】:B

11.存儲器的隨機訪問方式是指()o

A.可隨意訪問存儲器

B.按隨機文件訪問存儲器

C.可對存儲器進行讀出與寫入

D.可按地址訪問存儲器任一編址單元,其訪問時間相同且與地址無關(guān)

【分析工存儲器的隨機訪問方式是指可按地址訪問存儲器任一-編址單元,

其訪問時間相同且與地址無關(guān)。

【答案】:D

2005年:

6.動態(tài)存儲器的特點是()。

A.工作中存儲內(nèi)容會產(chǎn)生變化

B.工作中需要動態(tài)改變訪存地址

C.工作中需要動態(tài)地改變供電電壓

D.需要定期刷新每個存儲單元中存儲的信息

【分析工此題與2000年考題基本相同。動態(tài)半導(dǎo)體存儲器是利用電容存儲

電荷的特性記錄信息,由于電容會放電,必須在電荷流失前對電容充電,即刷新。

方法是每隔一定時間,根據(jù)原存內(nèi)容重新寫入一遍。

【答案工D

7.組相聯(lián)映象和全相聯(lián)映象通常適合于()0

A.小容量CacheB.大容量Cache

C.小容量ROMD.大容量ROM

【分析】:直接映象的地址轉(zhuǎn)換速度快,但塊的沖突概率較高。在大容量高

速Cache系統(tǒng)中使用直接映象方式,即可以發(fā)揮Cache的高速度,又可以減少塊

的沖突概率。組相聯(lián)映象和全相聯(lián)映象速度較低,通常適合于小容量Cache。

【答案1A

第4章指令系統(tǒng)

一、名詞解釋:

歷年真題:

2001年

3.堆棧:數(shù)據(jù)的寫入寫出不需要地址,按先進后出的順序讀取數(shù)據(jù)的存儲

區(qū)。

4.立即尋址方式:操作數(shù)直接在指令中給出。

六年以來就考了這2個名稱解釋,而且近4年都沒有考,所以第四章的名稱

解釋不是考試的重點,這里給大家列出了名詞解釋大家要熟悉一下,這都是本章

的基本概念,有利于做選擇題、改錯題和填空題。

1.指令系統(tǒng):計算機中各種指令的集合,它反映了計算機硬件具備的基本

功能。

2.計算機指令:計算機硬件能識別并能直接執(zhí)行操作的命令,描述一個基

本操作。

3.指令編碼:將指令分成操作碼和操作數(shù)地址碼的兒個字段來編碼。

4.指令格式:指定指令字段的個數(shù),字段編碼的位數(shù)和編碼的方式。

5.立即數(shù):在指令中直接給出的操作數(shù)。

6.指令字長度:一個指令字所占有的位數(shù)。

7.助記符:用容易記憶的符號來表示指令中的操作碼和操作數(shù)。

8.匯編語言:采用文字方式(助記符)表示的程序設(shè)計語言,其中大部分

指令和機器語言中的指令一一對應(yīng),但是不能被計算機的硬件直接識別。

9.偽指令:匯編語言程序所提供的裝入內(nèi)存中的位置信息,表示程序段和

數(shù)據(jù)段開始信息及結(jié)束信息等。旦不轉(zhuǎn)換成2進制機器指令。

10.大數(shù)端:當一個數(shù)據(jù)元素的位數(shù)超過一個字節(jié)或者一個字的寬度,需存

儲在相鄰的多個字節(jié)的存儲位置時,將數(shù)據(jù)的最低字節(jié)存儲在最大地址位置的存

儲方式。

11.小數(shù)端:當一個數(shù)據(jù)元素的位數(shù)超過一個字節(jié)或者一個字的寬度,需存

儲在相鄰的多個字節(jié)的存儲位置時,將數(shù)據(jù)的最低字節(jié)存儲在最小地址位置的存

儲方式。

12.操作數(shù)尋址方式:指令中地址碼的內(nèi)容及編碼方式。

13.系統(tǒng)指令:改變計算機系統(tǒng)的工作狀態(tài)的指令。

14.特權(quán)指令:改變執(zhí)行特權(quán)的指令,用于操作系統(tǒng)對系統(tǒng)資源的控制。

15.自陷指令:特殊的處理程序,又叫中斷指令。

16.尋址方式:對指令的地址碼進行編碼,以得到操作數(shù)在存儲器中的地址

的方式。

17.相對轉(zhuǎn)移:轉(zhuǎn)移到的目標指令的地址與當前指令的地址有關(guān),是用當前

指令的PC與一個偏移量相加,和為目標指令的PC。

18.絕對轉(zhuǎn)移:轉(zhuǎn)移到的目標指令的地址與當前指令的地址無關(guān),指令中給

定的目標地址即為目標指令的PCo

19.無條件轉(zhuǎn)移:一種轉(zhuǎn)移指令類型,不管狀態(tài)如何,一律進行轉(zhuǎn)移操作。

20.條件轉(zhuǎn)移:一種轉(zhuǎn)移指令類型,根據(jù)計算機中的狀態(tài)決定是否轉(zhuǎn)移。

21.RISC:精簡指令系統(tǒng)計算機,即指令系統(tǒng)中的指令數(shù)量少,且指令功

能相對簡單。

22.CISC:復(fù)雜指令系統(tǒng)計算機,即指令系統(tǒng)中的指令數(shù)量多,且指令功

能相對較強。

23.堆棧:數(shù)據(jù)的寫入寫出不需要地址,按先進后出的順序讀取數(shù)據(jù)的存儲

區(qū)。

二、選擇填空題:

歷年真題

2000年:

3.在堆棧尋址中,設(shè)A為累加器,SP為堆棧指示器,Msp為SP指示的棧頂單

元。如果進棧操作順序是:(SP)-1-SP,(A)-Msp;那么出棧操作的順序應(yīng)

是()。

A.(Msp)-A,(SP)+1-SP

B.(SP)+—SP,(Msp)fA

C.(SP)-1-SP,(Msp)-A

D.(Msp)fA,(SP)--SP

【分析工堆棧是按特定順序進行訪問的存儲區(qū),其訪問方式是后進先出,

即先存入的數(shù)據(jù)后讀出。對堆棧的操作有入棧和出棧兩種,兩者的操作完全相反,

包括功能和順序均相反。

【答案】:A

6.在按字節(jié)編址的存儲器中,每個編址單元中存放()o

A.1位B.8位C.16位

D.32位

【分析工在按字節(jié)編址在存儲器中,每個編址單元的容量為一個字節(jié),一

個字節(jié)由8位二進制數(shù)組成,一個字節(jié)存儲單元可以存放8位二進制位。

【答案]B

4.在CPU的狀態(tài)寄存器中,常設(shè)置以下狀態(tài)位:零標志位(Z),負標志位(N),

()和()o

【分析工在CPU中專門設(shè)置有一個存儲計算機狀態(tài)的寄存器,稱為狀態(tài)寄

存器SR,其中通常包括如下標志位:零標志位(Z)、負標志位(N)、溢出標志位

(V)、進位或借位標志位(C)等。

【答案】:溢出標志位(V)、進位或借位標志位(C)

5.如指令中給出形式地址為D,則間接尋址方式獲得操作數(shù)的有效地址

為。

【分析工在存儲器間接尋址方式中,操作數(shù)的地址在主存儲器中,其存儲

器地址在指令中給出。也就是說在指令中給出的既不是操作數(shù),也不是操作數(shù)的

地址,而是操作數(shù)地址的地址,則有效地址為以形式地址D為地址的存儲單元

的內(nèi)容。

【答案】:以D為地址的存儲單元的內(nèi)容

13.如果說變址尋址方式主要是面向用戶的,那么基址尋址一般是面向

()的。

【分析】:變址尋址方式是面向用戶的,常用于訪問字符串、向量數(shù)據(jù)結(jié)構(gòu)

和循環(huán)程序設(shè)計;而基址尋址方式是面向系統(tǒng)的,對由邏輯地址空間到物理地址

空間的變換提供支持,用以解決程序在存儲器中再定位和擴大尋址空間等問題。

【答案工系統(tǒng)

2001年:

9.為了縮短指令中某個地址段的位數(shù),有效的方法是采?。ǎ﹐

A.立即尋址B.變址尋址

C.間接尋址D.寄存器尋址

【分析工由于計算機中寄存器的數(shù)量一般很少,采用寄存器尋址時可用少

量的代碼來指定寄存器,這樣可以減少對應(yīng)地址段的代碼位數(shù),也可減少整個指

令的代碼長度。

【答案】:D

10.堆棧指針SP的內(nèi)容是()0A.棧頂單元內(nèi)容B.棧頂單元地址C.棧

底單元內(nèi)容D.棧底單元地址

【分析工堆棧是按特定順序進行訪問的存儲區(qū),其訪問方式是后進先出,

即先存入的數(shù)據(jù)后讀出。對堆棧的訪問由堆棧指針寄存器SP控制,其內(nèi)容為堆

棧中棧項單元的地址,即入棧時數(shù)據(jù)保存在SP指向的單元,出棧時將SP指向

單元的內(nèi)容取出。

【答案】:B

2002年:

8.采用直接尋址方式,則操作數(shù)在()中。

A.主存B.寄存器C.直接存取存儲器

D.光盤

【分析工直接尋址方式是指在指令中直接給出操作數(shù)在存儲器中的地址,

操作數(shù)在主存儲器中,指令中的地址直接作為有效地址,對存儲器進行訪問即可

取得操作數(shù)。

[答案]A

9.零地址指令的操作數(shù)一般隱含在()中。

A.磁盤

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論