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

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

第 1 題2 分

二補數表示法中,二進位數 1001 10101001\ 1010 之補數應為何?

這一題的完整詳解

核心觀念

二補數是固定位元數下表示負數及進行減法運算的方法。求一個二進位數的二補數,先將每一位元反相,再加上 11;也可由右向左保留最右邊的 11 及其右側位元,其餘位元反相。

解題方法

題目給定 88 位元數:

1001 10101001\ 1010

先逐位反相,得到一補數:

1001 1010⟶0110 01011001\ 1010 \longrightarrow 0110\ 0101

再加上 11:

0110 0101+1=0110 01100110\ 0101 + 1 = 0110\ 0110

因此,其二補數為 0110 01100110\ 0110。

選項分析

🔒

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

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

免費註冊

第 2 題2 分

相較於向量圖,點陣圖的主要優點為何?

這一題的完整詳解

核心觀念

點陣圖(bitmap/raster image)由許多像素組成,每個像素記錄一個位置的顏色或亮度;向量圖(vector image)則以點、線、曲線與幾何圖形的數學描述來表示影像。

點陣圖能逐像素記錄細緻的色彩與明暗變化,因此適合表現景物複雜、色彩連續的攝影照片。向量圖則擅長呈現線條清楚、形狀規則的圖案,例如標誌、圖示與工程圖。

解題方法

比較兩種格式最擅長的影像類型:照片包含大量細節、漸層與複雜色彩,點陣圖可以直接記錄各像素的視覺資訊;向量圖以幾何物件描述圖形,較適合可縮放的線條與規則形狀。題目問點陣圖相較於向量圖的主要優點,因此選擇適合表現攝影照片的選項。

選項分析

  • (A) 圖形檔案較小:錯誤。 點陣圖需要記錄大量像素,解析度與色彩深度越高,檔案通常越大。簡單圖形若用向量描述,檔案往往較精簡;
🔒

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

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

免費註冊

第 3 題2 分

下列哪些軟體是以開放程式碼(open source)的方式開發的?

這一題的完整詳解

核心觀念

本題考查軟體的授權與開發模式。開放程式碼(open source)​軟體依其授權條款,允許使用者取得程式原始碼,並在授權條件下使用、修改或散布。判斷時要看軟體是否以開放程式碼方式發行,而非只看它是否常見或能否免費取得。

解題方法

逐一辨認各軟體的開發與授權模式:Windows、Access 與 Oracle 資料庫軟體皆屬專有軟體;Linux 則是以開放程式碼方式開發與散布的作業系統。因此,符合題意的是 Linux。

選項分析

  • (A) Windows 作業系統:錯誤。 Windows 是 Microsoft 的專有作業系統,程式原始碼不以開放程式碼方式公開。
  • **(B) Linux 作業系統:正確。
🔒

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

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

免費註冊

第 4 題2 分

在中央處理器的內部結構中,下列何者負責協調將程式運算指令從記憶體搬到暫存器並進行解碼?

這一題的完整詳解

核心觀念

本題考查中央處理器(CPU)的基本組成與指令處理流程。控制單元(Control Unit)負責協調 CPU 各部件的工作,包含從記憶體擷取指令、解碼指令,以及發出控制訊號,使指令能依序執行。

解題方法

看到題目中的「協調」、「搬到暫存器」與「解碼」,應聯想到指令週期中的擷取與解碼階段。控制單元會控制指令由記憶體送入指令暫存器,再解讀指令內容,並安排後續運算所需的資料傳送與元件動作。因此,負責協調這些工作的單元是控制單元。

選項分析

🔒

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

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

免費註冊

第 5 題2 分

補間動畫(Tweening),針對下列何者無效?

這一題的完整詳解

核心觀念

補間動畫(Tweening,亦稱中間畫格法)是先設定動畫的起始與結束狀態,再由電腦自動計算兩者之間的中間狀態,讓畫面呈現連續變化。常見可補間的項目包括物件的位置或路徑、色彩,以及形狀。

解題方法

判斷選項是否屬於可逐步變化的動畫屬性。位置、色彩、形狀都能在起始與結束狀態之間計算中間值;貼圖則是已製作完成的影像素材,本身不是此題所列的補間動畫變化項目。因此依官方答案選擇 (D)。

選項分析

🔒

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

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

免費註冊

第 6 題2 分

一般作業系統都會採用某種排班(scheduling)策略來決定當下要執行哪個程序(process)。假設所使用的策略會考慮每個程序所需花費的執行時間,則該策略最有可能是下列何者?

這一題的完整詳解

核心觀念

本題考查作業系統的程序排班策略,以及各策略挑選下一個執行程序時依據的條件。

最短工作先處理(Shortest Job First, SJF)會優先選擇預估執行時間最短的程序。因此,題目所說「考慮每個程序所需花費的執行時間」,符合 SJF 的特徵。

解題方法

抓住關鍵字「執行時間」即可判斷:在選項中,直接依程序工作長短來決定執行順序的策略是 SJF。它的典型目標是降低平均等待時間;實務上須估計程序的執行時間,且長工作可能因短工作持續到達而等待過久。

選項分析

  • (A) 先到先處理(First In First Out, FIFO)錯誤。 按程序抵達就緒佇列的先後順序執行,不以執行時間長短決定次序。
🔒

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

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

免費註冊

第 7 題2 分

IEEE 754 標準是目前最通用的浮點數(Floating point)表示法,若以 IEEE 754 的單倍精準數(Single precision)儲存格式表示 −3.5-3.5,結果應為下列何者?

這一題的完整詳解

核心觀念

IEEE 754 單倍精準數共 32 位元,依序由 1 位元符號位、8 位元指數欄位及 23 位元小數欄位組成。正規化數的指數欄位採用偏移值 127127 表示:

數值=(−1)s×1.f×2E−127\text{數值}=(-1)^s \times 1.f \times 2^{E-127}

其中 ss 為符號位,EE 為指數欄位的無號整數值,ff 為小數欄位所表示的部分。

解題方法

先將 3.53.5 轉成二進位:

3.510=11.12=1.112×213.5_{10}=11.1_2=1.11_2\times 2^1

再依序求出三個欄位:

  • 符號位:原數為負數,故 s=1s=1。
  • 指數欄位:實際指數為 11,加上偏移值 127127,得 E=1+127=128E=1+127=128。其 8 位元二進位為 10000000210000000_2。
  • 小數欄位:正規化後有效數為 1.1121.11_2,最高位的隱含 11 不儲存;將小數部分 1111 補至 23 位,得 1100000000000000000000011000000000000000000000。

合併為:

🔒

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

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

免費註冊

第 8 題2 分

將組合語言程式翻譯成機器語言的軟體稱為:

這一題的完整詳解

核心觀念

本題考查系統軟體的功能分工。組合語言以助記符表示機器指令,例如 ADD、MOV;將這些助記符及運算元轉換成處理器可執行的機器語言,是組譯器(Assembler)​的工作。

解題方法

先辨認程式來源語言是「組合語言」,再對照負責翻譯它的軟體:組合語言轉機器語言,使用組譯器。編譯器與直譯器主要處理高階語言;連結器則負責組合目標檔與程式庫、解析外部參照,不負責把組合語言翻譯成機器語言。

選項分析

🔒

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

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

免費註冊

第 9 題2 分

一個程式在一台電腦中執行共需 140140 秒,其中除法指令共花掉 112112 秒,請問要將除法指令速度提升為多少倍,可使原程式執行時間縮短為原來的四分之一?

這一題的完整詳解

核心觀念

本題考查 Amdahl 定律:只加速程式中的一部分時,整體執行時間的改善幅度會受未加速部分限制。若被加速部分原本耗時 TaT_a,加速 SS 倍,其新耗時為 Ta/ST_a/S;其餘部分的耗時則維持不變。

解題方法

原程式共執行 140140 秒,其中除法指令耗時 112112 秒,因此非除法指令耗時:

140−112=28 秒140-112=28\text{ 秒}

要求新執行時間為原來的四分之一:

140×14=35 秒140\times\frac14=35\text{ 秒}

設除法指令加速 SS 倍。加速後,整體執行時間為:

28+112S=3528+\frac{112}{S}=35

移項得:

112S=7⇒S=16\frac{112}{S}=7 \quad\Rightarrow\quad S=16
🔒

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

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

免費註冊

第 10 題2 分

若將十進位數字 731073_{10} 轉成 88 進位,其對應的表示法為下列何者?

這一題的完整詳解

核心觀念

本題考查十進位轉換為八進位。八進位採「逢八進一」,各位數的位值依序為 80、81、82、…8^0、8^1、8^2、\ldots。因此,八進位數 1118111_8 代表 1×82+1×81+1×801\times8^2+1\times8^1+1\times8^0。

解題方法

以連續除以 88 的方式轉換,記錄每次的餘數,最後由下往上排列:

73÷8=9 餘 173\div8=9\text{ 餘 }1 9÷8=1 餘 19\div8=1\text{ 餘 }1 1÷8=0 餘 11\div8=0\text{ 餘 }1

將餘數由最後一次除法往前讀,得到 1118111_8。驗算:

1118=1×82+1×81+1×80=64+8+1=7310111_8=1\times8^2+1\times8^1+1\times8^0=64+8+1=73_{10}

選項分析

🔒

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

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

免費註冊

第 11 題2 分

下列何種計算機架構主要以「零位址指令(Zero-address Instruction)」來進行「資料定址(Data Addressing)」?

這一題的完整詳解

核心觀念

本題考查指令集架構中,運算元(operand)如何指定,以及指令位址欄位的數量。

零位址指令不在指令中明列運算元位址;在堆疊架構中,運算元預先放在堆疊頂端,運算指令會自動取用堆疊頂端的資料,並將結果放回堆疊,因此主要以零位址指令進行資料定址。

解題方法

辨認各架構如何取得運算元:

  • 若指令明列暫存器或記憶體位置,便有一個或多個位址欄位。
  • 若運算元由累進器固定提供,指令通常不需指定其中一個運算元,但架構仍以累進器為主要操作位置。
  • 若運算元由堆疊頂端隱含提供,運算指令可不帶位址欄位,屬於零位址指令。

因此,題目所述「主要以零位址指令」操作的架構是堆疊。

選項分析

(A) 暫存器對暫存器(Register-to-register):錯誤。 運算指令通常須指定來源與目的暫存器,例如 ADD R1, R2, R3,至少要透過暫存器欄位指出運算元及結果位置,不屬於零位址指令的典型架構。

