110 鐵路特考員級 電子工程 計算機概要 考古題詳解

110 年・鐵路特考・員級・電子工程
試題代碼 計算機概要

第 1 題2 分

32 位元電腦中,若記憶體分頁大小為 2048 位元組,該系統最多可支援幾個記憶體分頁?

這一題的完整詳解

核心觀念

記憶體分頁數由「可定址的記憶體總容量」除以「每頁大小」求得。32 位元位址可表示 2322^{32} 個位址;若以位元組為定址單位,則可定址 2322^{32} 個位元組。每個分頁大小為 2048=2112048=2^{11} 位元組。

解題方法

分頁數=可定址記憶體大小每頁大小=232 位元組211 位元組=232−11=221\text{分頁數} =\frac{\text{可定址記憶體大小}}{\text{每頁大小}} =\frac{2^{32}\text{ 位元組}}{2^{11}\text{ 位元組}} =2^{32-11} =2^{21}

因此系統最多可支援 2212^{21} 個記憶體分頁。

選項分析

🔒

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

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

免費註冊

第 2 題2 分

某循序程式的執行時間中有 90% 是可被平行化(parallelizable)的部分。若欲以多核心(multi-core)處理器取得 2 倍的加速(speedup),至少需要幾個核心?

這一題的完整詳解

核心觀念

本題考查阿姆達爾定律(Amdahl’s Law):程式中可平行化的部分能隨核心數增加而加速,但不可平行化的部分仍須循序執行,限制了整體加速比。

若可平行化比例為 PP、核心數為 NN,理想加速比為:

S(N)=1(1−P)+PNS(N)=\frac{1}{(1-P)+\frac{P}{N}}

本題 P=0.9P=0.9,不可平行化比例為 1−P=0.11-P=0.1。

解題方法

要求至少達到 22 倍加速,代入公式並令加速比不小於 22:

10.1+0.9N≥2\frac{1}{0.1+\frac{0.9}{N}}\ge 2

分母為正,因此:

0.1+0.9N≤0.50.1+\frac{0.9}{N}\le 0.5 0.9N≤0.4⟹N≥2.25\frac{0.9}{N}\le 0.4 \quad\Longrightarrow\quad N\ge 2.25
🔒

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

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

免費註冊

第 3 題2 分

下列計算機語言,何者可用於合成(synthesis)硬體電路?

① C++ ② Python ③ Verilog ④ Java ⑤ VHDL

這一題的完整詳解

核心觀念

本題考查硬體描述語言與一般程式語言的差異。硬體合成(synthesis)是將描述電路功能的程式,轉換成可實作的邏輯電路或硬體配置。

Verilog 與 VHDL 是常見的硬體描述語言(HDL),可用於描述數位電路,並透過合成工具轉換為硬體電路。

解題方法

辨認各語言是否以描述硬體結構或電路行為為主要用途:

  • Verilog、VHDL:硬體描述語言,可用於電路合成。
  • C++、Python、Java:一般用途程式語言,主要描述軟體執行流程,不是本題所問的典型硬體描述語言。

因此,符合題意的是③ Verilog 與⑤ VHDL。

選項分析

🔒

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

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

免費註冊

第 4 題2 分

將二進制數字 0101101001011010 轉成十進制數字,答案為:

這一題的完整詳解

核心觀念

二進位採 22 為底,每個位元由右至左依序代表 20、21、222^0、2^1、2^2 等權值。將二進位轉為十進位時,把每個位元乘上其位權後加總。

解題方法

將 01011010201011010_2 由右至左標示位權:

位元01011010位權2726252423222120\begin{array}{c|cccccccc} \text{位元} & 0&1&0&1&1&0&1&0\\ \text{位權} & 2^7&2^6&2^5&2^4&2^3&2^2&2^1&2^0 \end{array}

只有位元為 11 的位置需要加總,因此:

010110102=26+24+23+21=64+16+8+2=901001011010_2 =2^6+2^4+2^3+2^1 =64+16+8+2 =90_{10}

所以十進位數字是 9090。

選項分析

🔒

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

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

免費註冊

第 5 題2 分

假設陣列 AA 有 nn 個整數的元素,讀取或寫入陣列 AA 的第 ii 個元素的值,i≤ni\leq n,電腦所需要的時間:

這一題的完整詳解

核心觀念

本題考查陣列的隨機存取與時間複雜度。一般陣列的元素儲存在連續記憶體位置,因此可依起始位址與索引直接計算指定元素的位址,不必逐一讀取前面的元素。

若每個元素占 ww 個位元組,陣列起始位址為 base\text{base},則第 ii 個元素的位址可表示為:

address(A[i])=base+(i−1)w\text{address}(A[i])=\text{base}+(i-1)w

解題方法

讀取或寫入 A[i]A[i] 時,電腦依索引計算出該元素的記憶體位址,再直接存取該位置。位址計算與存取所需的步驟數不會隨陣列元素個數 nn 增加,因此時間複雜度為 O(1)O(1),也就是常數時間。

選項分析

🔒

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

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

免費註冊

第 6 題2 分

若全彩圖像中每一個像素(Pixel)需以三個位元組(Bytes)來表示,每一個像素的顏色有多少種變化?

這一題的完整詳解

核心觀念

本題考彩色影像的像素表示方式與位元組、位元的換算。每個位元組有 88 個位元;若每個像素使用三個位元組,便有 3×8=243 \times 8 = 24 個位元可表示顏色。

