點擊查看:2018年3月計算機二級C語言章節練習題及答案匯總
第1章 程序設計基本概念
1.2 算法
1[單選題] 線性表常采用的兩種存儲結構是( )。
A.散列方法和索引方式
B.鏈表存儲結構和數組
C.順序存儲結構和鏈式存儲結構
D.線性存儲結構和非線性存儲結構
參考答案:C
參考解析:線性表的存儲通常要用兩種存儲結構:順序存儲結構和鏈式存儲結構。
2[單選題] 程序設計的任務包括( )。
A.編寫程序代碼并上機調試
B.確定所用數據結構
C.確定所用算法
D.以上選項均正確
參考答案:D
參考解析:程序設計是一門技術,需要相應的理論、技術、方法和工具來支持。程序設計的任務包括選項A)、B)、c) 等方面。
3[填空題]
在最壞情況下,堆排序需要比較的次數為_________。
參考解析:O(nlog2n)
【解析】在最壞情況下,冒泡排序所需要的比較次數為n(n-1)/2;簡單插入排序所需要的比較次數為n(n-1)/2;希爾排序所需要的比較次數為O(n1.5);堆排序所需要的比較次數為O(nlog2n)。
4[單選題] 下列關于棧的描述中,正確的是( )。
A.在棧中只能插入元素
B.在棧中只能刪除元素
C.只能在一端插入或刪除元素
D.只能在一端插入元素,而在另一端刪除元素
參考答案:C
參考解析:棧實際也是線性表,只不過是一種特殊的線性表。棧是只能在表的一端進行插入和刪除運算的線性表,通常稱插入、刪除的這一端為棧頂,另一端為棧底。當表中沒有元素時稱為空棧。棧頂元素總是最后被插入的元素,從而也是最先被刪除的元素:棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。
5[單選題] 在一棵二叉樹中,葉子結點共有30個,度為1的結點共有40個,則該二叉樹中的總結點數共有( )個。
A.89
B.93
C.99
D.100
參考答案:C
參考解析:根據二叉樹性質3:對任何一棵二叉樹,度為0的結點(即葉子結點)總是比度為2的結點多一個。所以該二叉樹度為2的結點有29個,故總結點數=30個葉子結點+29個度為2的結點+40個度為1的結點=99個結點。
6[單選題] 對下列二叉樹進行中序遍歷的結果是( )。
A.ABCDEFGH
B.ABDGEHCF
C.GDBEHACF
D.GDHEBFCA
參考答案:C
參考解析:遍歷就是不重復地訪問二叉樹的所有結點。二叉樹遍歷的方法有3種:前序遍歷、中序遍歷和后序遍歷。記住3種遍歷的順序:
、偾靶,訪問根一按前序遍歷左子樹一按前序遍歷右子樹。
、谥行,按中序遍歷左子樹一訪問根一按中序遍歷右子樹。
、酆笮,按后序遍歷左子樹一按后序遍歷右子樹->訪問根。
所以對該二叉樹的中序遍歷結果為GDBEHACF。
7[填空題]
隊列是限定在表的一端進行插入和在另一端進行刪除操作的線性表。允許刪除的一端稱作__________。
參考解析:隊頭
【解析】隊列是只允許在一端刪除,在另一端插入的順序表,在隊列中。允許插入的一端叫做“隊尾”,允許刪除的一端叫做“隊頭”。
8[單選題] 下列關于棧敘正確的是( )。
A.棧頂元素最先能被刪除
B.棧頂元素最后才能被刪除
C.棧底元素永遠不能被刪除
D.以上三種說法都不對
參考答案:A
參考解析:棧是先進后出的線性表,棧頂的元素最先被刪除,棧底的元素最后被刪除。
9[單選題] 下列敘述中正確的是( )。
A.有一個以上根結點的數據結構不一定是非線性結構
B.只有一個根結點的數據結構不一定是線性結構
C.循環鏈表是非線性結構
D.雙向鏈表是非線性結構
參考答案:B
參考解析:在數據結構中,樹這類的的數據結構只有一個根結點,但它不是線性結構。
10[單選題] 某二叉樹共有7個結點,其中葉子結點只有l個,則該二叉樹的深度為(假設根結點在第1層)( )。
A.3
B.4
C.6
D.7
參考答案:D
參考解析:葉子節點就是度為0的結點,比度為2的結點多一個,即度2的沒有,這樣度為1的結點就是6個,故深度為7(1度就是結點連著1個子樹,二叉樹最多倆子樹,即左右子樹)。根據二叉樹的性質,度為0的結點(即葉子結點)總是比度為2的結點多一個。題目中的二叉樹的葉子結點為1,因此度為2的結點的數目為0,因而這個二叉樹的深度為7。
11[填空題]
一顆二叉樹的中序遍歷結果為DBEAFC,前序遍歷結果為ABDECF,則后序遍歷結果為 【2】 。
參考解析:【2】DEBFCA
【解析】根據二叉樹的中序遍歷原則可知D為二叉樹的最左邊的葉子結點,根據二叉樹的前序遍歷原則可知A是二叉樹的根結點,就可以確定二叉樹的結構,所以二叉樹的后序遍歷結果為:DEBFCA。
12[單選題] 下列敘述中正確的是( )。
A.算法就是程序
B.設計算法時只需要考慮數據結構的設計
C.設計算法時只需要考慮結果的可靠性
D.以上三種說法都不對
參考答案:D
參考解析:所謂算法是指解題方案的準確而完整的描述。是一一組嚴謹地定義運算順序的規則,并且每一個規則都是有效的,且是明確的,此順序將在有限的次數下終止。算法不等于程序,也不等于計算方法。設計算法時不僅要考慮對數據對象的運算和操作,還要考慮算法的控制結構。
13[單選題] 下列關于線性鏈表的敘述中,正確的是( )。
A.各數據結點的存儲空間可以不連續,但它們的存儲順序與邏輯順序必須一致
B.各數據結點的存儲順序與邏輯順序可以不一致,但它們的存儲空間必須連續
C.進行插入與刪除時,不需要移動表中的元素
D.以上三種說法都不對
參考答案:C
參考解析:線性表的鏈式存儲結構稱為線性鏈表。在鏈式存儲結構中,存儲數據結構的存儲空間可以不連續,各數據結點的存儲順序與數據元素之間的邏輯關系可以不一致,而數據元素之間的邏輯關系是由指針域來確定的。
14[單選題] 下列關于二叉樹的敘述中,正確的是( )。
A.葉子結點總是比度為2的結點少一個
B.葉子結點總是比度為2的結點多一個
C.葉子結點數是度為2的結點數的兩倍
D.度為2的結點數是度為1的結點數的兩倍
參考答案:B
參考解析:由二叉樹的性質可以知道在二叉樹中葉子結點總是比度為2的結點多一個。
15[單選題] 下列敘述中正確的是( )。
A.循環隊列是隊列的一種順序存儲結構
B.循環隊列是隊列的一種鏈式存儲結構
C.循環隊列是非線性結構
D.循環隊列是一直邏輯結構
參考答案:A
參考解析:為了充分利用存儲空間,可以把順序隊列看成一個環狀空間,即把順序隊列的頭尾指針相連,這樣的隊列稱之為循環隊列。它是對順序隊列的改進,故循環隊列是隊列的一種順序存儲結構。
16[單選題] 一棵二叉樹共有25個節點,其中5個葉子節點,那么度為1的節點數為( )。
A.4
B.6
C.10
D.16
參考答案:D
參考解析:由二叉樹的性質n0=n2+1可知,度為0的結點數(即葉子結點數)=度為2的結點數+1,根據題意得知,度為2的結點數為4個,那么25-5-4=16即為度為1的結點數。 25個節點,5個子節點,其中子節點(度為0的節點)個數-度為2的節點個數=1,所以度為2的節點個數為4。節點度數有0,1,2,所以度為1的節點數為25-4-5=16,選項D正確。
17[單選題] 有三個關系R、S和T如下:
則由關系R和S得到關系T的操作是( )。
A.自然連接
B.并
C.差
D.交
參考答案:C
參考解析:R和S的差是由屬于R但不屬于S的元組組成的集合,運算符為“-”。記為T=R-S。根據本題關系R和關系S運算前后的變化,可以看出此處進行的是關系運算的差運算。
18[單選題] 以下關于算法敘述錯誤的是( )。
A.算法可以用偽代碼、流程圖等多種形式來描述
B.一個正確的算法必須有輸入
C.一個正確的算法必須有輸出
D.用流程圖可以描述的算法可以用任何一種計算機高級語言編寫成程序代碼
參考答案:B
19[單選題] 下列敘述中正確的是( )。
A.數據的邏輯結構與存儲結構是一一對應的
B.算法的時間復雜度與空間復雜度一定相關
C.算法的效率只與問題的規模有關,而與數據的存儲結構無關
D.算法的時間復雜度是指執行算法所需要的計算工作量
參考答案:D
參考解析:根據時間復雜度和空間復雜度的定義可知,算法的時間復雜度與空間復雜度并不相關。數據的邏輯結構就是數據元素之間的邏輯關系,它是從邏輯上描述數據元素之間關系的,是獨立于計算機的;數據的存儲結構是研究數據元素和數據元素之間的關系如何在計算機中表示的,它們并非一一對應。算法的執行效率不僅與問題的規模有關,還與數據的存儲結構有關。
20[單選題] 算法的有窮性是指( )。
A.算法程序的運行時間是有限的
B.算法程序所處理的數據量是有限的
C.算法程序的長度是有限的
D.算法只能被有限的用戶使用
參考答案:A
參考解析:算法具有5個特性:①有窮性:一個算法必須(對任何合法的輸入值)在執行有窮步之后結束,且每一步都可在有限時間內完成,即運行時間是有限的;②確定性:算法中每一條指令必須有確切的含義,讀者理解時不會產生歧義。③可行性:一個算法是可行的,即算法中描述的操作都是可以通過已經實現的基本運算執行有限次來實現。,④輸入:一個算法有零個或多個輸入,這些輸入取自于某個特定的對象的集合。⑤輸出:一個算法有一個或多個輸出。
微信搜索"考試吧"了解更多考試資訊、下載備考資料
相關推薦: