數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)、程序設(shè)計(jì)基礎(chǔ)、軟件工程基礎(chǔ)、數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)帶解析題庫(kù)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)、程序設(shè)計(jì)基礎(chǔ)、軟件工程基礎(chǔ)、數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)帶解析題庫(kù)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)、程序設(shè)計(jì)基礎(chǔ)、軟件工程基礎(chǔ)、數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)帶解析題庫(kù)_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)、程序設(shè)計(jì)基礎(chǔ)、軟件工程基礎(chǔ)、數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)帶解析題庫(kù)_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)、程序設(shè)計(jì)基礎(chǔ)、軟件工程基礎(chǔ)、數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)帶解析題庫(kù)_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第一章 數(shù)據(jù)結(jié)構(gòu)一、選擇題(1)下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是A)順序存儲(chǔ)的有序線性表 B )線性鏈表C)二叉鏈表 D )有序線性鏈表【答案】A【解析】二分查找只適用于順序存儲(chǔ)的有序表。 在此所說(shuō)的有序表是指線性表中的元素按值非遞減排列 (即從小到大.但允許相鄰元素值相等 )的。選項(xiàng) A正確。(2)下列關(guān)于棧的描述正確的是A)在棧中只能插入元素而不能刪除元素B)在棧中只能刪除元素而不能插入元素C)棧是特殊的線性表,只能在一端插入或刪除元素D【答案】C【解析】棧是一種特殊的線性表,其插入與刪除運(yùn)算都只在線性表的一端進(jìn)行。由此可見(jiàn),選項(xiàng) A、選項(xiàng)B和選項(xiàng)D錯(cuò)誤,正確答案是選項(xiàng) C。(3)下列敘述中正確的是)一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu))數(shù)據(jù)的邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu))一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率D)一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率【答案】D【解析】一般來(lái)說(shuō),一種數(shù)據(jù)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等存儲(chǔ)結(jié)構(gòu)。而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。由此可見(jiàn),選項(xiàng) D的說(shuō)法正確。算法執(zhí)行過(guò)程中所需要的存儲(chǔ)空間稱為算法的A)時(shí)間復(fù)雜度 B)計(jì)算工作量 C)空間復(fù)雜度 D)工作空間【答案】c【解析】算法執(zhí)行時(shí)所需要的存儲(chǔ)空間,包括算法程序所占的空間、輸入的初始數(shù)據(jù) 所占的存儲(chǔ)空間以及算法執(zhí)行過(guò)程中所需要的額外空間,其中額外空間還包括算法程序執(zhí)行過(guò)程的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲(chǔ)空間。這些存儲(chǔ)空間共稱為算法的空間復(fù)雜度。下列關(guān)于隊(duì)列的敘述中正確的是A)在隊(duì)列中只能插入數(shù)據(jù) B)在隊(duì)列中只能刪除數(shù)據(jù)C)隊(duì)列是先進(jìn)先出的線性表 D)隊(duì)列是先進(jìn)后出的線性表【答案】c【解析】對(duì)隊(duì)列可以進(jìn)行插入和刪除數(shù)據(jù)的操作,只是插入數(shù)據(jù)只能在隊(duì)尾,刪除數(shù)據(jù)只能在隊(duì)頭。 所以隊(duì)列是先進(jìn)先出的線性表。設(shè)有下列二叉樹(shù):AB CD E F對(duì)此二叉樹(shù)后序遍歷的結(jié)果為A)ABCDEFB)BDAECF C)ABDCEFD)DBEFCA【答案】D【解析】二叉樹(shù)的遍歷分為先序、中序、后序三種不同方式。本題要求后序遍歷。其遍歷順序應(yīng)該為:后序遍歷左子樹(shù)一 >后序遍歷右子樹(shù)一 >訪問(wèn)根結(jié)點(diǎn)。按照定義,后序遍歷序列是 DBEFCA,故答案為 D。下列敘述中正確的是()程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)C)程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D)以上三種說(shuō)法都不對(duì)【答案】A【解析】本題考查程序效率。程序效率是指程序運(yùn)行速度和程序占用的存儲(chǔ)空間。影響程序效率的因素是多方面的,包括程序的設(shè)計(jì)、使用的算法、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)等。在確定數(shù)據(jù)邏輯結(jié)構(gòu)的基礎(chǔ)上,選擇一種合適的存儲(chǔ)結(jié)構(gòu),可以使得數(shù)據(jù)操作所花費(fèi)的時(shí)間少,占用的存儲(chǔ)空間少,即提高程序的效率。因此,本題選項(xiàng)A的說(shuō)法是正確的。下列敘述中正確的是()數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)必定是一一對(duì)應(yīng)的由于計(jì)算機(jī)存儲(chǔ)空間是向量式的存儲(chǔ)結(jié)構(gòu),因此,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)一定是線性結(jié)構(gòu)C)程序設(shè)計(jì)語(yǔ)言中的數(shù)組一般是順序存儲(chǔ)結(jié)構(gòu),因此,利用數(shù)組只能處理線線結(jié)構(gòu)D)以上三種說(shuō)法都不對(duì)【答案】D【解析】本題考查數(shù)據(jù)結(jié)構(gòu)的基本知識(shí)。數(shù)據(jù)之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。通常分為四類基本邏輯結(jié)構(gòu),即集合、線性結(jié)構(gòu)、樹(shù)型結(jié)構(gòu)、圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。存儲(chǔ)結(jié)構(gòu)是邏輯結(jié)構(gòu)在存儲(chǔ)器中的映象,它包含數(shù)據(jù)元素的映象和關(guān)系的映象。存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中有兩種,即順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。 順序存儲(chǔ)結(jié)構(gòu)是把數(shù)據(jù)元素存儲(chǔ)在一塊連續(xù)地址空間的內(nèi)存中;鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是使用指針把相互直接關(guān)聯(lián)的節(jié)點(diǎn)鏈接起來(lái)。 因此,這兩種存儲(chǔ)結(jié)構(gòu)都是線性的??梢?jiàn),邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)不是一一對(duì)應(yīng)的。因此,選項(xiàng) A和選項(xiàng)B的說(shuō)法都是錯(cuò)誤的。無(wú)論數(shù)據(jù)的邏輯結(jié)構(gòu)是線性的還是非線性的,只能選擇順序存儲(chǔ)結(jié)構(gòu)或鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)來(lái)實(shí)現(xiàn)存儲(chǔ)。 程序設(shè)計(jì)語(yǔ)言中,數(shù)組是內(nèi)存中一段連續(xù)的地址空間,可看作是順序存儲(chǔ)結(jié)構(gòu)。可以用數(shù)組來(lái)實(shí)現(xiàn)樹(shù)型邏輯結(jié)構(gòu)的存儲(chǔ),比如二叉樹(shù)。 因此,選項(xiàng) c的說(shuō)法是錯(cuò)誤的冒泡排序在最壞情況下的比較次數(shù)是()A)n(n+1)/2

B)nlog

2n

C)n(n-1)/2

D)n/2【答案】C【解析】冒泡排序的基本思想是:將相鄰的兩個(gè)元素進(jìn)行比較,如果反序,則交換;對(duì)于一個(gè)待排序的序列,經(jīng)一趟排序后,最大值的元素移動(dòng)到最后的位置,其他值較大的元素也向最終位置移動(dòng),此過(guò)程稱為一趟冒泡。對(duì)于有

n個(gè)數(shù)據(jù)的序列,共需

n-1

趟排序,第

i趟對(duì)從

l到

n-i

個(gè)數(shù)據(jù)進(jìn)行比較、交換。冒泡排序的最壞情況是待排序序列逆序,

l

趟比較

n-1

次,第2趟比較

n-2

次。依此類推,最后趟比較

1次,一共進(jìn)行

n-l

趟排序。因此,冒泡排序在最壞情況下的比較次數(shù)是

(n-1)+(n-2)+

?+l,結(jié)果為

n(n-1)/2

。本題的正確答案是選項(xiàng)

c。(10) 一棵二叉樹(shù)中共有

70個(gè)葉子結(jié)點(diǎn)與

80個(gè)度為

1的結(jié)點(diǎn),則該二叉樹(shù)中的總結(jié)點(diǎn)數(shù)為

()A)219

B)221

C)229

D)231【答案】A【解析】本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹(shù)的性質(zhì)。二叉樹(shù)滿足如下一條性質(zhì),即:對(duì)任意一棵二叉樹(shù),若終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為n0,而其度數(shù)為 2的結(jié)點(diǎn)數(shù)為 n2,則n0=n2+l。根據(jù)這條性質(zhì)可知,若二叉樹(shù)中有

70個(gè)葉子結(jié)點(diǎn),則其度為

2的結(jié)點(diǎn)數(shù)為

70-1,即

69個(gè)。二叉樹(shù)的總結(jié)點(diǎn)數(shù)是度為

2、度為

1和葉子結(jié)點(diǎn)的總和,因此,題目中的二叉樹(shù)總結(jié)點(diǎn)數(shù)為

69+80+70,即

219。因此,本題的正確答案是選項(xiàng)

