[語言類考試復(fù)習(xí)資料大全]中級軟件設(shè)計師上午試題分類模擬1_第1頁
[語言類考試復(fù)習(xí)資料大全]中級軟件設(shè)計師上午試題分類模擬1_第2頁
[語言類考試復(fù)習(xí)資料大全]中級軟件設(shè)計師上午試題分類模擬1_第3頁
[語言類考試復(fù)習(xí)資料大全]中級軟件設(shè)計師上午試題分類模擬1_第4頁
[語言類考試復(fù)習(xí)資料大全]中級軟件設(shè)計師上午試題分類模擬1_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、書山有路勤為徑,學(xué)海無涯苦作舟。祝愿天下莘莘學(xué)子:學(xué)業(yè)有成,金榜題名!語言類考試復(fù)習(xí)資料大全中級軟件設(shè)計師上午試題分類模擬1中級軟件設(shè)計師上午試題分類模擬1單項(xiàng)選擇題問題:1. 以下關(guān)于線性表采用鏈?zhǔn)酱鎯r刪除結(jié)點(diǎn)運(yùn)算的描述,正確的是_。A.帶頭結(jié)點(diǎn)的線性鏈表刪除結(jié)點(diǎn)時,不需要更改頭指針B.帶頭結(jié)點(diǎn)的線性鏈表刪除第一個結(jié)點(diǎn)時,需要更改頭指針C.不帶頭結(jié)點(diǎn)的線性鏈表刪除結(jié)點(diǎn)時,需要更改頭指針D.不帶頭結(jié)點(diǎn)的線性鏈表刪除第一個結(jié)點(diǎn)時,不需要更改頭指針答案:A解析 帶頭結(jié)點(diǎn)的線性鏈表的頭指針指向其頭結(jié)點(diǎn),而該頭結(jié)點(diǎn)是不能被刪除的,所以頭指針的值不需要更改。不帶頭結(jié)點(diǎn)的線性鏈表在刪除第一個結(jié)點(diǎn)后,需要

2、將頭指針指向新的第一個結(jié)點(diǎn),而如果刪除其他結(jié)點(diǎn),則不需要更改頭指針。問題:2. 給定一個有玎個元素的有序線性表。若采用順序存儲結(jié)構(gòu),則在等概率前提下,刪除其中的一個元素平均需要移動_個元素。 A B C D1 答案:C解析 題目要求計算進(jìn)行刪除操作時平均移動元素個數(shù),如圖所示,若要刪除f,則無須移動任何元素,直接刪除即可;若要刪除e,則需要移動1個元素,即把f移至e位置;若要刪除d,則需要移動2個元素,把e移至d位置,再把f移至e位置;依此類推,要刪除第1個元素,則需要移動n-1個元素。 由于每個元素被刪除的概率是相等的,所以平均需要移動的元素個數(shù)為: 所以此題答案為C。 問題:3. 下列敘述

3、中,不正確的是_。A.線性表在鏈?zhǔn)酱鎯r,查找第i個元素的時間與i的值成正比B.線性表在鏈?zhǔn)酱鎯r,查找第i個元素的時間與i的值有關(guān)C.線性表在順序存儲時,查找第i個元素的時間與i的值成正比D.線性表在順序存儲時,查找第i個元素的時間與i的值無關(guān)答案:C解析 順序存儲結(jié)構(gòu)的特點(diǎn)是“順序存儲,隨機(jī)存取”,也就是說,線性表在順序存儲時,查找第i個元素的時間與i的值無關(guān)。 鏈?zhǔn)酱鎯Y(jié)構(gòu)的特點(diǎn)則是“隨機(jī)存儲,順序存取”,也就是說,鏈?zhǔn)酱鎯Y(jié)構(gòu)的數(shù)據(jù)元素可以隨機(jī)地存儲在內(nèi)存單元中,但訪問其中的任意一個數(shù)據(jù)元素時,都必須從其頭指針開始逐個進(jìn)行訪問。 問題:4. 雙向循環(huán)鏈表中,在p所指向的結(jié)點(diǎn)之后插入s指

4、向的結(jié)點(diǎn),其修改指針的操作是_,其中p指向的不是最后一個結(jié)點(diǎn)。A.p-next=s;s-prey=p;p-next-prev=s;s-next=p-next;B.p-next-prev=s;p-next=s;s-prev=p;s-next=p-next;C.s-prev=p;s-next=p-next;p-next=s;p-next-prev=s;D.s-prev=p;s-next=p-next;p-next-prev=s;p-next=s;答案:D解析 其插入方法如圖所示。 一般情況下,做此類題的一個捷徑是判斷代碼“p-next=s”后是否還有通過指針“p-next”訪問p以前的直接后繼的引

5、用,有則錯誤。因?yàn)橐坏﹫?zhí)行完代碼“p-next=s”,p的直接后繼就更改為s,此后“p-next”不再是p以前的直接后繼。例如,試題中A、B和C選項(xiàng)均在“p-next=s”之后使用了“p-next”,所以選項(xiàng)A、B和C錯誤,根據(jù)排除法,選項(xiàng)D正確。另外,建議考生在編寫插入代碼時,將“p-next=s”寫成插入算法的最后一步。 問題:5. 若元素a,b,c,d,e,f依次進(jìn)棧,允許進(jìn)棧、退棧操作交替進(jìn)行。但不允許連續(xù)三次進(jìn)行退棧工作,則不可能得到的出棧序列是_。A.dcebfaB.cbdaefC.bcaefdD.afedcb答案:D解析 棧按照后進(jìn)先出的原則操作數(shù)據(jù)。 選項(xiàng)A可以按照a入棧、b入

6、棧、c入棧、d入棧、d出棧、c出棧、e入棧、e出棧、b出棧、f入棧、f出棧、a出棧的方式得到。只有連續(xù)2次出棧操作,符合試題要求。 選項(xiàng)B可以按照a入棧、b入棧、c入棧、c出棧、b出棧、d入棧、d出棧、a出棧、e入棧、e出棧、f入棧、f出棧的方式得到。只有連續(xù)2次出棧操作,符合試題要求。 選項(xiàng)C可以按照a入棧、b入棧、b出棧、c入棧、c出棧、a出棧、d入棧、e入棧、e出棧、f入棧、f出棧、d出棧的方式得到。只有連續(xù)2次出棧操作,符合試題要求。 選項(xiàng)D可以按照a入棧、a出棧、b入棧、c入棧、d入棧、e入棧、f入棧、f出棧、e出棧、d出棧、c出棧、b出棧的方式得到,但這個順序不符合題目中不允許連續(xù)