解題方法

每個位元可表示 00 或 11,因此 2424 個位元共有

224=(28)3=256×256×2562^{24} = (2^8)^3 = 256 \times 256 \times 256

種組合。也可理解為三個位元組各有 256256 種取值,三者組合數相乘,故選項 D 正確。

選項分析

  • (A) 3×83 \times 8 種:錯誤。 3×8=243 \times 8 = 24 是像素所使用的位元數,不是顏色種類數。位元數為 nn 時,組合數應為 2n2^n。
🔒

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

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

免費註冊

第 7 題2 分

執行下列 C 語言的程式,輸出結果為何?

void foo(int n1, int n2) { int temp;

temp = n1;
n1 = n2;
n2 = temp;

}

int main(void) { int x = 1, y = 2, z = 3;

foo(x, y);
foo(y, z);

printf("%d, %d, %d", x, y, z);

}

這一題的完整詳解

核心觀念

本題考 C 語言函式的傳值呼叫。呼叫 foo(x, y) 時,函式參數 n1、n2 會各自取得 x、y 當時的值;函式內交換的是這兩個區域變數,不會直接改動 main 裡的 x、y。因此,foo 執行完畢後,main 中的變數仍維持原值。

解題方法

初始值為:

x=1,y=2,z=3x=1,\quad y=2,\quad z=3

第一次呼叫 foo(x, y) 時,n1=1、n2=2。函式內交換參數後,只有區域變數 n1、n2 改變;函式返回後,x、y 仍是 11、22。

第二次呼叫 foo(y, z) 時,n1=2、n2=3。同樣地,交換只發生在函式的區域參數中,返回後 y、z 仍是 22、33。

因此,printf 輸出:

1, 2, 3

選項分析

🔒

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

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

免費註冊

第 8 題2 分

有關以遞迴(Recursion)或迴圈(Iteration)設計程式,下列何者錯誤?

這一題的完整詳解

核心觀念

本題考遞迴與迴圈的互相轉換,以及兩者執行時使用的控制機制。

  • 遞迴:函式在執行過程中呼叫自己。為了記錄每次呼叫的返回位置、區域變數與參數,執行時會使用呼叫堆疊(Call Stack)。
  • 迴圈:透過條件判斷與重複執行程式區塊控制流程,不必為每次重複建立函式呼叫紀錄。

解題方法

逐一檢查各選項。遞迴與迴圈在一般可計算的程式設計情境中通常可以互相改寫;但要特別辨認執行時資料結構:遞迴依靠堆疊保存呼叫狀態,佇列則是先進先出,並非遞迴呼叫的主要控制結構。迴圈本身也不必使用堆疊維護函式呼叫順序。

選項分析

(A) 所有的遞迴函式都可以轉換為迴圈函式:正確。 遞迴可改寫成迴圈;若遞迴具有尚待返回時處理的工作,改寫時可用明確的堆疊保存呼叫狀態。尾端遞迴則常能直接轉換為迴圈。

🔒

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

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

免費註冊

第 9 題2 分

下列哪一個不是堆疊(Stack)的特性?

這一題的完整詳解

核心觀念

堆疊(Stack)是一種線性資料結構,遵循後進先出(Last In, First Out,LIFO):最後放入的資料會最先取出。堆疊的插入與刪除都在同一端進行,這一端稱為頂端(Top)。

在程序的記憶體配置中,區域變數、函式呼叫資訊等常由執行期堆疊(runtime stack)管理;動態配置的記憶體則通常屬於堆積(heap),兩者是不同的概念。

解題方法

逐項比對堆疊的基本定義,並辨別選項描述的是「堆疊」還是「堆積」:

  • 若描述後進先出,或在頂端插入、刪除,符合堆疊特性。
  • 若描述程序的動態記憶體配置,則不符合一般計算機概要對堆疊的定義。

選項分析

🔒

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

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

免費註冊

第 10 題2 分

如果圖中不存在迴路(Cycles),那麼在具有 7 個頂點的簡單有向圖(Simple directed graph)中,最多有多少個邊?

這一題的完整詳解

核心觀念

有向圖的邊具有方向。若圖中不存在迴路(cycle),頂點可排成一個拓樸順序,使每條邊都由順序較前的頂點指向較後的頂點。簡單有向圖不允許重複邊,也不包含頂點指向自己的自環。

解題方法

依拓樸順序排列 7 個頂點。若每一對頂點之間都放一條由前者指向後者的邊,就不會形成迴路,且邊數最多。

每一對頂點可形成一條邊,因此最多邊數為:

(72)=7×62=21\binom{7}{2}=\frac{7 \times 6}{2}=21

例如,頂點依序為 v1,…,v7v_1,\ldots,v_7,可加入所有滿足 i<ji<j 的邊 vi→vjv_i\to v_j。任何沿著邊前進時,頂點順序都只會向後,因此不可能回到原頂點形成迴路。

因此,依題目所述「簡單有向圖」且「不存在迴路」,最多應有 21 條邊。題目選項中的 12、7、6、14 均不是此數值,與官方答案 C(6)不符。

🔒

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

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

免費註冊

第 11 題2 分

IPv6 協定能提供更多 IP 位址空間,解決 IPv4 數量不足問題。有關 IPv6 的長度為何?

這一題的完整詳解

核心觀念

本題考查 IPv6 位址長度。IPv6 位址長度為 128 位元(bits);IPv4 位址則為 32 位元。位址長度增加,能提供更大的位址空間。