A。下列敘述中正確的是()算法的效率只與問(wèn)題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量C)數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)是一一對(duì)應(yīng)的D)算法的時(shí)間復(fù)雜度與空間復(fù)雜度一定相關(guān)【答案】B【解析】本題考查數(shù)據(jù)結(jié)構(gòu)中有關(guān)算法的基本知識(shí)和概念。數(shù)據(jù)的結(jié)構(gòu),直接影響算法的選擇和效率。而數(shù)據(jù)結(jié)構(gòu)包括兩方面, 即數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu) 。因此,數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)都影響算法的效率。選項(xiàng) A的說(shuō)法是錯(cuò)誤的。 算法的時(shí)間復(fù)雜度是指算法在計(jì)算機(jī)內(nèi)執(zhí)行時(shí)所需時(shí)間的度量;與時(shí)間復(fù)雜度類似,空間復(fù)雜度是指算法在計(jì)算機(jī)內(nèi)執(zhí)行時(shí)所需存儲(chǔ)空間的度量。 因此,選項(xiàng) B的說(shuō)法是正確的。數(shù)據(jù)之間的相互關(guān)系稱為邏輯結(jié)構(gòu)。通常分為四類基本邏輯結(jié)構(gòu),即集合、線性結(jié)構(gòu)、樹(shù)型結(jié)構(gòu)、圖狀結(jié)構(gòu)或網(wǎng)狀結(jié)構(gòu)。存儲(chǔ)結(jié)構(gòu)是邏輯結(jié)構(gòu)在存儲(chǔ)器中的映象,它包含數(shù)據(jù)元素的映象和關(guān)系的映象。存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中有兩種, 即順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu) ??梢?jiàn),邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)不是一一對(duì)應(yīng)的。 因此,選項(xiàng)c的說(shuō)法是錯(cuò)誤的。有時(shí)人們?yōu)榱颂岣咚惴ǖ臅r(shí)間復(fù)雜度,而以犧牲空間復(fù)雜度為代價(jià)。但是,這兩者之間沒(méi)有必然的聯(lián)系。因此,選項(xiàng)D的說(shuō)法是錯(cuò)誤的。下列關(guān)于算法的時(shí)間復(fù)雜度陳述正確的是A)算法的時(shí)間復(fù)雜度是指執(zhí)行算法程序所需要的時(shí)間B)算法的時(shí)間復(fù)雜度是指算法程序的長(zhǎng)度C)算法的時(shí)間復(fù)雜度是指算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D)算法的時(shí)間復(fù)雜度是指算法程序中的指令條數(shù)【答案】C【解析】算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,也就是算法在執(zhí)行過(guò)程中所執(zhí)行的基本運(yùn)算的次數(shù),而不是指程序運(yùn)行需要的時(shí)間或是程序的長(zhǎng)度。下列關(guān)于棧的敘述中正確的是A)在棧中只能插入數(shù)據(jù) B )在棧中只能刪除數(shù)據(jù)C)棧是先進(jìn)先出的線性表 D )棧是先進(jìn)后出的線性表【答案】D【解析】對(duì)??蛇M(jìn)行插入和刪除數(shù)據(jù)的操作,但必須牢記插入和刪除數(shù)據(jù)都只能是在棧頂,是一種特殊的線性表。所以棧是先進(jìn)后出的線性表。設(shè)有下列二叉樹(shù):AB CFF D E F對(duì)此二叉樹(shù)中序遍歷的結(jié)果為A)ABCDEF B)DAECF C)BDAECF D)DBEFCA【答案】C【解析】二叉樹(shù)的遍歷分為先序、中序、后序三種不同方式。本題要求中序遍歷,其遍歷順序應(yīng)該為:中序遍歷左子樹(shù) ->訪問(wèn)根結(jié)點(diǎn)->中序遍歷右子樹(shù)。按照定義,中序遍歷序列是 BDAECF,故答案為 B。按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是A)隊(duì)列 B)棧C)雙向鏈表 D)二叉樹(shù)【答案】B【解析】“后進(jìn)先出”表示最后被插入的元素最先能被刪除 。選項(xiàng) A中,隊(duì)列是指允許在一端進(jìn)行插入、而在另一端進(jìn)行刪除的線性表,在隊(duì)列這種數(shù)據(jù)結(jié)構(gòu)中,最先插入的元素將最先能夠被刪除,反之,最后插入的元素將最后才能被刪除,隊(duì)列又稱為“先進(jìn)先出”的線性表,它體現(xiàn)了“先來(lái)先服務(wù)”的原則:選項(xiàng)B中,棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素,棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。隊(duì)列和棧都屬于線性表,它們具有順序存儲(chǔ)的特點(diǎn),所以才有“先進(jìn)先出”和“后進(jìn)先出”的數(shù)據(jù)組織方式。雙向鏈表使用鏈?zhǔn)酱鎯?chǔ)方式.二叉樹(shù)也通常采用鏈?zhǔn)酱鎯?chǔ)方式,它們的存儲(chǔ)數(shù)據(jù)的空間可以是不連續(xù)的,各個(gè)數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致。 所以選項(xiàng)c和選項(xiàng)D錯(cuò)。下列敘述中正確的是A)線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B)棧與隊(duì)列是非線性結(jié)構(gòu)C)雙向鏈表是非線性結(jié)構(gòu)D)只有根結(jié)點(diǎn)的二叉樹(shù)是線性結(jié)構(gòu)【答案】A【解析】一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)如果滿足下列兩個(gè)條件: (1)有且只有一個(gè)根結(jié)點(diǎn) ;(2)每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。則稱為線性結(jié)構(gòu)。線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),選項(xiàng) A的說(shuō)法是正確的。棧與隊(duì)列是特殊的線性表,它們也是線性結(jié)構(gòu) ,選項(xiàng)B的說(shuō)法是錯(cuò)誤的; 雙向鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),其對(duì)應(yīng)的邏輯結(jié)構(gòu)也是線性結(jié)構(gòu)

,而不是非線性結(jié)構(gòu),選項(xiàng)

c的說(shuō)法是錯(cuò)誤的; 二叉樹(shù)是非線性結(jié)構(gòu),而不是線性結(jié)構(gòu)

,選項(xiàng)

D的說(shuō)法是錯(cuò)誤的。因此,本題的正確答案為

A(17)對(duì)如下二叉樹(shù)AB

CD

E

F進(jìn)行后序遍歷的結(jié)果為A)ABCDEF

B)DBEAFCC)ABDECF

D)DEBFCA【答案】

D【解析】二叉樹(shù)后序遍歷的簡(jiǎn)單描述如下:若二叉樹(shù)為空,則結(jié)束返回。否則( 1)后序遍歷左子樹(shù); (2)后序遍歷右子樹(shù); (3)訪問(wèn)根結(jié)點(diǎn)。也就是說(shuō),后序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后遍歷右子樹(shù),最后訪問(wèn)根結(jié)點(diǎn),并且,在遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后遍歷右子樹(shù),最后訪問(wèn)根結(jié)點(diǎn)。根據(jù)后序遍歷的算法,后序遍歷的結(jié)果為 DEBFCA。下列對(duì)隊(duì)列的敘述正確的是()隊(duì)列屬于非線性表隊(duì)列按“先進(jìn)后出”原則組織數(shù)據(jù)C)隊(duì)列在隊(duì)尾刪除數(shù)據(jù)D)隊(duì)列按“先進(jìn)先出”原則組織數(shù)據(jù)【答案】D【解析】本題考查數(shù)據(jù)結(jié)構(gòu)中隊(duì)列的基本知識(shí)。隊(duì)列是一種限定性的線性表,它只允許在表的一端插入元素,而在另一端刪除元素,所以隊(duì)列具有先進(jìn)先出的特性。在隊(duì)列中,允許插入元素的一端叫做隊(duì)尾,允許刪除的一端則稱為隊(duì)頭。這與日常生活中的排隊(duì)是一致的,最早進(jìn)入隊(duì)列的人最早離開(kāi),新來(lái)的人總是加入到隊(duì)尾。因此,本題中只有選項(xiàng) D的說(shuō)法是正確的。對(duì)下列二叉樹(shù)進(jìn)行前序遍歷的結(jié)果為()A)DYBEAFCZX B)YDEBFZXCA C)ABDYECFXZ D)ABCDEFXYZ【答案】C【解析】本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹(shù)的遍歷。根據(jù)對(duì)二叉樹(shù)根的訪問(wèn)先后順序不同,分別稱為前序遍歷、中序遍歷和后序遍歷。這三種遍歷都是遞歸定義的,即在其子樹(shù)中也按照同樣的規(guī)律進(jìn)行遍歷。下面就是前序遍歷方法的遞歸定義。當(dāng)二叉樹(shù)的根不為空時(shí),依次執(zhí)行如下 3個(gè)操作:訪問(wèn)根結(jié)點(diǎn)按先序遍歷左子樹(shù)按先序遍歷右子樹(shù)根據(jù)如上前序遍歷規(guī)則,來(lái)遍歷本題中的二叉樹(shù)。首先訪問(wèn)根結(jié)點(diǎn),即 A,然后遍歷 A的左子樹(shù)。遍歷左子樹(shù)同樣按照相同的規(guī)則首先訪問(wèn)根結(jié)點(diǎn) B,然后遍歷 B的左子樹(shù)。遍歷 B的左子樹(shù),首先訪問(wèn) D,然后訪問(wèn)D的左子樹(shù),D的左子樹(shù)為空,接下來(lái)訪問(wèn) D的右子樹(shù),即 Y。遍歷完 B的左子樹(shù)后,再遍歷 B的右子樹(shù),即 E。到此遍歷完 A的左子樹(shù),接下來(lái)遍歷 A的右子樹(shù)。按照同樣的規(guī)則,首先訪問(wèn) C,然后遍歷c的左子樹(shù)。即

F。c

的左子樹(shù)遍歷完,接著遍歷

c的右子樹(shù)。首先訪問(wèn)右子樹(shù)的根結(jié)點(diǎn)

X,然后訪問(wèn)

X的左子樹(shù),

X的左子樹(shù),即

Z,接下來(lái)訪問(wèn)

X的右子樹(shù),右子樹(shù)為空。到此,把題目的二叉樹(shù)進(jìn)行了一次前序遍歷。遍歷的結(jié)果為

ABDYECFXZ,故本題的正確答案為選項(xiàng)

C。(20) 某二叉樹(shù)中有

n個(gè)度為

2的結(jié)點(diǎn),則該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)為

( )A)n+1

B)n-1

C)2n

D)n/2【答案】

A【解析】本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹(shù)的性質(zhì)。 二叉樹(shù)滿足如下一條性質(zhì),即:對(duì)任意一棵二叉樹(shù),若終端結(jié)點(diǎn)

(即葉子結(jié)點(diǎn)

)數(shù)為

no,而其度數(shù)為

2的結(jié)點(diǎn)數(shù)為

n2,則

n0=n2+l

。根據(jù)這條性質(zhì)可知,若二叉樹(shù)中有

n個(gè)度為

2的結(jié)點(diǎn),則該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)為

n+l。因此,本題的正確答案是選項(xiàng)

A。(22) 下列敘述中正確的是A)一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大B)一個(gè)算法的空間復(fù)雜度大,則期時(shí)間復(fù)雜度必定小C)一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小D)上述三種說(shuō)法都不對(duì)【答案】D【解析】時(shí)間復(fù)雜度是指一個(gè)算法執(zhí)行時(shí)間的相對(duì)度量;空間復(fù)雜度是指算法在運(yùn)行過(guò)程中臨時(shí)占用所需存儲(chǔ)空間大小的度量。 人們都希望選擇一個(gè)既省存儲(chǔ)空間、又省執(zhí)行時(shí)間的算法。然而,有時(shí)為了加快算法的運(yùn)行速度,不得不增加空間開(kāi)銷;有時(shí)為了能有效地存儲(chǔ)算法和數(shù)據(jù),又不得不犧牲運(yùn)行時(shí)間。時(shí)間和空間的效率往往是一對(duì)矛盾,很難做到兩全。但是,這不適用于所有的情況,也就是說(shuō)時(shí)間復(fù)雜度和空間復(fù)雜度之間雖然經(jīng)常矛盾。但是二者不存在必然的聯(lián)系。因此,選項(xiàng) A、B、c的說(shuō)法都是錯(cuò)誤的。故本題的正確答案是 D。在長(zhǎng)度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為A)63 B)64 C)6 D)7【答案】B【解析】在長(zhǎng)度為 64的有序線性表中,其中的 64個(gè)數(shù)據(jù)元素是按照從大到小或從小到大的順序排列有序的。在這樣的線性表中進(jìn)行順序查找, 最壞的情況就是查找的數(shù)據(jù)元素不在線性表中或位于線性表的最后。按照線性表的順序查找算法,首先用被查找的數(shù)據(jù)和線性表的第一個(gè)數(shù)據(jù)元素進(jìn)行比較。若相等,則查找成功,否則,繼續(xù)進(jìn)行比較,即和線性表的第二個(gè)數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找成功,否則,繼續(xù)進(jìn)行比較。依次類推,直到在線性表中查找到該數(shù)據(jù)或查找到線性表的最后一個(gè)元素,算法才結(jié)束。因此,在長(zhǎng)度為 64的有序線性表中進(jìn)行順序查找,最壞的情況下需要比較 64次。因此,本題的正確答案為B。對(duì)下列二叉樹(shù)進(jìn)行中序遍歷的結(jié)果是A)ACBDFEG

B)ACBDFGEC)ABDCGEF

D)FCADBEGFC

EA

D

GB【答案】

A【解析】二叉樹(shù)的中序遍歷遞歸算法為:

如果根不空,則(1)

按中序次序訪問(wèn)左子樹(shù);

(2)訪問(wèn)根結(jié)點(diǎn):

(3)按中序次序訪問(wèn)右子樹(shù)。否則返回。本題中,根據(jù)中序遍歷算法.應(yīng)首先按照中序次序訪問(wèn)以

c為根結(jié)點(diǎn)的左子樹(shù),然后再訪問(wèn)根結(jié)點(diǎn)

F,最后才訪問(wèn)以

E為根結(jié)點(diǎn)的右子樹(shù)。遍歷以

c為根結(jié)點(diǎn)的左子樹(shù)同樣要遵循中序遍歷算法,因此中序遍歷結(jié)果為

ACBD;然后遍歷根結(jié)點(diǎn)

F;遍歷以

E為根結(jié)點(diǎn)的右子樹(shù),同樣要遵循中序遍歷算法,因此中序遍歷結(jié)果為

EG。最后把這三部分的遍歷結(jié)果按順序連接起來(lái),中序遍歷結(jié)果為ACBDFEG。因此,本題的正確答案是 A。(25)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指 ______。A)存儲(chǔ)在外存中的數(shù)據(jù) B)數(shù)據(jù)所占的存儲(chǔ)空間量C)數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式 D)數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示【答案】D【解析】數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),也稱數(shù)據(jù)的物理結(jié)構(gòu)。所以選項(xiàng)D正確。26)下列關(guān)于棧的描述中錯(cuò)誤的是______。A)棧是先進(jìn)后出的線性表B)棧只能順序存儲(chǔ)C)棧具有記憶作用D)對(duì)棧的插入與刪除操作中,不需要改變棧底指針【答案】B【解析】本題考核棧的基本概念,我們可以通過(guò)排除法來(lái)確定本題的答案。棧是限定在一端進(jìn)行插入與刪除的線性表,棧頂元素總是最后被插入的元素,從而也是最先能被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素,即棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的,這便是棧的記憶作用,所以選項(xiàng) A和選項(xiàng)C正確。對(duì)棧進(jìn)行插入和刪除操作時(shí),棧頂位置是動(dòng)態(tài)變化的,棧底指針不變,選項(xiàng) D正確。由此可見(jiàn),選項(xiàng) B的描述錯(cuò)誤。(29)下列對(duì)于線性鏈表的描述中正確的是 ______。A)存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的B)存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面C)存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面D)存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的【答案】A【解析】在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,數(shù)據(jù)元素之間的邏輯關(guān)系,是由指針域來(lái)確定的 。由此可見(jiàn),選項(xiàng) A的描述正確。(1)線性表若采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)時(shí),要求內(nèi)存中可用存儲(chǔ)單元的地址A)必須是連續(xù)的B)部分地址必須是連續(xù)的C)一定是不連續(xù)的D)連續(xù)不連續(xù)都可以解析: 在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以是連續(xù)的,也可以是不連續(xù)的,各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致。故本題答案應(yīng)該為選項(xiàng) D)(2)在待排序的元素序列基本有序的前提下,效率最高的排序方法是A)冒泡排序B)選擇排序C)快速排序D)歸并排序解析: 從平均時(shí)間性能而言,快速排序最佳,其所需時(shí)間最少,但快速排序在最壞情況下的時(shí)間性能不如堆排序和歸并排序。 當(dāng)序列中的記錄基本有序或元素個(gè)數(shù)較少時(shí),冒泡排序和簡(jiǎn)單選擇排序?yàn)樽罴雅判蚍椒?,故本題答案應(yīng)該為選項(xiàng) A)。(3)下列敘述中,錯(cuò)誤的是A)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率密切相關(guān)B)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)處理的效率無(wú)關(guān)C)數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)在計(jì)算機(jī)中所占的空間不一定是連續(xù)的D)一種數(shù)據(jù)的邏輯結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu)解析: 一般來(lái)說(shuō),一種數(shù)據(jù)結(jié)構(gòu)根據(jù)需要可以表示成多種存儲(chǔ)結(jié)構(gòu)。常用的存儲(chǔ)結(jié)構(gòu)有順序、鏈接、索引等,而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的; 一個(gè)數(shù)據(jù)結(jié)構(gòu)中的各數(shù)據(jù)元素在計(jì)算機(jī)存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系是有可能不同的。 故本題答案應(yīng)該為選項(xiàng) B)。(4)希爾排序?qū)儆贏)交換排序B)歸并排序C)選擇排序D)插入排序解析: 希爾排序的基本思想是把記錄按下標(biāo)的一定增量分組,對(duì)每組記錄使用插入排序,隨增量的逐漸減小,所分成的組包含的記錄越來(lái)越多,到增量的值減小到 1時(shí),整個(gè)數(shù)據(jù)合成一組,構(gòu)成一組有序記錄,故其屬于 插入排序方法 。故本題答案應(yīng)該為選項(xiàng) D)。(1)棧和隊(duì)列的共同特點(diǎn)是A)都是先進(jìn)先出B)都是先進(jìn)后出C)只允許在端點(diǎn)處插入和刪除元素D)沒(méi)有共同點(diǎn)解析:棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。 二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“后進(jìn)先出”的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種“先進(jìn)先出”的線性表。故本題答案應(yīng)該為選項(xiàng) C)。(2)已知二叉樹(shù)后序遍歷序列是 dabec,中序遍歷序列是 debac,它的前序遍歷序列是A)acbedB)decabC)deabcD)cedba解析: 依據(jù)后序遍歷序列可確定根結(jié)點(diǎn)為 c;再依據(jù)中序遍歷序列可知其左子樹(shù)由空;又由左子樹(shù)的后序遍歷序列可知其根結(jié)點(diǎn)為 e,由中序遍歷序列可知其左子樹(shù)為如下圖所示。求得該二叉樹(shù)的前序遍歷序列為選項(xiàng) D)。

deba構(gòu)成,右子樹(shù)為d,右子樹(shù)由 ba構(gòu)成,(3)鏈表不具有的特點(diǎn)是A)不必事先估計(jì)存儲(chǔ)空間B)可隨機(jī)訪問(wèn)任一元素C)插入刪除不需要移動(dòng)元素D)所需空間與線性表長(zhǎng)度成正比解析: 鏈表采用的是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),它克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn) :它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申請(qǐng)和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來(lái)指示,不需要移動(dòng)數(shù)據(jù)元素。但是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)也有不足之處:① 每個(gè)結(jié)點(diǎn)中的指針域需額外占用存儲(chǔ)空間;② 鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是一種非隨機(jī)存儲(chǔ)結(jié)構(gòu)。故本題答案應(yīng)該為選項(xiàng) D)。(6)算法的時(shí)間復(fù)雜度是指A)執(zhí)行算法程序所需要的時(shí)間B)算法程序的長(zhǎng)度C)算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)D)算法程序中的指令條數(shù)解析: 算法的復(fù)雜度主要包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。故本題答案應(yīng)該為選項(xiàng) A)。(2)樹(shù)是結(jié)點(diǎn)的集合,它的根結(jié)點(diǎn)數(shù)目是A)有且只有 1B)1或多于1C)0或1D)至少2解析: 樹(shù)是一個(gè)或多個(gè)結(jié)點(diǎn)組成的有限集合,其中一個(gè)特定的結(jié)點(diǎn)稱為根,其余結(jié)點(diǎn)分為若干個(gè)不相交的集合。每個(gè)集合同時(shí)又是一棵樹(shù)。樹(shù)有且只有 1個(gè)根結(jié)點(diǎn)。故本題答案應(yīng)該為選項(xiàng) A)。(3)如果進(jìn)棧序列為 e1,e2,e3,e4 ,則可能的出棧序列是A)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D)任意順序解析: 由棧"后進(jìn)先出"的特點(diǎn)可知:A)中e1不可能比 e2先出,C)中e3不可能比 e4能比e2先出,D)中棧是先進(jìn)后出的,所以不可能是任意順序。 B)中出棧過(guò)程如圖所示:

先出,且

e1不可故本題答案應(yīng)該為選項(xiàng) B)。(4)在設(shè)計(jì)程序時(shí),應(yīng)采納的原則之一是A)不限制 goto語(yǔ)句的使用B)減少或取消注解行C)程序越短越好D)程序結(jié)構(gòu)應(yīng)有助于讀者理解解析:濫用 goto 語(yǔ)句將使程序流程無(wú)規(guī)律,可讀性差,因此 A)不選;注解行有利于對(duì)程序的理解,不應(yīng)減少或取消, B)也不選;程序的長(zhǎng)短要依照實(shí)際情況而論,而不是越短越好, C)也不選。故本題答案應(yīng)該為選項(xiàng)

D)。(5)程序設(shè)計(jì)語(yǔ)言的基本成分是數(shù)據(jù)成分、運(yùn)算成分、控制成分和A)對(duì)象成分B)變量成分C)語(yǔ)句成分D)傳輸成分解析: 程序設(shè)計(jì)語(yǔ)言是用于書寫計(jì)算機(jī)程序的語(yǔ)言,其基本成分有以下 4種,數(shù)據(jù)成分:用來(lái)描述程序中的數(shù)據(jù)。運(yùn)算成分:描述程序中所需的運(yùn)算。 控制成分:用來(lái)構(gòu)造程序的邏輯控制結(jié)構(gòu)。 傳輸成分:定義數(shù)據(jù)傳輸成分,如輸入輸出語(yǔ)言。故本題答案應(yīng)該為選項(xiàng) D)。(1)循環(huán)鏈表的主要優(yōu)點(diǎn)是A)不再需要頭指針了B)從表中任一結(jié)點(diǎn)出發(fā)都能訪問(wèn)到整個(gè)鏈表C)在進(jìn)行插入、刪除運(yùn)算時(shí),能更好的保證鏈表不斷開(kāi)D)已知某個(gè)結(jié)點(diǎn)的位置后,能夠容易的找到它的直接前件解析: 循環(huán)鏈表就是將單向鏈表中最后一個(gè)結(jié)點(diǎn)的指針指向頭結(jié)點(diǎn),使整個(gè)鏈表構(gòu)成一個(gè)環(huán)形,這樣的結(jié)構(gòu)使得從表中的任一結(jié)點(diǎn)出發(fā)都能訪問(wèn)到整個(gè)鏈表。故本題答案應(yīng)該為選項(xiàng) B)。(3)對(duì)長(zhǎng)度為 N的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為 ______。N+1N(N+1)/2N/2解析:[答案]B,很簡(jiǎn)單,我們的二級(jí)程序設(shè)計(jì)語(yǔ)言書中都有此算法,另外還要掌握二分法查找,這也是我們二級(jí)中常考的。那么二分法最壞的情況為多少次呢?

log2

n的最小整數(shù)值。比如

n為

4,最壞的情況要比較

3次;n為

18,最壞的情況要比較

5次。(1)下列敘述中正確的是A)線性表是線性結(jié)構(gòu)B)棧與隊(duì)列是非線性結(jié)構(gòu)C)線性鏈表是非線性結(jié)構(gòu)D)二叉樹(shù)是線性結(jié)構(gòu)解析: 線性表是一種線性結(jié)構(gòu),數(shù)據(jù)元素在線性表中的位置只取決于它們自己的序號(hào),即數(shù)據(jù)元素之間的相對(duì)位置是線性的;棧、隊(duì)列、線性鏈表實(shí)際上也是線性表,故也是線性結(jié)構(gòu); 樹(shù)是一種簡(jiǎn)單的非線性結(jié)構(gòu)。故本題答案應(yīng)該為選項(xiàng) A)。(3)已知數(shù)據(jù)表 A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是A)堆排序B)直接插入排序C)快速排序D)直接選擇排序解析: 當(dāng)數(shù)據(jù)表 A中每個(gè)元素距其最終位置不遠(yuǎn),說(shuō)明數(shù)據(jù)表 A按關(guān)鍵字值基本有序,在待排序序列基本有序的情況下,采用插入排序所用時(shí)間最少,故答案為選項(xiàng) B)。(2)算法分析的目的是A)找出數(shù)據(jù)結(jié)構(gòu)的合理性B)找出算法中輸入和輸出之間的關(guān)系C)分析算法的易懂性和可靠性D)分析算法的效率以求改進(jìn)解析: 算法分析是指對(duì)一個(gè)算法的運(yùn)行時(shí)間和占用空間做定量的分析,一般計(jì)算出相應(yīng)的數(shù)量級(jí),常用時(shí)間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時(shí)間復(fù)雜度和空間復(fù)雜度,提高算法的執(zhí)行效率。故本題答案應(yīng)該為選項(xiàng) D)。(1)算法的空間復(fù)雜度是指A)算法程序的長(zhǎng)度B)算法程序中的指令條數(shù)C)算法程序所占的存儲(chǔ)空間D)執(zhí)行過(guò)程中所需要的存儲(chǔ)空間解析: 算法的復(fù)雜度主要包括算法的時(shí)間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。故本題答案應(yīng)該為選項(xiàng)D)。(3)數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無(wú)關(guān)的是數(shù)據(jù)的A)存儲(chǔ)結(jié)構(gòu)B)物理結(jié)構(gòu)C)邏輯結(jié)構(gòu)D)物理和存儲(chǔ)結(jié)構(gòu)解析: 數(shù)據(jù)結(jié)構(gòu)概念一般包括 3個(gè)方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及數(shù)據(jù)上的運(yùn)算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象的反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管它在計(jì)算機(jī)中的存儲(chǔ)表示形式。故本題答案應(yīng)該為選項(xiàng) C)。(2)設(shè)有兩個(gè)串 p和q,求q在p中首次出現(xiàn)位置的運(yùn)算稱作A)連接B)模式匹配C)求子串D)求串長(zhǎng)解析: 子串的定位操作通常稱作串的模式匹配,是各種串處理系統(tǒng)中最重要的操作之一,算法的基本思想是:從主串的開(kāi)始字符起和模式的第一個(gè)字符比較,若相等則繼續(xù)比較后續(xù)字符,否則從主串的下一個(gè)字符起再重新和模式的字符比較,依次類推,直至模式中的每一個(gè)字符依次和主串中的一個(gè)連續(xù)的字符序列相等,稱匹配成功,否則稱匹配不成功。(3)下列關(guān)于隊(duì)列的敘述中正確的是 ______。在隊(duì)列中只能插入數(shù)據(jù)在隊(duì)列中只能刪除數(shù)據(jù)隊(duì)列是先進(jìn)先出的線性表隊(duì)列是先進(jìn)后出的線性表解析:C隊(duì)列是先進(jìn)先出的,棧是先進(jìn)后出的, 2者的區(qū)別一定要搞清楚。算法的空間復(fù)雜度是指算法程序的長(zhǎng)度算法程序中的指令條數(shù)C)執(zhí)行算法程序所占的存儲(chǔ)空間D)算法執(zhí)行過(guò)程中所需要的存儲(chǔ)空間【答案】D【解析】算法的空間復(fù)雜度一般是指這個(gè)算法執(zhí)行時(shí)所需要的內(nèi)存空間,其中包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行過(guò)程中所需要的額外空間,其中額外空間還包括算法程序執(zhí)行過(guò)程的工作單元以及某種數(shù)據(jù)結(jié)構(gòu)所需要的附加存儲(chǔ)空間。(2)線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)是一種隨機(jī)結(jié)構(gòu)順序結(jié)構(gòu)C)索引結(jié)構(gòu)D)散列結(jié)構(gòu)【答案】B【解析】線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中的每一個(gè)存儲(chǔ)結(jié)點(diǎn)不僅含有一個(gè)數(shù)據(jù)元素,還包括指針,每一個(gè)指針指向一個(gè)與本結(jié)點(diǎn)有邏輯關(guān)系的結(jié)點(diǎn)。此類存儲(chǔ)方式屬于順序存儲(chǔ)。(3)設(shè)有下列二叉樹(shù):對(duì)此二叉樹(shù)先序遍歷的結(jié)果是A)ABCDEFB)DBEAFCC)ABDECFD)DEBFCA【答案】C【解析】二叉樹(shù)的遍歷分為先序、中序、后序三種不同方式。本題要求先序遍歷;遍歷順序應(yīng)該為:訪問(wèn)根結(jié)點(diǎn)

->先序遍歷左子樹(shù)

->先序遍歷右子樹(shù)。按照定義,先序遍歷序列是

ABDECF。(3)已知數(shù)據(jù)表

A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是

______。A)堆排序

B)直接插入排序C)快速排序

D)直接選擇排序答案:

B評(píng)析:當(dāng)數(shù)據(jù)表

A中每個(gè)元素距其最終位置不遠(yuǎn),說(shuō)明數(shù)據(jù)表

A按關(guān)鍵字值基本有序,在待排序序列基本有序的情況下,采用插入排序所用時(shí)間最少,故答案為選項(xiàng)

B。(4)用鏈表表示線性表的優(yōu)點(diǎn)是

______。A)便于插入和刪除操作 B)數(shù)據(jù)元素的物理順序與邏輯順序相同C)花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少 D)便于隨機(jī)存取答案:A評(píng)析:鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申請(qǐng)和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來(lái)指示,不需要移動(dòng)數(shù)據(jù)元素。故鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)下的線性表便于插入和刪除操作。5. 下列關(guān)于棧的敘述中正確的是 ______。A、在棧中只能插入數(shù)據(jù)B、在棧中只能刪除數(shù)據(jù)C、棧是先進(jìn)先出的線性表D、棧是先進(jìn)后出的線性表解析:棧是限定在一端進(jìn)行插入與刪除的線性表。棧是按照

"先進(jìn)后出

"的或后進(jìn)先出的原則組織數(shù)據(jù)的,因此,棧也被稱為

"先進(jìn)后出

"表或"后進(jìn)先出

"表。本題答案是 D。7. 對(duì)長(zhǎng)度為 N的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為A、N+1

______。B、NC、(N+1)/2D、N/2解析:在進(jìn)行順序查找過(guò)程中,如果線性表中被查的元素是線性表中的最后一個(gè),或者被查元素根本不在線性表中,則為了查找這個(gè)元素需要與線性表中所有元素進(jìn)行比較,這是順序查找最壞的情況。本題答案為 B。在一棵二叉樹(shù)上第5層的結(jié)點(diǎn)數(shù)最多是______。A、8B、16C、32D、15解析:根據(jù)二叉樹(shù)的性質(zhì):二叉樹(shù)第i(i≥1)層上至多有2i-1個(gè)結(jié)點(diǎn)。得到第5層的結(jié)點(diǎn)數(shù)最多是16。本題答案為B。7.在下列選項(xiàng)中,哪個(gè)不是一個(gè)算法一般應(yīng)該具有的基本特征______。A、確定性B、可行性C、無(wú)窮性D、擁有足夠的情報(bào)解析:作為一個(gè)算法,一般應(yīng)具有以下幾個(gè)基本特征。1)可行性2)確定性3)有窮性4)擁有足夠的情報(bào)本題答案為C。在計(jì)算機(jī)中,算法是指______。A、查詢方法B、加工方法C、解題方案的準(zhǔn)確而完整的描述D、排序方法解析:計(jì)算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它有以下幾個(gè)基本特征:可行性、確定性、有窮性和擁有足夠的情報(bào)。本題答案為 C。在單鏈表中,增加頭結(jié)點(diǎn)的目的是______。A、方便運(yùn)算的實(shí)現(xiàn)B、使單鏈表至少有一個(gè)結(jié)點(diǎn)C、標(biāo)識(shí)表結(jié)點(diǎn)中首結(jié)點(diǎn)的位置D、說(shuō)明單鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)實(shí)現(xiàn)解析:頭結(jié)點(diǎn)不僅標(biāo)識(shí)了表中首結(jié)點(diǎn)的位置,而且根據(jù)單鏈表(包含頭結(jié)點(diǎn))的結(jié)構(gòu),只要掌握了表頭,就能夠訪問(wèn)整個(gè)鏈表,因此增加頭結(jié)點(diǎn)目的是為了便于運(yùn)算的實(shí)現(xiàn)。本題答案為 A。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指______。A、存儲(chǔ)在外存中的數(shù)據(jù)B、數(shù)據(jù)所占的存儲(chǔ)空間量C、數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D、數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示解析:本題考查的是數(shù)據(jù)結(jié)構(gòu)的基本概念。數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。故本題答案為 D。下列關(guān)于棧的描述中錯(cuò)誤的是______。A、棧是先進(jìn)后出的線性表B、棧只能順序存儲(chǔ)C、棧具有記憶作用D、對(duì)棧的插入與刪除操作中,不需要改變棧底指針解析:本題考查的是棧和隊(duì)列。棧是一種特殊的線性表,這種線性表只能在固定的一端進(jìn)行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個(gè)新元素只能從棧頂一端進(jìn)入,刪除時(shí),只能刪除棧頂?shù)脑?,即剛剛被插入的元素。所以棧又稱先進(jìn)后出表( FILO-FirstInLastOut )。線性表可以順序存儲(chǔ),也可以鏈?zhǔn)酱鎯?chǔ),而棧是一種線性表,也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。故本題答案為 B。3. 對(duì)于長(zhǎng)度為 n的線性表,在最壞情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是 ______。A、冒泡排序?yàn)?/p>

n/2B、冒泡排序?yàn)?/p>

nC、快速排序?yàn)?/p>

nD、快速排序?yàn)?/p>

n(n-1)/2解析:本題考查的是基本排序算法。假設(shè)線性表的長(zhǎng)度為 n,則在最壞情況下,冒泡排序需要經(jīng)過(guò)

n/2

遍的從前往后掃描和

n/2

遍的從后往前掃描,需要比較次數(shù)為 n(n-1)/2 ??焖倥判蚍ǖ淖顗那闆r比較次數(shù)也是故本題答案為 D。4. 對(duì)長(zhǎng)度為 n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為