7、三次進(jìn)行退棧的要求。 問題:6. 一個棧的入棧元素序列是1、2、3、4、5,若允許出棧操作可在任意可能的時刻進(jìn)行,則下面的序列中,不可能出現(xiàn)的出棧序列是_。A.3、4、2、5、1B.2、5、4、1、3C.2、3、1、5、4D.3、5、4、2、1答案:B解析 棧的特點(diǎn)是先進(jìn)后出,按照以下步驟可以很快找到答案: (1)選擇出棧序列的第一個元素a,入棧序列中在a之前的元素必須按照逆序出現(xiàn)在出棧序列中,如果不按照逆序出棧,則此出棧序列不合法,否則執(zhí)行下一步。 (2)從入棧序列和出棧序列中將元素a刪除,如果刪除a后出棧序列為空,則說明此出棧序列合法,否則回到上一步繼續(xù)執(zhí)行。 在本題中,B選項(xiàng)的第一個出棧

8、元素為2,在2之前入棧的元素的為1,由于只有一個元素,故無論如何將會逆序出棧;在序列中剔除2,則入棧序列為1、3、4、5,出棧序列變?yōu)?、4、1、3。分析元素5,在新的入棧序列中,5之前的元素入棧序列為1、3、4,而出棧序列為4、1、3,不滿足逆序出棧的條件,所以選項(xiàng)B是不可能出現(xiàn)的出棧序列。 問題:7. 下面二叉樹中一定是完全二叉樹的是_。A.平衡二叉樹B.滿二叉樹C.單枝二叉樹D.二叉排序樹答案:B解析 滿二叉樹除最后一層外,每一層上的所有結(jié)點(diǎn)都有兩個子結(jié)點(diǎn),滿二叉樹中每一層上的結(jié)點(diǎn)的數(shù)都達(dá)到最大,即在滿二叉的第k層上有2k-1個結(jié)點(diǎn),否則就不是滿二叉樹。深度為m的滿二叉樹有2m-1個結(jié)點(diǎn)

9、。 完全二叉樹除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值;在最后一層上只缺少右邊的若干結(jié)點(diǎn)。滿二叉樹也是完全二叉樹,反之完全二叉樹不一定是滿二叉樹。平衡二叉樹,單支二叉樹和二叉排序樹既不一定是滿二叉樹,也不一定是完全二叉樹。 問題:8. 在一棵度為4的樹T中,若有20個度為4的結(jié)點(diǎn),10個度為3的結(jié)點(diǎn),1個度為2的結(jié)點(diǎn),10個度為1的結(jié)點(diǎn),則樹T的葉子結(jié)點(diǎn)的個數(shù)是_。A.41B.82C.113D.122答案:B解析 在樹中,除根結(jié)點(diǎn)外,其余所有結(jié)點(diǎn)都是由其雙親結(jié)點(diǎn)引出的。一個度為n的結(jié)點(diǎn)表示由該結(jié)點(diǎn)引出n個孩子結(jié)點(diǎn),因此,樹T的結(jié)點(diǎn)個數(shù)為204+103+12+101+1=123,其中最后的1為

10、根結(jié)點(diǎn),則葉子結(jié)點(diǎn)數(shù)為123-(20+10+1+10)=82個。問題:9. 已知某二叉樹的先序序列為abcde,它可能的中序序列為_。A.bdaecB.bcadeC.ecadbD.beacd答案:B解析 二叉樹的先序序列可以分為連續(xù)的3個部分:根結(jié)點(diǎn)、左子樹部分、右子樹部分。中序遍歷也可以分為3個部分:左子樹部分、根結(jié)點(diǎn)、右子樹部分。題目給出的先序序列為abcde,可知a為根結(jié)點(diǎn)。 在A選項(xiàng)中,給出的中序序列bdaec表示bd是左子樹部分,ec是右子樹部分,這與先序序列abcde矛盾(在先序序列中,bd不在一起,ec也不在一起),因此,不是可能的中序序列。 在B選項(xiàng)中,給出的序列bcade表示

11、bc是左子樹部分,de是右子樹部分,這與先序序列abcde不矛盾,是可能的中序序列。對左子樹部分而言,在先序序列中的順序是bc,說明b是根結(jié)點(diǎn);在中序序列中的順序也是bc,說明c是b的右孩子。對右子樹而言,在先序序列中的順序是de,說明d是根結(jié)點(diǎn);在中序序列中的順序也是de,說明e是d的右孩子。因此,B選項(xiàng)符合要求。 在C選項(xiàng)中,給出的中序序列ecadb表示ec是左子樹部分,db是右子樹部分,這與先序序列abcde矛盾(在先序序列中,ec不在一起,db也不在一起),因此不是可能的中序序列。 在D選項(xiàng)中,給出的中序序列beacd表示be是左子樹部分,cd是右子樹部分,這與先序序列abcde矛盾(

12、在先序序列中,be不在一起),因此,不是可能的中序序列。 問題:10. 一棵度為3的樹中,有3度結(jié)點(diǎn)100個,有2度結(jié)點(diǎn)200個,有葉子結(jié)點(diǎn)_個。A.399B.400C.401D.402答案:C解析 先推導(dǎo)這種題目的一般解法得到結(jié)論,然后再將已知條件代入。 首先,統(tǒng)計樹中結(jié)點(diǎn)的總數(shù)n。設(shè)樹中度為0的結(jié)點(diǎn)個數(shù)為n0,度為1的結(jié)點(diǎn)個數(shù)為n1,度為2的結(jié)點(diǎn)個數(shù)為n2,度為3的結(jié)點(diǎn)個數(shù)為n3,則樹的結(jié)點(diǎn)總數(shù)為n=n0+n1+n2+3。因?yàn)闃涞母Y(jié)點(diǎn)沒有雙親結(jié)點(diǎn),進(jìn)入它的邊數(shù)為0,其他每個結(jié)點(diǎn)都有一個且僅有一個雙親結(jié)點(diǎn),進(jìn)入它們的邊數(shù)各為1,故樹中總的邊數(shù)為e=n-1=n0+n1+n2+n3-1。 又由

