【資料結構-題庫】資料結構導論

1.欲將「資料」轉換成「資訊」,則必須要經過一連串處理過程,而這一連串的處理過程,就俗稱為什麼呢?

(A)流程再造

(B)資料處理

(C)資訊整合

(D)資料結構

Answer
B

2.某一公司的老闆要做某一項決策時,下列那一項對他最有幫助:

(A)事實的記錄

(B)具體的記錄

(C)資料

(D)資訊

Answer
D

3. 資料結構的種類通常不包含下列何者?

(A)模組(Module)

(B)佇列(Queue)

(C)圖形(Graph)

(D)陣列(Array)

Answer
A

4.下列何者不是一種資料結構(Data Structure)?

(A)佇列(Queue)

(B)堆疊(Stack)

(C)資料庫(Database)

(D)鏈結串列(Linked List)

Answer
C

5.用來描述處理問題的方法與步驟稱之為?

(A)資料結構

(B)演算法

(C)程式語言

(D)作業系統

Answer
B

6. 關於演算法的述敘,下列何者正確?

(A)步驟愈多愈可以解決問題

(B)較少的步驟來解決問題

(C)文字敘述方式優於流程圖

(D)文字敘述方式優於虛擬碼

Answer
B

7.下列有關演算法的敘述,何者有誤?

(A)不一定要有輸入

(B)只有一個輸出

(C)程序明確可行

(D)強調正確性。

Answer
B

8.演算法所具備的條件中,何者是指演算法必須在有限步驟內結束?

(A) 正確性

(B) 明確性

(C) 有限性

(D) 輸入資料

Answer
C

9. 完整的演算法包括?

(A)明確的輸入資料

(B)詳細且有限的執行步驟

(C)明確的輸出資料

(D)以上皆是

Answer
D

9.電腦程式演算法不需滿足以下何條件?

(A)一定要有輸入

(B)一定要有輸出

(C)一定要能在有限的步驟內執行完成

(D)演算法中各指令的意義都必須是明確不模糊的

Answer
A

10.下列何者不是演算法的特性?

(A) 正確性

(B) 明確性

(C) 有限性

(D) 快速性

Answer
D

11.在流程圖中符號”◇”表示何種意義?

(A)輸出

(B)處理

(C)判斷

(D)開始

Answer
C

12.在流程圖中符號”□”表示何種意義?

(A)輸出

(B)處理

(C)判斷

(D)開始

Answer
B

13.描述演算法有三種方法,下列那一種不是?

(A)文字敘述

(B)流程圖

(C)虛擬碼

(D)知識地圖

Answer
D

14.下列那一種演算法是在文字摻雜程式語言,以描述解題步驟與方法?

(A)虛擬碼(Pseudo Code)

(B)文字描述

(C)流程圖

(D)以上皆非

Answer
A

15.下列撰寫程式步驟何者是正確的?

(A) 需求、演算法、偵錯、程式碼、可執行

(B) 演算法、需求、程式碼、偵錯、可執行

(C) 需求、演算法、程式碼、偵錯、可執行

(D) 程式碼、偵錯、演算法、需求、可執行

Answer
C

16.請問程式設計師在撰寫程式步驟中,在那一個階段就必須要選擇適當的程式語言呢?

(A)第一階段

(B)第二階段

(C)第三階段

(D)第四階段

Answer
C

17.下列對於演算法與程式的差異何者是正確的?

(A)演算法可執行無限迴路

(B)程式可執行無限迴路

(C)程式與演算法皆具有「有限性」

(D)以上皆非

Answer
B

18.下列對於演算法的敘述何者錯誤?

(A) 強調「可讀性」

(B) 以「電腦」為主

(C) 以「人」為主

(D) 可利用虛擬碼來說明

Answer
B

19.下列有關撰寫程式的目的何者正確?

(A)展現能力與技巧

(B)解決複雜問題

(C)解決容易的題目

(D)解決無解的問題

Answer
B

20.你認為人腦與電腦最大的差異為何?

(A)人腦較能處理重複性的問題

(B)人腦與電腦都不能處理重複性的問題