n(n-1)/2______。

。A、log2nB、n/2C、nD、n+1解析:本題考查的是順序查找。在進(jìn)行順序查找過(guò)程中, 如果線性表中的第一個(gè)元素就是被查找元素, 則只需做一次比較就查找成功,查找效率最高;但如果被查找的元素是線性表中的最后一個(gè)元素, 或者被查找的元素根本就不在線性表中,則為了查找這個(gè)元素需要與線性表中所有的元素進(jìn)行比較,這是順序查找的最壞情況。所以對(duì)長(zhǎng)度為 n的線性表進(jìn)行順序查找,在最壞情況下需要比較 n次。故本題答案為 C。5. 下列對(duì)于線性鏈表的描述中正確的是

______。A、存儲(chǔ)空間不一定是連續(xù),且各元素的存儲(chǔ)順序是任意的B、存儲(chǔ)空間不一定是連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面C、存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面D、存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的解析:本題考查的是線性單鏈表、雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運(yùn)算。在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來(lái)確定的。故本題答案為 A。下列敘述中正確的是______。A、線性表是線性結(jié)構(gòu)B、棧與隊(duì)列是非線性結(jié)構(gòu)C、線性鏈表是非線性結(jié)構(gòu)D、二叉樹(shù)是線性結(jié)構(gòu)解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后間關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個(gè)條件:(1)有且只有一個(gè)根結(jié)點(diǎn);(2)每一個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹(shù)是非線性結(jié)構(gòu)。本題答案是 A。3. 設(shè)一棵完全二叉樹(shù)共有 699個(gè)結(jié)點(diǎn),則在該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)為 ______。A、349B、350C、255D、351解析:所謂完全二叉樹(shù)是指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值;在最后一層上只缺少右邊的若干結(jié)點(diǎn)。具有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù),

其父結(jié)點(diǎn)數(shù)為

int(n/2)

,而葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)數(shù)減去父結(jié)點(diǎn)數(shù)。

本題n=699,故父結(jié)點(diǎn)數(shù)等于

int(699/2)=349

,葉子結(jié)點(diǎn)數(shù)等于

699-349=350。本題答案是

B。下列關(guān)于棧的敘述中正確的是______。A、在棧中只能插入數(shù)據(jù)B、在棧中只能刪除數(shù)據(jù)C、棧是先進(jìn)先出的線性表D、棧是先進(jìn)后出的線性表解析:棧是限定在一端進(jìn)行插入與刪除的線性表。棧是按照"先進(jìn)后出"的或后進(jìn)先出的原則組織數(shù)據(jù)的,因此,棧也被稱為 "先進(jìn)后出"表或"后進(jìn)先出"表。本題答案是 D。3. 在深度為 5的滿二叉樹(shù)中,葉子結(jié)點(diǎn)的個(gè)數(shù)為 ______。A、32B、31C、16D、15解析:所謂滿二叉樹(shù)是指這樣的一種二叉樹(shù):除最后一層外,每層上的所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)。這就是說(shuō),在滿二叉樹(shù)中,每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿二叉樹(shù)的第K層上有2K-1個(gè)結(jié)點(diǎn),且深度為m的滿二叉樹(shù)有2m個(gè)結(jié)點(diǎn)。在滿二叉樹(shù)中,最后一層的結(jié)點(diǎn)個(gè)數(shù)就是葉子結(jié)點(diǎn)的個(gè)數(shù),本題中深度為5,故葉子結(jié)點(diǎn)數(shù)為25-1=24=16。本題答案是C。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指______。A、數(shù)據(jù)所占的存儲(chǔ)空間量B、數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示C、數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D、存儲(chǔ)在外存中的數(shù)據(jù)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。本題答案為 B。設(shè)有下列二叉樹(shù):AB CD E F對(duì)此二叉樹(shù)中序遍歷的結(jié)果為 ______。A、ABCDEFB、DBEAFCC、ABDECFD、DEBFCA解析:所謂中序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù);并且在遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù)。本題答案為 B。在計(jì)算機(jī)中,算法是指______。A、查詢方法B、加工方法C、解題方案的準(zhǔn)確而完整的描述D、排序方法解析:計(jì)算機(jī)算法是指解題方案的準(zhǔn)確而完整的描述,它有以下幾個(gè)基本特征:可行性、確定性、有窮性和擁有足夠的情報(bào)。本題答案為 C。棧和隊(duì)列的共同點(diǎn)是______。A、都是先進(jìn)后出B、都是先進(jìn)先出C、只允許在端點(diǎn)處插入和刪除元素D、沒(méi)有共同點(diǎn)解析:棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:棧只允許在表的一端進(jìn)行插入或刪除操作,是一種 "后進(jìn)先出"的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種 "先進(jìn)先出"的線性表。本題答案為 C。已知二叉樹(shù)后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是______。A、cedbaB、acbedC、decabD、deabc解析:依據(jù)后序遍歷序列可確定根結(jié)點(diǎn)為 c;再依據(jù)中序遍歷序列可知其左子樹(shù)由 deba構(gòu)成,右子樹(shù)為空;又由左子樹(shù)的后序遍歷序列可知其根結(jié)點(diǎn)為 e,由中序遍歷序列可知其左子樹(shù)為 d,右子樹(shù)由 ba構(gòu)成。求得該二叉樹(shù)的前序遍歷序列為選項(xiàng) A。本題答案為 A。1. 數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無(wú)關(guān)的是數(shù)據(jù)的 ______。A、存儲(chǔ)結(jié)構(gòu)B、物理結(jié)構(gòu)C、邏輯結(jié)構(gòu)D、物理和存儲(chǔ)結(jié)構(gòu)解析:數(shù)據(jù)結(jié)構(gòu)概念一般包括3個(gè)方面的內(nèi)容,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)及數(shù)據(jù)上的運(yùn)算集合。數(shù)據(jù)的邏輯結(jié)構(gòu)只抽象的反映數(shù)據(jù)元素之間的邏輯關(guān)系,而不管它在計(jì)算機(jī)中的存儲(chǔ)表示形式。本題答案為 C。棧底至棧頂依次存放元素A、B、C、D,在第五個(gè)元素E入棧前,棧中元素可以出棧,則出棧序列可能是______。A、ABCEDB、DBCEAC、CDABED、DCBEA解析: 棧操作原則是

"后進(jìn)先出",棧底至棧頂依次存放元素

A、B、C、D,則表明這

4個(gè)元素中

D是最后進(jìn)棧,B、C處于中間,

A最早進(jìn)棧。所以出棧時(shí)一定是先出

D,再出C,最后出A。本題答案為D。1.下面敘述正確的是

______。A、算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)B、算法的空間復(fù)雜度是指算法程序中指令(或語(yǔ)句)的條數(shù)C、算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止D、以上三種描述都不對(duì)解析:算法的設(shè)計(jì)可以避開(kāi)具體的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,但算法的實(shí)現(xiàn)必須借助程序設(shè)計(jì)語(yǔ)言中提供的數(shù)據(jù)類型及其算法。數(shù)據(jù)結(jié)構(gòu)和算法是計(jì)算機(jī)科學(xué)的兩個(gè)重要支柱。它們是一個(gè)不可分割的整體。算法在運(yùn)行過(guò)程中需輔助存儲(chǔ)空間的大小稱為算法的空間復(fù)雜度。算法的有窮性是指一個(gè)算法必須在執(zhí)行有限的步驟以后結(jié)束。本題答案為 C。2. 設(shè)一棵完全二叉樹(shù)共有 699個(gè)結(jié)點(diǎn),則在該二叉樹(shù)中的葉子結(jié)點(diǎn)數(shù)為 ______。A、349B、350C、255D、351解析:所謂完全二叉樹(shù)是指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值;在最后一層上只缺少右邊的若干結(jié)點(diǎn)。具有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù),

其父結(jié)點(diǎn)數(shù)為

int(n/2)

,而葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)數(shù)減去父結(jié)點(diǎn)數(shù)。

本題n=699,故父結(jié)點(diǎn)數(shù)等于本題答案是 B。

int(699/2)=349

,葉子結(jié)點(diǎn)數(shù)等于

699-349=350。9. 已知數(shù)據(jù)表

A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是

______。A、堆排序B、直接插入排序C、快速排序D、直接選擇排序解析:當(dāng)數(shù)據(jù)表

A中每個(gè)元素距其最終位置不遠(yuǎn),說(shuō)明數(shù)據(jù)表

A按關(guān)鍵字值基本有序,在待排序序列基本有序的情況下,采用插入排序所用時(shí)間最少。本題答案為B。二、填空題(1)問(wèn)題處理方案的正確而完整的描述稱為_(kāi)____?!敬鸢浮克惴ɑ虺绦蚧蛄鞒虉D【解析】算法是問(wèn)題處理方案正確而完整的描述(2)對(duì)長(zhǎng)度為10的線性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為_(kāi)___。【答案】45【解析】在冒泡排序中,最壞情況下,需要比較的次數(shù)為n(n-1/2),也就是:10*(lO-1)/2=45(3)算法復(fù)雜度主要包括時(shí)間復(fù)雜度和____【答案】空間【解析】算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。一個(gè)算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。(4)一棵二叉樹(shù)第六層(根結(jié)點(diǎn)為第一層)的結(jié)點(diǎn)數(shù)最多為_(kāi)______【答案】32【解析】二叉樹(shù)的一個(gè)性質(zhì)是,在二叉樹(shù)的第k-16-1k層上,最多有2(k≥1)個(gè)結(jié)點(diǎn)。此,2等于32。所以答案為32。(5)數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu),循環(huán)隊(duì)列屬于______結(jié)構(gòu)?!敬鸢浮看鎯?chǔ)或物理或存儲(chǔ)結(jié)構(gòu)或物理結(jié)構(gòu)【解析】數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)(也稱數(shù)據(jù)的物理結(jié)構(gòu))。所謂循環(huán)隊(duì)列,就是將隊(duì)列存儲(chǔ)空間的最后一個(gè)位置繞到第一個(gè)位置,形成邏輯上的環(huán)狀空間,供隊(duì)列循環(huán)使用。可知,循環(huán)隊(duì)列應(yīng)當(dāng)是物理結(jié)構(gòu)。(6)下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為_(kāi)___。ABCDEF【答案】3【解析】題目中的圖形是倒置的樹(shù)狀結(jié)構(gòu),這是用層次圖表示的軟件結(jié)構(gòu)。結(jié)構(gòu)圖中同一層模塊的最大模塊個(gè)數(shù)稱為結(jié)構(gòu)的寬度,它表示控制的總分布。根據(jù)上述結(jié)構(gòu)圖寬度的定義,從圖中可以看出,第二層的模塊個(gè)數(shù)最多,即為

3。因此,這個(gè)系統(tǒng)結(jié)構(gòu)圖的寬度就為

3。(7)按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是

____

?!敬鸢浮織;?/p>

Stack【解析】棧和隊(duì)列是兩種特殊的線性表,其特殊性在于對(duì)它們的操作只能在表的端點(diǎn)進(jìn)行。棧中的數(shù)據(jù)按照后進(jìn)先出的原則進(jìn)行組織,而隊(duì)列中的數(shù)據(jù)是按照先進(jìn)先出的原則進(jìn)行組織。因此,本題的正確答案是棧(Stack)。(8)數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于 線性結(jié)構(gòu)___ 。【答案】【解析】數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),其中隊(duì)列是屬于線性結(jié)構(gòu)。隊(duì)列有兩種存儲(chǔ)結(jié)構(gòu),一種是順序存儲(chǔ)結(jié)構(gòu),稱為順序隊(duì)列;另一種是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),稱為鏈隊(duì)列。題目中所說(shuō)的帶鏈的隊(duì)列就是指鏈隊(duì)列。無(wú)論隊(duì)列采取哪種存儲(chǔ)結(jié)構(gòu),其本質(zhì)還是隊(duì)列,還屬于一種線性結(jié)構(gòu)。因此,本題的正確答案是線性結(jié)構(gòu)。(9) 在深度為 7的滿二叉樹(shù)中,度為 2的結(jié)點(diǎn)個(gè)數(shù)為_(kāi)______。【答案】63或26-1【解析】本題考查數(shù)據(jù)結(jié)構(gòu)中滿二叉樹(shù)的性質(zhì)。在滿二叉樹(shù)中,每層結(jié)點(diǎn)都是滿的,即每層結(jié)點(diǎn)都具有最大結(jié)點(diǎn)數(shù)。深度為

k的滿二叉樹(shù),一共有

2k-1

個(gè)結(jié)點(diǎn),其中包括度為

2的結(jié)點(diǎn)。因此,深度為

7的滿二叉樹(shù),一共有

27-1

個(gè)結(jié)點(diǎn),即

127個(gè)結(jié)點(diǎn)。根據(jù)二叉樹(shù)的另一條性質(zhì),對(duì)任意一棵二叉樹(shù),若終端結(jié)點(diǎn)(即葉子結(jié)點(diǎn))數(shù)為

n0,

而其度數(shù)為

2的結(jié)點(diǎn)數(shù)為

n2則

n0=n2+1。設(shè)嘗試為

7的滿二叉樹(shù)中,度為

2的結(jié)點(diǎn)個(gè)數(shù)為

x,則改樹(shù)中中子結(jié)點(diǎn)的個(gè)數(shù)為

x+1。則應(yīng)滿足

x+(x+1)=127,

解該方程得到,

x的值為

63。結(jié)果上述分析可知,在深度為

7的滿二叉樹(shù)中,度為

2的結(jié)點(diǎn)個(gè)數(shù)為

63。線性表的存儲(chǔ)結(jié)構(gòu)主要分為順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。隊(duì)列是一種特殊的線性表,循環(huán)隊(duì)列是隊(duì)列的_____存儲(chǔ)結(jié)構(gòu)?!敬鸢浮宽樞颉窘馕觥勘绢}考查數(shù)據(jù)結(jié)構(gòu)的隊(duì)列。隊(duì)列是一種特殊的線性表,即限定在表的一端進(jìn)行刪除,在表的另一端進(jìn)行插入操作的線性表。允許刪除的一端叫做隊(duì)頭,允許插入的一端叫做隊(duì)尾。線性表的存儲(chǔ)結(jié)構(gòu)主要分為順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。當(dāng)隊(duì)列用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)實(shí)現(xiàn)時(shí),就稱為鏈隊(duì)列;當(dāng)隊(duì)列用順序存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)時(shí),就稱為循環(huán)表。因此,本題劃線處應(yīng)填入“順序”。對(duì)下列二叉樹(shù)進(jìn)行中序遍歷的結(jié)果為_(kāi)___。【答案】ACBDFEHGP【解析】本題考查數(shù)據(jù)結(jié)構(gòu)中二叉樹(shù)的遍歷。根據(jù)對(duì)二叉樹(shù)根的訪問(wèn)先后順序不同,分別稱為前序遍歷、中序遍歷和后序遍歷。這三種遍歷都是遞歸定義的,即在其子樹(shù)中也按照同樣的規(guī)律進(jìn)行遍歷。下面就是中序遍歷方法的遞歸定義。當(dāng)二叉樹(shù)的根不為空時(shí),依次執(zhí)行如下 3個(gè)操作:按中序遍歷左子樹(shù)。訪問(wèn)根結(jié)點(diǎn)。按中序遍歷右子樹(shù)。根據(jù)如上前序遍歷規(guī)則,來(lái)遍歷本題中的二叉樹(shù)。首先遍歷

F的左子樹(shù),同樣按中序遍歷。先遍歷

C的左子樹(shù),即結(jié)點(diǎn)

A,然后訪問(wèn)

c,接著訪問(wèn)

c的右子樹(shù),同樣按中序遍歷

c的右子樹(shù),先訪問(wèn)結(jié)點(diǎn)

B,然后訪問(wèn)結(jié)點(diǎn)

D,因?yàn)榻Y(jié)點(diǎn)

D沒(méi)有右子樹(shù),因此遍歷完

C的右子樹(shù),以上就遍歷完根結(jié)點(diǎn)

F的左子樹(shù)。然后訪問(wèn)根結(jié)點(diǎn)

F,接下來(lái)遍歷

F的右子樹(shù).同樣按中序遍歷。首先訪問(wèn)

E的左子樹(shù),

E的左子樹(shù)為空,則訪問(wèn)結(jié)點(diǎn)E,然后訪問(wèn)結(jié)點(diǎn)E的右子樹(shù),同樣按中序遍歷。首先訪問(wèn)G的左子樹(shù),即H,然后訪問(wèn)結(jié)點(diǎn)G,最后訪問(wèn)G的右子樹(shù)P。以上就把整個(gè)二叉樹(shù)遍歷一遍,中序遍歷的結(jié)果為ACBDFEHGP。因此.劃線處應(yīng)填入“ACBDFEHGP”。(11)用鏈表表示線性表的突出優(yōu)點(diǎn)是。答案:插入和刪除操作方便,不必移動(dòng)數(shù)據(jù)元素,執(zhí)行效率高解析:為了克服順序表中插入和刪除時(shí)需要移動(dòng)大量數(shù)據(jù)元素的缺點(diǎn),引入了鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。鏈表表示線性表的突出優(yōu)點(diǎn)是插入和刪除操作方便,不必移動(dòng)數(shù)據(jù)元素,執(zhí)行效率高。(11)算法的基本特征是可行性、確定性、和擁有足夠的情報(bào)。答案:有窮性解析:算法是指解題方案的準(zhǔn)確而完整的描述。它有4個(gè)基本特征,分別是可行性、確定性、有窮性和擁有足夠的情報(bào)。(12)在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為。答案:log2n解析:對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分查找只需要比較log2n次,而順序查找需要比較n次。(11)數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu),線性鏈表屬于存儲(chǔ)結(jié)構(gòu)。答案:解析:數(shù)據(jù)的邏輯結(jié)構(gòu)是指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式。在數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)中,不僅要存放各數(shù)據(jù)元素的信息,還需要存放各數(shù)據(jù)元素之間的前后件關(guān)系的信息。(11)冒泡排序算法在最好的情況下的元素交換次數(shù)為0。答案:0解析:根據(jù)冒泡排序算法思想可知,若待排序的初始序列為“正序”序列,則只需進(jìn)行一趟排序,在排序過(guò)程中進(jìn)行n-1次關(guān)鍵字間的比較,且不移動(dòng)和交換記錄,這種情況是冒泡排序的最好情況,故冒泡排序算法在最好的情況下的元素交換次數(shù)為 0。(12)在最壞情況下,堆排序需要比較的次數(shù)為 。n(13)若串s="MathTypes",則其子串的數(shù)目是 。答案:46解析: 串s中共有9個(gè)字符,由于串中字符各不相同,則其子串中有 0個(gè)字符的 1個(gè)(空串),1個(gè)字符的9個(gè),2個(gè)字符的8個(gè),3個(gè)字符的7個(gè),4個(gè)字符的6個(gè),5個(gè)字符的5個(gè),6個(gè)字符的4個(gè),7個(gè)字符的3個(gè),8個(gè)字符的2個(gè),9個(gè)字符的1個(gè),共有1+2+3+4+5+6+7+8+9+1=46。(11)在算法正確的前提下,評(píng)價(jià)一個(gè)算法的兩個(gè)標(biāo)準(zhǔn)是 。答案:時(shí)間復(fù)雜度和空間復(fù)雜度(12)將代數(shù)式 轉(zhuǎn)換成程序設(shè)計(jì)中的表達(dá)式為 。答案:(x+y*y)/(a+b)(11)數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和 兩大類。答案:非線性結(jié)構(gòu)解析: 數(shù)據(jù)的邏輯結(jié)構(gòu)有線性結(jié)構(gòu)和非線性結(jié)構(gòu)兩大類。(11)當(dāng)線性表采用順序存儲(chǔ)結(jié)構(gòu)實(shí)現(xiàn)存儲(chǔ)時(shí),其主要特點(diǎn)是 。答案:邏輯結(jié)構(gòu)中相鄰的結(jié)點(diǎn)在存儲(chǔ)結(jié)構(gòu)中仍相鄰解析: 順序存儲(chǔ)結(jié)構(gòu)的主要特點(diǎn)是數(shù)據(jù)元素按線性表的邏輯次序,依次存放在一組地址連續(xù)的存儲(chǔ)單元中。在存儲(chǔ)單元中各元素的物理位置和邏輯結(jié)構(gòu)中各結(jié)點(diǎn)間的相鄰關(guān)系是一致的。52. 設(shè)一棵完全二叉樹(shù)共有 500個(gè)結(jié)點(diǎn),則在該二叉樹(shù)中有 ______個(gè)葉子結(jié)點(diǎn)。解析:所謂完全二叉樹(shù)是指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值;在最后一層上只缺少右邊的若干結(jié)點(diǎn)。具有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù),其父結(jié)點(diǎn)數(shù)為題n=500,故父結(jié)點(diǎn)數(shù)等于 int(500/2)=250標(biāo)準(zhǔn)答案為: 250