13、于每個度為0的結(jié)點(diǎn)發(fā)出0條邊,每個度為1的結(jié)點(diǎn)發(fā)出1條邊,每個度為2的結(jié)點(diǎn)發(fā)出2條邊,每個度為3的結(jié)點(diǎn)發(fā)出3條邊,因此,總的邊數(shù)可以表示為e=n1+2*n2+3*n3。 將e的等式等同起來,有n0+n1+n2+n3-1=n1+2*n2+3*n3,則有n0=n2+2*n3+1。 在本題中,由題意可知,n2=200,n3=100,則n0=401。 問題:11. 在查找算法中,可用平均查找長度(記為ASL)來衡量一個查找算法的優(yōu)劣,其定義為: 此處Pi為表中第i個記錄被查找的概率,Ci為查找第i個記錄時同關(guān)鍵字比較的次數(shù),n為表中記錄數(shù)。 以下敘述中均假定每一個記錄被查找的概率相等,即Pi=1/n(

14、i=1,2,n)。當(dāng)表中的記錄連續(xù)有序存儲在一個一維數(shù)組中時,采用順序查找與折半查找方法查找的ASL值分別是_。 A.D(n),D(n)B.O(n),O(lbn)C.O(nlbn),O(n)D.O(1bn),O(lbn)答案:B解析 順序查找的基本思想是:從表的一端開始,順序掃描線性表,依次將掃描到的結(jié)點(diǎn)關(guān)鍵字和給定值k相比較。若當(dāng)前掃描到的結(jié)點(diǎn)關(guān)鍵字與k相等,則查找成功;若掃描結(jié)束后,仍未找到關(guān)鍵字等于k的結(jié)點(diǎn),則查找失敗。順序查找方法既適用于線性表的順序存儲結(jié)構(gòu),也適用于線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)。 成功的順序查找的平均查找長度如下: 在等概率情況下,pi=1/n(1in),故成功的平均查找長度

15、為(n+2+1)/n=(n+1)/2,即查找成功時的平均比較次數(shù)約為表長的一半。若k值不在表中,則需進(jìn)行n+1次比較之后才能確定查找失敗。查找時間復(fù)雜度為O(n)。 若事先知道表中各結(jié)點(diǎn)的查找概率不相等,以及它們的分布情況,則應(yīng)將表中結(jié)點(diǎn)按查找概率由小到大的順序存放,以便提高順序查找的效率。 順序查找的優(yōu)點(diǎn)是算法簡單,且對表的結(jié)構(gòu)無任何要求,無論是用向量還是用鏈表來存放結(jié)點(diǎn),也無論結(jié)點(diǎn)之間是否按關(guān)鍵字有序,它都同樣適用。其缺點(diǎn)是查找效率低,因此,當(dāng)n較大時不宜采用順序查找。 二分法查找又稱折半查找,是一種效率較高的查找方法。二分法查找要求線性表是有序表,即表中結(jié)點(diǎn)按關(guān)鍵字有序,并且要用向量作為

16、表的存儲結(jié)構(gòu)。 二分法查找的基本思想是(設(shè)Rlow,.,high是當(dāng)前的查找區(qū)間): (1)確定該區(qū)間的中點(diǎn)位置:mid=(low+high)/2。 (2)將待查的k值與Rmid.key比較,若相等,則查找成功并返回此位置,否則需確定新的查找區(qū)間,繼續(xù)二分查找,具體方法如下: 若Rmid.keyk,則由表的有序性可知Rmid,.,n.key均大于k,因此若表中存在關(guān)鍵字等于k的結(jié)點(diǎn),則該結(jié)點(diǎn)必定是在位置mid左邊的子表Rlow,.,mid-1中。因此,新的查找區(qū)間是左子表Rlow,.,high,其中high=mid-1。 若Rmid.keyk,則要查找的k必在mid的右子表Rmid+1,.,h

17、igh中,即新的查找區(qū)間是右子表Rlow,.,high,其中l(wèi)ow=mid+1。 若尺mid.key=k,則查找成功,算法結(jié)束。 (3)下一次查找針對新的查找區(qū)間進(jìn)行,重復(fù)步驟(1)和(2)。 (4)在查找過程中,low逐步增加,而high逐步減少。如果highlow,則查找失敗,算法結(jié)束。 因此,從初始的查找區(qū)間R1,.,n開始,每經(jīng)過一次與當(dāng)前查找區(qū)間中點(diǎn)位置上結(jié)點(diǎn)關(guān)鍵字的比較,就可確定查找是否成功,不成功則當(dāng)前的查找區(qū)間就縮小一半。重復(fù)這一過程,直至找到關(guān)鍵字為k的結(jié)點(diǎn),或直至當(dāng)前的查找區(qū)間為空(即查找失敗)時為止。查找的時間復(fù)雜度為:O(log2n)。 問題:12. 根據(jù)使用頻率,為5

18、個字符設(shè)計哈夫曼編碼不可能是_。A.111,110,10,01,00B.000,001,010,011,1C.001,000,10,01,11D.110,100,101,11,1答案:D解析 哈夫曼編碼屬于前綴編碼,根據(jù)前綴編碼的定義,任一字符的編碼都不是另一字符編碼的前綴。而在選項(xiàng)D中,1是前面4個字符的前綴,明顯違反了這一原則,所以不屬于哈夫曼編碼。問題:13. 二叉樹在線索化后,仍不能有效解決的問題是_。A.先序線索二叉樹中求先序后繼B.中序線索二叉樹中求中序后繼C.中序線索二叉樹中求中序前驅(qū)D.后序線索二又樹中求后序后繼答案:D解析 在中序線索二叉樹中,查找結(jié)點(diǎn)P的中序后繼分為以下兩種