🔒

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

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

免費註冊

第 12 題2 分

假設一個表格定義了四個屬性(attribute),分別名為 AA、BB、CC、DD,如下表中的第 1 列所示。根據目前表格內所記錄的兩筆資料列(tuple),如下表中的第 2~3 列所示,以下哪個屬性集合不可能是該表格的主鍵(primary key)?

AABBCCDD
aa1aa1bb1bb1cc1cc1dd1dd1
aa2aa2bb2bb2cc1cc1dd2dd2
這一題的完整詳解

核心觀念

主鍵(primary key)是能唯一識別每一筆資料列的屬性集合,因此表中任兩筆資料在主鍵所包含的所有屬性值都必須不同。若某屬性集合在資料列間出現相同值,就不能作為主鍵。

解題方法

比較兩筆資料在各選項所列屬性上的值:

屬性集合第 1 筆資料第 2 筆資料是否不同
{A}\{A\}aa1aa1aa2aa2是
{B}\{B\}bb1bb1bb2bb2是
{C}\{C\}cc1cc1cc1cc1否
{C,D}\{C,D\}(cc1,dd1)(cc1,dd1)(cc1,dd2)(cc1,dd2)是

{C}\{C\} 在兩筆資料中的值相同,無法區分兩筆資料,因此不具備唯一識別能力,不能作為主鍵。

選項分析

🔒

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

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

免費註冊

第 13 題2 分

設二元搜尋樹(binary search tree)儲存有 nn 個關鍵值(keys),則搜尋一個關鍵值其最佳及最差之時間複雜度(time complexity)分別為何?

這一題的完整詳解

核心觀念

二元搜尋樹(binary search tree, BST)的每個節點至多有左、右子節點;左子樹的鍵值小於節點鍵值,右子樹的鍵值大於節點鍵值。搜尋時,從根節點開始比較,依鍵值大小選擇往左或往右,直到找到目標或走到空節點。

搜尋所需時間取決於搜尋過程經過的節點數。最佳情況下,目標鍵值就在根節點,僅需一次比較,時間複雜度為 O(1)O(1)。最差情況下,樹退化成單向鏈結串列,搜尋可能必須逐一檢查 nn 個節點,時間複雜度為 O(n)O(n)。

解題方法

題目未限定 BST 必須平衡,因此不能直接假設樹高為 O(log⁡n)O(\log n)。

  • 最佳情況:目標鍵值位於根節點,只需一次比較,故為 O(1)O(1)。
  • 最差情況:節點依序插入等情形可能形成偏斜樹,樹高可達 nn;搜尋可能一路走訪所有節點,故為 O(n)O(n)。

選項分析

🔒

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

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

免費註冊

第 14 題2 分

已知一 connected graph GG 共有 2020 個節點(vertex),而 TT 為 GG 的一個 spanning tree。試問 TT 共有幾個邊(edge)?

這一題的完整詳解

核心觀念

生成樹(spanning tree)是包含圖中所有頂點,且本身連通、無環的子圖。對於有 nn 個頂點的樹,邊數固定為 n−1n-1。

解題方法

題目已知 TT 是 GG 的一個生成樹,且共有 2020 個頂點。套用樹的邊數公式:

∣E(T)∣=∣V(T)∣−1=20−1=19|E(T)|=|V(T)|-1=20-1=19

因此,TT 共有 1919 個邊。

選項分析

  • (A) 1010:錯誤。 生成樹的邊數由頂點數決定,不是頂點數的一半;2020 個頂點的生成樹有 1919 個邊。
  • **(B) 1919:正確。
🔒

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

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

免費註冊

第 15 題2 分

以下之有向無環圖(Directed Acyclic Graph)中,從節點 ii 至節點 aa 之最長路徑(Longest Path)其長度為何?

(此題原卷文字擷取不全,請參考原卷)

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

核心觀念

有向圖中,路徑必須沿箭頭方向前進;加權路徑的長度是沿途邊權重的總和。求最長路徑時,可由終點往前計算:

L(v)=max⁡(v,u)∈E(w(v,u)+L(u))L(v)=\max_{(v,u)\in E}\bigl(w(v,u)+L(u)\bigr)

其中 L(v)L(v) 是從節點 vv 到終點 aa 的最長路徑長度,且 L(a)=0L(a)=0。

解題方法

依圖中的箭頭方向與權重,由終點 aa 往前推算:

  • L(a)=0L(a)=0。
  • b→ab\to a 權重為 11,所以 L(b)=1L(b)=1。
  • cc 可直接到 aa,權重為 55;也可經 bb 到 aa,長度為 3+1=43+1=4,所以 L(c)=max⁡(5,4)=5L(c)=\max(5,4)=5。
  • dd 可直接到 aa,長度為 77;也可經 cc 到 aa,長度為 3+5=83+5=8,所以 L(d)=8L(d)=8。
  • e→de\to d 權重為 33,所以 L(e)=3+8=11L(e)=3+8=11。
  • ff 可經 ee 到 aa,長度為 5+11=165+11=16;經 gg 的路徑不會到達 aa,所以 L(f)=16L(f)=16。
  • hh 可經 ff 到 aa,長度為 3+16=193+16=19;經 cc 到 aa 的長度為 5+5=105+5=10,所以 L(h)=19L(h)=19。
