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

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

第 1 題2 分

當今較常見的計算機架構,大都是基於下列哪種模型?

這一題的完整詳解

核心觀念

本題考查常見計算機架構的基本模型。凡紐曼(von Neumann)模型的特徵是:指令與資料共用記憶體,處理器依序取出指令、解讀指令,再執行指令;這種運作方式也稱為「儲存程式概念」。

解題方法

題目問「當今較常見的計算機架構」所依據的模型,應辨認一般用途電腦的主流架構。一般電腦多採用凡紐曼模型:程式指令和資料存放於同一記憶體空間,由處理器透過系統匯流排存取,因此選 (C)。

選項分析

  • (A) 資料流(data flow)模型:錯誤。 資料流模型以資料的可用狀態觸發運算,重點在運算節點間的資料依賴與流動,並非一般通用電腦最常見的基本架構模型。
  • **(B) 杜林(Turing)模型:錯誤。
🔒

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

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

免費註冊

第 2 題2 分

下列程式語言中,何者最適於網頁瀏覽器執行?

這一題的完整詳解

核心觀念

本題考查程式語言是在用戶端(瀏覽器)還是伺服器端執行。網頁瀏覽器能直接解讀並執行 JavaScript,常用來處理網頁互動、表單檢查與動態更新。

解題方法

先辨認各選項的典型執行環境:瀏覽器端程式由使用者的瀏覽器執行;伺服器端程式則在網站伺服器處理,再將結果傳給瀏覽器。C++ 通常需先編譯成機器碼或其他可執行形式,並非瀏覽器原生的網頁程式語言。因此,最適於網頁瀏覽器執行的是 JavaScript。

選項分析

  • (A) ASP(Active Server Pages)錯誤。 ASP 是伺服器端網頁技術,由網站伺服器處理後輸出網頁內容;瀏覽器接收的是處理結果,不是直接執行 ASP 程式碼。
🔒

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

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

免費註冊

第 3 題2 分

將二進位數值 110101.101110101.101 轉換成十進位,下列何者正確?

這一題的完整詳解

核心觀念

二進位數轉換成十進位時,整數部分依位權 20,21,22,…2^0, 2^1, 2^2,\ldots 展開;小數部分依位權 2−1,2−2,2−3,…2^{-1}, 2^{-2}, 2^{-3},\ldots 展開,再將各位的數值相加。

解題方法

將 110101.1012110101.101_2 依小數點分成整數部分 1101012110101_2 與小數部分 .1012.101_2。

整數部分由右至左標示位權:

1101012=1×25+1×24+0×23+1×22+0×21+1×20=32+16+4+1=53110101_2 =1\times2^5+1\times2^4+0\times2^3+1\times2^2+0\times2^1+1\times2^0 =32+16+4+1 =53

小數部分由小數點右側開始,位權依序為 2−1,2−2,2−32^{-1},2^{-2},2^{-3}:

.1012=1×2−1+0×2−2+1×2−3=12+18=0.625.101_2 =1\times2^{-1}+0\times2^{-2}+1\times2^{-3} =\frac12+\frac18 =0.625

因此:

🔒

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

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

免費註冊

第 4 題2 分

關於關聯式資料庫設計正規化(normalization),下列敘述何者正確?

這一題的完整詳解

核心觀念

本題考查資料庫正規化各階段的先後關係,以及第二、第三、第四正規化分別處理的相依問題。

正規化是逐步整理關聯式資料表的過程:先滿足較低階正規化的條件,再進一步檢查是否符合更高階正規化。常見重點如下:

  • 第二正規化(2NF):符合第一正規化,且每個非鍵屬性完全相依於候選鍵;主要消除對複合鍵的部分相依。
  • 第三正規化(3NF):符合第二正規化,且非鍵屬性不透過其他非鍵屬性而間接相依於候選鍵;主要處理遞移相依。
  • 第四正規化(4NF):符合第三正規化,且不存在非平凡的多值相依。

因此,高階正規化建立在較低階正規化已符合的前提上。

解題方法

逐一對照各正規化階段的處理對象,並檢查選項是否把部分相依、遞移相依與多值相依的階段弄混:

  1. 判斷正規化是否按階段遞進。
  2. 核對 2NF、3NF、4NF 各自處理的相依問題。
  3. 選出與正規化原則及階段定義相符的敘述。

選項分析

(A) 高階正規化的前提是低階正規化完成。—正確

🔒

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

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

免費註冊

第 5 題2 分

下列作業系統何者不具時間分享(time sharing)之特性?

這一題的完整詳解

核心觀念

時間分享(time sharing)是作業系統讓多個使用者或多個工作共用處理器的方式。系統將處理器時間切成短暫的時間片,輪流分配給各工作;時間片用完後,作業系統會切換執行對象,讓使用者感覺各工作能同時進行。

判斷重點是作業系統是否具備多工與處理器排程能力,而非它能否執行應用程式。

解題方法

逐一辨認選項的作業系統類型:Windows 7、GNU/Linux 與 Android 都支援多工排程,具備時間分享特性;DOS 則是傳統單使用者、單工作環境,沒有一般所指的時間分享能力。因此選擇 DOS。

選項分析

🔒

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

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

免費註冊

第 6 題2 分

將運算元的位址直接編碼在指令中的是哪一種定址模式?

這一題的完整詳解

核心觀念

本題考「運算元的有效位址如何取得」。直接定址是把運算元所在的記憶體位址直接寫在指令的位址欄位中;執行指令時,該欄位的內容就是有效位址(Effective Address, EA)。

解題方法

看到「將運算元的位址直接編碼在指令中」,即可判斷為直接定址。換句話說,指令給的是運算元的位址,處理器再依此位址存取記憶體中的運算元。