19、情況。 (1)若結(jié)點(diǎn)P的右子樹為空,則直接得到中序后繼。 (2)若結(jié)點(diǎn)P的右子樹非空,則中序后繼是P的右子樹中最左下的結(jié)點(diǎn)。 在中序線索二叉樹中,查找結(jié)點(diǎn)P的中序前驅(qū)也有兩種情況。 (1)若結(jié)點(diǎn)P的左子樹為空,則直接得到中序前驅(qū)。 (2)若結(jié)點(diǎn)P的左子樹非空,則中序前驅(qū)是P的左子樹中最右下的結(jié)點(diǎn)。 因此,在中序線索二叉樹中,查找中序前驅(qū)和中序后繼都可以有效解決。 在先序線索二叉樹中,查找結(jié)點(diǎn)先序后繼很簡單,僅從P出發(fā)就可以找到,但是找其先序前驅(qū)必須要知道P的雙親結(jié)點(diǎn)。 在后序線索二叉樹中,僅從P出發(fā)就可以找到結(jié)點(diǎn)后序前驅(qū),但是找其后序后繼也必須要知道P的雙親結(jié)點(diǎn)。 問題:14. 由元素序列(2

20、7,16,75,38,51)構(gòu)造平衡二叉樹,則首次出現(xiàn)的最小不平衡子樹的根(即離插入結(jié)點(diǎn)最近且平衡因子的絕對值為2的結(jié)點(diǎn))為_。A.27B.38C.51D.75答案:D解析 平衡二叉樹的構(gòu)造過程如圖所示。 根據(jù)題中要求,首次出現(xiàn)最小不平衡子樹的根就是75。 問題:15. 若G是一個具有36條邊的非連通無向圖(不含自回路和多重邊),則圖G至少有_個頂點(diǎn)。A.11B.10C.9D.8答案:B解析 因?yàn)镚為非連通圖,所以G中至少含有兩個連通子圖,而且該圖不含有回路和多重邊。題目問的是至少有多少個頂點(diǎn),因此一個連通圖可看成是只有1個頂點(diǎn),另一個連通圖可看成是一個完全圖(因?yàn)橥耆珗D在最少頂點(diǎn)的情況下能得

21、到的邊數(shù)最多),這樣,該問題就轉(zhuǎn)化為“36條邊的完全圖有多少個頂點(diǎn)”,因?yàn)榫哂衝個頂點(diǎn)的無向完全圖的邊的條數(shù)為n(n-1)/2,可以算出n=9滿足條件。再加上另一個連通圖(只有一個點(diǎn)),則圖G至少有10個頂點(diǎn)。問題:16. 有向圖的所有拓?fù)渑判蛐蛄杏衉個。 A.2B.4C.6D.7答案:A解析 在圖中,其拓?fù)渑判蛐蛄杏腥缦乱?guī)定: A必須是序列的第一個元素,E必須是序列的最后一個元素,D必須是序列的倒數(shù)第二個元素。即序列形如A*DE,其中“*”為B或C,所以共兩種拓?fù)渑判蛐蛄小?問題:17. 設(shè)下三角矩陣(上三角部分的元素值都為0)A0.n,0.n如圖所示,將該三角矩陣的所有非零元素(即行下標(biāo)不

22、小于列下標(biāo)的元素)按行優(yōu)先壓縮存儲在容量足夠大的數(shù)組M中(下標(biāo)從1開始),則元素Ai,j(0in,ji)存儲在數(shù)組M的_中。 A B C D 答案:A解析 對于這個題目,可以這樣理解,題目要求按行優(yōu)先,其含義就是存儲第一行后,開始存儲第二行,然后再存儲第三行的非0元素,依次類推。這樣可以發(fā)現(xiàn)了一個規(guī)律,第1行只有一個元素,第二行2個元素,第三行3個元素,第n行n個元素。 顯然,這個規(guī)律是一個遞增數(shù)列。那么元素Ai,j是第幾行第幾列就變得明顯了。由于下標(biāo)是從0開始的(這個要特別注意),那么下標(biāo)為i的應(yīng)該就是第i+1行,因此在存儲下標(biāo)為i的這行之前,應(yīng)該存放了i行元素,其中第i行的元素個數(shù)為i個,

23、那么在存放第i+1行之前,應(yīng)該存放的元素個數(shù)總和為i(i+1)/2,。那么當(dāng)存放到第i+1行時,在存放下標(biāo)為j的元素前,同樣的道理應(yīng)該存放了j個元素,因此在存放元素Ai,j之前,總共存放了的元素個數(shù)總和為i(i+1)/2+j,因此元素Ai,j應(yīng)該是第i(i+1)/2+j+1個要存放的元素,由于存放的數(shù)組M是從下標(biāo)為1開始的。因此元素Ai,j存儲在數(shù)組M的Mi(i+1)/2+j+1中。 問題:18. 在內(nèi)排序的過程中,通常需要對待排序的關(guān)鍵碼集合進(jìn)行多遍掃描。采用不同排序方法,會產(chǎn)生不同的排序中間結(jié)果。設(shè)要將序列Q,H,C,Y,P,A,M,S,R,D,F,X中的關(guān)鍵碼按字母的升序重新排列,則_是

24、冒泡排序一趟掃描的結(jié)果。A.F,H,C,D,P,A,M,Q,R,S,Y,XB.P,A,C,S,Q,D,F,X,R,H,M,YC.A,D,C,R,F,Q,M,S,Y,P,H,XD.H,C,Q,P,A,M,S,R,D,F,X,Y答案:D解析 此題比較容易,但從歷年試題看來,考的幾率是比較高的,這里只將一些考生有疑問的地方提出來講一講。以前有考生提出疑問:“冒泡排序一趟掃描的結(jié)果標(biāo)準(zhǔn)答案為:H,C,Q,P,A,M,S,R,D,F(xiàn),X,Y。如果按照冒泡排序的基本思想是先比較An-1和An-2一直到A0,那么冒泡排序一趟掃描的結(jié)果得到應(yīng)該是:A,Q,H,C,Y,P,D,M,S,R,F(xiàn),X?!笨忌岢鲞@種

25、疑問是因?yàn)閷γ芭菖判虻囊?guī)則不清楚。冒泡排序可以先比較An-1和An-2一直到A0,也可以先比較A0和A1一直到An-1。 如果先比較An-1和An-2,詳細(xì)過程如下: 1Q,H,C,Y,P,A,M,S,R,D,F(xiàn),X F和X比較,F(xiàn)X,所以順序不變; 2Q,H,C,Y,P,A,M,S,R,D,F(xiàn),X D和F比較,DF,所以順序不變; 3O,H,C,Y,P,A,M,S,D,R,F(xiàn),X R和D比較,RD,所以交換R和D; 4Q,H,C,Y,P,A,M,D,S,R,F(xiàn),X S和D比較,SD,所以交換S和D; 5Q,H,C,Y,P,A,D,M,S,R,F(xiàn),X M和D比較,MD,所以交換M和D; 6Q,

26、H,C,Y,P,A,D,M,S,R,F(xiàn),X A和D比較,AD,所以順序不變; 7O,H,C,Y,A,P,D,M,S,R,F(xiàn),X P和A比較,PA,所以交換P和A; 8Q,H,C,A,Y,P,D,M,S,R,F(xiàn),X Y和A比較,YA,所以交換Y和A; 9Q,H,A,C,Y,P,D,M,S,R,F(xiàn),X C和A比較,CA,所以交換C和A; 10Q,A,H,C,Y,P,D,M,S,R,F(xiàn),X H和A比較,HA,所以交換H和A; 11A,Q,H,C,Y,P,D,M,S,R,F(xiàn),X Q和A比較,QA,所以交換Q和A。 用同樣的方法可以推出標(biāo)準(zhǔn)答案H,C,Q,P,A,M,S,R,D,F(xiàn),X,Y也是正確的。所