int(n/2) ,而葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)數(shù)減去父結(jié)點(diǎn)數(shù)。本,葉子結(jié)點(diǎn)數(shù)等于 500-250=250。算法的基本特征是可行性、確定性、______和擁有足夠的情報(bào)。解析:算法是指解題方案的準(zhǔn)確而完整的描述。它有 4個(gè)基本特征,分別是可行性、確定性、有窮性和擁有足夠的情報(bào)。標(biāo)準(zhǔn)答案為:有窮性52. 順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置 ______的存儲(chǔ)單元中。解析:常用的存儲(chǔ)表示方法有4種,順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)、索引存儲(chǔ)、散列存儲(chǔ)。其中,順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置也相鄰的存儲(chǔ)單元中。標(biāo)準(zhǔn)答案為:相鄰(1)算法的復(fù)雜度主要包括空間復(fù)雜度和【時(shí)間 1】復(fù)雜度?!敬鸢浮繒r(shí)間【解析】算法的復(fù)雜度主要指時(shí)間復(fù)雜度和空間復(fù)雜度。(2)在線性結(jié)構(gòu)中,隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是【 2】。【答案】先進(jìn)后出【解析】隊(duì)列和棧都是線性結(jié)構(gòu),但是不同之處在于隊(duì)列的操作順序是先進(jìn)先出,而棧的操作順序是先進(jìn)后出。(2)在最壞情況下,堆排序需要比較的次數(shù)為【2】。n答案:O(nlog2)評(píng)析:在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n-1)/2;簡(jiǎn)單插入排序所需要的比較次數(shù)為n(n-1)/2;希爾排序所需要的比較次數(shù)為O(n1.5);堆排序所需要的比較次數(shù)為O(nlogn2)。(3)若串s="Program",則其子串的數(shù)目是【3】。答案:29評(píng)析:串s中共有7個(gè)字符,由于串中字符各不相同,則其子串中有0個(gè)字符的1個(gè)(空串),1個(gè)字符的7個(gè),2個(gè)字符的6個(gè),3個(gè)字符的5個(gè),4個(gè)字符的4個(gè),5個(gè)字符的3個(gè),6個(gè)字符的2個(gè),7個(gè)字符的1個(gè),共有1+2+3+4+5+6+7+1=29。51.實(shí)現(xiàn)算法所需的存儲(chǔ)單元多少和算法的工作量大小分別稱為算法的______。解析:算法的復(fù)雜性是指對(duì)一個(gè)在有限步驟內(nèi)終止算法和所需存儲(chǔ)空間大小的估計(jì)。算法所需存儲(chǔ)空間大小是算法的空間復(fù)雜性,算法的計(jì)算量是算法的時(shí)間復(fù)雜性。標(biāo)準(zhǔn)答案為:空間復(fù)雜度和時(shí)間復(fù)雜度52. 數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的 ______以及對(duì)數(shù)據(jù)的操作運(yùn)算。解析:數(shù)據(jù)結(jié)構(gòu)包括 3個(gè)方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)及對(duì)數(shù)據(jù)的操作運(yùn)算。標(biāo)準(zhǔn)答案為:存儲(chǔ)結(jié)構(gòu)53在最壞情況下,冒泡排序的時(shí)間復(fù)雜度為 ______。解析:冒泡排序法是一種最簡(jiǎn)單的交換類排序方法,它是通過(guò)相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設(shè)線性表的長(zhǎng)度為 n,則在最壞的情況下,冒泡排序需要經(jīng)過(guò) n/2遍的從前往后的掃描和從后往前的掃描,需要的比較次數(shù)為 n(n-1)/2 。

n/2

遍的標(biāo)準(zhǔn)答案為: n(n-1)/2 或n*(n-1)/2 或O(n(n-1)/2)54. 順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置

或O(n*(n-1)/2)______的存儲(chǔ)單元中。解析:常用的存儲(chǔ)表示方法有 4種,順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)、索引存儲(chǔ)、散列存儲(chǔ)。其中,順序存儲(chǔ)方法是把邏輯上相鄰的結(jié)點(diǎn)存儲(chǔ)在物理位置也相鄰的存儲(chǔ)單元中。標(biāo)準(zhǔn)答案為:相鄰52. 在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種:前序遍歷、 ______遍歷和后序遍歷。標(biāo)準(zhǔn)答案為:中序解析: 在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù)。中序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù)。后序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷右子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先遍歷右子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù)。55. 數(shù)據(jù)結(jié)構(gòu)包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的 ______以及對(duì)數(shù)據(jù)的操作運(yùn)算。標(biāo)準(zhǔn)答案為:存儲(chǔ)結(jié)構(gòu)解析: 數(shù)據(jù)結(jié)構(gòu)包括 3個(gè)方面,即數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)及對(duì)數(shù)據(jù)的操作運(yùn)算。51. 某二叉樹(shù)中度為

2的結(jié)點(diǎn)有

18個(gè),則該二叉樹(shù)中有

個(gè)葉子結(jié)點(diǎn)。標(biāo)準(zhǔn)答案為: 19解析:本題考查的是二叉樹(shù)的定義及其存儲(chǔ)結(jié)構(gòu)。二叉樹(shù)的性質(zhì) 3:在任意一棵二叉樹(shù)中,度為 0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為中度為2的結(jié)點(diǎn)數(shù)為 18,故葉子結(jié)點(diǎn)數(shù)為 18+1=19個(gè)。55. 問(wèn)題處理方案的正確而完整的描述稱為 。

2的結(jié)點(diǎn)多一個(gè)。本題標(biāo)準(zhǔn)答案為:算法 本題考查的是算法的基本概念。解析:所謂算法是指解題方案的準(zhǔn)確而完整的描述。51. 在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種:前序遍歷、

______遍歷和后序遍歷。標(biāo)準(zhǔn)答案為:中序解析:在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷可以分為三種:前序遍歷、中序遍歷和后序遍歷。前序遍歷是指在訪問(wèn)根結(jié)點(diǎn)、 遍歷左子樹(shù)與遍歷右子樹(shù)這三者中, 首先訪問(wèn)根結(jié)點(diǎn), 然后遍歷左子樹(shù),最后遍歷右子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù)。中序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù)。后序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷右子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先遍歷右子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷左子樹(shù)。51. 設(shè)一棵完全二叉樹(shù)共有 500個(gè)結(jié)點(diǎn),則在該二叉樹(shù)中有 ______個(gè)葉子結(jié)點(diǎn)。標(biāo)準(zhǔn)答案為: 250解析:所謂完全二叉樹(shù)是指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值;在最后一層上只缺少右邊的若干結(jié)點(diǎn)。具有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù),其父結(jié)點(diǎn)數(shù)為

int(n/2)

,而葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)數(shù)減去父結(jié)點(diǎn)數(shù)。本題n=500,故父結(jié)點(diǎn)數(shù)等于

int(500/2)=250

,葉子結(jié)點(diǎn)數(shù)等于

500-250=250。52. 在最壞情況下,冒泡排序的時(shí)間復(fù)雜度為

______。標(biāo)準(zhǔn)答案為: n(n-1)/2 或n*(n-1)/2 或O(n(n-1)/2) 或O(n*(n-1)/2)解析:冒泡排序法是一種最簡(jiǎn)單的交換類排序方法,它是通過(guò)相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。假設(shè)線性表的長(zhǎng)度為 n,則在最壞的情況下,冒泡排序需要經(jīng)過(guò) n/2遍的從前往后的掃描和從后往前的掃描,需要的比較次數(shù)為 n(n-1)/2 。

n/2

遍的第二章 程序設(shè)計(jì)基礎(chǔ)一、選擇題(1)下列敘述中正確的是A)程序設(shè)計(jì)就是編制程序 B)程序的測(cè)試必須由程序員自己去完成C)程序經(jīng)調(diào)試改錯(cuò)后還應(yīng)進(jìn)行再測(cè)試 D)程序經(jīng)調(diào)試改錯(cuò)后不必進(jìn)行再測(cè)試【答案】C【解析】軟件測(cè)試仍然是保證軟件可靠性的主要手段,測(cè)試的目的是要盡量發(fā)現(xiàn)程序中的錯(cuò)誤,調(diào)試主要是推斷錯(cuò)誤的原因,從而進(jìn)一步改正錯(cuò)誤。測(cè)試和調(diào)試是軟件測(cè)試階段的兩個(gè)密切相關(guān)的過(guò)程,通常是交替進(jìn)行的。選項(xiàng) C正確。下面描述中,不符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是A)使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控制邏輯B)注重提高程序的可讀性D)使用goto語(yǔ)句【答案】 D【解析】在結(jié)構(gòu)化程序設(shè)計(jì)中,應(yīng)嚴(yán)格控制使用 GOTO語(yǔ)句,必要時(shí)才可以使用,故答案為 D。在面向?qū)ο笤O(shè)計(jì)中,對(duì)象有很多基本特點(diǎn),其中“從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部對(duì)外是不可見(jiàn)的”這一性質(zhì)指的是對(duì)象的A)分類性 B)標(biāo)識(shí)惟一性 C)多態(tài)性 D)封裝性【答案】D【解析】從外面看只能看到對(duì)象的外部特性,而對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),指的是對(duì)象的封裝性。結(jié)構(gòu)化程序設(shè)計(jì)的一種基本方法是A)篩選法 B)遞歸法 C)歸納法 D)逐步求精法【答案】D【解析】在結(jié)構(gòu)化程序設(shè)計(jì)中通常采取自上而下、逐步求精的方法,其總的思想是先全局后局部、先整體后細(xì)節(jié)、先抽象后具體。而篩選法、遞歸法和歸納法指的都是程序的某種具體算法。函數(shù)重載是指A)兩個(gè)或兩個(gè)以上的函數(shù)取相同的函數(shù)名,但形參的個(gè)數(shù)或類型不同B)兩個(gè)以上的函數(shù)取相同的名字和具有相同的參數(shù)個(gè)數(shù),但形參的類型可以不同C)兩個(gè)以上的函數(shù)名字不同,但形參的個(gè)數(shù)或類型相同D)兩個(gè)以上的函數(shù)取相同的函數(shù)名,并且函數(shù)的返回類型相同【答案】A【解析】函數(shù)重載指的是兩個(gè)或兩個(gè)以上的函數(shù)具有相同的函數(shù)名,但形參的個(gè)數(shù)或類型不同。程序中通過(guò)判斷主調(diào)函數(shù)傳過(guò)來(lái)的參數(shù)的個(gè)數(shù)和類型,來(lái)決定選擇調(diào)用哪個(gè)具體的函數(shù)。下列選項(xiàng)中不符合良好程序設(shè)計(jì)風(fēng)格的是A)源程序要文檔化B)數(shù)據(jù)說(shuō)明的次序要規(guī)范化C)避免濫用 goto 語(yǔ)D)模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚【答案】D【解析】編程風(fēng)格是在不影響性能的前提下,有效地編排和組織程序,以提高可讀性和可維護(hù)性。更直接的說(shuō),風(fēng)格就是意味著要按照規(guī)則進(jìn)行編程。這些規(guī)則包括:程序文檔化。就是程序文檔包含恰當(dāng)?shù)臉?biāo)識(shí)符.適當(dāng)?shù)淖⒔夂统绦虻囊曈X(jué)組織等。 (2)數(shù)據(jù)說(shuō)明。出于閱讀理解和維護(hù)的需要,最好使模塊前的說(shuō)明語(yǔ)句次序規(guī)范化。此外,為方便查找,在每個(gè)說(shuō)明語(yǔ)句的說(shuō)明符后,數(shù)據(jù)名應(yīng)按照字典順序排列。

(3)功能模塊化。即把源程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。

(4)注意

goto

語(yǔ)句的使用。合理使用goto

語(yǔ)句可以提高代碼的運(yùn)行效率.但

goto