選項分析

  • (A) 暫存器定址(register addressing)錯誤:指令指定的是存放運算元的暫存器編號,運算元位於暫存器內;指令中並未直接編碼運算元的記憶體位址。
🔒

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

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

免費註冊

第 7 題2 分

下列何者為直譯式語言?

這一題的完整詳解

核心觀念

本題考程式語言的執行方式。直譯式語言通常由直譯器在程式執行時逐步讀取並執行指令;編譯式語言則會先將原始程式轉換成機器碼或其他形式的程式,再執行。

解題方法

辨認選項主要的執行特性:JavaScript 通常由瀏覽器或 JavaScript 執行環境在執行時處理,故在本題採用的分類中屬於直譯式語言;Java、C++ 與 Objective-C 通常需先經編譯程序,因此不符合題意。

選項分析

  • (A) Java:錯誤。 Java 原始碼先編譯為位元碼,再由 Java 虛擬機器執行;依本題常見分類,歸為編譯式語言。
  • **(B) JavaScript:正確。
🔒

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

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

免費註冊

第 8 題2 分

一微處理器有 32 條位址線、24 條資料線,可定址之記憶體最多為多少位元組?

這一題的完整詳解

核心觀念

位址線的數量決定可表示的不同位址數。若有 nn 條位址線,每條線可為 0 或 1,因此共有 2n2^n 個位址。題目未註明採用位元組定址時,計算機概要通常以每個位址對應 1 位元組計算。

解題方法

本微處理器有 32 條位址線,可表示的位址數為:

232 個位址2^{32}\ \text{個位址}

每個位址對應 1 位元組,因此最多可定址:

232 位元組=4×230 位元組=4 GB2^{32}\ \text{位元組} = 4 \times 2^{30}\ \text{位元組} = 4\ \mathrm{GB}

資料線有 24 條,影響一次可傳輸的資料寬度;它不決定位址總數,因此不影響本題的可定址記憶體容量。

選項分析

  • (A) 16 MB16\ \mathrm{MB}:錯誤。 16 MB=22416\ \mathrm{MB}=2^{24} 位元組,對應 24 條位址線的位元組定址容量;題目的位址線是 32 條。
🔒

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

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

免費註冊

第 9 題2 分

一般全彩影像(True Color)是以多少位元來表現顏色?

這一題的完整詳解

核心觀念

本題考影像的色彩深度,也就是用多少位元表示每個像素的顏色。一般全彩影像採用 RGB 三原色,每個色彩通道各以 88 位元表示,因此紅、綠、藍三個通道合計:

8+8+8=24 位元8+8+8=24\text{ 位元}

解題方法

每個通道有 88 位元,可表示 28=2562^8=256 個亮度階調。RGB 三個通道合計為 2424 位元,每個像素可表示的顏色數為:

224=16,777,2162^{24}=16{,}777{,}216

因此,一般所稱的 True Color(全彩)是每像素 2424 位元。

選項分析

  • (A) 88:錯誤。 88 位元可表示 256256 種數值,常用於灰階影像或索引色影像,不足以代表一般 RGB 全彩。
🔒

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

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

免費註冊

第 10 題2 分

若你的電腦系統採用偶同位(even parity),則下列數字何者會被視為有錯誤發生?

這一題的完整詳解

核心觀念

偶同位(even parity)檢查的是資料位元與同位位元合計後,11 的個數是否為偶數。若收到的位元串中,11 的總數為奇數,便會被判定為同位檢查錯誤。

解題方法

逐一計算每個選項中 11 的個數:總數為偶數,符合偶同位;總數為奇數,則會被視為有錯誤發生。

選項分析

🔒

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

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

免費註冊

第 11 題2 分