27、以答案選D。 問題:19. 用插入排序和歸并排序算法對數(shù)組3,1,4,1,5,9,6,5進(jìn)行從小到大排序,則分別需要進(jìn)行_次數(shù)組元素之間的比較。A.12,14B.10,14C.12,16D.10,16答案:A解析 插入排序的基本思想是逐個將待排序元素插入到已排序的有序表中。用插入排序?qū)?shù)組3,1,4,1,5,9,6,5進(jìn)行排序的過程為: 原元素序列:監(jiān)視哨(3),1,4,1,5,9,6,5 第一趟排序:3(1,3),4,1,5,9,6,5 3插入時與1比較1次 第二趟排序:4(1,3,4),1,5,9,6,5 4插入時與3比較1次 第三趟排序:1(1,1,3,4),5,9,6,5 1插入時比較

28、3次 第四趟排序:5(1,1,3,4,5),9,6,5 5插入時與4比較1次 第五趟排序:9(1,1,3,4,5,9),6,5 9插入時與5比較1次 第六趟排序:6(1,1,3,4,5,6,9),5 6插入時與9和5分別比較1次 第七趟排序:5(1,1,3,4,5,5,6,9)5插入時與9,6,5分別比較1次 因此整個排序過程需要比較的次數(shù)為12次。 歸并排序的思想是將兩個相鄰的有序子序列歸并為一個有序序列,然后再將新產(chǎn)生的相鄰序列進(jìn)行歸并,當(dāng)只剩下一個有序序列時算法結(jié)束。那么用歸并排序?qū)?shù)組3,1,4,1,5,9,6,5進(jìn)行排序的過程為: 原元素序列:3,1,4,1,5,9,6,5 第一趟排

29、序:1,3,1,4,5,9,5,6比較4次 第二趟排序:1,1,3,4,5,5,6,9前半部分比較3次,后半部分比較3次 第三趟排序:1,1,3,4,5,5,6,95分別與1,1,3,4比較一次 所以整個排序過程需要比較的次數(shù)為14次。 問題:20. 遞歸算法的執(zhí)行過程,一般來說,可先后分成_兩個階段。A.試探和回歸B.遞推和回歸C.試探和返回D.遞推和返回答案:B解析 遞歸算法的執(zhí)行過程分遞推和回歸兩個階段。在遞推階段,把較復(fù)雜的問題(規(guī)模為n)的求解推到比原問題簡單一些的問題(規(guī)模小于n)的求解。 在回歸階段,當(dāng)獲得最簡單情況的解后,逐級返回,依次得到稍復(fù)雜問題的解。 下面舉一個經(jīng)典的遞歸

30、算法例子斐波那契數(shù)列問題來說明這一過程。 斐波那契數(shù)列為:0,1,1,2,3,即 fib(0)=0; fib(1)=1; fib(n)=fib(n-1)+fib(n-2) (當(dāng)n1時) 寫成遞歸函數(shù)有: int fib(int n) if (n=0) return 0; if (n=1) return 1; if (n1) return fib(n-1)+fib(n-2); 這個例子的遞推過程為:求解fib(n),把它推到求解fib(n-1)和fib(n-2)。也就是說,為計算fib(n),必須先計算fib(n-1)和fib(n-2),而計算fib(n-1)和fib(n-2),又必須先計算fi

31、b(n-3)和fib(n-4)。依次類推,直至計算fib(1)和fib(0),分別能立即得到結(jié)果1和0。在遞推階段,必須要有終止遞歸的情況。例如在函數(shù)fib(n)中,當(dāng)n為1和0的情況。 回歸過程為:得到fib(1)和fib(0)后,返回得到fib(2)的結(jié)果在得到了fib(n-1)和fib(n-2)的結(jié)果后,返回得到fib(n)的結(jié)果。 問題:21. 若有數(shù)組聲明a0.3,0.2,1.4,設(shè)編譯時為a分配的存儲空間首地址為base_a,且每個數(shù)組元素占據(jù)一個存儲單元。當(dāng)元素以行為序存放(即按a0,0,1,a0,0,2,a0,0,3,a0,0,4,a0,1,1,a0,1,2,a3,2,4順序存

32、儲),則數(shù)組元素a2,2,2在其存儲空間中相對base a的偏移量是_。A.8B.12C.33D.48答案:C解析 本題考查數(shù)據(jù)結(jié)構(gòu)的多維數(shù)組,是常考的知識點(diǎn)。 以前學(xué)過的是二維數(shù)組的存儲,按“行”或“列”來保存,然后求某元素相對于首地址的偏移量。但這個題目是考查三維數(shù)組,更復(fù)雜,但是道理是一樣的。按“行”序來存,仍是從最后一維開始,再往左到第一維進(jìn)行變化。題目中數(shù)組a的大小為5行、4列、4縱,這里要注意題目給出的下標(biāo),則數(shù)組元素a2,2,2的位置處在第3行、第3列、第2縱,求它的偏移量分兩部分,第一部分,前兩行的偏移位置是2*4*4=32;第二部分,在第3行的偏移位置是2*4+2=10,但計

33、算偏移位置是本位置之前的大小,所以是10-1=9。則數(shù)組元素a2,2,2在其存儲空間中相對base_a的偏移量是32+9=41,C選項(xiàng)正確。 問題:22. 一個具有967個結(jié)點(diǎn)的完全二叉樹,其葉子結(jié)點(diǎn)個數(shù)為_。A.483B.484C.485D.486答案:B解析 假設(shè)n0為度為0的結(jié)點(diǎn)總數(shù)(即葉子結(jié)點(diǎn)數(shù)),n1為度為1的結(jié)點(diǎn)總數(shù),n2為度為2的結(jié)點(diǎn)總數(shù),由二叉樹的性質(zhì)可知 n=n0+n1+n2 (1) 其中n為完全二叉樹的結(jié)點(diǎn)總數(shù)。又根據(jù)二叉樹的定義,有 n=n1+2n2+1 (2) 由公式(1)和(2)可得 n2=n0-1 (3) 把(3)式代入(1)式,可得 n=2n0+n1-1 (4)