🔒

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

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

免費註冊

第 16 題2 分

陣列的元素被儲存在連續的記憶體位址是因為:

這一題的完整詳解

核心觀念

陣列(Array)是由多個相同型別的元素組成,通常依序儲存在連續的記憶體位址中。由於元素大小固定,電腦只要知道第一個元素的起始位址,以及索引值,就能直接計算任一元素的位址。

若每個元素占 ww 個位元組、陣列起始位址為 BB,以 00 為起始索引時,第 ii 個元素的位址為:

位址⁡(A[i])=B+i×w\operatorname{位址}(A[i]) = B + i \times w

解題方法

題目問陣列元素為何採連續儲存,關鍵在於連續排列能讓電腦依照「起始位址、索引值、元素大小」直接定位元素,不必逐一尋找或記錄每個元素各自的位址。因此,選項 A 說明了陣列連續儲存所帶來的位址計算便利性。

選項分析

🔒

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

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

免費註冊

第 17 題2 分

假設輸入堆疊的資料依序是:11、22、33、44、55。下列哪種資料輸出順序是可能的?

這一題的完整詳解

核心觀念

本題考「堆疊」(Stack)的後進先出特性,英文為 LIFO(Last In, First Out):最後放入堆疊的資料,必須最先取出。輸入順序固定為 1、2、3、4、51、2、3、4、5,每個數字各輸入、輸出一次,且只能透過堆疊暫存。

解題方法

依照目標輸出順序,模擬「依序輸入數字」及「從堆疊頂端輸出數字」。堆疊頂端若不是目前需要輸出的數字,就不能跳過頂端取出其他資料。

以選項(B)3、4、5、2、13、4、5、2、1 為例:

  1. 依序將 1、2、31、2、3 推入堆疊,此時堆疊由底至頂為 1、2、31、2、3。
  2. 取出頂端 33,符合第一個輸出。
  3. 推入 44,再取出 44;推入 55,再取出 55。
  4. 此時堆疊由底至頂剩下 1、21、2,頂端是 22,接著取出 2、12、1。

因此可得到輸出順序 3、4、5、2、13、4、5、2、1,符合(B)。

選項分析

🔒

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

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

免費註冊

第 18 題2 分

若將十進位數字 10781078 改以二進位來表示,結果應會有幾位數字?

這一題的完整詳解

核心觀念

二進位是以 22 為基底的位值記數法。若正整數 NN 的二進位表示有 kk 位,則:

2k−1≤N<2k2^{k-1} \leq N < 2^k

因此,只要找出 10781078 介於哪兩個相鄰的 22 的次方之間,就能判斷它的二進位位數。

解題方法

相鄰的 22 的次方為:

210=1024,211=20482^{10}=1024,\qquad 2^{11}=2048

因為:

1024≤1078<20481024 \leq 1078 < 2048

所以 10781078 的二進位表示有 1111 位。

也可展開驗算:

1078=1024+32+16+4+21078=1024+32+16+4+2

對應到 210,25,24,22,212^{10}, 2^5, 2^4, 2^2, 2^1,因此二進位表示為 1000011011010000110110,共 1111 位。

選項分析

🔒

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

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

免費註冊

第 19 題2 分

下列何種走訪方式,可以保持二元搜尋樹(binary search tree)上節點的排序?

這一題的完整詳解

核心觀念

二元搜尋樹(binary search tree, BST)的節點排列規則是:對任一節點而言,左子樹中的鍵值小於該節點,右子樹中的鍵值大於該節點。這項規則使得 BST 的中序走訪會依序輸出由小到大的鍵值。

三種常見走訪順序為:

  • 前序:根、左子樹、右子樹
  • 中序:左子樹、根、右子樹
  • 後序:左子樹、右子樹、根

解題方法

依照 BST 的大小規則,先走訪左子樹會先取得較小的鍵值;接著走訪根節點;最後走訪右子樹,取得較大的鍵值。因此,中序走訪的輸出順序是「左、根、右」,可保持節點由小到大的排序。

例如,若根節點為 8,左子節點為 3,右子節點為 10,中序走訪結果為 3,8,103, 8, 10,符合遞增順序。

選項分析

🔒

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

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

免費註冊

第 20 題2 分

以一陣列 AA 實作最大二元堆積(Max Binary Heap),一般方法為以 A[1]A[1] 代表根節點(Root),A[i]A[i] 代表堆積中的某一個節點及儲存其數值,而 A[2i]A[2i] 和 A[2i+1]A[2i+1] 分別為 A[i]A[i] 所代表的節點之左子節點(Left Child)及右子節點(Right Child)。

若目前堆積共有九個數字,且其對應的陣列之值 A[1],A[2],…A[1], A[2], \ldots 依序為 18,10,13,8,7,5,2,4,618, 10, 13, 8, 7, 5, 2, 4, 6,則在插入(Insert)新數值 99 於堆積時,在堆積中與 99 進行比對的數字共有多少個?

這一題的完整詳解

核心觀念