語(yǔ)句的使用會(huì)破壞程序的結(jié)構(gòu)特性。因此,除非確實(shí)需要,否則最好不使用 goto語(yǔ),因此,本題的正確答案是 D。(7) 在結(jié)構(gòu)化程序設(shè)計(jì)中,模塊劃分的原則是 ( )各模塊應(yīng)包括盡量多的功能各模塊的規(guī)模應(yīng)盡量大C)各模塊之間的聯(lián)系應(yīng)盡量緊密D)模塊內(nèi)具有高內(nèi)聚度、模塊間具有低耦合度【答案】D【解析】本題考查軟件工程中軟件設(shè)計(jì)的概念和原理。人們?cè)陂_(kāi)發(fā)計(jì)算機(jī)軟件的長(zhǎng)期實(shí)踐中積累了豐富的經(jīng)驗(yàn),總結(jié)這些經(jīng)驗(yàn)得到如下的啟發(fā)式規(guī)則:改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性。通過(guò)模塊的分解或合并,力求降低耦合提高內(nèi)聚。低耦合也就是降低不同模塊間相互依賴的緊密程度,高內(nèi)聚是提高一個(gè)模塊內(nèi)各元素彼此結(jié)合的緊密程度。模塊的規(guī)模應(yīng)適中。一個(gè)模塊的規(guī)模不應(yīng)過(guò)大,過(guò)大的模塊往往是由于分解不夠充分;過(guò)小的模塊開(kāi)銷大于有益操作,而且模塊過(guò)多將使系統(tǒng)接口復(fù)雜。因此過(guò)小的模塊有時(shí)不值得單獨(dú)存在。模塊的功能應(yīng)該可以預(yù)測(cè),但也要防止模塊功能過(guò)分局限。如果模塊包含的功能太多,則不能體現(xiàn)模塊化設(shè)計(jì)的特點(diǎn);如果模塊的功能過(guò)分的局限,使用范圍就過(guò)分狹窄。經(jīng)過(guò)上述分析,本題的正確答案是選項(xiàng) D。(8) 下面選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是 ( )A)繼承性 B)多態(tài)性 C)類比性 D)封裝性【答案】C【解析】通常認(rèn)為,面向?qū)ο蠓椒ň哂蟹庋b性、繼承性、多態(tài)性幾大特點(diǎn)。就是這幾大特點(diǎn),為軟件開(kāi)發(fā)提供了一種新的方法學(xué)。封裝性:所謂封裝就是將相關(guān)的信息、操作與處理融合在一個(gè)內(nèi)含的部件中(對(duì)象中)。簡(jiǎn)單地說(shuō),封裝就是隱藏信息。這是面向?qū)ο蠓椒ǖ闹行?,是面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)。繼承性:子類具有派生它的類的全部屬性(數(shù)據(jù))和方法,而根據(jù)某一類建立的對(duì)象也都具有該類的全部,這就是繼承性。繼承件自動(dòng)在類與子類間共享功能與數(shù)據(jù),當(dāng)某個(gè)類作了某項(xiàng)修改,其子類會(huì)自動(dòng)改變,子類會(huì)繼承其父類所有特性與行為模式,繼承有利于提高軟件開(kāi)發(fā)效率,容易達(dá)到一致性。多態(tài)性:多態(tài)性就是多種形式。不同的對(duì)象在接收到相同的消息時(shí),采用不同的動(dòng)作。例如,一個(gè)應(yīng)用程序包括許多對(duì)象,這些對(duì)象也許具有同一類型的工作,但是卻以不同的做法來(lái)實(shí)現(xiàn)。不必為每個(gè)對(duì)象的過(guò)程取一過(guò)程名,造成復(fù)雜化,可以使過(guò)程名復(fù)用。同一類型的工作有相同的過(guò)程名,這種技術(shù)稱為多態(tài)性。經(jīng)過(guò)上述分析可知,選項(xiàng) C的說(shuō)法是錯(cuò)誤的。在面向?qū)ο蠓椒ㄖ?,?shí)現(xiàn)信息隱蔽是依靠()A)對(duì)象的繼承 B) 對(duì)象的多態(tài)C)對(duì)象的封裝 D) 對(duì)象的分類【答案】c【解析】通常認(rèn)為,面向?qū)ο蠓椒ň哂蟹庋b性、繼承性、多態(tài)性幾大特點(diǎn)。就是這幾大特點(diǎn),為軟件開(kāi)發(fā)提供了一種新的方法學(xué)。封裝性:所謂封裝就是將相關(guān)的信息、操作與處理融合在一個(gè)內(nèi)含的部件中(對(duì)象中 )。簡(jiǎn)單地說(shuō),封裝就是隱藏信息。這是面向?qū)ο蠓椒ǖ闹行?,也是面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)。繼承性:子類具有派生它的類的全部屬性 (數(shù)據(jù))和方法,而根據(jù)某一類建立的對(duì)象也都具有該類的全部,這就是繼承性。繼承性自動(dòng)在類與子類間共享功能與數(shù)據(jù),當(dāng)某個(gè)類作了某項(xiàng)修改,其子類會(huì)自動(dòng)改變,子類會(huì)繼承其父類所有特性與行為模式。繼承有利于提高軟件開(kāi)發(fā)效率,容易達(dá)到一致性。多態(tài)性;多態(tài)性就是多種形式。不同的對(duì)象在接收到相同的消息時(shí),采用不同的動(dòng)作。例如,一個(gè)應(yīng)用程序包括許多對(duì)象,這些對(duì)象也許具有同一類型的工作.但是卻以不同的做法來(lái)實(shí)現(xiàn)。不必為每個(gè)對(duì)象的過(guò)程取一過(guò)程名,造成復(fù)雜化,可以使過(guò)程名復(fù)用。同一類型的工作有相同的過(guò)程名,這種技術(shù)稱為多態(tài)性。經(jīng)過(guò)上述分析可知,在面向?qū)ο蠓椒ㄖ校瑢?shí)現(xiàn)信息隱蔽是依靠對(duì)象的封裝。正確答案是選項(xiàng) c。下列敘述中,不符合良好程序設(shè)計(jì)風(fēng)格的是()A)程序的效率第一,清晰第二B)程序的可讀性好C)程序中有必要的注釋 D) 輸入數(shù)據(jù)前要有提示信息【答案】A【解析】本題考查軟件工程的程序設(shè)計(jì)風(fēng)格。軟件在編碼階段,力求程序語(yǔ)句簡(jiǎn)單、直接,不能只為了追求效率而使語(yǔ)句復(fù)雜化。除非對(duì)效率有特殊的要求,程序編寫要做到清晰第一、效率第二。人們?cè)谲浖嫫谝?jīng)常閱讀程序,特別是在軟件測(cè)試和維護(hù)階段,編寫程序的人和參與測(cè)試、維護(hù)的人都要閱讀程序,因此要求程序的可讀性要好。正確的注釋能夠幫助讀者理解程序,可為后續(xù)階段進(jìn)行測(cè)試和維護(hù)提供明確的指導(dǎo)。所以注釋不是可有可無(wú)的,而是必須的,它對(duì)于理解程序具有重要的作用。I/O信息是與用戶的使用直接相關(guān)的, 因此它的格式應(yīng)當(dāng)盡可能方便用戶的使用。 在以交互式進(jìn)行輸入/輸出時(shí),要在屏幕上使用提示符明確提示輸入的請(qǐng)求,指明可使用選項(xiàng)的種類和取值范圍。經(jīng)過(guò)上述分析可知,選項(xiàng) A是不符合良好程序設(shè)計(jì)風(fēng)格要求的。(11)結(jié)構(gòu)化程序設(shè)計(jì)的 3種結(jié)構(gòu)是A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)B)分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)C)多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)D)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)解析: 順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)(或重復(fù)結(jié)構(gòu))是結(jié)構(gòu)化程序設(shè)計(jì)的 3種基本結(jié)構(gòu)。故本題答案應(yīng)該為選項(xiàng) D)。12)在結(jié)構(gòu)化程序設(shè)計(jì)思想提出之前,在程序設(shè)計(jì)中曾強(qiáng)調(diào)程序的效率,現(xiàn)在,與程序的效率相比,人們更重視程序的A)安全性B)一致性C)可理解性D)合理性答案:C(13)對(duì)建立良好的程序設(shè)計(jì)風(fēng)格,下面描述正確的是A)程序應(yīng)簡(jiǎn)單、清晰、可讀性好B)符號(hào)名的命名只要符合語(yǔ)法C)充分考慮程序的執(zhí)行效率D)程序的注釋可有可無(wú)解析: 程序設(shè)計(jì)應(yīng)該簡(jiǎn)單易懂,語(yǔ)句構(gòu)造應(yīng)該簡(jiǎn)單直接,不應(yīng)該為提高效率而把語(yǔ)句復(fù)雜化。故本題答案應(yīng)該為選項(xiàng) A)。(14)結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是A)程序的規(guī)模B)程序的效率C)程序設(shè)計(jì)語(yǔ)言的先進(jìn)性D)程序易讀性解析: 結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為自頂向下、逐步求精、模塊化及限制使用 goto語(yǔ)句,總的來(lái)說(shuō)可使程序結(jié)構(gòu)良好、易讀、易理解、易維護(hù)。故本題答案應(yīng)該為選項(xiàng) D)。(15)對(duì)象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,是指對(duì)數(shù)據(jù)和數(shù)據(jù)的操作進(jìn)行A)結(jié)合B)隱藏C)封裝D)抽象解析: 對(duì)象是由數(shù)據(jù)及可以對(duì)這些數(shù)據(jù)施加的操作組成的統(tǒng)一體。對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是看不見(jiàn)的,這一特性稱做對(duì)象的封裝。故本題答案應(yīng)該為選項(xiàng) C)。4)編制一個(gè)好的程序,首先要保證它的正確性和可靠性,還應(yīng)強(qiáng)調(diào)良好的編程風(fēng)格,在書寫功能性注釋時(shí)應(yīng)考慮僅為整個(gè)程序作注釋僅為每個(gè)模塊作注釋C)為程序段作注釋D)為每個(gè)語(yǔ)句作注釋【答案】C【解析】功能性注釋是嵌在源程序體中的,用以描述其后的語(yǔ)句或程序段是在做什么工作,或者執(zhí)行了下面的語(yǔ)句會(huì)怎么樣。所以它描述的是一段程序,是為程序段做注釋,而不是每條語(yǔ)句。(5)下列哪個(gè)是面向?qū)ο蟪绦蛟O(shè)計(jì)不同于其他語(yǔ)言的主要特點(diǎn)?繼承性消息傳遞C)多態(tài)性D)靜態(tài)聯(lián)編【答案】A【解析】繼承是一個(gè)子類直接使用父類的所有屬性和方法。它可以減少相似的類的重復(fù)說(shuō)明,從而體現(xiàn)出一般性與特殊性的原則,這使得面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言有了良好的重用性,也是其不同于其他語(yǔ)言的主要特點(diǎn)。結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是______。A、程序的規(guī)模B、程序的易讀性C、程序的執(zhí)行效率D、程序的可移植性解析:結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是結(jié)構(gòu)化程序清晰易讀,可理解性好,程序員能夠進(jìn)行逐步求精、程序證明和測(cè)試,以保證程序的正確性。本題答案為 B。2. 下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?______。A、對(duì)象B、繼承C、類D、過(guò)程調(diào)用解析:面向?qū)ο蠓椒ㄊ且环N運(yùn)用對(duì)象、類、封裝、繼承、多態(tài)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論