34、根據(jù)本題的條件,有967=2n0+n1-1,即968-n1=2n0。現(xiàn)在只需確定n1就能求得n0了。根據(jù)完全二叉樹的定義,一棵K層的完全二叉樹,上面的K-1層為滿二叉樹,最后一層的結(jié)點(diǎn)都靠左邊,又因?yàn)闈M二叉樹中只有度為0和度為2的結(jié)點(diǎn),沒有度為1的結(jié)點(diǎn),這也就意味著在完全二叉樹中,只有倒數(shù)第二層,才可能有度為1的結(jié)點(diǎn),這就限制了完全二叉樹只可能有0個或1個度為1的結(jié)點(diǎn),對于968-n1=2n0,n1顯然為0,所以n0=968/2=484。 問題:23. 若循環(huán)隊列以數(shù)組Q0,m-1作為其存儲結(jié)構(gòu),變量rear表示循環(huán)隊列中隊尾元素的實(shí)際位置,其移動按rear=(rear+1)mod m進(jìn)行,變

35、量length表示當(dāng)前循環(huán)隊列中的元素個數(shù),則循環(huán)隊列的隊首元素的實(shí)際位置是_。A.rear-lengthB.(rear-length+m)mod mC.(1+rear+m-length)mod mD.m-length答案:C解析 其實(shí)這種題目在考場上最好的解題方法是找一個實(shí)際的例子,往里面一套便知道了。下面解釋一下原理。因?yàn)閞ear表示的是隊列尾元素的實(shí)際位置(注意,不是隊尾指針)。而且題中有“移動按rear=(rear+1)mod m進(jìn)行”,這說明:隊列存放元素的順序?yàn)椋篞1,Q2,Qm-1,Q0。所以在理想情況下rear-length+1能算出隊首元素的位置,即當(dāng)m=8,rear=5,l

36、ength=2時,near-length+1=4,4就是正確的隊首元素實(shí)際位置。但rear-length+1有一種情況無法處理,即當(dāng)m=8,rear=1,length=5時,無法算出。 所以在rear+1-length的基礎(chǔ)上加上m再與m求模,以此方法來計算。 問題:24. 若一棵哈夫曼樹共有13個頂點(diǎn),則其葉子結(jié)點(diǎn)的個數(shù)為_。A.5B.6C.7D.8答案:C解析 哈夫曼首先給出了對于給定的葉子數(shù)目及其權(quán)值構(gòu)造最優(yōu)二叉樹的方法,根據(jù)這種方法構(gòu)造出來的二叉樹稱為哈夫曼樹。具體過程如下所述。 假設(shè)有n個權(quán)值,則構(gòu)造出的哈夫曼樹有n個葉子結(jié)點(diǎn)。n個權(quán)值分別設(shè)為w1,w2,wn,則哈夫曼樹的構(gòu)造規(guī)則如

37、下。 (1)將w1,w2,wn看成是有n棵樹的森林(每棵樹僅有一個結(jié)點(diǎn))。 (2)在森林中選出兩個根結(jié)點(diǎn)的權(quán)值最小的樹,作為一棵新樹的左、右子樹,且新樹的根結(jié)點(diǎn)權(quán)值為其左、右子樹根結(jié)點(diǎn)權(quán)值之和。 (3)從森林中刪除選取的兩棵樹,并將新樹加入森林。 (4)重復(fù)第(2)和第(3)步,直到森林中只剩一棵樹為止,該樹即為所求的哈夫曼樹。 從以上構(gòu)造過程可知,哈夫曼樹是嚴(yán)格的二叉樹,沒有度數(shù)為1的分支結(jié)點(diǎn)。設(shè)二叉樹的0度結(jié)點(diǎn)(即葉子結(jié)點(diǎn))個數(shù)為n0,2度結(jié)點(diǎn)個數(shù)為n2,則樹的總結(jié)點(diǎn)數(shù)n=n0+n2。又因?yàn)槎鏄溆行再|(zhì):對任何一棵二叉樹,如果其葉子結(jié)點(diǎn)數(shù)為n0,度為2的結(jié)點(diǎn)數(shù)為n2,則n0=n2+1。所以

38、n=n2+1+n2。即13=n2+1+n2,n2=6,n0=7。 問題:25. 若廣義表L=(a,b,c),e),則L的長度和深度分別為_。A.2和1B.2和2C.4和2D.4和1答案:B解析 廣義表記做LS=(a1,a2,an)其中LS是廣義表名,n是它的長度,所以本表的長度為2。而廣義表中嵌套括號的層數(shù)為其深度,所以L深度為2。問題:26. 若二叉樹的先序遍歷序列為ABDECF,中序遍歷序列為DBEAFC,則其后序遍歷序列為_。A.DEBAFCB.DEFBCAC.DEBCFAD.DEBFCA答案:D解析 此題要求根據(jù)二叉樹的先序遍歷和中序遍歷求后序遍歷。可以根據(jù)這棵二叉樹的先序和中序遍歷畫

39、出這棵二叉樹。 根據(jù)先序和中序來構(gòu)造二叉樹的規(guī)則是這樣的:首先看先序,先序遍歷中第一個訪問的結(jié)點(diǎn)是A,這說明A是二叉樹的根結(jié)點(diǎn)(因?yàn)橄刃虮闅v順序是:根、左、右)。然后看中序,中序中A前面有結(jié)點(diǎn)D,B,E,后面有結(jié)點(diǎn)F,C。這說明D,B,E是A的左子樹,F(xiàn),C是A的右子樹。再回到先序遍歷中看D,B,E的排列順序(此時可以不看其他結(jié)點(diǎn)),發(fā)現(xiàn)在先序中B排在最前,所以B是A左子樹的根結(jié)點(diǎn)。接下來又回到了中序,中序中D在B前面,E在B后面,所以D是B的左子樹,E是B的右子樹。依此規(guī)則可構(gòu)造二叉樹,如圖所示。然后對這棵二叉樹進(jìn)行后序遍歷得到DEBFCA。 問題:27. 已知一個線性表(38,25,74,

40、63,52,48),假定采用散列函數(shù)h(key)=key%7計算散列地址,并散列存儲在散列表A0,6中,若采用線性探測方法解決沖突,則在該散列表上進(jìn)行等概率成功查找的平均查找長度為_。A.1.5B.1.7C.2.0D.2.3答案:C解析 要計算散列表上的平均查找長度,首先必須知道在建立這個散列表時,每個數(shù)據(jù)存儲時進(jìn)行了幾次散列。這樣就知道哪一個元素的查找長度是多少。散列表的填表過程如下: 首先存入第1個元素38,由于h(38)=38%7=3,又因?yàn)?號單元現(xiàn)在沒有數(shù)據(jù),所以把38存入3號單元,如圖1所示。 圖1 第1步 接著存入第2個元素25,由于h(25)=25%7=4,又因?yàn)?號單元現(xiàn)在沒

