115 身心障礙特考五等 電腦打字 計算機大意 考古題詳解

115 年・身心障礙特考・五等・電腦打字
試題代碼 計算機大意

第 1 題2 分

現代處理器運作速度大於 DRAM,為了緩解處理器與記憶體之間效能瓶頸,硬體設計上利用程式執行時的「局部性原理」,所使用的硬體機制為何?

這一題的完整詳解

核心觀念

本題考查「局部性原理」與處理器、主記憶體之間的效能改善機制。

現代處理器的運算速度通常高於 DRAM。若處理器每次存取資料都必須直接等待 DRAM,將產生處理器等待記憶體的效能瓶頸。硬體設計因此在處理器與主記憶體之間配置速度較快、容量較小的快取記憶體(Cache Memory),利用程式執行時的局部性原理,提升資料存取速度。

局部性原理主要包括:

  1. 時間局部性(Temporal Locality):最近使用過的資料或指令,短時間內再次使用的機率較高。
  2. 空間局部性(Spatial Locality):與最近使用位置相鄰的資料或指令,很快也會被使用。

快取記憶體會將處理器近期使用的資料與指令暫存其中。處理器再次存取時,若在快取中找到資料,即為「快取命中(Cache Hit)」;若找不到,才需向較慢的主記憶體讀取,稱為「快取失誤(Cache Miss)」。

解題方法

題幹的關鍵線索是:

  • 處理器速度大於 DRAM
  • 存在處理器與記憶體之間的效能瓶頸
  • 利用程式執行時的局部性原理
  • 詢問所使用的硬體機制

能直接利用時間局部性與空間局部性,將常用資料及指令預先保存在處理器附近高速儲存區的硬體機制,就是快取記憶體。

其基本存取流程如下:

處理器提出存取請求→先查詢 Cache→{命中:直接由 Cache 取得資料失誤:再向 DRAM 取得資料並更新 Cache\text{處理器提出存取請求} \rightarrow \text{先查詢 Cache} \rightarrow \begin{cases} \text{命中:直接由 Cache 取得資料}\\ \text{失誤:再向 DRAM 取得資料並更新 Cache} \end{cases}

由於快取命中時不必等待 DRAM,平均記憶體存取時間可降低。簡化表示為:

平均存取時間≈Cache 存取時間+Cache Miss 機率×DRAM 額外存取成本\text{平均存取時間} \approx \text{Cache 存取時間} + \text{Cache Miss 機率} \times \text{DRAM 額外存取成本}

因此,題幹所描述的硬體機制為快取記憶體。

選項分析

(A) 虛擬記憶體(Virtual Memory)錯誤

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 2 題2 分

在一個 3 對 8 解碼器(3-to-8 Decoder)電路中,若輸入端(Input)為二進位的 110110,則輸出端(Output)的狀態為何?

這一題的完整詳解

核心觀念

3 對 8 解碼器(3-to-8 Decoder)具有 3 個輸入端與 8 個輸出端。其功能是將 3 位元二進位輸入解碼成 8 條輸出線中的其中一條。

3 位元輸入可表示:

23=82^3=8

因此輸出線通常依輸入值 000000 至 111111 分別對應第 0 條至第 7 條線。採用一般「高電位有效」(active-high)的定義時,輸入所代表的那一條輸出線為高電位,其餘輸出線為低電位。

解題方法

題目給定輸入為:

1102110_2

將二進位轉換為十進位:

1102=1×22+1×21+0×20110_2=1\times 2^2+1\times 2^1+0\times 2^0 =4+2+0=6=4+2+0=6

因此,解碼器會選取第 6 條輸出線,使第 6 條線呈現高電位:

Y6=1Y_6=1

其餘輸出線皆為低電位:

Y0=Y1=Y2=Y3=Y4=Y5=Y7=0Y_0=Y_1=Y_2=Y_3=Y_4=Y_5=Y_7=0

選項分析

  • (A) 與第 3 條線相同:錯誤。 輸入 1102110_2 所代表的數值是 6,不是 3。第 3 條線對應的輸入應為 0112011_2。
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 3 題2 分

在作業系統排程中,針對「優先權排程」(Priority Scheduling)可能導致低優先權行程長期無法取得 CPU 的「飢餓」問題,下列何種技術最能有效改善此現象?

這一題的完整詳解

核心觀念

本題考查作業系統的「優先權排程」(Priority Scheduling)與「飢餓」(Starvation)。

在優先權排程中,CPU 通常優先配置給優先權較高的行程。若高優先權行程持續抵達,低優先權行程可能長時間停留在就緒佇列中,始終無法獲得 CPU,此現象稱為飢餓。

解決飢餓的典型方法是 Aging 機制:行程在就緒佇列中等待的時間越久,其優先權便逐步提高,使長期等待的低優先權行程最終能夠取得 CPU。


解題方法

判斷本題的關鍵,在於確認各選項是否能直接處理「低優先權行程長期等待」的問題。

Aging 的基本概念可表示為:

等待時間增加⇒優先權逐步提高\text{等待時間增加} \Rightarrow \text{優先權逐步提高}

當低優先權行程等待時間足夠長時,其優先權可能提升至高於新到達的行程,排程器便會選擇執行該行程,因而避免永久等待。

因此,最能直接改善優先權排程飢餓問題的技術是 Aging 機制。


選項分析

(A) 使用「銀行家演算法」(Banker's Algorithm)進行預防:錯誤

銀行家演算法主要用於死結避免(Deadlock Avoidance),在行程提出資源要求時,系統會檢查核准該要求後是否仍處於安全狀態。

它處理的是:

  • 多個行程競爭有限資源;
  • 資源配置是否可能導致死結;
  • 系統是否存在安全序列。

本題的飢餓問題則是低優先權行程長期無法取得 CPU,兩者成因與解決方式不同。銀行家演算法並不會因行程等待時間增加而提高其 CPU 排程優先權,因此無法直接解決本題問題。

(B) 實施「Aging 機制」改變待命行程的優先權:正確

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 4 題2 分

作業系統將 CPU 運作區分為「使用者模式」(User Mode)與「核心模式」(Kernel Mode),其最核心的目的是:

這一題的完整詳解

核心觀念

本題考查作業系統的「雙模式運作」(Dual-Mode Operation),也就是將 CPU 執行環境區分為:

  • 使用者模式(User Mode):一般應用程式執行的模式,權限受到限制。
  • 核心模式(Kernel Mode):作業系統核心執行的模式,具有較高權限,可執行特權指令並管理硬體資源。

其最核心的目的,是建立「權限隔離與硬體保護機制」,避免一般應用程式任意存取硬體、修改核心資料或干擾其他程式。

解題方法

判斷本題時,應抓住「使用者模式與核心模式為何要分開」這個核心。

一般程式若能直接執行硬體控制、記憶體管理或中斷控制等特權操作,可能造成:

  • 破壞作業系統核心
  • 讀取或竄改其他程式的資料
  • 直接控制磁碟、網路卡等硬體
  • 使整個系統當機或產生資安問題

因此,作業系統限制一般程式只能在使用者模式執行。當程式需要檔案存取、輸入輸出或其他受保護服務時,必須透過**系統呼叫(System Call)**請求作業系統代為處理,CPU 再由使用者模式切換至核心模式。

其基本流程可表示為:

應用程式→系統呼叫→核心模式→作業系統控制硬體\text{應用程式} \rightarrow \text{系統呼叫} \rightarrow \text{核心模式} \rightarrow \text{作業系統控制硬體}

這種設計的主要功能就是防止一般程式直接控制硬體,故選 (C)。

選項分析

(A) 加速系統開機:錯誤

使用者模式與核心模式的區分,重點在於權限管理、硬體保護與系統安全,並非用來縮短開機時間。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 5 題2 分

本題數字均為十進位表示。

在記憶體中,一個 3×4×53 \times 4 \times 5 的三維陣列 A[3][4][5]A[3][4][5] 中,若採用「以列為主」(Row-major Order)儲存,每個元素占用 4 個位元組(Byte),且 A[0][0][0]A[0][0][0] 的起始位址為 1000,則 A[2][0][3]A[2][0][3] 的記憶體起始位址為何?

這一題的完整詳解

核心觀念

本題考查三維陣列採用「以列為主」(Row-major Order)儲存時,各維度的排列順序、元素位移量,以及位址計算。

陣列 A[3][4][5]A[3][4][5] 的索引範圍為:

  • 第一維:0∼20 \sim 2
  • 第二维:0∼30 \sim 3
  • 第三維:0∼40 \sim 4

採用 Row-major Order 時,最右邊的索引變化最快,因此儲存順序為:

A[0][0][0],A[0][0][1],…,A[0][0][4],A[0][1][0],…A[0][0][0], A[0][0][1], \ldots, A[0][0][4], A[0][1][0], \ldots

每個元素占用 44 Bytes,A[0][0][0]A[0][0][0] 的起始位址為 10001000。

解題方法

三維陣列 A[i][j][k]A[i][j][k] 的 Row-major 位移量公式為:

元素位移量=i×(4×5)+j×5+k\text{元素位移量} = i \times (4 \times 5) + j \times 5 + k

其中:

  • 第一維每增加 11,需跨過一個 4×54 \times 5 的區塊
  • 第二维每增加 11,需跨過 55 個元素
  • 第三維每增加 11,只需移動 11 個元素

代入 A[2][0][3]A[2][0][3]:

元素位移量=2×(4×5)+0×5+3\text{元素位移量} = 2 \times (4 \times 5) + 0 \times 5 + 3 =2×20+0+3=43= 2 \times 20 + 0 + 3 = 43

因此,該元素相對於 A[0][0][0]A[0][0][0] 往後第 4343 個元素。

換算成位元組位移量:

43×4=172 Bytes43 \times 4 = 172\text{ Bytes}

所以記憶體起始位址為:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 6 題2 分

設計一個 Web Browser 的回溯機制時,若要同時支援「上一頁」與「下一頁」功能(即在回退後仍能前進),最有效率的實作方式是使用:

這一題的完整詳解

核心觀念

本題考查 Stack(堆疊)的「後進先出」(LIFO, Last In First Out)特性,以及 Web Browser 瀏覽歷史的回溯與前進機制。

瀏覽器必須同時記錄兩種歷史:

  • 後退歷史:目前頁面之前曾瀏覽的頁面。
  • 前進歷史:按下「上一頁」後,仍可返回的頁面。

因此,最適合使用兩個 Stack:

  1. Back Stack:儲存可回到的上一頁。
  2. Forward Stack:儲存可前往的下一頁。

兩個 Stack 都能以常數時間 O(1)O(1) 完成頂端資料的新增與取出,符合瀏覽器回溯操作的需求。


解題方法

可用三種操作說明其運作方式。

假設瀏覽順序為:

A→B→CA \rightarrow B \rightarrow C

此時:

  • Back Stack:[A,B][A, B]
  • 目前頁面:CC
  • Forward Stack:空

按下「上一頁」

執行以下步驟:

  1. 將目前頁面 CC 推入 Forward Stack。
  2. 從 Back Stack 取出頂端頁面 BB,作為目前頁面。

結果為:

  • Back Stack:[A][A]
  • 目前頁面:BB
  • Forward Stack:[C][C]

按下「下一頁」

執行以下步驟:

  1. 將目前頁面 BB 推入 Back Stack。
  2. 從 Forward Stack 取出頂端頁面 CC,作為目前頁面。

結果為:

  • Back Stack:[A,B][A, B]
  • 目前頁面:CC
  • Forward Stack:空

瀏覽新頁面時

若目前位於 BB,再輸入新網址前往 DD:

  1. 將 BB 推入 Back Stack。
  2. 將 DD 設為目前頁面。
  3. 清空 Forward Stack。

原因是使用者建立新的瀏覽分支後,原本的「下一頁」歷史已不再適用。

此設計可使上一頁與下一頁操作都直接針對 Stack 頂端進行,時間複雜度為:

O(1)O(1)

整體空間複雜度則與瀏覽歷史數量 nn 成正比:

O(n)O(n)


選項分析

(A) 單一個大型 Stack

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 7 題2 分

已知某二元樹(Binary Tree)的拜訪序列如下:

前序(Pre-order):[8,10,9,1,3,7,12,6][8, 10, 9, 1, 3, 7, 12, 6]

中序(In-order):[10,9,1,8,12,7,3,6][10, 9, 1, 8, 12, 7, 3, 6]

試問該二元樹正確的後序(Post-order)拜訪序列為何?

這一題的完整詳解

核心觀念

本題考查二元樹三種拜訪順序:

  • 前序(Pre-order):根節點 → 左子樹 → 右子樹
  • 中序(In-order):左子樹 → 根節點 → 右子樹
  • 後序(Post-order):左子樹 → 右子樹 → 根節點

解題關鍵是利用前序序列找出每個子樹的根節點,再利用中序序列判斷該根節點的左、右子樹範圍,最後依後序規則排列。


解題方法

已知:

前序:

[8,10,9,1,3,7,12,6][8,10,9,1,3,7,12,6]

中序:

[10,9,1,8,12,7,3,6][10,9,1,8,12,7,3,6]

一、找出整棵樹的根節點

前序的第一個節點一定是整棵樹的根,因此根節點為 88。

在中序序列中,88 將節點分成:

  • 左子樹:[10,9,1][10,9,1]
  • 右子樹:[12,7,3,6][12,7,3,6]

因此樹的結構可先表示為:

根 8{左子樹:[10,9,1]右子樹:[12,7,3,6]\text{根 }8 \quad \begin{cases} \text{左子樹:}[10,9,1]\\ \text{右子樹:}[12,7,3,6] \end{cases}

二、建立左子樹

左子樹在前序中的節點為:

[10,9,1][10,9,1]

前序第一個節點 1010 是左子樹的根。

在中序的左子樹 [10,9,1][10,9,1] 中:

  • 1010 左側沒有節點
  • 1010 右側為 [9,1][9,1]

因此 1010 沒有左子樹,右子樹根為 99。

對 99 而言,中序排列為:

[9,1][9,1]

所以 99 沒有左子樹,右子樹為節點 11。

左子樹的後序順序為:

[1,9,10][1,9,10]

三、建立右子樹

右子樹在前序中的節點為:

[3,7,12,6][3,7,12,6]

前序第一個節點 33 是右子樹的根。

在中序的右子樹 [12,7,3,6][12,7,3,6] 中:

  • 33 左側為 [12,7][12,7]
  • 33 右側為 [6][6]

因此:

  • 33 的左子樹包含 12,712,7
  • 33 的右子樹為 66

33 的左子樹

左子樹的前序節點為:

[7,12][7,12]

根節點為 77。在中序 [12,7][12,7] 中,77 左側為 1212,因此 77 的左子樹為節點 1212。

其後序順序為:

[12,7][12,7]

33 的右子樹

只有節點 66,因此後序順序為:

[6][6]

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 8 題2 分

在一棵「二元搜尋樹」(Binary Search Tree)中,左子樹的所有節點值必小於根節點,右子樹的所有節點值必大於根節點。若依序插入數值 50、30、70、20(不進行再平衡運算),則 20 會位於何處?

這一題的完整詳解

核心觀念

本題考查二元搜尋樹(Binary Search Tree, BST)的節點插入規則:

  • 左子樹所有節點值均小於根節點。
  • 右子樹所有節點值均大於根節點。
  • 插入新節點時,從根節點開始逐一比較,較小者往左走,較大者往右走。
  • 題目明確說「不進行再平衡運算」,因此只依照原本的插入位置放置節點。

解題方法

依序插入 50、30、70、2050、30、70、20:

  1. 插入 5050 5050 成為根節點。

  2. 插入 3030 比較 3030 與 5050:

30<5030 < 50

因此 3030 放在 5050 的左子節點。

  1. 插入 7070 比較 7070 與 5050:

70>5070 > 50

因此 7070 放在 5050 的右子節點。

  1. 插入 2020 先與根節點 5050 比較:

20<5020 < 50

所以往 5050 的左子樹走,再與左子節點 3030 比較:

20<3020 < 30

因此 2020 放在 3030 的左子節點。

樹的結構如下:

 50
 / \
 30 70
 /
 20

選項分析

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 9 題2 分

關於「最小生成樹」(Minimum Spanning Tree, MST),下列敘述何者正確?

這一題的完整詳解

核心觀念

最小生成樹(Minimum Spanning Tree, MST)是針對「連通、無向、帶權重圖」所定義的概念。

若圖 G=(V,E)G=(V,E) 共有 nn 個頂點,生成樹必須符合:

  1. 包含圖中的全部頂點。
  2. 圖形保持連通。
  3. 不包含任何環路。
  4. 恰有 n−1n-1 條邊。

在所有可能的生成樹中,總權重最小者稱為最小生成樹,其總權重為:

W(T)=∑e∈Tw(e)W(T)=\sum_{e\in T} w(e)

MST 最小化的是「所選樹邊的權重總和」,不是整張圖所有邊的權重總和。

解題方法

判斷本題可直接掌握 MST 的完整定義:

MST 是「包含圖中所有頂點,且總權重最小的樹」。

因此,只要選項同時具備「所有頂點」與「總權重最小的樹」兩項條件,即符合 MST 定義。

選項分析

(A) 包含圖中所有權重中總和最小的圖

錯誤。

MST 並不是選出一個「總權重最小的圖」,而是在原圖中選取部分邊,形成一棵包含所有頂點的樹。

此外,MST 計算的是被選取邊的權重總和:

∑e∈Tw(e)\sum_{e\in T}w(e)

並非將圖中所有邊的權重全部相加。原圖通常包含許多不會被納入 MST 的邊。

(B) 包含圖中所有頂點且總權重最小的樹

正確。

這正是最小生成樹的定義。MST 必須涵蓋原圖全部頂點,並在所有可能的生成樹中,使邊的總權重最小。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 10 題2 分

若要從 100 萬筆「未排序」的資料中找尋一個特定數值,最壞情況下大約需要比較幾次?

這一題的完整詳解

核心觀念

本題考的是「未排序資料的搜尋」與線性搜尋(Linear Search)的最壞情況分析。

當資料未排序時,無法直接利用資料大小關係排除大量項目,因此通常必須從第一筆開始,逐筆與目標值比較。若資料共有 nn 筆,線性搜尋的最壞情況比較次數為:

T(n)=nT(n)=n

最壞情況包括:

  • 目標值位於最後一筆;
  • 目標值不存在於資料中,必須檢查完全部資料。

解題方法

題目給定未排序資料共 100100 萬筆:

n=1,000,000n=1{,}000{,}000

在未排序的情況下,搜尋特定數值時,無法使用二分搜尋法直接縮小範圍,只能逐筆比較。最壞情況必須比較所有資料:

T(n)=n=1,000,000T(n)=n=1{,}000{,}000

因此最壞情況下大約需要比較 100100 萬次,選擇 (D)。

選項分析

  • (A) 1 次:錯誤。 11 次比較只可能是最佳情況,例如目標值剛好位於第一筆。題目問的是「最壞情況」,不能以最佳情況作答。

  • (B) 20 次:錯誤。 2020 次通常與二分搜尋法的概念有關,因為:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 11 題2 分

在物件導向中,類別(Class)與物件(Object)的關係與記憶體空間占用情形,最適合用下列哪一個敘述來形容?

這一題的完整詳解

核心觀念

本題考查物件導向中的兩個基本概念:

  1. Class(類別):描述物件的共同資料與行為,可視為建立物件的「設計圖」或「樣板」。
  2. Object(物件):類別所建立出的具體實例(instance),具有實際的屬性值,通常會在執行時配置記憶體空間。

例如:

Class:汽車
Object:小明的汽車、公司的汽車

類別本身是規格描述;物件則是依照該規格建立的實體。因此,考試中的基本判斷是:

Class 如設計圖,Object 如依設計圖建造出的實體;物件會占用實際執行記憶體。

解題方法

逐一檢查各選項是否同時符合下列兩點:

  • 是否正確比喻 Class 與 Object 的關係。
  • 是否正確描述 Class 與記憶體空間的關係。

最符合「設計圖與實體」概念的比喻,就是「建築設計圖與實際建好的房子」。設計圖描述房屋的結構,但真正建造出的房子才是具體實體,對應到物件建立後的記憶體配置。

選項分析

(A) 建築設計圖與實際建好的房子,Class 不會占用記憶體

正確。

  • 建築設計圖可比喻為 Class。
  • 實際建好的房子可比喻為 Object。
  • 設計圖是建立房子的規格與依據;房子則是具體產物。
  • 依照本題採用的物件導向基本模型,Class 本身不代表某一個具體物件的資料配置,實際建立出的 Object 才占用記憶體。

因此本選項完整符合題意。

(B) 人的身體與所包含的眼睛(眼睛固著於身體),Class 會占用記憶體

錯誤。

「身體包含眼睛」主要是在比喻物件之間的整體與部分關係,且眼睛固著於身體,較接近物件導向中的 Composition(組合),不是 Class 與 Object 的基本關係。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 12 題2 分

在 SQL 查詢語法中,若要從「考生」資料表中篩選出「成績大於 60 分」且「按成績由高到低」排列,應如何撰寫?

這一題的完整詳解

核心觀念

本題考查 SQL 查詢中的兩個子句:

  • WHERE:設定篩選條件,只保留符合條件的資料列。
  • ORDER BY:指定查詢結果的排序方式。
  • ASC:升冪,由小到大,為預設值。
  • DESC:降冪,由大到小。

題目要求:

  1. 從「考生」資料表查詢資料。
  2. 篩選「成績大於 60 分」。
  3. 按「成績由高到低」排列。

因此必須使用:

SELECT *
FROM 考生
WHERE 成績 > 60
ORDER BY 成績 DESC;

解題方法

依 SQL 查詢的基本結構判斷:

SELECT→FROM→WHERE→ORDER BY\text{SELECT} \rightarrow \text{FROM} \rightarrow \text{WHERE} \rightarrow \text{ORDER BY}

各部分功能如下:

  • SELECT *:選取所有欄位。
  • FROM 考生:資料來源為「考生」資料表。
  • WHERE 成績 > 60:只保留成績大於 60 分的考生。
  • ORDER BY 成績 DESC:依成績欄位採降冪排列,也就是由高到低。

所以正確語法為:

SELECT * FROM 考生 WHERE 成績 > 60 ORDER BY 成績 DESC

選項分析

(A) SELECT * FROM 考生 WHERE 成績 > 60 ORDER BY 成績 DESC

正確。

  • WHERE 成績 > 60 正確完成「成績大於 60 分」的篩選。
  • ORDER BY 成績 DESC 正確完成「按成績由高到低」的排序。
  • 語法順序也符合 SQL 查詢結構。

(B) SELECT * FROM 考生 WHERE 成績 > 60 GROUP BY 成績 ASC

錯誤。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 13 題2 分

在網路拓樸(Topology)中,若有一台中央集線器(Hub)或交換器(Switch)連接所有電腦,當中央設備故障時整個網路即癱瘓,這種架構稱為:

這一題的完整詳解

核心觀念

本題考查網路拓樸的基本特徵。若所有電腦都各自連接到同一台中央設備,例如集線器(Hub)或交換器(Switch),則此網路採用星狀拓樸(Star Topology)。

星狀拓樸的結構可表示如下:

電腦⟶中央設備⟵電腦\text{電腦} \longrightarrow \text{中央設備} \longleftarrow \text{電腦}

各電腦彼此通常不直接連線,而是透過中央設備傳送資料。因此,中央設備是整個網路的關鍵節點;一旦中央設備故障,所有連線均會中斷,整個網路便可能癱瘓。

解題方法

題幹提供兩項關鍵線索:

  1. 有一台中央集線器或交換器。
  2. 所有電腦都連接到該中央設備。

「所有節點連接至同一個中央節點」正是星狀拓樸的定義。中央設備故障導致整體網路失效,也符合星狀拓樸的典型缺點,因此可直接判定答案為星狀拓樸。

選項分析

(A) 匯流排拓樸(Bus Topology)錯誤

匯流排拓樸是所有電腦共同連接到一條主要傳輸幹線,資料會沿著這條幹線傳送。

其主要特徵是:

  • 沒有中央集線器作為所有電腦的共同連接中心。
  • 主要傳輸幹線若故障,可能造成整個網路中斷。
  • 常見於早期乙太網路架構。

題幹強調的是「中央設備」故障,而不是共同傳輸幹線故障,因此不是匯流排拓樸。

(B) 環狀拓樸(Ring Topology)錯誤

環狀拓樸將各電腦依序連接,形成封閉環狀路徑,每台電腦通常與左右相鄰節點相連。

其主要特徵是:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 14 題2 分

近年來出現利用「生成式 AI」(Generative AI)偽造(Deepfake)他人聲音與長相,並透過視訊通話進行詐騙,這種攻擊手段主要屬於下列哪一種範疇?

這一題的完整詳解

核心觀念

本題考查常見網路攻擊類型的定義與辨識。題幹描述攻擊者利用生成式 AI 偽造他人的聲音、臉部影像或身分,再透過視訊通話誘騙被害人相信其為特定人物,核心在於「欺騙人」與「冒用身分」,因此屬於社交工程與身分偽裝攻擊。

  • 社交工程(Social Engineering):利用心理操弄、信任關係或錯誤資訊,使被害人洩漏資料、提供金錢或執行特定操作。
  • 身分偽裝(Impersonation):冒用他人的姓名、聲音、外貌、帳號或其他身分特徵,使被害人誤認攻擊者為該名人士。
  • Deepfake:利用人工智慧產生或修改高度逼真的影像、聲音或影片。Deepfake 本身是偽造技術,實際攻擊分類須依其使用目的判斷;本題的用途是冒用身分並進行詐騙。

解題方法

判斷此類題目可先觀察攻擊的「主要作用對象」:

  1. 若攻擊重點是癱瘓網站或網路服務,屬於 DoS 或 DDoS。
  2. 若攻擊重點是加密檔案、索取贖金,屬於勒索軟體。
  3. 若攻擊重點是利用假身分、假訊息或心理操弄,使人受騙,屬於社交工程與身分偽裝。

本題中,生成式 AI 被用來偽造聲音與長相,並透過視訊通話欺騙被害人。攻擊的直接目標不是系統可用性,也不是檔案加密,而是使人誤信攻擊者身分,進而遭受詐騙。因此答案為 (B)。

選項分析

(A) 阻斷服務(DoS)—錯誤

DoS(Denial of Service)是攻擊者透過大量請求、消耗系統資源或利用系統弱點,使伺服器、網站或網路服務無法正常提供服務。

其主要特徵是:

  • 破壞服務的可用性;
  • 使合法使用者無法連線或使用系統;
  • 通常不以偽造他人身分、誘騙被害人為主要手段。

題幹重點是 Deepfake 冒用身分進行詐騙,沒有描述服務遭到癱瘓,因此不是 DoS。

(B) 社交工程與身分偽裝(Social Engineering / Impersonation)—正確

攻擊者利用 AI 偽造他人的聲音與長相,使被害人誤認視訊通話中的對象是真正的親友、主管、政府人員或其他可信任人士,再藉此要求匯款、提供帳密或透露機密資訊。

這同時具備:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 15 題2 分

在非對稱加密架構中,若 A 要傳送一份「既要確保內容機密,又要確保身分不可否認」的郵件給 B,請問 A 應該依序使用哪些金鑰處理?

這一題的完整詳解

核心觀念

本題考查非對稱加密中「機密性」與「身分不可否認性」所對應的金鑰使用方式:

  • 確保內容機密:使用收件者 B 的公鑰加密,只有 B 能用自己的私鑰解密。
  • 確保身分不可否認:使用寄件者 A 的私鑰進行數位簽章,B 可用 A 的公鑰驗證確實由 A 發出。

題目中的「用私鑰加密」是傳統考試常見的簡化說法,實務上通常稱為「以私鑰產生數位簽章」,並搭配雜湊函數驗證訊息完整性與來源。

解題方法

A 必須同時完成兩件事:

  1. 先以 A 的私鑰處理郵件內容,形成數位簽章,以證明郵件確實由 A 發出,並提供不可否認性。
  2. 再以 B 的公鑰加密處理後的內容,確保只有 B 能讀取郵件內容。

流程可表示為:

原始郵件 →A 的私鑰 →B 的公鑰 加密郵件\text{原始郵件} \ \xrightarrow{\text{A 的私鑰}} \ \xrightarrow{\text{B 的公鑰}} \ \text{加密郵件}

B 收到後,依相反順序處理:

加密郵件 →B 的私鑰 →A 的公鑰 驗證簽章並取得內容\text{加密郵件} \ \xrightarrow{\text{B 的私鑰}} \ \xrightarrow{\text{A 的公鑰}} \ \text{驗證簽章並取得內容}

因此,A 應先使用自己的私鑰,再使用 B 的公鑰,答案為 (A)。

選項分析

(A) 用 A 的私鑰加密,再用 B 的公鑰加密——正確

  • A 的私鑰:建立數位簽章,讓 B 可用 A 的公鑰驗證寄件者身分。
  • B 的公鑰:加密郵件內容,只有 B 能用 B 的私鑰解密。
  • 同時滿足「身分不可否認」與「內容機密」兩項要求。
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 16 題2 分

下列哪一組電腦發展技術依時間先後順序(由早到晚)排列正確?

這一題的完整詳解

核心觀念

本題考查電腦硬體技術的發展順序,判斷依據是各項電子元件成為電腦主要核心技術的先後:

  1. 真空管(Vacuum Tube):早期電腦使用的主要電子元件。
  2. 電晶體(Transistor):取代體積大、耗電高且可靠性較低的真空管。
  3. 積體電路(Integrated Circuit, IC):將多個電子元件整合在單一晶片上。
  4. 微處理器(Microprocessor):將中央處理器的主要功能整合至單一晶片中。

因此,標準的發展順序為:

真空管→電晶體→積體電路→微處理器\text{真空管} \rightarrow \text{電晶體} \rightarrow \text{積體電路} \rightarrow \text{微處理器}

解題方法

本題採「電腦世代與核心元件」的時間序列判斷法:

  • 第一代電腦:以真空管為主要元件。
  • 第二代電腦:以電晶體取代真空管。
  • 第三代電腦:使用積體電路。
  • 第四代電腦:以微處理器為重要發展基礎。

依世代先後排列,即可得到:

真空管→電晶體→積體電路→微處理器\boxed{\text{真空管} \rightarrow \text{電晶體} \rightarrow \text{積體電路} \rightarrow \text{微處理器}}

所以正確選項為 (B)。


選項分析

(A) 電晶體 → 真空管 → 積體電路 → 微處理器

錯誤。真空管的出現早於電晶體,電晶體是後來用來取代真空管的技術。此選項將電晶體與真空管的先後順序顛倒。

正確順序應為:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 17 題2 分

十六進位數值 AFAF 等於多少十進位數值?

這一題的完整詳解

核心觀念

本題考查十六進位與十進位之間的轉換。

十六進位使用 16 個符號:

  • 00~99 分別代表 00~99
  • AA~FF 分別代表 1010~1515

十六進位各位數的權重由右至左依序為 160、161、16216^0、16^1、16^2……。

解題方法

十六進位數 AFAF 中:

  • A=10A=10,位於 16116^1 位
  • F=15F=15,位於 16016^0 位

因此:

(AF)16=A×161+F×160(AF)_{16}=A\times16^1+F\times16^0 =10×16+15×1=10\times16+15\times1 =160+15=175=160+15=175

所以十六進位數 AFAF 等於十進位數 175175。

選項分析

  • (A) 175:正確。 AF16=10×16+15=175AF_{16}=10\times16+15=175。
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 18 題2 分

在 IEEE 754 單倍精度(32 位元)浮點數表示法中,指數(Exponent)欄位是採用下列何種表示方式?

這一題的完整詳解

核心觀念

IEEE 754 單倍精度浮點數共有 32 位元,格式如下:

Sign 1 位元 ∣ Exponent 8 位元 ∣ Fraction 23 位元\boxed{\text{Sign 1 位元}\ |\ \text{Exponent 8 位元}\ |\ \text{Fraction 23 位元}}

其中,Exponent 欄位不是直接儲存實際指數 ee,而是採用「偏移量表示法」(Bias Representation),將實際指數加上固定偏移值後儲存。

單倍精度的偏移值為:

Bias=127\text{Bias}=127

對於一般化數值(normalized number),實際指數 ee 與 Exponent 欄位儲存值 EE 的關係為:

E=e+127E=e+127

解讀時則反算為:

e=E−127e=E-127

例如,實際指數 e=3e=3 時:

E=3+127=130E=3+127=130

因此 Exponent 欄位會儲存十進位 130130,而不是直接以二補數儲存 33。

解題方法

判斷 IEEE 754 的指數表示方式,可直接掌握兩個重點:

  1. 指數可能為正數,也可能為負數。
  2. Exponent 欄位本身採用無號欄位儲存,實際正負由 Bias 解讀。

單倍精度使用 8 位元 Exponent 欄位,Bias 為 127127。因此:

  • 實際指數 e=0e=0 時,儲存值為 127127。
  • 實際指數 e=−1e=-1 時,儲存值為 126126。
  • 實際指數 e=1e=1 時,儲存值為 128128。

藉由加上固定偏移量,便能在不使用符號位元的情況下表示正、負指數,這就是偏移量表示法。

選項分析

(A) 二補數表示(Two’s Complement)錯誤

二補數是整數常見的有號表示法,利用最高位元表示數值正負,並以補數規則表示負數。

IEEE 754 單倍精度的 Exponent 欄位不是以二補數直接表示實際指數,而是儲存:

實際指數+Bias\text{實際指數}+\text{Bias}

因此本選項不符合 IEEE 754 的指數欄位設計。

(B) 一補數表示(One’s Complement)錯誤

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 19 題2 分

1100101011001010 是利用二補數表示的數值,其對應的十進位數值為何?

這一題的完整詳解

核心觀念

本題考查 8 位元二補數(Two’s Complement) 的十進位轉換。

在 8 位元二補數中:

  • 最高位為 00:表示非負數,直接按照二進位換算。
  • 最高位為 11:表示負數,數值可用下列兩種方法求得:
  1. 對所有位元取反,再加 11,所得結果為負數的絕對值。
  2. 最高位權重視為 −27=−128-2^7=-128,其餘位元依一般二進位權重計算。

題目給定 1100101011001010,最高位為 11,因此這是負數。

解題方法一:取反加一

原數:

1100101011001010

先逐位取反:

0011010100110101

再加 11:

00110101+1=0011011000110101+1=00110110

將 0011011000110110 轉換為十進位:

0×128+0×64+1×32+1×16+0×8+1×4+1×2+0×10\times128+0\times64+1\times32+1\times16+0\times8+1\times4+1\times2+0\times1 =32+16+4+2=54=32+16+4+2=54

原二補數表示的是負數,因此:

110010102=−541011001010_2=-54_{10}

解題方法二:直接使用位元權重

8 位元二補數的最高位權重為 −128-128,其餘位元權重不變:

110010102=−128+64+8+211001010_2 = -128+64+8+2 =−128+74=−54=-128+74=-54

因此答案為 −54-54。

選項分析

  • (A) −74-74:錯誤。 題目位元的低 7 位為 10010101001010,其正值為:

64+8+2=7464+8+2=74

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 20 題2 分

若採用 8 位元二補數表示法,下列哪一組加法會超出表示範圍?

這一題的完整詳解

核心觀念

8 位元二補數(Two’s Complement)可表示的整數範圍為:

−27∼27−1=−128∼127-2^{7} \sim 2^{7}-1 = -128 \sim 127

判斷二補數加法是否溢位,重點如下:

  • 正數加正數,結果超過 127127,發生溢位。
  • 負數加負數,結果小於 −128-128,發生溢位。
  • 正數加負數,結果必定落在可表示範圍內,不會發生溢位。

8 位元二補數的最高位(最左邊一位)為符號位:

  • 00 表示非負數
  • 11 表示負數

解題方法

逐一判斷各選項的符號,再將二補數轉換為十進位計算,確認結果是否超出 −128-128 至 127127 的範圍。


選項分析

(A) 01100110+0101010101100110+01010101

兩數最高位皆為 00,表示正數。

011001102=10201100110_2=102 010101012=8501010101_2=85

相加得:

102+85=187102+85=187

187>127187>127,超出 8 位元二補數的正數表示範圍,因此發生溢位。

以二進位相加:

01100110+0101010110111011\begin{array}{r} 01100110\\ +01010101\\ \hline 10111011 \end{array}

結果最高位為 11,若直接解讀為二補數,1011101110111011 代表負數;但原本是兩個正數相加,結果不可能正確變成負數,這正是正數加正數溢位的典型現象。

因此,(A) 正確。


(B) 11101100+1100010111101100+11000101

兩數最高位皆為 11,表示負數。

1110110011101100 的二補數值:

  1. 反相:
0001001100010011
  1. 加 11:
000101002=2000010100_2=20

所以:

111011002=−2011101100_2=-20

1100010111000101 的二補數值:

  1. 反相:
0011101000111010
  1. 加 11:
001110112=5900111011_2=59

所以:

110001012=−5911000101_2=-59

相加得:

−20+(−59)=−79-20+(-59)=-79

−79-79 落在 −128-128 至 127127 的範圍內,不會溢位。

二進位結果為:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 21 題2 分

印表機列印速度常用下列何種單位?

這一題的完整詳解

核心觀念

本題考查印表機列印速度的常用衡量單位。

印表機的列印速度通常以「每分鐘可列印多少頁」表示,英文為 pages per minute,縮寫為 ppm。

其定義為:

ppm=列印頁數分鐘數\text{ppm}=\frac{\text{列印頁數}}{\text{分鐘數}}

因此,ppm 數值越高,代表印表機每分鐘能完成的列印頁數越多,列印速度通常越快。

解題方法

判斷各選項的英文縮寫所代表的物理量,再與「印表機列印速度」的測量對象比對:

  • 印表機列印速度:看每分鐘列印幾頁,使用 ppm。
  • 印表機解析度:看每英吋可呈現多少點,使用 dpi。
  • 資料傳輸速度:看每秒傳送多少位元,使用 bps。
  • 打字或操作速度:常以每分鐘操作次數等方式表示,使用 apm。

所以本題應選擇表示「每分鐘頁數」的 ppm。

選項分析

(A) dpi

dpi 是 dots per inch 的縮寫,中文為「每英吋點數」,主要用來表示印表機或螢幕的解析度。

例如:

600 dpi600\ \text{dpi}
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 22 題2 分

若一張圖片的每一像素使用 10 位元表示顏色,最多可表示多少種顏色?

這一題的完整詳解

核心觀念

本題考查影像的「色彩深度」(Color Depth)。若每一像素使用 nn 位元表示顏色,則每一位元有 00、11 兩種狀態,因此最多可表示的顏色種類為:

2n2^n

本題每一像素使用 1010 位元,因此 n=10n=10。

解題方法

將 1010 位元代入公式:

210=2×2×2×2×2×2×2×2×2×22^{10}=2\times2\times2\times2\times2\times2\times2\times2\times2\times2

亦可利用:

210=10242^{10}=1024

所以一張圖片的每一像素最多可表示 10241024 種顏色。

選項分析

  • (A) 256:錯誤。 256=28256=2^8,代表每一像素使用 88 位元,而非題目所述的 1010 位元。

  • (B) 512:錯誤。 512=29512=2^9,代表每一像素使用 99 位元。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 23 題2 分

字元序列 "aaaababbaccdede" 以其出現頻率建立霍夫曼編碼,不計編碼表與樹的儲存成本,最少需多少 bits 來表示?

這一題的完整詳解

核心觀念

本題考查霍夫曼編碼(Huffman Coding)。霍夫曼編碼的原則是:

  1. 統計每個字元的出現頻率。
  2. 每次選取目前頻率最小的兩個節點合併。
  3. 持續合併至形成完整二元樹。
  4. 字元的編碼長度等於其在霍夫曼樹中的深度。
  5. 所需總位元數為:
總位元數=∑(字元頻率×該字元編碼長度)\text{總位元數}=\sum (\text{字元頻率}\times \text{該字元編碼長度})

本題不計編碼表與霍夫曼樹的儲存成本,只計算實際字元序列的編碼位元數。


解題方法

字元序列為:

aaaababbaccdede\texttt{aaaababbaccdede}

統計各字元頻率:

字元頻率
a6
b3
c2
d2
e2

頻率總和為:

6+3+2+2+2=156+3+2+2+2=15

依霍夫曼演算法,逐步合併最小頻率:

2+2=42+2=4

剩餘頻率為:

2, 3, 4, 62,\ 3,\ 4,\ 6

接著:

2+3=52+3=5

剩餘頻率為:

4, 5, 64,\ 5,\ 6

再合併:

4+5=94+5=9

最後:

6+9=156+9=15

因此,霍夫曼合併過程的成本總和為:

4+5+9+15=334+5+9+15=33

這也就是所有字元編碼長度加權後的最少總位元數。


以編碼長度直接驗算

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 24 題2 分

設 XX 與 YY 為單一位元(二進位 bit)變數,下列何種布林函式可判斷 X<YX < Y(亦即當 X<YX < Y 時輸出 1,否則輸出 0)?

這一題的完整詳解

核心觀念

XX 與 YY 都是單一位元,因此各自只有 00、11 兩種值。判斷 X<YX<Y 時,逐一比較四種組合:

XXYYX<YX<Y
000
011
100
110

因此,X<YX<Y 唯一成立的情況是:

X=0,Y=1X=0,\quad Y=1

布林代數中:

  • X‾\overline{X} 表示 XX 的反相,亦即「X=0X=0」。
  • X‾Y\overline{X}Y 表示「X=0X=0 且 Y=1Y=1」。

所以判斷單一位元 X<YX<Y 的布林函式為:

X‾Y\overline{X}Y

解題方法

單一位元的大小關係只有一種情況會使 X<YX<Y 成立:

0<10<1

將這個條件轉換為布林條件:

  • X=0X=0:以 X‾\overline{X} 表示。
  • Y=1Y=1:以 YY 表示。
  • 兩個條件必須同時成立:使用 AND,也就是相乘。

因此:

X<Y=X‾YX<Y=\overline{X}Y

故正確選項為 (C)。


選項分析

(A) X‾Y+XY‾\overline{X}Y+X\overline{Y}

此式表示:

  • X=0,Y=1X=0,Y=1,或
  • X=1,Y=0X=1,Y=0。

這是 XOR(互斥或):

X‾Y+XY‾=X⊕Y\overline{X}Y+X\overline{Y}=X\oplus Y
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 25 題2 分

作業系統使多個程式「看起來同時執行」時,通常是透過下列何種機制達成?

這一題的完整詳解

核心觀念

本題考查作業系統的「多工」與「分時作業」觀念。

單一 CPU 核心在同一瞬間通常只能執行一個執行緒。作業系統會將 CPU 的執行時間切割成許多短時間片(time slice),讓不同程式依序取得 CPU 使用權,並透過快速的工作切換(context switching),使使用者感覺多個程式正在同時執行。

此種以時間片分配 CPU 使用時間的機制,即為 CPU 分時作業(Time Sharing)。

解題方法

題幹的關鍵字是「多個程式看起來同時執行」。判斷重點在於:哪一個機制負責分配 CPU 執行時間,讓多個程式輪流執行?

作業系統的基本流程如下:

  1. 將 CPU 時間切分為多個時間片。
  2. 程式 A 執行一小段時間後,由排程器暫停程式 A。
  3. 保存程式 A 的執行狀態。
  4. 切換至程式 B 執行。
  5. 依序讓其他程式取得 CPU。
  6. 由於切換速度很快,使用者便感覺多個程式同時執行。

因此,正確答案為 CPU 分時作業。

選項分析

(A) CPU 分時作業(Time Sharing)—正確

CPU 分時作業將處理器時間分成許多短時間片,再由作業系統排程器分配給不同程式。程式之間透過快速切換取得 CPU 使用權,形成多工執行的效果。

在單核心 CPU 中,這種方式是「快速輪流執行」,並非真正的同一瞬間平行執行;在多核心 CPU 中,則可搭配平行處理,使不同核心同時執行不同工作。

(B) 快取記憶體(Cache Memory)—錯誤

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 26 題2 分

CPU 時脈頻率為 3.2 GHz,所代表的意義為下列何者?

這一題的完整詳解

核心觀念

本題考查 CPU「時脈頻率」(clock frequency)的定義與單位換算。

時脈頻率表示 CPU 內部時脈訊號每秒振盪、產生多少個週期,單位為赫茲(Hz):

1 Hz=1 個時脈週期/秒1\ \text{Hz}=1\ \text{個時脈週期/秒}

因此:

3.2 GHz=3.2×109 Hz=3.2×109 個時脈週期/秒3.2\ \text{GHz} =3.2\times 10^9\ \text{Hz} =3.2\times 10^9\ \text{個時脈週期/秒}

這代表 CPU 每秒約產生 3.2×1093.2\times 10^9 個時脈週期。

解題方法

看到「時脈頻率」時,直接將頻率單位 GHz 轉換為 Hz:

1 GHz=109 Hz1\ \text{GHz}=10^9\ \text{Hz}

所以:

3.2 GHz=3.2×109 Hz3.2\ \text{GHz}=3.2\times10^9\ \text{Hz}

而 Hz 的意義就是「每秒的週期數」,故正確敘述為每秒約產生 3.2×1093.2\times10^9 個時脈週期。

選項分析

(A) CPU 總共擁有 32 個運算核心

錯誤。CPU 核心數是處理器的硬體核心數量,例如 4 核心、8 核心,與時脈頻率是不同規格。題目中的 3.23.2 是頻率數值,不代表核心數;而且選項寫成 32 個核心,也沒有由 3.2 GHz3.2\ \text{GHz} 推導出來的依據。

(B) 每秒資料傳輸速率為 3.2 GB

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 27 題2 分

若對堆疊(Stack)執行下列的動作:push 1、pop、push 2、push 3、pop、pop,其輸出依序為何?

這一題的完整詳解

核心觀念

本題考查堆疊(Stack)的後進先出(Last In, First Out, LIFO)特性:

  • push:將資料放入堆疊頂端。
  • pop:取出並輸出堆疊頂端的資料。
  • 每次 pop 後,該資料即離開堆疊。

因此,最晚放入堆疊的資料會最先被取出。

解題方法

依序執行各項操作:

操作堆疊內容(由底至頂)輸出
push 11—
pop空1
push 22—
push 32、3—
pop23
pop空2

依序記錄三次 pop 的輸出:

1、3、21、3、2

合併為:

132132

選項分析

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 28 題2 分

堆積(Heap)屬於哪種類型的二元樹?

這一題的完整詳解

核心觀念

堆積(Heap)是一種以二元樹表示的優先佇列資料結構,必須同時符合兩項條件:

  1. 結構條件:必須是完全二元樹(Complete Binary Tree)。
  2. 順序條件:必須符合堆積順序(Heap Order)。
  • 最大堆(Max Heap):父節點值大於或等於子節點值。
  • 最小堆(Min Heap):父節點值小於或等於子節點值。

因此,題目詢問「堆積屬於哪種類型的二元樹」,關鍵在於辨認堆積的結構條件。

解題方法

完全二元樹的定義是:

  • 除了最後一層之外,其餘各層都必須填滿;
  • 最後一層的節點必須由左至右排列,中間不可留空。

二元堆積正是以此結構建立,通常也能使用陣列儲存。若以陣列索引從 11 開始:

  • 父節點索引為 ⌊i/2⌋\left\lfloor i/2 \right\rfloor
  • 左子節點索引為 2i2i
  • 右子節點索引為 2i+12i+1

這種規則能有效運作的前提,就是堆積具有完全二元樹的結構。

因此,堆積必定是完全二元樹;但僅具備完全二元樹結構,還不足以成為堆積,仍須符合最大堆或最小堆的順序條件。

選項分析

(A) 完全二元樹(Complete Binary Tree)— 正確

堆積的結構必須是完全二元樹,並且再加上堆積順序條件。因此,這是本題的正確答案。

例如下列樹形符合完全二元樹結構:

 90
 / \
 70 80
 / \ /
 40 50 60

若每個父節點的值都大於子節點,則它同時是最大堆。

(B) 完滿二元樹(Full Binary Tree)— 錯誤

完滿二元樹的定義是:每個節點不是沒有子節點,就是恰好有兩個子節點;不允許只有一個子節點的節點。

完全二元樹可以出現只有一個子節點的節點,例如:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 29 題2 分

下列何種資料結構最常用來實作堆積(Heap)?

這一題的完整詳解

核心觀念

本題考「堆積(Heap)」的資料結構表示方式。

堆積是一種以**完全二元樹(Complete Binary Tree)**為基礎的樹狀資料結構,並且符合堆積性質:

  • 最大堆積(Max-Heap):每個父節點的值大於或等於子節點。
  • 最小堆積(Min-Heap):每個父節點的值小於或等於子節點。

由於完全二元樹的節點排列緊密、沒有過多空缺,非常適合使用陣列依序儲存,因此堆積最常以**陣列(Array)**實作。

解題方法

判斷本題的關鍵在於掌握完全二元樹與陣列索引之間的對應關係。

若採用從 11 開始的陣列索引,對於位於第 ii 個位置的節點:

  • 父節點位置為 ⌊i2⌋\left\lfloor \frac{i}{2} \right\rfloor
  • 左子節點位置為 2i2i
  • 右子節點位置為 2i+12i+1

若採用從 00 開始的陣列索引:

  • 左子節點位置為 2i+12i+1
  • 右子節點位置為 2i+22i+2
  • 父節點位置為 ⌊i−12⌋\left\lfloor \frac{i-1}{2} \right\rfloor

這種儲存方式不需要額外記錄左、右指標,只要透過索引計算即可找到父子節點。因此,插入、刪除及調整堆積時,皆能有效率地進行。

選項分析

(A) 陣列(Array)— 正確

陣列最常用來實作堆積,原因包括:

  1. 堆積本質上是完全二元樹,節點排列連續。
  2. 陣列可以依照層序排列儲存所有節點。
  3. 父子節點的位置可利用索引公式直接計算。
  4. 不需要額外配置指標欄位,節省記憶體空間。
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 30 題2 分

對於一棵二元搜尋樹(Binary Search Tree),下列何種拜訪方式可得到節點鍵值為遞增排序結果?

這一題的完整詳解

核心觀念

二元搜尋樹(Binary Search Tree, BST)具有以下性質:

  • 左子樹中所有節點的鍵值小於根節點鍵值。
  • 右子樹中所有節點的鍵值大於根節點鍵值。
  • 對每一個子樹皆成立相同規則。

「中序拜訪」(Inorder Traversal)的順序是:

左子樹→根節點→右子樹\text{左子樹} \rightarrow \text{根節點} \rightarrow \text{右子樹}

由於 BST 的左子樹鍵值均小於根節點,右子樹鍵值均大於根節點,因此中序拜訪會依序輸出由小到大的節點鍵值。


解題方法

以 BST 的根節點為例:

  1. 先拜訪左子樹,取得所有較小的鍵值。
  2. 再拜訪根節點。
  3. 最後拜訪右子樹,取得所有較大的鍵值。

此順序可表示為:

較小鍵值→根鍵值→較大鍵值\text{較小鍵值} \rightarrow \text{根鍵值} \rightarrow \text{較大鍵值}

對每一層子樹重複此程序後,整棵樹的節點鍵值便會形成遞增排序結果。

例如:

 8
 / \
 3 10
 / \ \
 1 6 14

進行中序拜訪:

1→3→6→8→10→141 \rightarrow 3 \rightarrow 6 \rightarrow 8 \rightarrow 10 \rightarrow 14

結果即為遞增排序。


選項分析

(A) 層序拜訪(Level-order Traversal)錯誤

層序拜訪是依照樹的層級,由上而下、由左而右處理節點,順序為:

第 1 層→第 2 層→第 3 層→⋯\text{第 1 層} \rightarrow \text{第 2 層} \rightarrow \text{第 3 層} \rightarrow \cdots

它重視的是節點所在的深度,不保證鍵值大小順序。

以上述範例而言,層序拜訪結果為:

8→3→10→1→6→148 \rightarrow 3 \rightarrow 10 \rightarrow 1 \rightarrow 6 \rightarrow 14

並非遞增排序。


(B) 前序拜訪(Preorder Traversal)錯誤

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 31 題2 分

在關聯式資料庫(Relational Database)設計中,關於主鍵(Primary Key)與外來鍵(Foreign Key)的敘述,下列何者錯誤?

這一題的完整詳解

核心觀念

本題考查關聯式資料庫中的主鍵(Primary Key)與外來鍵(Foreign Key):

  • 主鍵:用來唯一識別資料表中的每一筆資料。

  • 不可重複。

  • 不可為 NULL。

  • 可由單一欄位或多個欄位組成;由多個欄位組成時稱為複合主鍵(Composite Primary Key)。

  • 外來鍵:資料表中的欄位,其值參照另一資料表的主鍵或候選鍵,用來建立資料表之間的關聯。

  • 可以重複。

  • 在未設定 NOT NULL 的情況下,通常可以為 NULL。

  • 不要求唯一;是否唯一須視資料表設計及額外限制而定。

解題方法

判斷各選項是否符合主鍵、外來鍵的基本定義:

  1. 看到「主鍵」時,檢查是否涉及唯一性、非空性、單一欄位限制。
  2. 看到「外來鍵」時,檢查是否誤把主鍵的特性套用到外來鍵。
  3. 特別注意「必須」等絕對用語,因為外來鍵的主要功能是建立參照關係,不是保證資料唯一。

選項分析

(A) 一個資料表可有多個外來鍵——正確

一個資料表可以同時參照多個資料表,因此可設計多個外來鍵。

例如「訂單」資料表可能包含:

  • CustomerID:參照「客戶」資料表。
  • EmployeeID:參照「員工」資料表。
  • ProductID:參照「商品」資料表。

因此,同一個資料表擁有多個外來鍵是常見且合法的設計。

(B) 主鍵不可為空(NULL)——正確

主鍵必須能夠明確識別每一筆資料,因此不能是 NULL。若主鍵允許 NULL,資料庫便無法確定該筆資料的識別值。

主鍵具有兩項基本特性:

  1. 唯一性:不同資料列的主鍵值不可相同。
  2. 非空性:主鍵值不可為 NULL。
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 32 題2 分

使用氣泡排序法將 2,1,3,6,5,42, 1, 3, 6, 5, 4 由小到大排序,共需交換幾次?

這一題的完整詳解

核心觀念

氣泡排序法(Bubble Sort)反覆比較相鄰兩個元素:

  • 若左邊元素大於右邊元素,就交換。
  • 若左邊元素小於等於右邊元素,則不交換。
  • 由小到大排序時,每次交換都是為了消除一組「逆序」。

本題序列為:

2, 1, 3, 6, 5, 42,\ 1,\ 3,\ 6,\ 5,\ 4

交換次數等於原序列中的逆序數量,也就是前面的數字大於後面的數字之配對數。

解題方法一:依氣泡排序過程計算

第一趟由左至右比較相鄰元素:

  1. 比較 22 與 11:2>12>1,交換一次
1, 2, 3, 6, 5, 41,\ 2,\ 3,\ 6,\ 5,\ 4
  1. 比較 22 與 33:不交換。
  2. 比較 33 與 66:不交換。
  3. 比較 66 與 55:交換一次
1, 2, 3, 5, 6, 41,\ 2,\ 3,\ 5,\ 6,\ 4
  1. 比較 66 與 44:交換一次
1, 2, 3, 5, 4, 61,\ 2,\ 3,\ 5,\ 4,\ 6

第一趟共交換 33 次。

第二趟:

  1. 11 與 22:不交換。
  2. 22 與 33:不交換。
  3. 33 與 55:不交換。
  4. 55 與 44:交換一次
1, 2, 3, 4, 5, 61,\ 2,\ 3,\ 4,\ 5,\ 6

第二趟共交換 11 次。

此時序列已完成排序,因此總交換次數為:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 33 題2 分

關於快速排序法與合併排序法的穩定性,下列敘述何者正確?

這一題的完整詳解

核心觀念

本題考查排序演算法的「穩定性(stability)」。

若待排序資料具有相同鍵值,穩定排序會保留這些資料原本的先後次序。例如:

原順序姓名成績
1甲80
2乙80

排序後若仍為「甲、乙」,即表示排序具有穩定性;若變成「乙、甲」,則表示排序不穩定。

在一般教科書與考試所採用的典型實作中:

  • 合併排序法通常可維持相同鍵值資料的原始順序,因此屬於穩定排序。
  • 快速排序法在分割過程中常透過交換元素完成,可能使相同鍵值資料的相對順序改變,因此通常視為不穩定排序。

解題方法

判斷此題可直接比較兩種排序法的典型穩定性:

  1. 合併排序法先將資料分割,再將子序列合併。
  2. 合併時,若左右兩側出現相同鍵值,優先取左側元素,即可保留原本的相對順序。
  3. 快速排序法以樞紐元素進行分割,過程常交換左右兩端元素。
  4. 即使兩個元素的鍵值相同,交換仍可能使它們的先後次序顛倒。

因此,標準判斷為:

合併排序法:穩定\text{合併排序法:穩定} 快速排序法:通常不穩定\text{快速排序法:通常不穩定}

所以正確選項為 (B)。


選項分析

(A) 快速排序法穩定、合併排序法通常不穩定

錯誤。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 34 題2 分

下列關於編譯器與直譯器的敘述何者錯誤?

這一題的完整詳解

核心觀念

本題考查「編譯器(Compiler)」與「直譯器(Interpreter)」的基本差異:

  • 編譯器:先將原始程式碼轉換成目的程式,通常會產生目的檔、物件檔或可執行檔,再由電腦執行。
  • 直譯器:在程式執行過程中,逐行或逐段分析並執行原始程式碼,通常不需先產生完整的目的檔。
  • 編譯器通常先進行完整編譯,因此執行階段的轉譯工作較少,執行效率通常較高。
  • 直譯器在遇到錯誤時,常在執行到錯誤的敘述時立即停止。

本題要求找出「錯誤」的敘述,判斷重點在於「直譯器是否一定會產生目的檔」。

解題方法

逐一比較各選項與編譯器、直譯器的定義:

  1. 編譯器通常先將程式完整轉換,再執行。
  2. 直譯器通常邊分析、邊執行,不以產生完整目的檔為必要條件。
  3. 以「一定」等絕對字眼敘述時,須確認是否符合所有情況。

其中「直譯器一定會產生目的檔」與直譯器的基本特性不符,因此選 (C)。

選項分析

(A) 編譯型語言執行效率通常較高

正確。

編譯型語言通常在執行前,已由編譯器將原始程式碼轉換為機器碼或較接近機器碼的目的程式。執行時不必再逐行進行完整轉譯,因此執行效率通常高於傳統直譯式執行方式。

但「通常較高」並非表示所有編譯型語言在任何情況下都一定較快,實際效率仍會受到編譯最佳化、執行環境、程式設計方式及硬體等因素影響。就基本計算機概論的比較而言,本選項正確。

(B) 編譯器通常先完整編譯程式

正確。

編譯器的典型流程是先讀取原始程式碼,進行語法分析、語意分析、最佳化及目的碼產生等工作,完成編譯後,再執行產生的目的程式。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 35 題2 分

下列哪段程式碼可計算 1 至 50 之間所有 3 的倍數之總和?

這一題的完整詳解

核心觀念

本題考查:

  1. 取餘數運算子 %: k%3k \% 3 表示 kk 除以 33 的餘數。若 kk 是 33 的倍數,則必有:

k%3=0k \% 3 = 0

  1. 迴圈與條件判斷: 使用 for 逐一檢查 11 至 5050 的每個整數,符合「為 3 的倍數」的數字才累加至 sum。

11 至 5050 之間的 33 的倍數為:

3,6,9,…,483,6,9,\ldots,48

共有:

483=16 個\frac{48}{3}=16\text{ 個}

其總和可驗算為:

(3+48)×162=408\frac{(3+48)\times16}{2}=408


解題方法

判斷一個整數 kk 是否為 33 的倍數,最直接的方法是檢查除以 33 的餘數:

k%3==0k \% 3 == 0

因此,程式必須同時具備:

  • kk 從 11 走到 5050;
  • 只有 k%3==0k \% 3 == 0 時才進行累加。

選項 (A) 完整符合這兩項條件:

int k, sum = 0;
for (k = 1; k <= 50; k++)
 if (k % 3 == 0)
 sum = sum + k;

執行過程中,k 依序取 1,2,3,…,501,2,3,\ldots,50。當 k 為 3,6,9,…,483,6,9,\ldots,48 時,條件成立並加入 sum,最後得到:

sum=3+6+9+⋯+48=408sum=3+6+9+\cdots+48=408


選項分析

(A) 正確

for (k = 1; k <= 50; k++)
 if (k % 3 == 0)
 sum = sum + k;
  • k = 1,從 11 開始;
  • k <= 50,包含檢查到 5050;
  • k++,每次增加 11,不會漏掉任何整數;
  • k % 3 == 0,正確判斷 kk 是否為 33 的倍數;
  • 條件成立時才累加。

因此能正確計算所有 33 的倍數總和。


(B) 錯誤

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 36 題2 分

執行下列程式片段,變數 ss 的值最後為多少?

x = 1; s = 0;

while (x < 10) { s = s + 2; x = x + 1; }

這一題的完整詳解

核心觀念

本題考查 while 迴圈的執行條件,以及變數在每次迴圈中的更新方式。

while (x < 10) 的意義是:只要 x<10x<10,就執行迴圈區塊;當 x≥10x\geq 10 時,停止迴圈。

每次迴圈執行兩項操作:

  1. s=s+2s=s+2,使 ss 增加 22。
  2. x=x+1x=x+1,使 xx 增加 11。

解題方法

初始值為:

x=1,s=0x=1,\qquad s=0

迴圈執行條件為 x<10x<10,因此 xx 依序為 1,2,3,…,91,2,3,\ldots,9 時會執行,共執行:

9−1+1=9 次9-1+1=9\text{ 次}

每次執行使 ss 增加 22,所以:

s=0+9×2=18s=0+9\times 2=18

第 9 次執行後:

x=1+9=10x=1+9=10

此時 x<10x<10 不成立,迴圈停止。因此最後 s=18s=18。

選項分析

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 37 題2 分

關於常見程式語言應用領域的敘述,下列何者錯誤?

這一題的完整詳解

核心觀念

本題考查常見程式語言的主要應用領域、程式設計特性,以及程式執行方式:

  • Java:物件導向程式語言。
  • R:以統計分析、資料分析與資料視覺化為主要用途。
  • Python:常用於資料分析、人工智慧、機器學習及自動化。
  • C:通常須先經過編譯,產生可執行程式後才能執行。

判斷此類題目時,應注意「主要用途」與「可以使用」的差別。某種語言能夠應用於某領域,不代表該領域就是它的主要應用領域。

解題方法

逐一檢查各選項對程式語言特性或應用領域的描述:

  1. 判斷 Java 是否屬於物件導向語言。
  2. 判斷 R 語言的主要用途是否為網頁前端開發。
  3. 判斷 Python 是否常用於資料分析與人工智慧。
  4. 判斷 C 語言的典型執行方式是否需要編譯。

其中,R 語言的核心定位是統計運算與資料分析,網頁前端開發則主要使用 HTML、CSS 與 JavaScript,因此可直接判定 (B) 錯誤。

選項分析

(A) Java 為物件導向程式語言——正確

Java 是典型的物件導向程式語言,支援類別、物件、封裝、繼承與多型等概念。

Java 程式通常先編譯成中介形式的位元組碼,再由 Java Virtual Machine(JVM)執行。其「物件導向」特性與「需經編譯」是不同層面的概念,本選項對 Java 的分類正確。

(B) R 語言主要用於網頁前端開發——錯誤

R 語言主要用於:

  • 統計分析
  • 資料分析
  • 資料視覺化
  • 機器學習
  • 科學研究與數據運算
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 38 題2 分

在物件導向程式設計中,哪一種機制可讓新類別直接使用既有類別的屬性與方法?

這一題的完整詳解

核心觀念

本題考查物件導向程式設計(Object-Oriented Programming, OOP)的四大核心概念:

  • 繼承(Inheritance):新類別可取得既有類別的屬性與方法,並可進一步擴充或覆寫。
  • 多型(Polymorphism):同一操作或介面,可依實際物件類型呈現不同執行結果。
  • 抽象化(Abstraction):保留重要特徵,隱藏不必要的實作細節。
  • 封裝(Encapsulation):將資料與操作資料的方法集中於類別中,並控制外部存取權限。

題幹中的關鍵語句是「新類別直接使用既有類別的屬性與方法」,這正是繼承的定義。

解題方法

判斷本題可直接抓住「新類別」與「既有類別」之間的關係:

  1. 既有類別通常稱為父類別、基底類別或超類別。
  2. 新類別通常稱為子類別、衍生類別或次類別。
  3. 子類別透過繼承取得父類別既有的屬性與方法。
  4. 子類別也能增加自己的成員,或重新定義父類別的方法。

例如:

class Animal {
 eat
}

class Dog extends Animal {
 bark
}

在此例中,Dog 繼承 Animal,因此 Dog 可使用 Animal 的 eat 方法,同時增加自己的 bark 方法。

因此,題幹所描述的機制是:

既有類別的屬性與方法⟶新類別直接取得\text{既有類別的屬性與方法} \longrightarrow \text{新類別直接取得}

其對應概念為繼承。

選項分析

(A) 繼承(Inheritance)—正確

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 39 題2 分

SQL 是關聯式資料庫常用的查詢語言,在 SQL 查詢語句中,FROM 子句的主要用途為何?

這一題的完整詳解

核心觀念

SQL 查詢通常使用 SELECT 陳述式,其基本結構如下:

SELECT 欄位名稱
FROM 資料表
WHERE 查詢條件
ORDER BY 排序欄位;

各子句的主要功能不同:

  • SELECT:指定要擷取、顯示的欄位。
  • FROM:指定查詢所使用的資料表、檢視表,或其他資料來源。
  • WHERE:設定資料列的篩選條件。
  • ORDER BY:規範查詢結果的排序順序。

本題考查的是 SQL 各子句的基本用途。

解題方法

判斷 FROM 子句的功能,可直接觀察其英文語意:FROM 表示「從何處取得資料」。

例如:

SELECT 姓名, 成績
FROM 學生成績;

此語句表示:從「學生成績」資料表中,查詢「姓名」及「成績」欄位。因此,FROM 的主要作用就是指定查詢時要使用的資料表或資料來源。

若查詢涉及多個資料表,也可搭配 JOIN:

SELECT 學生.姓名, 班級.班名
FROM 學生
JOIN 班級 ON 學生.班級編號 = 班級.班級編號;

其中 FROM 先指定主要資料表,JOIN 再連接其他資料表。

選項分析

(A) 定義資料表結構:錯誤

定義資料表結構屬於資料定義語言(DDL)的功能,通常使用:

CREATE TABLE
ALTER TABLE
DROP TABLE

例如:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 40 題2 分

下列何者不屬於資料庫管理系統(DBMS)?

這一題的完整詳解

核心觀念

本題考查「資料庫管理系統」(Database Management System, DBMS)的基本定義與常見軟體辨識。

DBMS 是專門用來建立、儲存、管理、查詢及維護資料庫的系統軟體,通常具備下列功能:

  • 建立與管理資料表
  • 新增、修改、刪除及查詢資料
  • 使用 SQL 等查詢語言
  • 控制資料的完整性與一致性
  • 管理多人同時存取
  • 提供權限控管、備份與復原功能

判斷本題的關鍵,在於辨認各選項是否以「資料庫管理」為主要功能,而非單純能否儲存表格資料。

解題方法

逐一檢視各軟體的主要用途:

  1. 若軟體是專門管理資料庫,屬於 DBMS。
  2. 若軟體主要是試算表工具,雖然能儲存表格資料、排序及篩選,但不屬於完整的 DBMS。
  3. 依此判斷即可找出不屬於 DBMS 的選項。

選項分析

(A) MySQL:錯誤選項

MySQL 是常見的關聯式資料庫管理系統,使用資料表儲存資料,並可透過 SQL 進行資料新增、修改、刪除與查詢。

因此,MySQL 屬於 DBMS。

(B) Microsoft Excel:正確答案

Microsoft Excel 是試算表軟體,主要功能包括:

  • 表格資料輸入
  • 公式與函數計算
  • 排序與篩選
  • 圖表製作
  • 基本資料分析
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

其他考古題

115 年電腦打字的其他科目

電腦打字《計算機大意》其他年度