解題方法

直接辨認協定版本與位址長度:IPv4 為 32 位元,IPv6 為 128 位元。因此,本題選擇標示 128 bits 的選項。

選項分析

🔒

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

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

免費註冊

第 12 題2 分

當同一個瀏覽器同時開啟兩個 TCP 連線到同一台 Web 伺服器時,伺服器收到的連線訊息中,哪一個欄位最有可能不同?

這一題的完整詳解

核心觀念

TCP 以四個欄位識別一條連線:來源 IP 位址、來源埠、目的 IP 位址與目的埠。兩條連線若同時連到同一台伺服器,伺服器必須能分辨它們;同一部用戶端電腦同時連線時,通常以不同的來源埠建立不同連線。

解題方法

以用戶端和伺服器兩端的資訊判斷:

  • 兩條連線來自同一部瀏覽器所在的電腦,因此來源 IP 位址相同。
  • 兩條連線連到同一台 Web 伺服器,因此目的 IP 位址相同。
  • Web 伺服器提供相同服務,因此目的埠通常相同,例如 HTTP 的 80 埠或 HTTPS 的 443 埠。
  • 用戶端為區分同時建立的連線,會使用不同的來源埠。

因此,最有可能不同的是來源埠。

選項分析

🔒

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

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

免費註冊

第 13 題2 分

某個數位電路設計使用到一個解多工器(demultiplexer),該解多工器的選擇控制線共有 6 條,下列敘述何者正確?

這一題的完整詳解

核心觀念

解多工器(demultiplexer,簡稱 DEMUX)有 1 個資料輸入端,並依選擇控制線的組合,將輸入訊號送到其中一個輸出端。若有 nn 條選擇控制線,最多可選擇的輸出端數為:

2n2^n

解題方法

本題有 6 條選擇控制線,因此最多可選擇的輸出端數為:

26=642^6 = 64

所以此解多工器有 1 個輸入通道,至多有 64 個輸出通道。

選項分析

🔒

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

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

免費註冊

第 14 題2 分

九進位數值 (75)9(75)_9 以三進位表示,下列何者正確?

這一題的完整詳解

核心觀念

不同進位制的數值可以先轉成十進位,再轉成目標進位。本題也可利用 9=329=3^2,將九進位的每一位直接換成兩位三進位數字。

解題方法

九進位數 (75)9(75)_9 的位值展開為:

(75)9=7×9+5=68(75)_9=7\times 9+5=68

將 6868 轉成三進位,依序除以 33 並記下餘數:

68÷3=22 餘 222÷3=7 餘 17÷3=2 餘 12÷3=0 餘 2\begin{aligned} 68\div 3&=22\text{ 餘 }2\\ 22\div 3&=7\text{ 餘 }1\\ 7\div 3&=2\text{ 餘 }1\\ 2\div 3&=0\text{ 餘 }2 \end{aligned}

由下往上讀取餘數,得到 (2112)3(2112)_3,因此選項 D 正確。

也可直接利用 9=329=3^2:每個九進位位數都可換成兩位三進位數。7=(21)37=(21)_3,5=(12)35=(12)_3,所以 (75)9=(21 12)3=(2112)3(75)_9=(21\,12)_3=(2112)_3。

🔒

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

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

免費註冊

第 15 題2 分

愈來愈多的消費型相機採用 CMOS(Complementary metal-oxide semiconductor)感光元件來擷取畫面。相較於 CCD(Charge-coupled device)感光元件,對 CMOS 的敘述,下列何者錯誤?

這一題的完整詳解

核心觀念

本題考 CMOS 與 CCD 兩種影像感光元件的特性差異。CMOS 感光元件通常具備耗電較低、製造成本較低、容易整合讀出電路等優點,因此常見於智慧型手機及消費型相機。像素上限則取決於感光元件製程、尺寸與設計,不能概括說 CMOS 的最高像素較低。

解題方法

逐項判斷敘述是否符合 CMOS 相較於 CCD 的常見特性。前三項描述 CMOS 常見的應用與優勢;第四項把「最高像素較低」當成 CMOS 的固定限制,並不成立,因此選 D。

選項分析

  • (A) 較常見於智慧型手機上:正確。 CMOS 感光元件易於與讀出電路整合,且耗電較低、成本較具優勢,適合手機等講求體積與耗電的裝置。
🔒

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

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

免費註冊

第 16 題2 分

作業系統的程序排程器(process scheduler)會管理電腦中每一個程序(process)的狀態。若某一程序 P1P1 原本在使用 CPU,但遇到需要從鍵盤讀取資料的狀況,則程序 P1P1 會被改變為何種狀態?

這一題的完整詳解

核心觀念

程序使用 CPU 時處於 Running(執行)狀態。若程序因等待外部事件而無法繼續執行,例如等待鍵盤輸入,作業系統會將它移至 Waiting(等待)狀態,也常稱 Blocked(阻塞)狀態。事件完成後,程序才會回到 Ready(就緒)狀態,等待再次取得 CPU。

解題方法

題目指出 P1P1 正在使用 CPU,之後需要從鍵盤讀取資料。鍵盤輸入是外部 I/O 事件;等待輸入期間,P1P1 無法繼續使用 CPU,因此由 Running 轉為 Waiting。

狀態轉換可表示為:

Running→等待鍵盤輸入Waiting\text{Running} \xrightarrow{\text{等待鍵盤輸入}} \text{Waiting}

選項分析

🔒

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

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

免費註冊

第 17 題2 分

根據以下的 C++ 宣告,下列何者不是「ListB」類別的私有成員(private member)?

class ListA { int first;

public: void add(int); };

class ListB : private ListA { int second;

public: void put(int); };

這一題的完整詳解

核心觀念

本題考 C++ 的存取權限與私有繼承。

  • ListA 未標示存取權限的成員 first,在 class 中預設為 private。
  • ListB : private ListA 表示以 private 方式繼承 ListA:基底類別的 public 與 protected 成員,在 ListB 中會以 private 權限呈現。
  • ListB 自己宣告的成員,則依其所在區段的存取標籤判斷。

解題方法

逐一判斷各成員屬於「從 ListA 繼承而來」或「在 ListB 內自行宣告」,再套用各自的存取規則:

  • first 原本是 ListA 的 private 成員,不會因繼承而變成 ListB 可存取的成員;但它仍是基底類別子物件中的私有成員。
  • add 原本是 ListA 的 public 成員,經 private 繼承後,在 ListB 中成為 private。
  • second 是 ListB 自行宣告的成員,位於 public: 之前,因此是 private。
  • put 位於 ListB 的 public: 之後,因此是 public。

選項分析

🔒

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

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

免費註冊

第 18 題2 分

執行下列 Python 語言程式碼片段後,產生的輸出為何?

a = 40 y = 10

if (a < 50): if (a < 30): y = y + 10 else: y = y - 10

print(y)

這一題的完整詳解

核心觀念

本題考查 Python 的 if、else 配對與巢狀條件判斷。Python 以縮排表示程式區塊;else 會配對到與它縮排層級相同的 if。

解題方法

先依序判斷條件,再執行所屬區塊:

  1. 初始值為 a = 40、y = 10。
  2. 判斷外層條件 a < 50:40<5040 < 50 成立,因此進入外層 if 區塊。
  3. 判斷內層條件 a < 30:40<3040 < 30 不成立,因此不執行 y = y + 10。
  4. else 與外層 if (a < 50) 同層縮排,屬於外層條件的另一分支。由於外層條件成立,不執行 y = y - 10。
🔒

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

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

免費註冊

第 19 題2 分

下列何者為 nn 個節點的二元搜尋樹(Binary search tree)最糟搜尋時間複雜度?

這一題的完整詳解

核心觀念

二元搜尋樹(Binary Search Tree, BST)符合以下順序性質:每個節點的左子樹鍵值小於該節點,右子樹鍵值大於該節點。搜尋時,從根節點開始比較目標值,每次依比較結果往左或往右走,因此搜尋時間與樹高 hh 成正比,為 O(h)O(h)。

解題方法

若樹保持平衡,樹高約為 log⁡n\log n,搜尋時間為 O(log⁡n)O(\log n)。但題目問的是「最糟」情況;當資料依序插入等情況使樹退化成單鏈時,樹高可達 n−1n-1。此時搜尋目標可能需要逐一比較最多 nn 個節點,因此:

O(h)=O(n)O(h)=O(n)

選項分析

🔒

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

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

免費註冊

第 20 題2 分

圖示為一個二元表示樹(expression tree),下列何者為其前序(Preorder)輸出?

樹根為 ++;左子樹根為 ∗*,其左子樹為 −-,−- 的左右子節點分別為 DD、EE,其右子節點為 AA;右子樹根為 //,其左右子節點分別為 BB、CC。

🖼️ 本題原卷含圖表。基於試題來源之版權考量,本站不轉載原卷影像; 題目文字已完整轉錄,圖表請自行參閱考選部公告之試題原檔。
這一題的完整詳解

核心觀念

前序走訪(Preorder)依序為「根節點、左子樹、右子樹」,也就是先輸出運算子,再依序走訪左、右運算元所在的子樹。

解題方法

從樹根開始走訪:

  1. 根節點是 ++,先輸出 ++。
  2. 走訪左子樹:先輸出 ∗*;再走訪它的左子樹,輸出 −-、DD、EE;最後輸出右子節點 AA。左子樹的前序結果為 *-DEA。
  3. 走訪右子樹:先輸出 //,再輸出左、右子節點 BB、CC。右子樹的前序結果為 /BC。

合併後為 +*-DEA/BC。

選項分析

🔒

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

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

免費註冊

第 21 題2 分

將訊息切割成許多較小封包,封包大小皆固定,且每個封包都知道目的地位址,各自傳送到目的地之後,由目的地電腦將封包重新組合之交換,為何種交換?

這一題的完整詳解

核心觀念

本題考查資料交換方式的特徵。分封交換(Packet Switching)會將訊息切割成較小的封包,各封包帶有目的地位址,能各自經由網路傳送,抵達目的地後再重新組合。題目描述的正是這種方式。

解題方法

抓住題幹中的關鍵線索:「切割成許多較小封包」、「每個封包都知道目的地位址」以及「目的地電腦將封包重新組合」。這些都是分封交換的特徵,因此選 (B)。

選項分析

🔒

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

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

免費註冊

第 22 題2 分

若 5G 行動通訊的網速為 1 Gbps,假設傳輸時控制訊號及其他等非資料需要用去 50% 網速,傳送 50 MB 檔案需時為多少?

這一題的完整詳解

核心觀念

本題考查網路傳輸速率與檔案大小的單位換算,以及有效資料速率的計算。網速以 bps(bit per second,每秒位元數)表示,檔案大小的 B 則是 Byte(位元組);1 Byte=8 bits1\text{ Byte}=8\text{ bits}。

解題方法

控制訊號及其他非資料占去 50%50\% 網速,因此可用於傳送檔案的有效速率為:

1 Gbps×(1−50%)=0.5 Gbps1\text{ Gbps}\times(1-50\%)=0.5\text{ Gbps}

換算成每秒位元數:

0.5 Gbps=0.5×109 bits/s0.5\text{ Gbps}=0.5\times10^9\text{ bits/s}

50 MB50\text{ MB} 換算成位元數(採 1 MB=106 Bytes1\text{ MB}=10^6\text{ Bytes}):

50×106 Bytes×8=400×106 bits50\times10^6\text{ Bytes}\times8 =400\times10^6\text{ bits}

傳輸時間為資料量除以有效速率:

🔒

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

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

免費註冊

第 23 題2 分

常見的 TCP 阻斷式攻擊(Denial-of-Service Attack),主要是利用 TCP 標頭代碼欄位中的下列何種旗標(Flag)?

這一題的完整詳解

核心觀念

本題考查 TCP 連線建立方式,以及常見的 SYN Flood 阻斷式攻擊。TCP 以三向交握建立連線:用戶端送出設定 SYN 旗標的封包,伺服器回覆 SYN-ACK,再由用戶端送出 ACK。伺服器收到 SYN 後,會暫存尚未完成交握的連線請求。

解題方法

判斷攻擊利用哪個旗標,可從 TCP 三向交握中伺服器需要等待後續確認的步驟切入。SYN Flood 攻擊者大量送出 SYN 封包,卻不完成後續交握,使伺服器持續保留半開連線狀態;當相關佇列或資源耗盡,合法連線便可能無法建立,形成阻斷服務。

因此,這類攻擊主要利用 TCP 標頭中的 SYN 旗標。

選項分析

🔒

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

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

免費註冊

第 24 題2 分

一圖(Graph)GG 有 nn 個節點(Vertices)以及 ee 個邊(Edges),若用相鄰矩陣(Adjacency matrix)AA 來表示 GG,則 AA 中的元素(Elements)應該有幾個?

這一題的完整詳解

核心觀念

相鄰矩陣(Adjacency matrix)用來記錄圖中每一對頂點是否相鄰。若圖有 nn 個頂點,矩陣的列與欄都各對應一個頂點,因此矩陣大小為 n×nn\times n。

解題方法

每個頂點都要能與其他每個頂點(包含自身)配對,作為矩陣的一個位置。故元素總數為:

n×n=n2n\times n=n^2

邊數 ee 會影響矩陣中有多少位置記錄為相鄰,但不影響矩陣的尺寸。

選項分析

🔒

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

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

免費註冊

第 25 題2 分

相較於複雜指令集電腦 CISC(Complex Instruction Set Computer)CPU 而言,精簡指令集電腦 RISC(Reduced Instruction Set Computer)CPU 的特點,不包括下列哪一項?

這一題的完整詳解

核心觀念

本題考查 RISC 與 CISC 的典型設計取向。RISC 著重精簡、規則的指令集與指令格式,讓指令解碼和管線化較容易;CISC 則常以較多、較複雜的指令支援較多樣的操作。兩者也會影響程式編譯後的機器碼大小。

解題方法

逐項比對選項是否符合 RISC 的典型特點。A、B、C 都是 RISC 常見的設計特性;D 說 RISC 編譯出的機器碼較省記憶體,與典型比較方向相反。RISC 指令通常較簡單,完成同一工作時可能需要較多條指令,因此程式碼不一定較短,甚至可能比 CISC 機器碼占用更多空間。

選項分析

🔒

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

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

免費註冊

第 26 題2 分

SYN Flood 是一種針對 TCP 的阻斷服務攻擊,主要利用下列何者以達到影響正常連線的目的?

這一題的完整詳解

核心觀念

SYN Flood(SYN 洪水攻擊)利用 TCP 三向交握尚未完成時,伺服器會保留半開連線狀態這項特性。伺服器可供等待完成交握的半開連線數量有限;攻擊者大量送出 SYN 封包,卻不完成後續交握,使這些連線資源被占用,進而影響正常使用者建立連線。

解題方法

判斷本題的關鍵,是找出 SYN Flood 攻擊消耗的伺服器資源。

TCP 建立連線時,客戶端先送出 SYN,伺服器回覆 SYN-ACK,並等待客戶端再送 ACK。等待最後一個 ACK 的期間,伺服器會保留半開連線的紀錄。當大量連線停留在這個狀態,有限的半開連線佇列可能被占滿,正常連線便難以建立。

選項分析

🔒

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

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

免費註冊

第 27 題2 分

關於將 nn 筆資料進行排序(Sorting),下列敘述何者正確?

這一題的完整詳解

核心觀念

本題考各種排序法的時間複雜度,尤其要分清最佳、平均與最壞情況。O(⋅)O(\cdot) 表示演算法執行時間的漸近上界;排序法的複雜度須依演算法特性及輸入資料排列情況判斷。

解題方法

逐一比對選項所述的排序法與其時間複雜度:

  • 快速排序:平均情況為 O(nlog⁡n)O(n\log n),最壞情況為 O(n2)O(n^2)。
  • 插入排序:最佳情況為 O(n)O(n),平均及最壞情況為 O(n2)O(n^2)。
  • 合併排序:最佳、平均及最壞情況皆為 O(nlog⁡n)O(n\log n)。
  • 選擇排序:最佳、平均及最壞情況皆為 O(n2)O(n^2)。

因此,符合敘述的是合併排序。

選項分析

(A) 錯誤。 快速排序在每次分割都能大致平均時,時間複雜度為 O(nlog⁡n)O(n\log n);若每次分割都極度不平衡,例如每次只分出一筆資料,遞迴深度會達 nn,總比較次數為 1+2+⋯+(n−1)=O(n2)1+2+\cdots +(n-1)=O(n^2)。因此其最壞情況不是 O(nlog⁡n)O(n\log n)。

🔒

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

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

免費註冊

第 28 題2 分

若要將兩個各自由小到大排序好的數列(長度分別為 5 和 6)進行合併排序(Merge sort),使得合併後的數列也能由小到大排列,則合併過程至少需要進行幾次數字比較?

這一題的完整詳解

核心觀念

合併排序(Merge sort)的合併步驟,是比較兩個已排序數列目前尚未合併的最小值,將較小者放入結果數列,再繼續比較。當其中一個數列已全部取完,另一個數列剩餘元素便可直接接到結果末端,不需要再比較。

解題方法

設兩個數列長度分別為 m=5m=5、n=6n=6。合併時,最少可以在其中一個數列的最後一個元素被取出前,就讓另一個數列先全部取完;此時尚未取出的最後一個元素可直接接上。

因此,最少比較次數為:

min⁡(m,n)=min⁡(5,6)=5\min(m,n)=\min(5,6)=5

例如兩個數列分別為 1,2,3,4,51,2,3,4,5 與 6,7,8,9,10,116,7,8,9,10,11。前五次比較中,每次都取出第一個數列的元素,接著第一個數列已空,將第二個數列剩餘元素直接接上,合計只比較 55 次。

🔒

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

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

免費註冊

第 29 題2 分

考慮下列三種排班演算法:先到先服務排班法(FCFS)、循環排班法(RR)、最短剩餘時間優先排班法(SRTF),其中有多少種有機會導致飢餓(starvation)問題?

這一題的完整詳解

核心觀念

飢餓(starvation)是指某個行程長期無法取得 CPU,等待時間可能無限延長。判斷排班法是否可能造成飢餓,重點在於:行程是否可能一直被其他行程排在前面或搶先執行。

解題方法

逐一檢查三種排班法:

  • FCFS(先到先服務):依到達順序執行,通常採非搶先方式。已進入就緒佇列的行程,前面只有有限個先到行程時,前面的行程完成後便會輪到它。因此,FCFS 不會因排班規則本身造成飢餓。
  • RR(循環排班):每個行程輪流取得固定時間片。只要時間片結束後會將行程排回就緒佇列尾端,且排程持續運作,等待中的行程便會依序取得 CPU,因此不會因排班規則本身造成飢餓。
  • SRTF(最短剩餘時間優先):優先執行剩餘 CPU 執行時間最短的行程,且屬搶先式排班。
🔒

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

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

免費註冊

第 30 題2 分

依一致性限制,若外來鍵的值不是它所參照的關聯主鍵中的值,則這個外來鍵的值之敘述,下列何者正確?

這一題的完整詳解

核心觀念

本題考查關聯式資料庫的參照完整性(一致性限制)。外來鍵用來參照另一個關聯中的主鍵;依參照完整性規則,外來鍵若有非空值,該值必須出現在被參照的主鍵值集合中。若外來鍵沒有對應的主鍵值,則必須為虛值(NULL)。

解題方法

題幹已限定外來鍵的值「不是它所參照的關聯主鍵中的值」。依參照完整性判斷:

  • 外來鍵若為非 NULL,就必須能在被參照的主鍵中找到相同值。
  • 題目指出找不到相同值,因此該外來鍵必須是 NULL。

這裡的 NULL 表示沒有提供可用的參照值,不是一般的資料值。

選項分析

🔒

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

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

免費註冊

第 31 題2 分

如下所示之 C 程式,其輸出為何?

#include <stdio.h>

int cc = 0, xx = 0, yy = 0;

int f1(int nn) { static int cc = 0; int xx = nn; cc++; }

int f2(int nn) { static int cc = 0; int yy = nn; xx = nn; cc++; }

int main(void) { f1(1); f2(2);

printf("cc = %d, xx = %d, yy = %d\n", cc, xx, yy);

return 0;

}

這一題的完整詳解

核心觀念

本題考查 C 語言的作用域與 static 區域變數。

  • 全域變數 cc、xx、yy 在程式開始時皆初始化為 0。
  • 函式內以相同名稱宣告的區域變數會遮蔽同名全域變數。f1、f2 中的 static int cc 各自是不同的函式區域變數,不是全域 cc。
  • static 區域變數的生命期持續至程式結束;但本題沒有讀取它們的值。
  • int xx = nn; 與 int yy = nn; 分別宣告函式內的區域變數,不會改動全域 xx 或 yy。只有明確指定全域變數,例如 xx = nn;,才會改變全域 xx。

解題方法