41、有數(shù)據(jù),所以把25存入4號單元,如圖2所示。 圖2 第2步 接著存入第3個元素74,由于h(74)=74%7=4,此時的4號單元已經(jīng)被25占據(jù),所以進(jìn)行線性再散列,線性再散列的公式為:Hi=(H(key)+di)%m,其中的di=1,2,3,4,所以H1=(4+1)%7=5,此時的單元5沒有存數(shù)據(jù),所以把74存入到5號單元,如圖3所示。 圖3 第3步 接著存入第4個元素63,由于h(63)=63%7=0,此時的0號單元沒有數(shù)據(jù),所以把63存入0號單元,如圖4所示。 圖4 第4步 接著存入第5個元素52,由于h(52)=52%7=3,此時的3號單元已被38占據(jù),所以進(jìn)行線性再散列H1=(3+1)

42、%7=4,但4號單元也被占據(jù)了,所以再次散列H2=(3+2)%7=5,但5號單元也被占據(jù)了,所以再次散列H3=(3+3)%7=6,6號單元為空,所以把52存入6號單元,如圖5所示。 圖5 第5步 最后存入第6個元素48,由于h(48)=48%7=6,此時的6號單元已被占據(jù),所以進(jìn)行線性再散列H1=(6+1)%7=0,但0號單元也被占據(jù)了,所以再次散列H2=(6+2)%7=1,1號單元為空,所以把48存入1號單元,如圖6所示。 圖6 第6步 如果一個元素存入時,進(jìn)行了N次散列,相應(yīng)的查找次數(shù)也是N,所以38,25,63這三個元素的查找長度為1,74的查找長度為2,48的查找長度為3,52的查找長

43、度為4。平均查找長度為(1+1+1+2+3+4)/6=2。 問題:28. 設(shè)某算法的計算時間可用遞推關(guān)系式T(n)=2T(n/2)+n表示,則該算法的時間復(fù)雜度為_。A.O(lgn)B.O(nlgn)C.O(n)D.O(n2)答案:B解析 遞推關(guān)系式T(n)=2T(n/2)+n其實(shí)是在給n個元素進(jìn)行快速排序時最好情況(每次分割都恰好將記錄分為兩個長度相等的子序列)下的時間遞推關(guān)系式,其中T(n/2)是一個子表需要的處理時間,n為當(dāng)次分割需要的時間。注意,這里實(shí)際上是用比較次數(shù)來度量時間。可以對此表達(dá)式進(jìn)行變形得 用n/2代替上式中的n可得 繼續(xù)用n/2代替上式中的n可得 算法共需要進(jìn)行l(wèi)bn+

44、1次分割(n個元素的序列的對半分割樹的高度跟具有n個結(jié)點(diǎn)的完全二叉樹高度相等,軟設(shè)級別的只需知道即可,不必深究),將上述lbn+1個式子相加,刪除相互抵消的部分得 而T(1)=1,那么上式可轉(zhuǎn)化為 T(n)=nlbn+2n 而在求時間復(fù)雜度時關(guān)注“大頭”,注意到O(n)O(nlbn)而且對數(shù)的底可省略或?yàn)槿我獬?shù)值,那么 T(n)=O(nlogn)=O(nlgn) 數(shù)學(xué)上,一般將底為10的對數(shù)簡略寫成lgn。 問題:29. _算法策略與遞歸技術(shù)的聯(lián)系最弱。A.分治B.動態(tài)規(guī)劃C.貪心D.回溯答案:C解析 分治法:對于一個規(guī)模為n的問題,若該問題可以容易地解決(如說規(guī)模n較小)則直接解決;否則將

45、其分解為k個規(guī)模較小的子問題,這些子問題互相獨(dú)立且與原問題形式相同,遞歸地解這些子問題,然后將各子問題的解合并得到原問題的解。 動態(tài)規(guī)劃法:這種算法也用到了分治思想,它的做法是將問題實(shí)例分解為更小、相似的子問題,并存儲子問題的解而避免計算重復(fù)的子問題。 貪心算法:它是一種不追求最優(yōu)解,只希望得到較為滿意解的方法。貪心算法一般可以快速得到滿意的解,因?yàn)樗∪チ藶檎业阶顑?yōu)解而窮盡所有可能所必須耗費(fèi)的大量時間。貪心算法常以當(dāng)前情況為基礎(chǔ)做最優(yōu)選擇,而不考慮各種可能的整體情況,所以貪心算法不要回溯。 回溯算法(試探法):它是一種系統(tǒng)地搜索問題的解的方法?;厮菟惴ǖ幕舅枷胧牵簭囊粭l路往前走,能進(jìn)則進(jìn),

46、不能進(jìn)則退回來,換一條路再試。其實(shí)現(xiàn)一般要用到遞歸和堆棧。 以上算法中的分治法和動態(tài)規(guī)劃法通常要用到回溯算法,而回溯算法又一般要用到遞歸,所以只有貪心算法與遞歸技術(shù)聯(lián)系最弱。 問題:30. 對于具有n個元素的一個數(shù)據(jù)序列,若只需得到其中第k個元素之前的部分排序,最好采用_。A.直接插入排序B.希爾排序C.快速排序D.堆排序答案:D解析 此題考的是常見的內(nèi)部排序算法。 直接插入排序的基本思想:每步將一個待排序的記錄按其排序碼值的大小,插到前面已經(jīng)排好的文件中的適當(dāng)位置,直到全部插入完為止。 希爾排序的基本思想:先取一個小于n的整數(shù)d1作為第一個增量,把文件的全部記錄分成d1個組,所有距離為d1的

47、倍數(shù)的記錄放在同一個組中。先在各組內(nèi)進(jìn)行直接插入排序;然后,取第二個增量d2d1重復(fù)上述的分組和排序,直至所取的增量dt=1(dtdt-1Od2d1),即所有記錄放在同一組中進(jìn)行直接插入排序?yàn)橹?。該方法?shí)質(zhì)上是一種分組插入方法。 直接選擇排序的基本思想:首先在所有記錄中選出排序碼最小的記錄,把它與第1個記錄交換,然后在其余的記錄內(nèi)選出排序碼最小的記錄,與第2個記錄交換依此類推,直到所有記錄排完為止。 堆排序的基本思想:堆排序是一種樹形選擇排序,是對直接選擇排序的有效改進(jìn)。它通過建立初始堆和不斷地重建堆,逐個地將排序關(guān)鍵字按順序輸出,從而達(dá)到排序的目的。 冒泡排序的基本思想:將被排序的記錄數(shù)組R

48、1.n垂直排列,每個記錄Ri看作是重量為ki的氣泡。根據(jù)輕氣泡不能在重氣泡之下的原則,從下往上掃描數(shù)組R,凡掃描到違反本原則的輕氣泡,就使其向上“飄浮”。如此反復(fù)進(jìn)行,直到最后任何兩個氣泡都是輕者在上,重者在下為止。 快速排序的基本思想:采用了一種分治的策略,將原問題分解為若干個規(guī)模更小但結(jié)構(gòu)與原問題相似的子問題。遞歸地解這些子問題,然后將這些子問題的解組合為原問題的解。 歸并排序的基本思想:將兩個或兩個以上的有序子表合并成一個新的有序表。初始時,把含有n個結(jié)點(diǎn)的待排序序列看作由n個長度都為1的有序子表所組成,將它們依次兩兩歸并得到長度為2的若干有序子表,再對它們兩兩合并,直到得到長度為n的有

49、序表為止,排序結(jié)束。 基數(shù)排序的基本思想:從低位到高位依次對待排序的關(guān)鍵碼進(jìn)行分配和收集,經(jīng)過d趟分配和收集,就可以得到一個有序序列。 了解這些算法思想以后,解題就容易了。現(xiàn)在看題目具體要求,題目中“若只需得到其中第k個元素之前的部分排序”有歧義。例如,現(xiàn)在待排序列: 15 8 9 2 23 69 5 現(xiàn)要求得到其中第3個元素之前的部分排序。第一種理解:得到“15 8 9”的排序;第二種理解:得到排序后序列“2 5 8 9 15 23 69”的“2 5 8 9”;得到排序后第3個元素之前的部分排序:即“2 5 8”。但綜合題意,第一種理解可以排除,要達(dá)到第一種效果,只需將待排序列定為“15 8

50、 9”即可。對于后兩種理解,都只有堆最合適,因?yàn)橄柵判?、直接插入排序和快速排序都不能?shí)現(xiàn)部分排序。若要達(dá)到題目要求,只能把所有元素排序完成,再從結(jié)果集中把需要的數(shù)列截取出來,這樣效率遠(yuǎn)遠(yuǎn)不及堆排序。所以本題答案選D。 問題:31. 下面關(guān)于編程語言的各種說法中,_是不正確的。A.邏輯型語言適用于書寫自動定理證明B.Smalltalk、C+、Java、C#都是面向?qū)ο笳Z言C.函數(shù)型語言適用于人工智能領(lǐng)域D.由于C語言程序是由函數(shù)構(gòu)成的,因此它是一種函數(shù)型語言答案:D解析 本題考查各程序語言的特點(diǎn)。按照程序設(shè)計范型的分類,程序設(shè)計語言基本上可以分為命令式程序設(shè)計語言、函數(shù)式程序設(shè)計語言、面向?qū)ο?/p>

51、程序設(shè)計語言和邏輯程序設(shè)計語言。 命令式程序設(shè)計語言是基于動作的語言,計算在這里被看作是一個動作的序列。這些動作能夠改變變量的值,最典型的動作就是賦值。命令式程序設(shè)計語言的代表有Fortran,Pascal和C語言等。 函數(shù)是一種對應(yīng)規(guī)則(映射),使定義域中每個元素和值域中唯一的元素相對應(yīng)。函數(shù)式語言是一類以九演算為基礎(chǔ)的語言,主要用于人工智能領(lǐng)域,其代表有Lisp、ML等。 面向?qū)ο蟪绦蛟O(shè)計語言中最核心的東西是對象和類的概念。面向?qū)ο蟮娜齻€核心概念是封裝、繼承和多態(tài)。面向?qū)ο蟪绦蛟O(shè)計語言的代表有C+、SmallTalk、Java等。 邏輯程序設(shè)計語言是一類以形式邏輯為基礎(chǔ)的語言,其代表是建立

52、在關(guān)系理論和一階謂詞理論基礎(chǔ)上的Prolog。Prolog有很強(qiáng)的推理功能,適用于書寫自動定理證明、專家系統(tǒng)和自然語言理解等問題的程序。 問題:32. 序言性注釋是指在每個程序或模塊開頭的一段說明,起輔助理解程序的作用,一般包括:程序的表示、名稱和版本號,程序功能描述,接口與界面描述,輸入/輸出數(shù)據(jù)說明,開發(fā)歷史,與運(yùn)行環(huán)境有關(guān)的信息等。下列敘述中不屬于序言性注釋功能的是_。A.程序?qū)τ布④浖Y源的要求B.重要變量和參數(shù)說明C.嵌入在程序中的SQL語句D.程序開發(fā)的原作者、審查者、修改者、編程日期等答案:C解析 本題主要考查注釋的概念。注釋一般分為序言性注釋和功能性注釋。 序言性注釋通常位于

53、每個程序的開頭部分,給出程序的整體說明,可以包括程序?qū)τ布?、軟件資源的要求,重要變量和參數(shù)的說明,程序的作者、審查者、編程日期、修改日期等,程序?qū)崿F(xiàn)的功能描述。 功能性注釋的位置一般嵌在源程序體之中,主要用于描述程序中相關(guān)語句的作用或注釋后程序段的要實(shí)行什么功能。 問題:33. 傳值調(diào)用和引用調(diào)用是常用的函數(shù)調(diào)用方式,下列描述中正確的是_。A.在傳值調(diào)用方式下,是將形參的值傳給實(shí)參B.在傳值調(diào)用方式下,形參可以是任意形式的表達(dá)式C.在引用調(diào)用方式下,是將實(shí)參的地址傳給形參D.在引用調(diào)用方式下,實(shí)參可以是任意形式的表達(dá)式答案:C解析 本題主要考查函數(shù)調(diào)用時的參數(shù)傳遞方式。 當(dāng)用戶調(diào)用一個過程時,就會發(fā)生通過參數(shù)傳遞信息的過程之間的通信。形式參數(shù)就是過程定義中用于命名所傳遞的數(shù)據(jù)或其他信

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論