(C)電腦較能處理重複性的問題

(D)以上皆是

Answer
C

21. 請決定下列迴圈中指定敘述(sum = sum + 1;)執行的次數。

for (int i = 0 ;  i <= n ;  i++)
           sum = sum + 1;           //次數=終值-初值+1=n-0+1=n+1

(A) 1  (B) n-1  (C) n  (D) n+1

Answer
D

22.請決定下列迴圈中指定敘述(sum = sum + 1;)執行的次數。

    for ( i = 1; i < n ; i ++)
        for ( j = 1 ; j < n ; j++)           
            sum = sum + 1 ;

(A) n (n-1)  (B) n (n+1)  (C) (n-1)2  (D) n2

Answer
C

23.下列何者是用來評估一個好程式的條件?

(A)正確性

(B)效率性

(C)可維護性

(D)以上皆是

Answer
D

24.下列何者是一個好程式最基本的要求?

(A)正確性

(B)效率性

(C)可維護性

(D)以上皆非

Answer
A

25.有關「頻率次數(Frequency Count)」的敘述,下列何者正確?

(A)頻率次數愈低,代表執行時間愈長

(B)頻率次數愈高,代表執行時間愈長

(C)頻率次數愈高,代表執行時間愈低

(D)以上皆非

Answer
B

26.在撰寫程式時,適時的加入「註解」,此技巧是屬於評估一個好程式的那一個條件?

(A)正確性

(B)效率性

(C)可維護性

(D)以上皆是

Answer
C

27.一個好的程式,不只需要有效率地被正確地執行之外,也必須要考慮那些要素呢?

(A)程式的可讀性

(B)程式的未來修改

(C)程式的擴充性

(D)以上皆是

Answer
D

28.下列何者不是程式可維護性的要素之一?

(A)結構化程式設計

(B)縮排

(C)註解

(D)版權聲明

Answer
D

29.有關好程式的敘述何者有誤?

(A)程式要小

(B)段落分明

(C)達到系統功能

(D)易懂易維護

Answer
A

30.在結構化程式設計中,將程式分解成多個具有獨立功能的模組,它是利用那一種技巧?

(A)由上而下

(B)由下而上

(C)由外而內

(D)由內而外

Answer
A

 31.結構化程式設計所提供的三種結構,下列何者不是?

(A)排序

(B)重複

(C)選擇

(D)循序

Answer
A

32.在結構化程式設計中,盡量少用那一種技巧?

(A)循序

(B)重複

(C)選擇

(D)Goto

Answer
D

33.下列何者非結構化程式設計的特性?

(A)藕合性強

(B)內聚力強

(C)少用Goto

(D)由上而下設計

Answer
A

34.何者不是結構化程式語言的基本控制結構

(A)跳躍

(B)循序

(C)決策分支

(D)迴圈

Answer
A

35.在下列的情況中,那一種情況不會使用到循序結構呢?

(A)計算攝氏與華氏

(B)判斷奇數或偶數

(C)計算平均成績

(D)計算總和

Answer
B
 

36.在下列的情況中,那一種情況會使用到選擇結構呢?

(A)計算攝氏與華氏

(B)判斷同意或不同意

(C)計算平均成績

(D)計算總和

Answer
B
 

37.在下列的情況中,那一種情況較不適合使用重複結構呢?

(A)計算全班50位同學成績

(B)計算2位同學成績

(C)九九乘法表

(D)次數固定的題目

Answer
B

38.下列何者不是用來評估一個演算法的效率方式?

(A)時間複雜度

(B)空間複雜度

(C)時間與空間複雜度

(D)配置複雜度

Answer
D

39.為何在評估「時間複雜度」時,往往只考慮到執行的次數呢?

(A)評估撰寫的演算法比較不客觀

(B)評估機器的CPU執行速度比較不客觀

(C)評估記憶體的容量比較不客觀

(D)以上皆非

Answer
B

40.主程式呼叫副程式時,往往會佔用到記憶體空間,請問在進行演算法的效率評估時,是屬於那一種評估方法?

(A)時間複雜度

(B)空間複雜度

(C)時間與空間複雜度

(D)配置複雜度

Answer
B

41.下列時間複雜度(Time Complexity) 何者的時間最少?

(A) O (n!)

(B) O (nlog2n)

(C) O (n)

(D) O (log2 n)

Answer
D

42.下列複雜度 1.O(n2)  2. O(n)  3. O(n log2 n )  4.O(log2 n)  5.O(2n),依序由小到大為:

(A) 12345

(B) 42315

(C) 34215

(D) 42351

Answer
B

43.若一程式的執行時間是 60n2+20nlgn,則時間複雜度為何?
(A) O(60n2)

(B) O(nlog2n)

(C) O(n2)

(D) O(20nlog2n)

Answer
C

44.如果一個程式的時間複雜度為O(N2) ,其中N為輸入資料量, 則當資料量增加為原來的100倍時, 計算的時間增加為原來的幾倍?

(A) 10

(B) 102

(C) 103

(D) 104

Answer
D

45.時間複雜度O(N2)、O(N log2N)、O(N3)、O(2N) ,何者效率最佳?

(A) O(N2)

(B)O(N log2N)

(C)O(N3)

(D)O(2N)

Answer
B

46.計算下面程式的時間複雜度(請使用Big-O表示)

for(i=0; i < n; ++i) Console.WriteLine(“{0}”, i);

(A) O (n!)

(B) O (nlog2n)

(C) O (n)

(D) O (log2 n)

Answer
C

47.如果一個程式的頻率計數為3n3 +6n2 + 4n + 9,則時間複雜度為何?

(A) O(n)

(B) O(1)

(C) O(n2)

(D) O(n3)

Answer
D

48.時間複雜度O(n2)、O(nlogn)、O(n!)、O(2n),那一個最沒有效率?

(A) O(n2)

(B) O(nlogn)

(C) O(n!)

(D) O(2n)

Answer
C

49.時間複雜度O(n2)、O(nlogn)、O(n!)、O(2n),那一個最有效率?

(A) O(n2)

(B) O(nlogn)

(C) O(n!)

(D) O(2n)

Answer
B

50.若兩個矩陣大小均為n × n,則此二個矩陣相加的時間複雜度為何?

(A) O(n)

(B) O(n2)

(C) O(n log n)

(D) O(n3)

Answer
B

51.若矩陣大小為n × n,則此矩陣轉置的時間複雜度為何?

(A) O(n)

(B) O(n2)

(C) O(n log n)

(D) O(n3)

Answer
B

52.若兩個矩陣大小均為n × n,則此二個矩陣相乘的時間複雜度為何?

(A) O(n)

(B) O(n2)

(C) O(n log n)

(D) O(n3)

Answer

D
矩陣相乘的程式碼:

#include <iostream>  

void MultiplyWithOutAMP() {  

    int aMatrix[3][2] = {{1, 4}, {2, 5}, {3, 6}};  
    int bMatrix[2][3] = {{7, 8, 9}, {10, 11, 12}};  
    int product[3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};  

    for (int row = 0; row < 3; row++) {  
        for (int col = 0; col < 3; col++) {  
            // Multiply the row of A by the column of B to get the row, column of product.  
            for (int inner = 0; inner < 2; inner++) {  
                product[row][col] += aMatrix[row][inner] * bMatrix[inner][col];  
            }  
            std::cout << product[row][col] << "  ";  
        }  
        std::cout << "\n";  
    }  
}  

void main() {  
    MultiplyWithOutAMP();  
    getchar();  
}

 

53.若有一個矩陣大小均為n,此矩陣內的元素相加的時間複雜度為何?

(A) O(n)

(B) O(n2)

(C) O(n log n)

(D) O(n3)

Answer
A

54.程式本身的指令空間是屬於空間複雜度的那一個需求?

(A)固定的空間需求

(B)變動空間需求

(C)立體空間需求

(D)時間空間需求

Answer
A

55.遞迴函數執行是屬於空間複雜度的那一個需求?

(A)固定的空間需求

(B)變動空間需求

(C)立體空間需求

(D)時間空間需求

Answer
B

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料