依序追蹤全域變數的值:

  1. 初始時,全域變數為 cc = 0、xx = 0、yy = 0。
  2. 呼叫 f1(1):
  • static int cc = 0; 宣告的是 f1 自己的靜態區域變數。
  • int xx = nn; 宣告的是 f1 的區域變數,值為 1。
  • cc++ 遞增的也是 f1 內的靜態區域變數。
  • 全域 cc、xx、yy 均未改變。
  1. 呼叫 f2(2):
  • static int cc = 0; 是 f2 自己的靜態區域變數,與 f1 的 cc 彼此獨立。
  • int yy = nn; 宣告函式內區域變數 yy,值為 2,不影響全域 yy。
🔒

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

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

免費註冊

第 32 題2 分

下列 C 語言程式執行後,產生的輸出為何?

#include <stdio.h>

void unknown() { static int x = 10;

x = x + 10;
printf("%d;", x);

}

int main() { unknown(); unknown(); }

這一題的完整詳解

核心觀念

本題考 C 語言 static 區域變數的生命週期與初始值。函式內以 static 宣告的區域變數,具有靜態儲存期:程式執行期間只初始化一次,呼叫函式離開後,變數值仍會保留,供下次呼叫使用。

解題方法

unknown 中的 x 初始值為 10。每次呼叫都先執行 x = x + 10,再輸出 x:

呼叫次數呼叫前的 x加 10 後的 x輸出
第一次102020;
第二次203030;

因此程式輸出為 20;30;。

選項分析

🔒

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

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

免費註冊

第 33 題2 分

關於網路設備的敘述,下列何者錯誤?

這一題的完整詳解

核心觀念

本題考查常見網路設備的功能與其所在層級:

  • 閘道器(Gateway):連接不同網路或系統,必要時轉換通訊協定與資料格式。
  • 數據機(Modem):負責調變與解調,讓數位資料能透過類比訊號傳送,並在接收端還原。
  • 中繼器(Repeater):接收並再生或放大訊號,以延長傳輸距離;不負責連接多台電腦形成區域網路。
  • 路由器(Router):依據路由表選擇封包的下一個傳送路徑。

解題方法

逐一比對設備名稱與主要功能。題目問「何者錯誤」,只要找出把某設備功能描述成另一種設備功能的選項即可。中繼器的重點是延伸訊號傳輸範圍;連接多台電腦形成區域網路,通常由集線器或交換器負責,因此選項(C)錯誤。

選項分析

🔒

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

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

免費註冊

第 34 題2 分

XX 是一個 16 位元樣式(Bit pattern)。若要將 XX 的中間 8 個位元強制設定為 0,且讓其他位元保持原有內容,應該進行下列何種邏輯運算(Logic Operations)?

這一題的完整詳解

核心觀念

本題考位元邏輯運算。若要將某些位元強制設為 00,應使用 AND 運算:遮罩對應位置為 00 時,無論原位元是 00 或 11,結果都會是 00;遮罩為 11 時,原位元則保持不變。

解題方法

16 位元的「中間 8 個位元」是第 5 至第 12 位。要清除這 8 個位元,遮罩的中間 8 位應設為 00,其餘 8 位設為 11:

遮罩=1111 0000 0000 1111\text{遮罩}=1111\,0000\,0000\,1111

因此對 XX 做 AND 運算:

X AND 1111 0000 0000 1111X\ \text{AND}\ 1111\,0000\,0000\,1111

遮罩兩端的 11 會保留 XX 原本的位元;中間的 00 會把 XX 的中間 8 位清為 00。

選項分析

🔒

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

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

免費註冊

第 35 題2 分

一般而言,密碼可分為對稱式金鑰與非對稱式金鑰。下列何者加密法屬於非對稱式金鑰密碼?

這一題的完整詳解

核心觀念

密碼依金鑰的使用方式,可分為對稱式與非對稱式:

  • 對稱式金鑰密碼:加密與解密使用相同的金鑰,或使用彼此可直接推導的金鑰。
  • 非對稱式金鑰密碼:使用一組不同但彼此相關的金鑰,通常以公開金鑰加密、私密金鑰解密;RSA 是典型代表。

本題要辨認各選項所屬的密碼類型。

解題方法

先判斷每種方法是否採用公開金鑰與私密金鑰這一對金鑰。RSA 以一把金鑰公開、另一把金鑰保密,屬於非對稱式金鑰密碼;其餘選項皆為古典密碼方法,使用共享的替換規則或排列方式,不屬於非對稱式金鑰密碼。

選項分析

🔒

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

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

免費註冊

第 36 題2 分

對數列 (5,6,2,9,4)(5, 6, 2, 9, 4) 進行選擇排序(Selection sort),下列何者為正確步驟?

這一題的完整詳解

核心觀念

選擇排序(Selection sort)每一回合都在「尚未排序的部分」找出最小值,並與該部分的第一個元素交換。由左至右逐步固定最小值後,數列會形成「已排序部分|未排序部分」。

解題方法

初始數列為 (5,6,2,9,4)(5,6,2,9,4):

  1. 在全部數列中找最小值 22,與第一個元素 55 交換: (5,6,2,9,4)→(2,6,5,9,4)(5,6,2,9,4)\rightarrow(2,6,5,9,4)
  2. 在未排序部分 (6,5,9,4)(6,5,9,4) 中找最小值 44,與該部分第一個元素 66 交換: (2,6,5,9,4)→(2,4,5,9,6)(2,6,5,9,4)\rightarrow(2,4,5,9,6)
  3. 在未排序部分 (5,9,6)(5,9,6) 中找最小值 55。它已在該部分第一個位置,因此數列不變: (2,4,5,9,6)→(2,4,5,9,6)(2,4,5,9,6)\rightarrow(2,4,5,9,6)
  4. 在未排序部分 (9,6)(9,6) 中找最小值 66,與 99 交換:
🔒

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

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

免費註冊

第 37 題2 分

若要以二元搜尋(Binary search)從 A,B,C,D,E,F,G,H,I,J,K,L,M,N,OA, B, C, D, E, F, G, H, I, J, K, L, M, N, O 中尋找 ZZ,則搜尋過程中檢驗的字母依序為何?

這一題的完整詳解

核心觀念

二元搜尋適用於已排序的資料。每次檢查目前搜尋範圍的中間元素:若目標較大,就繼續搜尋右半部;若目標較小,就搜尋左半部。資料中找不到目標時,搜尋會在範圍縮小為空後結束。

解題方法

字母已依照字母順序排列,共有 15 個:

A,B,C,D,E,F,G,H,I,J,K,L,M,N,OA, B, C, D, E, F, G, H, I, J, K, L, M, N, O

目標 ZZ 比所有資料中的字母都大,因此每次檢查後都往右半部搜尋:

  1. 先檢查中間位置的 HH。因為 Z>HZ>H,往右搜尋。
  2. 在右側範圍 II 到 OO 中,檢查中間位置的 LL。因為 Z>LZ>L,繼續往右。
  3. 在 MM 到 OO 中,檢查中間位置的 NN。因為 Z>NZ>N,繼續往右。
  4. 剩下 OO,檢查後發現 Z>OZ>O,搜尋範圍變成空集合,搜尋結束。
🔒

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

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

免費註冊

第 38 題2 分

下列何者不是星狀網路拓撲(Star Network Topology)的特性?

這一題的完整詳解

核心觀念

星狀網路拓撲是指各節點分別以獨立連線接到中央設備,例如集線器(Hub)或交換器(Switch)。節點彼此傳送資料時,通常須經由中央設備轉送。

解題方法

逐項比對選項是否符合星狀拓撲的特性。星狀拓撲的典型優點包括:新增或移除節點較方便,且單一節點或連線故障通常不會影響其他節點;使用交換器時,各連接埠可分別傳送資料,能降低碰撞。至於「同儕網路」描述的是網路中的電腦如何共享資源,並非星狀拓撲本身的優點。

選項分析

(A) 效率佳,降低資料傳輸發生衝突(Collision)的機率:正確。 星狀網路使用交換器時,交換器可依目的位址轉送資料,減少不同連線間的碰撞;即使使用 Hub,碰撞也發生在共用的傳輸媒介上,因此本選項所述可作為星狀網路常見的效率優點。

🔒

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

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

免費註冊

第 39 題2 分

假設 a,b,c,d,e,fa, b, c, d, e, f 是類別 CLS 的六個物件變數(object variables),下列 C++ 語言程式片段中,a,b,c,d,e,fa, b, c, d, e, f 六個物件的建構(construct)順序為何?

void foo(void) { CLS a;

static CLS b;

……

}

CLS c;

int main(void) { CLS d;

static CLS e;

if (1) {
    CLS f;
    ……
}

foo();

……

}

這一題的完整詳解

核心觀念

本題考查 C++ 物件的儲存期與建構時點:

  • 區域自動物件:進入其作用域時建構,離開作用域時解構。
  • 區域靜態物件:第一次執行到宣告時才建構;本題中 foo 只呼叫一次。
  • 全域物件:在 main 開始執行前建構。

解題方法

依程式執行順序排列各物件的建構時點:

  1. CLS c; 是全域物件,在進入 main 前建構,排第一。
  2. 進入 main 後,先建構區域自動物件 d。
  3. 接著執行 static CLS e;,建構區域靜態物件 e。
  4. 進入 if (1) 區塊時,建構區域自動物件 f。
  5. 離開 if 區塊後,呼叫 foo;進入函式後建構區域自動物件 a。
  6. 接著執行 static CLS b;,此時首次執行到其宣告,因此建構 b。

因此順序為 c、d、e、f、a、b,即 cdefab。

選項分析

🔒

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

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

免費註冊

第 40 題2 分

有關子網路切割,假設子網路遮罩(Subnet Mask)值為 255.255.255.192255.255.255.192。若有一台電腦的 IP 為 192.115.2.149192.115.2.149,下列哪一個位址與該臺電腦在同一個子網路內(網路識別碼(Network ID)相同)?

這一題的完整詳解

核心觀念

子網路遮罩用來區分 IP 位址中的網路部分與主機部分。遮罩為 255.255.255.192255.255.255.192 時,前三個位元組都是 255255,表示前三個位元組屬於網路部分;最後一個位元組的 192192 為二進位 1100000011000000,因此最後一個位元組有 22 個網路位元、66 個主機位元。

判斷兩台電腦是否在同一子網路,可比較它們的 IP 位址與遮罩進行位元 AND 運算;若所得 Network ID 相同,即屬於同一子網路。

解題方法

最後一個位元組遮罩值為 192192,每個子網路的位址區間大小為:

256−192=64256-192=64

因此最後一個位元組的子網路區段依序為 00–6363、6464–127127、128128–191191、192192–255255。

題目 IP 的最後一個位元組是 149149,落在 128128–191191 區段,故其 Network ID 為 192.115.2.128192.115.2.128。選項中,只有最後一個位元組落在相同區段、且前三個位元組也相同者符合。

選項分析

🔒

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

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

免費註冊

其他考古題