最大二元堆積(Max Binary Heap)除了符合完全二元樹的結構外,也要求每個父節點的值都大於或等於其子節點。以陣列從 A[1]A[1] 開始儲存時,索引 ii 的父節點索引為 ⌊i/2⌋\lfloor i/2\rfloor。

插入新值時,先將它放在堆積末端,再與父節點逐一比較;若新值大於父節點,就交換並繼續向上調整。

解題方法

原堆積有 99 個數字,因此新數值 99 先放入第 1010 個位置 A[10]A[10]。接著沿著父節點路徑比較:

  1. A[10]A[10] 的父節點是 A[5]=7A[5]=7。比較 99 與 77,因 9>79>7,交換。
  2. 99 上移至 A[5]A[5],其父節點是 A[2]=10A[2]=10。比較 99 與 1010,因 9<109<10,停止。

插入時與 99 比對的數字是 77、1010,共 22 個;堆積調整後,99 位於 A[5]A[5]。

🔒

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

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

免費註冊

第 21 題2 分

對圖形(graph)進行廣度優先拜訪(breadth-first traversal)時,哪種資料結構是有助益的?

這一題的完整詳解

核心觀念

廣度優先拜訪(Breadth-First Search,BFS)會先拜訪起點的鄰接頂點,再依序拜訪距離起點更遠的頂點。為了維持「先發現的頂點先處理」,BFS 使用佇列(queue),遵循先進先出(FIFO)原則。

解題方法

拜訪頂點時,將尚未拜訪的鄰接頂點加入佇列;接著從佇列前端取出頂點,再檢查它的鄰接頂點。如此便能依照距離起點的層次逐層擴展。

例如起點為 AA,且 AA 鄰接 B、CB、C,而 BB 鄰接 DD:先將 B、CB、C 放入佇列,再依序處理 B、CB、C,之後才處理 DD。這種逐層、先發現先處理的順序正是佇列所提供的。

選項分析

🔒

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

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

免費註冊

第 22 題2 分

對一個有九個節點的二元搜尋樹(Binary Search Tree)作前序訪問(Preorder Traversal),並依序輸出訪問節點的數值,其結果如下(次序由左至右):

12,9,7,8,20,15,13,16,2212, 9, 7, 8, 20, 15, 13, 16, 22

在此樹中共有多少個節點其左子節點(Left Child)及右子節點(Right Child)皆有數值?

這一題的完整詳解

核心觀念

二元搜尋樹(Binary Search Tree, BST)中,任一節點的左子樹節點值小於該節點,右子樹節點值大於該節點。前序走訪(Preorder Traversal)的順序是:

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

因此,前序序列的第一個數值是根節點;依 BST 的大小關係,後續數值可分成根的左子樹與右子樹,再依序遞迴還原樹形。

解題方法

序列為 12,9,7,8,20,15,13,16,2212, 9, 7, 8, 20, 15, 13, 16, 22。

  1. 第一個數值 1212 是根節點。
  2. 根之後,小於 1212 的數值屬於左子樹,大於 1212 的數值屬於右子樹。故左子樹前序序列為 9,7,89, 7, 8,右子樹前序序列為 20,15,13,16,2220, 15, 13, 16, 22。
  3. 左子樹以 99 為根:77、88 均小於 99,屬於其左子樹;依前序順序插入 BST 時,77 是 99 的左子節點,88 是 77 的右子節點。
  4. 右子樹以 2020 為根:15,13,1615, 13, 16 均小於 2020,而 2222 大於 2020。
🔒

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

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

免費註冊

第 23 題2 分

若 y=1900y=1900,則下列 C 語言敘述句將產生何種結果?

k=(y%400==0)? 1:(y%4==0) && (y%100!=0)? 2:3;k=(y\%400==0)?\ 1:(y\%4==0)\ \&\&\ (y\%100!=0)?\ 2:3;

這一題的完整詳解

核心觀念

本題考 C 語言的條件運算子 ?:、邏輯運算子 &&,以及判斷閏年的規則。

閏年判斷條件為:能被 400 整除,或能被 4 整除且不能被 100 整除。題目以巢狀條件運算子依序判斷這些條件,並指定不同的 k 值。

解題方法

條件運算子 條件 ? 表達式1 : 表達式2 會先判斷條件;成立時取表達式1,不成立時取表達式2。題目中的 ?: 由右側開始結合,可讀作:

k=(y%400==0)?1:((y%4==0) && (y%100!=0)?2:3)k=(y\%400==0)?1:\bigl((y\%4==0)\ \&\&\ (y\%100!=0)?2:3\bigr)

代入 y=1900y=1900:

  1. 1900%400=3001900\%400=300,所以 y%400==0y\%400==0 不成立,往後判斷。
  2. 1900%4=01900\%4=0,但 1900%100=01900\%100=0,因此 y%100!=0y\%100!=0 不成立。
🔒

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

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

免費註冊

第 24 題2 分

下列以 C 語言撰寫的程式中,①、②、③各行何者為函式之宣告(declaration)、定義(definition)或呼叫(call)?

#include<stdio.h>

int isOdd(int a); //①