下列何者是布林函數 F(x,y,z)=(x+y)(y′+z)F(x,y,z)=(x+y)(y'+z) 的積之和(sum of products)表示法?

這一題的完整詳解

核心觀念

布林函數的「積之和」(sum of products, SOP)表示法,是將函數寫成多個「乘積項」相加的形式。布林代數中,++ 表示 OR,乘積表示 AND,撇號表示 NOT。

本題要把

F(x,y,z)=(x+y)(y′+z)F(x,y,z)=(x+y)(y'+z)

化為 SOP 形式。

解題方法

利用布林代數分配律展開:

F=(x+y)(y′+z)=xy′+xz+yy′+yz.\begin{aligned} F&=(x+y)(y'+z)\\ &=xy'+xz+yy'+yz. \end{aligned}

由互補律 yy′=0yy'=0,以及吸收律 xy′+xz+yz=xy′+yzxy'+xz+yz=xy'+yz,可得

F=xy′+yz.F=xy'+yz.

因此符合 SOP 形式的是選項 (B)。

選項分析

🔒

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

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

免費註冊

第 12 題2 分

【題目圖示未包含於文字擷取,請參考原卷】

使用 2 個 SR 正反器(flip-flop)與 3 個邏輯閘組成一時序電路(sequential circuit)如下圖所示,其中 SR 正反器由 NAND 閘所組成。AA、BB 表示狀態位元,XX 表示外部輸入位元,YY 表示輸出位元,SAS_A 與 RAR_A 表示第一個 SR 正反器之輸入位元,SBS_B 與 RBR_B 代表第二個 SR 正反器之輸入位元,CLK 表示時脈。

關於各個邏輯閘與正反器之時間參數(tpdt_{pd} 表示傳遞延遲時間,tst_s 表示就緒時間(setup time),tht_h 表示保持時間(hold time))如下:

反向器(inverter):tpd=0.5 nst_{pd}=0.5\ \mathrm{ns} 互斥或閘(XOR):tpd=2.0 nst_{pd}=2.0\ \mathrm{ns} 或閘(OR):tpd=1.0 nst_{pd}=1.0\ \mathrm{ns} 正反器:tpd=2.0 nst_{pd}=2.0\ \mathrm{ns}、ts=1.0 nst_s=1.0\ \mathrm{ns}、th=0.25 nst_h=0.25\ \mathrm{ns}

試問此時序電路之最高操作頻率為何?

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

核心觀念

這題考同步時序電路的最高操作頻率。時脈週期必須足以涵蓋最長的「正反器輸出至下一個正反器輸入」路徑:

Tmin⁡=tpd,FF+tpd,組合邏輯+tsT_{\min}=t_{pd,\mathrm{FF}}+t_{pd,\mathrm{組合邏輯}}+t_s

其中 tpd,FFt_{pd,\mathrm{FF}} 是起始正反器的輸出傳遞延遲,tst_s 是目的正反器的就緒時間。最高操作頻率為 fmax⁡=1/Tmin⁡f_{\max}=1/T_{\min}。

解題方法

依圖追蹤正反器之間的訊號路徑:第一個正反器的輸出 AA 經過 XOR 閘,再經反向器後送至第二個正反器的輸入 SBS_B。這條路徑的延遲為:

tpd,路徑=2.0+2.0+0.5+1.0=5.5 nst_{pd,\mathrm{路徑}}=2.0+2.0+0.5+1.0=5.5\ \mathrm{ns}

依序為正反器輸出延遲、XOR 閘延遲、反向器延遲及第二個正反器的就緒時間。因此:

fmax⁡=15.5 ns≈181.82 MHzf_{\max}=\frac{1}{5.5\ \mathrm{ns}}\approx181.82\ \mathrm{MHz}
🔒

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

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

免費註冊

第 13 題2 分

以下排序演算法(sorting algorithm)何者使用分而治之(divide-and-conquer)的概念?

這一題的完整詳解

核心觀念

本題考查排序演算法是否採用「分而治之」(divide-and-conquer)。此方法通常分成三步:

  1. 分割:將原問題拆成較小的子問題。
  2. 征服:遞迴解決各子問題。
  3. 合併或完成:將子問題的結果組成原問題的解。

快速排序法會選定一個基準值(pivot),將資料分成小於與大於基準值的兩部分,再分別遞迴排序;兩側完成後,資料即依序排列,因此符合分而治之。

解題方法

辨認演算法是否將資料分成較小區段,並對各區段重複執行排序。快速排序法的主要步驟如下:

  1. 選取一個基準值。
  2. 將比基準值小的元素移至一側,比基準值大的元素移至另一側。
  3. 分別對兩側子序列遞迴執行相同操作。

例如資料為 [5,2,8,1,6][5, 2, 8, 1, 6],選 55 作為基準值,分割後可得左側 [2,1][2, 1]、右側 [8,6][8, 6];再分別排序兩側,最後得到 [1,2,5,6,8][1, 2, 5, 6, 8]。這正是將問題分割為子問題並遞迴處理的過程。

選項分析

🔒

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

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

免費註冊

第 14 題2 分

【題目圖示未包含於文字擷取,請參考原卷】

下圖表示一個具有權重(weight)的無向圖(undirected graph)。假設我們針對該圖求取最小生成樹(minimum spanning tree),則該樹的權重總和為下列何者?

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

核心觀念

最小生成樹(minimum spanning tree)是在連通無向圖中,選取能連接所有頂點且不形成環路的邊,使總權重最小。若圖有 nn 個頂點,生成樹必須恰有 n−1n-1 條邊。

解題方法

圖中有 A、B、C、DA、B、C、D 四個頂點,邊及權重為:

  • A−BA-B:11
  • A−DA-D:22
  • A−CA-C:33
  • B−DB-D:44

依權重由小到大選邊:先選 A−BA-B(權重 11),再選 A−DA-D(權重 22)。此時 A、B、DA、B、D 已連通,加入 B−DB-D(權重 44)會形成環路,因此略過。接著選 A−CA-C(權重 33),使四個頂點都連通。

生成樹總權重為:

1+2+3=61+2+3=6

選項分析

🔒

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

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

免費註冊

第 15 題2 分

若一個二元搜尋樹(binary search tree)中各節點(node)包含的數字範圍為 11 到 35003500,在找尋數字 14051405 的過程中,下列何者不可能是所造訪之節點形成的數字序列?

這一題的完整詳解

核心觀念

二元搜尋樹(binary search tree, BST)符合下列規則:

  • 若目標值小於目前節點,就往左子樹搜尋;若大於目前節點,就往右子樹搜尋。
  • 搜尋路徑上的每個節點都會限制後續節點的取值範圍。往左表示後續值必須更小;往右表示後續值必須更大。

因此,判斷一串數字能否成為搜尋 14051405 時的造訪序列,重點是檢查每一步是否符合先前節點累積出的範圍限制。

解題方法

從根節點開始搜尋目標 14051405,逐一更新後續節點必須落在的範圍:

  • 遇到小於 14051405 的節點,搜尋往右,後續節點必須大於該節點。
  • 遇到大於 14051405 的節點,搜尋往左,後續節點必須小於該節點。
  • 同時遵守先前已經累積的所有上下界。

若某個後續節點違反其中一個界限,該序列便不可能出現在同一條 BST 搜尋路徑上。

選項分析

(A) 2,33,44,180,307,3100,1300,1802,1500,1404,14052, 33, 44, 180, 307, 3100, 1300, 1802, 1500, 1404, 1405:可以成立。

2,33,44,180,3072,33,44,180,307 都小於 14051405,搜尋方向持續往右,形成下界 307307。接著造訪 3100>14053100>1405,轉往左,形成上界 31003100;其後 13001300 位於 (307,3100)(307,3100)。再由 13001300 往右,形成新的下界 13001300;

🔒

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

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

免費註冊

第 16 題2 分

以 C++ 宣告一個名為 unknownunknown 的類別(class)如下:

class unknown {

private:

int front, rear;

int components[50];

public:

unknown() { front = -1; rear = -1; };

int get() {
    front = front + 1;
    return components[front];
}

void put(int d) {
    rear = rear + 1;
    components[rear] = d;
}

};

若接下來我們宣告 uuuu 為對應到該類別(class)的一個物件,再依序執行以下四個指令:uu.put(1)uu.put(1)、uu.put(2)uu.put(2)、uu.put(3)uu.put(3)、uu.get()uu.get(),則所回傳的值為下列何者?

這一題的完整詳解

核心觀念

本題考查類別物件的成員變數初始化,以及 put、get 函式如何操作索引。front 與 rear 是索引值;put(d) 先增加 rear,再把資料存入 components[rear]。get 則先增加 front,再回傳 components[front]。

解題方法

物件 uu 建立時,建構子將 front、rear 都設為 −1-1。依序執行各指令:

指令frontrear操作結果
初始狀態−1-1−1-1—
uu.put(1)−1-100components[0] = 1
uu.put(2)−1-111components[1] = 2
uu.put(3)−1-122components[2] = 3
🔒

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

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

免費註冊

第 17 題2 分

已排序(sorted)的表格資料如下:

1,4,7,9,11,14,15,19,27,33,39,40,43,48,501, 4, 7, 9, 11, 14, 15, 19, 27, 33, 39, 40, 43, 48, 50

以二元搜尋法(binary search)取得 1111,需比較幾次?

這一題的完整詳解

核心觀念

二元搜尋法用於已排序資料。每次比較都取目前搜尋範圍的中間元素:

  • 若目標值較小,繼續搜尋左半部。
  • 若目標值較大,繼續搜尋右半部。
  • 相等時即找到目標。

本題的「比較幾次」是指目標值與中間元素進行大小比較的次數。

解題方法

將 15 個數由左至右編號為第 1 至第 15 個:

1, 4, 7, 9, 11, 14, 15, 19, 27, 33, 39, 40, 43, 48, 501,\ 4,\ 7,\ 9,\ 11,\ 14,\ 15,\ 19,\ 27,\ 33,\ 39,\ 40,\ 43,\ 48,\ 50

依二元搜尋法逐次查找 1111:

  1. 範圍為第 1 至第 15 個,中間位置為第 8 個,數值是 1919。 11<1911<19,往左半部搜尋。
  2. 範圍縮為第 1 至第 7 個,中間位置為第 4 個,數值是 99。 11>911>9,往右半部搜尋。
🔒

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

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

免費註冊

第 18 題2 分

下列哪一種資料結構最適合用來置放遞迴函式(recursive function)之區域變數(local variables)?

這一題的完整詳解

核心觀念

遞迴函式每呼叫一次,就會建立一份獨立的執行資訊,包含區域變數、參數與返回位置等。由於函式呼叫具有「後呼叫者先返回」的順序,這些資訊適合依**後進先出(LIFO)**方式保存。

堆疊(stack)正是採用 LIFO 規則的資料結構。函式呼叫時,系統將該次呼叫的資訊放入呼叫堆疊;函式返回時,再取出最上層的資訊。這份資訊通常稱為堆疊框架(stack frame)。

解題方法

判斷關鍵是遞迴呼叫的巢狀順序。若函式依序呼叫自己多次,最內層的呼叫會最先完成,因此其區域變數必須先被取回;接著才處理外層呼叫的變數。這個次序與堆疊的後進先出特性完全相符,因此選擇 stack。

選項分析

🔒

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

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

免費註冊

第 19 題2 分

某一個二元樹的前序(pre-order)順序為 ABCDEFGHIABCDEFGHI,中序(in-order)順序為 BCAEDGHFIBCAEDGHFI,則其後序(post-order)順序為何?

這一題的完整詳解

核心觀念

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

  • 前序(pre-order):根、左子樹、右子樹。
  • 中序(in-order):左子樹、根、右子樹。
  • 後序(post-order):左子樹、右子樹、根。

若節點值不重複,前序的第一個節點就是整棵樹的根;根在中序中的位置則可將其餘節點分成左、右子樹。依此遞迴重建,再按後序輸出即可。

解題方法

前序為 ABCDEFGHIABCDEFGHI,第一個節點 AA 是根。在中序 BCAEDGHFIBCAEDGHFI 中,AA 左邊是左子樹 BCBC,右邊是右子樹 EDGHFIEDGHFI。

左子樹的前序是 BCBC。其根為 BB;中序 BCBC 中,BB 沒有左子樹,右子樹為 CC,所以左子樹的後序為 CBCB。

右子樹的前序是 DEFGHIDEFGHI,中序是 EDGHFIEDGHFI。其根為 DD:

  • DD 在中序中左側沒有節點,右子樹中序為 GHFIGHFI。
  • 右子樹前序為 EFGHIEFGHI,根為 EE。在中序 GHFIGHFI 中,EE 不在其中;依根節點分割,需先注意右子樹中序應從原序列扣除 DD 後為 EGHFIEGHFI。因此 EE 為根,其右子樹中序為 GHFIGHFI。
  • 該子樹前序為 FGHIFGHI,根為 FF。在中序 GHFIGHFI 中,左子樹為 GHGH、右子樹為 II。
  • GHGH 的前序為 GHGH,根為 GG,其右子節點為 HH,後序為 HGHG;右子樹 II 的後序為 II。

因此,以題目給定的前序與中序重建時,後序為:

🔒

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

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

免費註冊

第 20 題2 分

【題目圖示未包含於文字擷取,請參考原卷】

若針對下圖中的樹由樹根(root)開始進行廣度優先搜尋(breadth-first search),並同時將走訪到的節點標籤輸出,則輸出的字串為下列何者?

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

核心觀念

廣度優先搜尋(breadth-first search, BFS)從根節點開始,先走訪同一層的所有節點,再往下一層走訪。通常搭配佇列(queue):節點依序加入佇列,取出一個節點時,將它尚未走訪的子節點依圖示順序加入佇列。

解題方法

圖中的樹為:根節點 AA 的子節點依序是 B、CB、C;節點 BB 的子節點依序是 D、ED、E。

依層次走訪:

  • 第 1 層:AA
  • 第 2 層:B、CB、C
  • 第 3 層:D、ED、E

因此輸出順序為 ABCDEABCDE。

用佇列也可驗算:先放入 AA;走訪 AA 後,將 B、CB、C 入列;接著依序走訪 B、CB、C,再走訪 BB 的子節點 D、ED、E,結果同樣是 ABCDEABCDE。

選項分析

🔒

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

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

免費註冊

第 21 題2 分

【題目圖示未包含於文字擷取,請參考原卷】

下圖中可產生多少種不同的生成樹(spanning tree)?

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

核心觀念

生成樹是包含圖中所有頂點、且連通無環的子圖。若圖中有橋接兩個子圖的橋接邊,該邊必須納入每一棵生成樹;兩側子圖的生成樹選法彼此獨立,總數可相乘。

解題方法

圖中 dd 與 ee 之間的邊是橋接邊,必須選入生成樹。因此分別計算左、右兩側子圖的生成樹數量。

左側有 a,b,c,da,b,c,d 四個頂點,邊為 ab,bc,ca,ad,cdab,bc,ca,ad,cd。其拉普拉斯矩陣刪去 dd 所在列與欄後,得到:

∣3−1−1−12−1−1−13∣=8\begin{vmatrix} 3&-1&-1\\ -1&2&-1\\ -1&-1&3 \end{vmatrix} =8

依生成樹矩陣定理,左側有 88 種生成樹。

🔒

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

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

免費註冊

第 22 題2 分

【題目圖示未包含於文字擷取,請參考原卷】

下方之有向圖(directed graph)中,從節點 ii 至節點 aa 的最短路徑(shortest path)其長度為何?

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

核心觀念

本題考有向加權圖的最短路徑。路徑長度是沿途邊權重的總和,而且只能依箭頭方向行進。可用 Dijkstra 演算法,逐步更新起點到各節點的最短距離。

解題方法

以節點 ii 為起點,初始距離為 00。依圖上的箭頭與權重更新距離:

  • 從 ii 可到 ee、hh,權重皆為 33,所以距離分別為 33。
  • 經 e→de\to d,得到 dd 的距離 3+3=63+3=6;經 h→ch\to c,得到 cc 的距離 3+5=83+5=8。
  • 經 c→bc\to b,得到 bb 的距離 8+3=118+3=11。
  • 再經 b→ab\to a,得到 aa 的距離 11+1=1211+1=12。

因此最短路徑為

i→h→c→b→ai\to h\to c\to b\to a

其長度為

3+5+3+1=12.3+5+3+1=12.
🔒

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

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

免費註冊

第 23 題2 分

執行下列 C 程式,若輸入 939577939577,產生的輸出為何?

int main() { int a[10] = {0}, b, n;

scanf("%d", &n);

while (n > 0)
{
    b = n % 10;
    a[b]++;
    n /= 10;
}

for (b = 0; b < 10; b++)
    if (a[b] > 1)
        printf("%d ", b);

return 0;

}

這一題的完整詳解

核心觀念

本題考查陣列計數、整數除法與取餘數。n % 10 取得整數的個位數,n /= 10 則移除個位數;因此,迴圈會逐位檢查輸入數字,並用 a[b]++ 記錄數字 bb 出現的次數。

解題方法

輸入 939577939577 後,迴圈依序取得個位數,並更新對應的陣列元素:

取得的數字 b更新後的計數
77a[7] = 1
77a[7] = 2
55a[5] = 1
99a[9] = 1
33a[3] = 1
99a[9] = 2

接著,for 迴圈按照 00 到 99 的順序檢查每個數字,只輸出出現次數大於 11 的數字。符合條件的是 77 和 99,因此輸出為:

🔒

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

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

免費註冊

第 24 題2 分

下列 C 程式執行時,若輸入為 12abc34 56def7812abc34\ 56def78,則下列結果何者正確?

int i = 0, j = 0; char s[10];

scanf("%d%s%d", &i, s, &j);

這一題的完整詳解

核心觀念

本題考 scanf 的格式控制字串如何依序讀取輸入,以及 %d 遇到非數字字元時如何停止轉換。

  • %d:讀取帶符號十進位整數。讀到第一個不屬於該整數的字元時,整數轉換結束;該字元留在輸入串流中。
  • %s:跳過前導空白後,讀取連續的非空白字元,並在字串末尾補上 '\0'。
  • scanf 依格式指定的順序執行轉換;前一項轉換停止後,後續格式仍會從輸入串流目前的位置繼續讀取。

解題方法

將輸入視為:

12abc34 56def78

依照格式字串 "%d%s%d" 逐項解析:

  1. %d 讀取開頭的 12,遇到 a 時停止,因此 i = 12;a 留在輸入串流中。
  2. %s 從 a 開始,讀取連續的非空白字元 abc34,遇到空白時停止。因此 s 儲存的是 "abc34"。
🔒

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

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

免費註冊

第 25 題2 分

概念上,下列何者與其他三者相比,差異較大?

這一題的完整詳解

核心觀念

本題考的是計算機程式中的「函數、方法、程序」與「執行緒」所屬的概念層次。函數、方法、程序都是可被呼叫或執行的程式單位;執行緒則是作業系統排程與執行工作的基本單位,負責承載程式碼的執行。

解題方法

先判斷各詞描述的是「程式碼的組織或呼叫單位」,還是「程式執行時的工作單位」。前三者都與程式中的子程式概念相關,雖然定義與使用情境不完全相同;執行緒則屬於並行處理與作業系統的執行管理概念,因此與其他三者差異最大。

選項分析

  • (A) 函數(function):可接受參數、執行一段程式碼,通常會回傳值,是常見的子程式形式。與程序同屬程式碼的組織及呼叫單位。
🔒

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

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

免費註冊

第 26 題2 分

關於 Java 程式語言之敘述,下列何者正確?

這一題的完整詳解

核心觀念

本題考查 Java 的物件導向結構、繼承方式,以及程式執行與多執行緒的基本特性。Java 的程式由類別與物件構成;類別用來定義資料與方法,物件則是類別的實例。Java 不支援類別的多重繼承,但支援透過介面實作多種型別。

解題方法

逐一核對各選項是否符合 Java 的語言設計:

  • 先辨認 Java 對類別、物件與介面的規範。
  • 再檢查「不必定義類別」、「只能單一執行緒」等絕對說法;這類敘述常把 Java 的特性過度簡化。

選項分析

  • (A) 錯誤。 Java 類別不支援像 C++ 那樣同時繼承多個類別,以避免多重繼承可能造成的歧義。Java 類別可以實作多個介面,因此可具備多種介面所定義的行為契約,但這不等同於類別多重繼承。
🔒

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

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

免費註冊

第 27 題2 分

在 C 語言中,若變數 aa、bb 宣告如下:

int *a; int b[5];

下列何者不是合法的 C 語言敘述?

這一題的完整詳解

核心觀念

本題考查 C 語言中陣列與指標的差異,以及陣列名稱在運算式中的轉換規則。

宣告如下:

int *a;
int b[5];
  • a 是指向 int 的指標變數,可以存放某個 int 物件的位址,也可以改指向其他位置。
  • b 是含有 5 個 int 元素的陣列。陣列名稱在多數運算式中會轉換為指向首元素的指標,也就是 &b[0];但 b 本身仍是陣列,不是可重新指定的指標變數。

解題方法

逐一檢查運算式是否合法,特別注意賦值運算子的左運算元必須是可修改的左值。指標變數 a 可以被指定新值;陣列 b 則不能被指定新值。

選項分析

🔒

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

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

免費註冊

第 28 題2 分

若有一位址,其以 16 進位表示為:A30DC862A30DC862,問該位址應為下列何種位址?

這一題的完整詳解

核心觀念

本題考查網路位址的長度與表示方式。IPv4 位址由 32 位元組成,通常以四個十進位數字表示,每組範圍為 00 至 255255,組與組之間以句點分隔。每個十六進位數字代表 44 位元,因此 8 個十六進位數字正好是 3232 位元。

解題方法

題目給的位址是 A30DC862A30DC862,共有 8 個十六進位數字:

8×4=32 位元8 \times 4 = 32 \text{ 位元}

也可依每兩個十六進位數字分組,換算成 IPv4 常見的點分十進位格式:

A3.0D.C8.62→163.13.200.98\texttt{A3.0D.C8.62} \rightarrow \texttt{163.13.200.98}

其中 A316=163\texttt{A3}_{16}=163、0D16=13\texttt{0D}_{16}=13、C816=200\texttt{C8}_{16}=200、6216=98\texttt{62}_{16}=98。四組數值皆介於 00 至 255255,符合 IPv4 的表示方式,因此依官方答案判定為 IPv4 位址。

選項分析

🔒

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

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

免費註冊

第 29 題2 分

請問下列語言或符號,何者經常被用來描述程式語言的文法?

這一題的完整詳解

核心觀念

本題考查「程式語言文法的表示法」。程式語言的文法用來規定哪些符號排列方式構成合法的程式敘述。BNF(Backus–Naur Form,巴科斯-諾爾範式)是常見的形式化文法表示法,能以產生式描述語法結構,例如:

⟨整數⟩::=⟨數字⟩∣⟨整數⟩⟨數字⟩\langle 整數\rangle ::= \langle 數字\rangle \mid \langle 整數\rangle\langle 數字\rangle

其中,::= 表示「定義為」,| 表示「或」。

解題方法

辨認各選項的用途,找出專門用來描述語法規則的表示法。BNF 以產生式描述語言的句法結構,符合題意,因此選 B。

選項分析

🔒

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

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

免費註冊

第 30 題2 分

給定下列以 C 語言實作的函數 AA:

int A(int m, int n) { if (m == 0) return n + 1; else if (n == 0) return A(m - 1, 1); else return A(m - 1, A(m, n - 1)); }

請問呼叫 A(2,2)A(2,2) 的回傳值應為多少?

這一題的完整詳解

核心觀念

此函數符合阿克曼函數(Ackermann function)的遞迴形式。解題時要依照程式中的條件順序展開:先處理 m=0m=0,再處理 n=0n=0,其餘情況則先計算內層呼叫 A(m,n−1)A(m,n-1),再將結果代入外層呼叫。

解題方法

先求 A(2,2)A(2,2):

A(2,2)=A(1,A(2,1))A(2,2)=A(1,A(2,1))

內層值為:

A(2,1)=A(1,A(2,0))A(2,1)=A(1,A(2,0))

當 n=0n=0 時,依函數定義:

A(2,0)=A(1,1)A(2,0)=A(1,1)

接著計算:

A(1,1)=A(0,A(1,0))A(1,1)=A(0,A(1,0)) A(1,0)=A(0,1)=2A(1,0)=A(0,1)=2

所以:

A(1,1)=A(0,2)=3A(1,1)=A(0,2)=3

因此 A(2,0)=3A(2,0)=3,進而:

A(2,1)=A(1,3)A(2,1)=A(1,3)

計算 A(1,3)A(1,3)。由 A(1,n)=A(0,A(1,n−1))A(1,n)=A(0,A(1,n-1)),且 A(1,0)=2A(1,0)=2:

🔒

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

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

免費註冊

第 31 題2 分

下列 C 語言程式執行後呈現的結果應為何者?

#include <stdio.h>

void swap(int a, int b) { int temp; temp = a; a = b; b = temp; }

int main() { int a = 1, b = 2, c = 3;

swap(a, b);
swap(b, c);
swap(c, a);

printf("a = %d, b = %d, c = %d\n", a, b, c);

}

這一題的完整詳解

核心觀念

本題考 C 語言函式的傳值呼叫。呼叫 swap(a, b) 時,函式參數 a、b 是主程式變數值的副本;函式內交換的是副本,不會改變 main 中的變數。

解題方法

主程式中的初始值為 a = 1、b = 2、c = 3。每次呼叫 swap 都只交換函式內的區域變數,函式結束後,主程式的變數維持原值:

執行敘述main 中的 a、b、c
初始狀態1, 2, 3
swap(a, b); 後1, 2, 3
swap(b, c); 後1, 2, 3
swap(c, a); 後1, 2, 3

因此 printf 輸出:

a = 1, b = 2, c = 3

選項分析

🔒

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

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

免費註冊

第 32 題2 分

執行下列 C++ 程式碼後,螢幕印出的數字為何?

int main() { int D[3][4] = {2,4,6,8,10,12,14,16,18,20,22,24};

int *p1 = &D[0][3];

int *p2;

p2 = p1 + 6;

cout << *p2 << endl;

return 0;

}

這一題的完整詳解

核心觀念

本題考查二維陣列在記憶體中的列優先排列,以及指標加法。D 有 3 列、每列 4 個整數,元素依序連續存放:

D[0][0]=2D[0][1]=4D[0][2]=6D[0][3]=8D[1][0]=10D[1][1]=12D[1][2]=14D[1][3]=16D[2][0]=18D[2][1]=20D[2][2]=22D[2][3]=24\begin{matrix} D[0][0]=2 & D[0][1]=4 & D[0][2]=6 & D[0][3]=8\\ D[1][0]=10 & D[1][1]=12 & D[1][2]=14 & D[1][3]=16\\ D[2][0]=18 & D[2][1]=20 & D[2][2]=22 & D[2][3]=24 \end{matrix}

對 int* 指標而言,p + n 表示往後移動 nn 個 int 元素,不是移動 nn 個位元組。

解題方法

p1 = &D[0][3],因此 p1 指向第一列最後一個元素,也就是 8。

依陣列的列優先排列,從 D[0][3] 起向後數 6 個整數:

位移元素數值
0D[0][3]8
1D[1][0]10
2D[1][1]12
🔒

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

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

免費註冊

第 33 題2 分

區域網路若採用匯流排架構,會具有下列何項特性?

這一題的完整詳解

核心觀念

本題考查匯流排(Bus)型區域網路的媒介存取特性。匯流排上的各個節點共用同一條傳輸媒介,傳送資料前須競爭媒介使用權。採用 CSMA/CD(載波偵聽多重存取/碰撞偵測)時,節點先偵聽媒介是否忙碌,再開始傳送;若同時傳送而發生碰撞,便停止傳送並等待一段隨機時間後重試。

CSMA/CD 屬於競爭式媒介存取,無法保證特定資料一定能在某個確定時間內成功送達,因此不具確定的傳輸完成時間。

解題方法

先掌握匯流排的兩項特徵:多個節點共用媒介,因此有碰撞的可能;訊號沿共用媒介傳播,並非只能單方向傳輸。再依序檢查選項是否符合這些特徵,以及是否正確描述 CSMA/CD 的傳輸時序。

選項分析

  • (A) 不會有資料碰撞問題。錯誤。 匯流排上的節點共用傳輸媒介,兩個以上節點若同時傳送,就可能發生資料碰撞。CSMA/CD 的作用之一,正是偵測碰撞並安排節點稍後重傳。
🔒

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

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

免費註冊

第 34 題2 分

當 TCP 收到多個下列何種回應訊息(acknowledgement),將會啟動快速重送(fast retransmission)?

這一題的完整詳解

核心觀念

本題考查 TCP 的快速重送(fast retransmission)。接收端若發現某個 TCP 區段遺失,後續區段仍可能先到達;接收端會反覆回覆相同的確認號碼,表示目前仍在等待遺失區段。這種重複出現的確認稱為重複式回應(duplicate ACK)。

傳送端收到多個重複 ACK,便可推知某區段可能遺失,無須等到重送計時器逾時,就重新傳送該區段。常見 TCP 快速重送機制以收到 3 個重複 ACK 作為觸發條件。

解題方法

辨認題幹中的關鍵詞「多個」與「快速重送」。快速重送是由接收端反覆送出相同確認號碼所觸發,因此要找的是「重複式回應」,而非描述 ACK 延遲、確認範圍或資料搭載方式的選項。

選項分析

  • (A) 延誤式回應(delayed ACK)錯誤。 接收端刻意延後一小段時間再送 ACK,以減少確認封包數量;它描述的是 ACK 的傳送時機,不是觸發快速重送的訊號。
🔒

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

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

免費註冊

第 35 題2 分

有關多人多工作業系統之敘述,下列何者錯誤?

這一題的完整詳解

核心觀念

本題考查多人多工作業系統的基本特性。「多人」表示系統能服務多位使用者;「多工」表示系統能在多個工作之間分配處理器時間,使它們得以交錯執行。這類系統通常需要排程能力與中斷處理能力;但不必然需要多個 CPU。

解題方法

判斷各選項是否屬於多人多工作業系統的必要條件。關鍵在於區分「多工」與「多處理器」:多工可以由單一 CPU 透過分時切換工作來實現;多個 CPU 則是提升平行處理能力的硬體配置,並非多人多工的必要條件。

選項分析

  • (A) 正確。 分時技術將 CPU 時間切分為多個時間片,依序分配給不同工作或使用者,使多個工作交錯進行,能支援多人多工作業。
  • **(B) 正確。
🔒

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

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

免費註冊

第 36 題2 分

下列何者不是螢幕輸出裝置的連接埠?

這一題的完整詳解

核心觀念

本題考「螢幕輸出裝置的連接埠」辨識。DVI、HDMI、VGA 都是常見的影像輸出介面,可將電腦的影像訊號傳送至螢幕;USB 則是通用的周邊裝置介面,主要用於資料傳輸、供電及連接周邊設備,並非一般所稱的螢幕影像輸出連接埠。

解題方法

辨認各介面的主要用途:若介面用來傳送影像至螢幕,便屬於螢幕輸出連接埠;若是通用周邊介面,則不屬於此類。依此分類,DVI、HDMI、VGA 均為影像介面,USB 為通用周邊介面,因此選 USB。

選項分析

🔒

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

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

免費註冊

第 37 題2 分

關於 IEEE 所定義的 IEEE 802.11 規範,下列敘述何者正確?

這一題的完整詳解

核心觀念

IEEE 802.11 是無線區域網路(WLAN,俗稱 Wi-Fi)的系列標準,定義無線區域網路的實體層與資料鏈結層規範。資料鏈結層又可分為媒體存取控制(MAC)子層與邏輯鏈結控制(LLC)子層;802.11 主要規範 MAC 與實體層。

WiMAX 的主要標準是 IEEE 802.16,行動通訊世代(如 3G、4G)則各有其行動通訊標準體系,均不屬於 IEEE 802.11 的規範範圍。

解題方法

先辨認 IEEE 802.11 的用途:它是無線區域網路標準,再檢查選項是否把它的分層範圍或應用領域說錯。題目中只有選項 (A) 符合其標準範圍;其餘選項把其他無線技術或行動通訊世代誤列為 802.11。

🔒

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

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

免費註冊

第 38 題2 分

假設兩個不同主機上的程序(A 和 B)利用 TCP 傳輸資料,則 A 如何確定其送給 B 的資料都已經送達?

這一題的完整詳解

核心觀念

本題考查 TCP 的可靠傳輸與累積確認。TCP 以序號(Sequence Number)標示資料位元組的位置,並以確認號碼(Acknowledgment Number)表示接收端下一個預期收到的位元組序號。

A 傳送資料給 B 後,B 若成功收到資料,會在回傳給 A 的 TCP 封包中,以確認號碼表示已收到的範圍。A 可藉由檢查 B 回傳的確認號碼,判斷自己的資料是否已獲確認。

解題方法

先看封包方向:要確認「A 送給 B 的資料」,應檢查 B 回傳給 A 的封包。再看欄位功能:回傳封包中的 acknowledgement number 用來確認收到的資料,因此選 (D)。

例如,若 A 傳送的資料位元組序號為 1000 至 1099,B 回傳確認號碼 1100,表示 B 已收到序號 1099 為止的連續資料,下一個預期收到的位元組是 1100。

🔒

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

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

免費註冊

第 39 題2 分

下列哪種網路拓樸(network topology)具有較高可靠度(reliability)?

這一題的完整詳解

核心觀念

本題考查網路拓樸的可靠度,也就是部分連線或設備故障時,網路仍能維持連通、傳送資料的能力。拓樸中的路徑越多、替代路徑越充足,通常越能容忍單一連線故障。

解題方法

比較各拓樸在連線故障時是否有替代路徑:

  • 匯流排拓樸共用一條主幹線,主幹線故障會影響整個網路。
  • 星狀拓樸各節點透過中央設備連接,中央設備故障會使整個網路中斷。
  • 環狀拓樸節點串接成環,單一連線故障可能切斷環路。
  • 網狀拓樸節點間有多條連線,通常存在多條替代路徑;部分連線故障時,資料仍可能繞道傳送,因此可靠度較高。

選項分析

🔒

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

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

免費註冊

第 40 題2 分

HTML 的功用為何?

這一題的完整詳解

核心觀念

HTML 是「超文字標記語言」(HyperText Markup Language),用標籤描述網頁內容的結構,例如標題、段落、圖片與連結。瀏覽器讀取 HTML 後,會依其標記呈現網頁。

HTML 負責標記與組織內容,不是用來繪製複雜圖像、翻譯程式語言或求解方程式的工具。

解題方法

辨認 HTML 的全名與用途即可:它是建構網頁內容的標記語言,因此選出「編寫網頁」的選項。題目考的是 HTML 的基本功能,不涉及計算或法規。

選項分析

🔒

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

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

免費註冊

其他考古題