int main() { isOdd(2); //② return 0; }

int isOdd(int a){ return a%2 == 1; } //③

這一題的完整詳解

核心觀念

本題考查 C 語言函式的三種用法:

  • 宣告(declaration):告知編譯器函式名稱、回傳型態及參數型態,不提供函式本體。
  • 呼叫(call):在程式中使用函式名稱並提供引數,要求執行函式。
  • 定義(definition):提供函式的完整內容,也就是函式本體。

解題方法

依序看三行的語法特徵:

  1. int isOdd(int a); 以分號結尾,只有函式原型,沒有函式本體,因此①是宣告。
  2. isOdd(2); 以函式名稱搭配引數呼叫函式,因此②是呼叫。
🔒

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

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

免費註冊

第 25 題2 分

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

int f(int& m, int& n){ int tmp; tmp=m; m=n; n=tmp; }

int main(){ int a=1, b=2, c=3, d=4, e=5, g=6; f(a,b); f(c,d); f(e,g); f(a,c); f(a,g); cout<<a<<endl; return 0; }

這一題的完整詳解

核心觀念

本題考 C++ 的參考參數(reference parameter)。函式參數宣告為 int&,表示參數是實際變數的別名;在函式內對參數指定新值,會直接修改呼叫時傳入的變數。

函式 f(m, n) 會交換兩個參數所參照變數的值。區域變數 tmp 暫存原本的 m,再依序將 n 指派給 m、將 tmp 指派給 n。

解題方法

依照 main 中函式呼叫的順序追蹤各變數:

步驟執行內容aabbccddeegg
初始—123456
1f(a,b)213456
2f(c,d)214356
3f(e,g)214365
🔒

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

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

免費註冊

第 26 題2 分

針對下列結構變數處理,何者語法正確?

struct { char d[10]; }a,b,c;

這一題的完整詳解

核心觀念

本題考 C 語言的結構(struct)指派與陣列指派規則。結構變數可以彼此指派;但結構內的陣列成員不能直接以指派運算子複製,結構也不能直接使用加法或減法運算子。

題目宣告的 a、b、c 都是相同結構型態的變數,且各自包含一個 char d[10] 陣列成員。

解題方法

逐一判斷運算子套用的對象:

  • 若運算子兩側是相同結構型態的變數,C 語言允許以 = 將右側結構的值指派給左側結構。
  • 若運算子兩側是陣列,不能直接以 = 指派。
  • 結構沒有內建的加法或減法定義,不能直接使用 + 或 -。

選項分析

🔒

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

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

免費註冊

第 27 題2 分

在下圖的二元搜尋樹(binary search tree)中進行搜尋時,下列哪個元素所需的搜尋時間最長?

(此題原卷文字擷取不全,請參考原卷)

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

核心觀念

在二元搜尋樹中,搜尋從根節點開始,依照目標值與目前節點的大小比較,往左子樹或右子樹前進。搜尋所需時間與搜尋路徑上的節點數成正比;比較的節點越多,搜尋時間越長。

解題方法

圖中的搜尋路徑如下:

  • 搜尋 11:2→12 \rightarrow 1,需比較 22 個節點。
  • 搜尋 22:直接在根節點找到,需比較 11 個節點。
  • 搜尋 33:2→4→32 \rightarrow 4 \rightarrow 3,需比較 33 個節點。
  • 搜尋 44:2→42 \rightarrow 4,需比較 22 個節點。

在選項列出的元素中,搜尋 33 經過的節點最多,因此所需搜尋時間最長。

🔒

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

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

免費註冊

第 28 題2 分

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

#include<stdio.h>

int main(){ int i;

for(i=0; i<3; i++){
    switch(i){
        case 0:
            break;
        case 1:
            printf("1 ");
            break;
        case 2:
            printf("2 ");
        case 3:
            printf("3 ");
    }

    printf("4");
}

return 0;

}

這一題的完整詳解

核心觀念

本題考查 for 迴圈與 switch 敘述的執行流程,重點是:

  • for(i=0; i<3; i++) 讓 i 依序為 0、1、20、1、2。
  • switch 會從符合的 case 開始執行;遇到 break 才跳出 switch。
  • 若沒有 break,程式會繼續執行下一個 case,稱為穿透(fall-through)。
  • switch 結束後,仍會執行其後的 printf("4");。

解題方法

依序代入每次迴圈的 i,追蹤 switch 內的輸出,再加上 switch 後的 4:

iswitch 內的執行switch 後的輸出本輪輸出
00case 0 立即 break,不輸出44
11case 1 輸出 1 ,再遇到 break41 4
22case 2 輸出 2 ;沒有 break,穿透至 case 3 輸出 3 42 3 4
🔒

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

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

免費註冊

第 29 題2 分

某電信頻段,已知其頻寬為 20 MHz20\ \mathrm{MHz},最高的頻率為 1870 MHz1870\ \mathrm{MHz},問最低頻率為何?

這一題的完整詳解

核心觀念

頻寬是頻帶最高頻率與最低頻率的差值,公式為:

頻寬=f高−f低\text{頻寬} = f_{\text{高}} - f_{\text{低}}

因此,已知最高頻率與頻寬時,最低頻率可由最高頻率減去頻寬求得。

解題方法

題目給定頻寬為 20 MHz20\ \mathrm{MHz},最高頻率為 1870 MHz1870\ \mathrm{MHz},代入公式:

f低=f高−頻寬=1870−20=1850 MHzf_{\text{低}} = f_{\text{高}} - \text{頻寬} = 1870 - 20 = 1850\ \mathrm{MHz}

又因為 1000 MHz=1 GHz1000\ \mathrm{MHz} = 1\ \mathrm{GHz},所以:

1850 MHz=1.85 GHz1850\ \mathrm{MHz} = 1.85\ \mathrm{GHz}

故選項 (C) 正確。

選項分析

  • (A) 1890 MHz1890\ \mathrm{MHz}:錯誤。 這是把 20 MHz20\ \mathrm{MHz} 加到最高頻率 1870 MHz1870\ \mathrm{MHz} 上,得到比最高頻率更高的值;題目要求的是最低頻率。
🔒

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

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

免費註冊

第 30 題2 分

下列關於 JavaScript 的敘述,何者錯誤?

這一題的完整詳解

核心觀念

本題考查 JavaScript 的性質與用途。JavaScript 是一種程式語言,常用於網頁前端,能操作網頁內容並增加互動功能;它的名稱雖然含有「Java」,但不是 Java 語言的分支,兩者是不同的程式語言。

解題方法

逐項判斷敘述是否符合 JavaScript 的語言特性與常見用途。題目詢問「何者錯誤」,因此找出與 JavaScript 和 Java 關係不符的選項即可。

選項分析

  • (A) 一種直譯式程式語言:正確。 JavaScript 通常由執行環境直接執行,傳統上歸類為直譯式語言。現代 JavaScript 引擎也會採用即時編譯等技術,但不影響本選項在考題中的判斷。
  • **(B) 為 Java 語言的一個分支:錯誤。
🔒

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

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

免費註冊

第 31 題2 分

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

int main(){ int A[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int(pp)[4]=(int()[4])A[1]; int *p;

p=*(pp+1)+1;

cout<< *p <<endl;
return 0;

}

這一題的完整詳解

核心觀念

本題考查二維陣列在記憶體中的排列方式,以及「指向含有 4 個 int 的陣列之指標」如何進行指標運算。

A 是 3 × 4 的二維陣列,元素依列排列:

列索引元素
A[0]1, 2, 3, 4
A[1]5, 6, 7, 8
A[2]9, 10, 11, 12

pp 的型別是 int (*)[4],表示「指向含有 4 個 int 的陣列之指標」,因此 pp + 1 會移動一整列,也就是 4 個 int 的位置。

解題方法

int(*pp)[4] = (int(*)[4])A[1];

A[1] 指向第二列的第一個元素,也就是 5。轉型後,pp 指向第二列這個含有 4 個 int 的陣列。

接著:

p = *(pp + 1) + 1;

分兩步計算:

  1. pp + 1:前進一列,從第二列移至第三列,也就是 A[2]。
  2. *(pp + 1):取得第三列。
🔒

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

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

免費註冊

第 32 題2 分

下列何者不屬於程序式程式語言(procedural programming languages)?

這一題的完整詳解

核心觀念

程序式程式語言(procedural programming language)以一連串指令或程序描述程式的執行步驟,常透過變數、指定敘述、條件判斷與迴圈控制流程。BASIC、COBOL、FORTRAN 都是常見的程序式語言。

Smalltalk 則以物件導向為主要典範,程式由物件及物件間的訊息傳遞構成,因此本題官方答案為 D。

解題方法

辨認各選項主要採用的程式設計典範:前三者是典型程序式語言;Smalltalk 的核心是物件與訊息傳遞,屬於物件導向語言。因此選出 Smalltalk。

選項分析

🔒

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

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

免費註冊

第 33 題2 分

在資訊法律問題的分類中,對於網路傳播內容的管制,屬於下列何者?

這一題的完整詳解

核心觀念

本題考查資訊法律問題的分類。網路傳播內容的管制,重點在於規範網路上傳播的資訊內容,例如不當或違法內容的發布與散布,屬於「資訊內容管制」。

本題以命題當年(民國 108 年)相關分類為準;題目考的是分類概念,並未要求適用特定法條。

解題方法

抓住題幹中的「傳播內容」:管制對象是網路上所傳播的資訊本身,因此歸入資訊內容管制。若題幹改問網路上的交易、使用者行為或系統防護,才分別考慮網路交易、網路行為管制或資訊安全。

選項分析

🔒

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

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

免費註冊

第 34 題2 分

下列關於網頁物件快取伺服器(Cache Server)的運作說明,何者錯誤?

這一題的完整詳解

核心觀念

本題考查網頁快取伺服器如何利用 HTTP 的條件式 GET 驗證快取物件是否仍為最新版本。快取伺服器會保存物件及其修改時間,之後可用 If-Modified-Since 詢問源頭伺服器;若物件未修改,伺服器回覆 304 Not Modified,快取便可繼續使用既有內容。

要分清兩種時間標頭:

  • Date:表示伺服器產生該回應的日期與時間,不代表物件最後修改時間。
  • Last-Modified:表示物件最後修改的日期與時間;快取可用這個時間作為條件式請求的依據。

解題方法

逐一核對選項描述的標頭用途。關鍵是判斷首次下載時記錄的時間,是否應由 Date 提供;若要驗證物件是否修改,應使用代表物件最後修改時間的 Last-Modified,並將該時間放入後續請求的 If-Modified-Since 標頭。

選項分析

🔒

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

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

免費註冊

第 35 題2 分

有關防火牆(firewall)的敘述,下列何者錯誤?

這一題的完整詳解

核心觀念

本題考防火牆的封包過濾功能與網路區域配置。防火牆會依照設定的規則檢查網路流量;可用來判斷封包的來源或目的 IP 位址、通訊協定與連接埠等資訊,並決定允許、阻擋或轉送封包。防火牆也能用來規劃內部網路、外部網路及非軍事化區域(DMZ)之間的存取控制。

解題方法

逐項比對防火牆通常具備的功能。只要某選項否定了防火牆可執行的基本封包過濾能力,即為錯誤敘述。本題中,防火牆能依封包協定進行過濾,因此選項 (B) 的「無法」與實際功能相反。

選項分析

  • (A) 正確。 防火牆可依規則將封包轉送至指定的檢查點或安全設備,讓封包接受進一步檢查;實際能力會依防火牆的架構與設定而定。
  • **(B) 錯誤。
🔒

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

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

免費註冊

第 36 題2 分

下列何者不是駭客攻擊網頁的手法?

這一題的完整詳解

核心觀念

本題考查網頁應用程式常見攻擊方式,以及網路層攻擊與網站應用層攻擊的差異。判斷關鍵是:攻擊是否直接針對網站的輸入資料、頁面參數或 URL 處理機制。

解題方法

逐一辨認各選項的攻擊層級與作用對象。SQL injection、Hidden-field-tampering 與 URL Obfuscation 都能直接利用網站程式或網頁傳遞資料的弱點;ARP spoofing 則是偽冒區域網路中的 ARP 對應關係,屬於網路層附近的攻擊手法,並非直接攻擊網頁本身,因此選 B。

選項分析

  • (A) 資料庫隱碼攻擊法(SQL injection):錯誤選項。 攻擊者將惡意 SQL 語法放入網站輸入欄位或請求參數;若網站未妥善驗證輸入或使用參數化查詢,可能使資料庫執行非預期指令。這是典型的網頁應用程式攻擊。

  • (B) ARP 偽造法(ARP spoofing):正確答案。

🔒

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

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

免費註冊

第 37 題2 分

資訊安全的三個主要目標為機密性、完整性與可用性,這些目標可能會遭到安全攻擊,請問下列何種攻擊類型可以降低或完全中斷一個系統的服務?

這一題的完整詳解

核心觀念

資訊安全的三個主要目標稱為 CIA 三要素:

  • 機密性(Confidentiality):只有獲授權者能存取資訊。
  • 完整性(Integrity):資訊未遭未授權竄改,且保持正確。
  • 可用性(Availability):授權使用者在需要時能使用系統與服務。

本題考查的是:哪一類攻擊會影響系統的可用性。

解題方法

逐一對照攻擊造成的主要影響:

  • 未經授權讀取資訊,主要侵犯機密性。
  • 讓合法使用者無法取得服務,主要侵犯可用性。

因此,能降低或完全中斷系統服務的攻擊,應是阻絕服務攻擊。

選項分析

(A) 窺視(snooping)—錯誤 窺視是未經授權查看或取得資料,直接威脅的是機密性;它本身不以降低或中斷服務為目的。

🔒

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

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

免費註冊

第 38 題2 分

下列哪一個 Windows 工具程式,可以用來檢查封包傳送過程中經過的各路由器及延遲?

這一題的完整詳解

核心觀念

本題考查 Windows 網路診斷工具的用途。tracert(trace route)會逐一探測封包前往目的地時經過的路由節點,並顯示各節點的回應時間,可用來觀察封包路徑及途中延遲。

解題方法

題目關鍵在「經過的各路由器及延遲」:要找的是能追蹤封包路徑、並列出沿途節點回應時間的工具,因此選擇 tracert。在 Windows 命令提示字元中可輸入 tracert 目的地,查看封包前往該目的地時逐跳經過的路由器與各跳的往返時間。

選項分析

🔒

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

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

免費註冊

第 39 題2 分

在無線網路通訊標準中,802.11g802.11g 的傳輸速率為多少 Mbps?

這一題的完整詳解

核心觀念

本題考查 IEEE 802.11 無線區域網路標準的傳輸速率。802.11g 使用 2.4 GHz 頻段,最高理論傳輸速率為 54 Mbps。

解題方法

辨認標準代號並對應其標稱最高速率即可:

  • 802.11b:最高 11 Mbps
  • 802.11a、802.11g:最高 54 Mbps

因此,802.11g 的傳輸速率為 54 Mbps。

選項分析

🔒

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

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

免費註冊

第 40 題2 分

下列何種網路應用推出的時間最晚?

這一題的完整詳解

核心觀念

本題考各網路應用協定的發展年代,判斷哪一項推出時間最晚。比較時以相關協定首次標準化或正式提出的年代為準。

解題方法

整理四項協定的年代,再比較先後:

  • FTP:1971 年提出,早期用於檔案傳輸。
  • SMTP:1982 年標準化,負責電子郵件傳送。
  • DNS:1983 年提出,用來將網域名稱轉換為 IP 位址。
  • HTTP:1991 年提出,支援全球資訊網的文件傳輸。

其中 HTTP 的年代最晚,因此選 A。

選項分析

🔒

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

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

免費註冊

其他考古題