108 國安局特考五等 資訊組 計算機大意 考古題詳解

108 年・國安局特考・五等・資訊組
試題代碼 計算機大意

第 1 題2 分

假設下列數字是以 16-bit 的二補數(two’s complement)方式儲存在記憶體中,那麼十六進位的 (712B)16+(9E00)16(712B)_{16}+(9E00)_{16} 結果為何?

這一題的完整詳解

核心觀念

本題考 16 位元二補數的加法。二補數數值以 16 位元儲存時,運算結果保留低 16 位元;若最高位產生進位,該進位捨棄。最高位為 1 表示該位元樣式代表負數,但不影響以固定位元數進行加法。

解題方法

將兩個十六進位數直接相加:

712B16+9E001610F2B16\begin{array}{r} 712B_{16}\\ + 9E00_{16}\\ \hline 10F2B_{16} \end{array}

結果需以 16 位元表示,也就是保留 4 個十六進位數字,捨棄最左側超出的進位 11:

(10F2B)16⟶(0F2B)16(10F2B)_{16}\longrightarrow(0F2B)_{16}

因此結果為選項 (B) (0F2B)16(0F2B)_{16}。

也可先解讀兩個數的有號值:(712B)16(712B)_{16} 為正數;(9E00)16(9E00)_{16} 最高位為 1,代表負數,其值為 −(1000016−9E0016)=−(6200)16-(10000_{16}-9E00_{16})=-(6200)_{16}。所以:

🔒

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

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

免費註冊

第 2 題2 分

電腦系統內的程序(process),會處於三種不同狀態(state):準備(ready)、正在執行(running)及等候(waiting)。程序的狀態會在三種不同狀態之間變換,請問下列哪一個狀態的變換是不可能發生的?

這一題的完整詳解

核心觀念

本題考程序的三種基本狀態及其轉換:

  • 準備(ready):已具備執行條件,正等待 CPU 分配處理器時間。
  • 正在執行(running):正在 CPU 上執行。
  • 等候(waiting/blocked):因等待 I/O 或其他事件而暫停,尚不能繼續執行。

常見的狀態轉換包括:

  • 正在執行 → 準備:時間片用完,或被較高優先權程序搶占。
  • 正在執行 → 等候:程序提出 I/O 請求,或等待某項事件。
  • 等候 → 準備:I/O 完成或等待事件發生。
  • 準備 → 正在執行:排程器選中程序,分配 CPU。

解題方法

依程序狀態的定義判斷:程序只有在取得 CPU 後才能執行指令;若程序尚在準備狀態,就不能自行提出 I/O 請求或進入等待。因此,準備狀態不能直接轉換為等候狀態,必須先進入正在執行狀態,再因等待事件而轉換。

選項分析

🔒

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

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

免費註冊

第 3 題2 分

【題目包含邏輯線路圖】

下列這個邏輯線路圖,有兩個 1-bit 的輸入 aa 及 bb,產生 1-bit 的輸出。請問這個邏輯線路圖可能的運算功能為何?

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

核心觀念

邏輯閘的輸出由輸入訊號及閘的運算決定。圖中 bb 先經過反相器,變成 b‾\overline{b};接著 aa 與 b‾\overline{b} 輸入 AND 閘,因此輸出為

Y=a∧b‾Y=a\land\overline{b}

解題方法

列出 aa、bb 的所有組合,依序計算 b‾\overline{b} 與輸出 YY:

aabbb‾\overline{b}Y=a∧b‾Y=a\land\overline{b}
0010
0100
1011
1100

只有 a=1、b=0a=1、b=0 時輸出為 11。將 1-bit 二進位數視為數值比較,這正是 a>ba>b 的情況,所以此電路是 1-bit 的大於比較器。

選項分析

🔒

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

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

免費註冊

第 4 題2 分

下列有關資料排序的敘述,何者錯誤?

這一題的完整詳解

核心觀念

本題考常見排序法的基本操作方式。選擇排序與插入排序都可將資料概念上分為「已排序」與「未排序」兩部分;氣泡排序透過相鄰資料的比較與交換,使資料逐步到達正確位置;合併排序則將資料分割後,再合併已排序的子序列。

解題方法

逐一對照各選項所述的操作是否符合該排序法定義。關鍵在於合併排序的「合併」不是任意取兩個陣列直接合併,而是合併已排序的子序列;排序過程會先將資料分割,再以合併方式逐步形成完整的排序結果。

選項分析

(A) 正確。 選擇排序每一輪從未排序部分找出最小值(遞減排序時找最大值),放到已排序部分的末端。重複此步驟,直到全部資料排序完成。

🔒

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

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

免費註冊

第 5 題2 分

假設電腦的硬體設計使用獨立 I/O 定址(isolated I/O addressing),且其位址空間(address space)大小的設計剛好存取的記憶體空間為 1024 字(words)。如果每個 I/O 控制器(controller)有 16 個暫存器(register),那麼此電腦可以存取多少個 I/O 控制器?

這一題的完整詳解

核心觀念

本題考查獨立 I/O 定址下,I/O 位址空間如何分配給各個控制器。獨立 I/O 定址具有與記憶體分開的 I/O 位址空間;題目給的記憶體空間大小是 10241024 字,作為 I/O 位址空間大小的線索。每個控制器占用的位址數,則等於它所含的暫存器數。

解題方法

依題目設定,位址空間共有 10241024 個可定址位置,每個 I/O 控制器有 1616 個暫存器,因此每個控制器需要 1616 個 I/O 位址。可容納的控制器數為:

1024 個位址16 個位址/控制器=64 個控制器\frac{1024\ \text{個位址}}{16\ \text{個位址/控制器}}=64\ \text{個控制器}

因此選 (B) 64。

選項分析

🔒

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

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

免費註冊

第 6 題2 分

下列運算式是以後序法(postfix)表示:5 9 3 + ∗ 2 +5\ 9\ 3\ +\ *\ 2\ +,請問運算的結果為何?

這一題的完整詳解

核心觀念

後序法(postfix,又稱逆波蘭表示法)將運算子放在運算元之後,因此不需括號表示優先順序。計算時由左至右掃描:遇到數字就放入堆疊;遇到運算子就取出堆疊頂端的兩個數字運算,再將結果放回堆疊。

解題方法

依序處理 5 9 3 + ∗ 2 +5\ 9\ 3\ +\ *\ 2\ +:

  1. 讀入 5、9、35、9、3,依序放入堆疊。
  2. 遇到 ++,取出 99 和 33,計算 9+3=129+3=12,放回堆疊。此時為 5、125、12。
  3. 遇到 ∗*,取出 55 和 1212,計算 5×12=605\times12=60,放回堆疊。
  4. 讀入 22,放入堆疊;遇到最後的 ++,計算 60+2=6260+2=62。

因此,運算結果為 6262。

選項分析

🔒

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

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

免費註冊

第 7 題2 分

假設 SS 是一個堆疊(stack),一開始它的內容是空的(empty)。而 xx 與 yy 是兩個變數名稱,則執行下列的演算法後,SS 的內容為何?(由左至右的順序代表堆疊的底部到上面。)

push(S, 5)

push(S, 3)

push(S, 2)

if (not empty(S)) pop(S, x);

if (not empty(S)) pop(S, y);

push(S, x+y)

這一題的完整詳解

核心觀念

堆疊(stack)遵循「後進先出」(LIFO):最後放入的資料會最先取出。push 將資料放到堆疊頂端;pop 取出並移除頂端資料,並將取出的值存入指定變數。

解題方法

依序追蹤每次操作。下表由左至右表示堆疊底部到頂端:

操作堆疊內容變數
初始狀態空—
push(S, 5)5—
push(S, 3)5、3—
push(S, 2)5、3、2—
pop(S, x)5、3x=2x=2
pop(S, y)5y=3y=3
push(S, x+y)5、5x+y=2+3=5x+y=2+3=5
🔒

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

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

免費註冊

第 8 題2 分

針對一個二元搜尋樹(BST: Binary search tree),用下列哪種走訪(traversal),所得到的順序剛好是由小到大的順序?

這一題的完整詳解

核心觀念

二元搜尋樹(BST)的性質是:對每個節點而言,左子樹中的鍵值小於該節點,右子樹中的鍵值大於該節點。依此性質採用中序走訪,也就是依序走訪「左子樹、根節點、右子樹」,所得節點順序會由小到大。

解題方法

將中序走訪套用到 BST:

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

左右子樹也各自符合 BST 性質,因此整體結果會維持由小到大的順序。

例如,若根節點為 88,左子樹包含 3、63、6,右子樹包含 10、1410、14,中序走訪結果為 3、6、8、10、143、6、8、10、14。

選項分析

🔒

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

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

免費註冊

第 9 題2 分

下列關於程式語言範式(paradigm)的敘述,何者錯誤?

這一題的完整詳解

核心觀念

本題考查四種程式語言範式如何組織程式與描述計算:

  • 函數式範式以函數運算為核心,常將程式設計成類似數學函數的組合。
  • 宣告式範式著重描述「要得到什麼結果」,而不是逐步指定「如何執行」;邏輯式程式設計是常見形式,可用事實與規則推導新的結論。
  • 物件導向範式以物件為核心,物件封裝狀態與行為,並可透過訊息互動。
  • 程序式範式以程序或指令為核心,描述主動執行的程式如何處理資料。

解題方法

逐一核對選項中「範式名稱」與「描述特徵」是否相符。關鍵在於區分宣告式程式設計的整體概念,與邏輯式程式設計中以事實、規則推論結論的特定作法。題目官方答案指定為 B;B 把特定的推論機制說成宣告式範式的一般定義,因此為錯誤敘述。

選項分析

🔒

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

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

免費註冊

第 10 題2 分

下列程式是 C 語言的 function,請問呼叫 C(4,3)C(4,3) 會得到多少?

int C(int n, int k) { if ((k==0) || (n==k)) return 1; else return (C(n-1, k) + C(n-1, k-1)); }

這一題的完整詳解

核心觀念

此題考遞迴函式與二項係數的遞迴關係。函式 C(n, k) 在符合終止條件時回傳 1;否則將問題拆成 C(n-1, k) 與 C(n-1, k-1) 兩個子問題後相加。

解題方法

由題目給定的程式逐層代入:

C(4,3)=C(3,3)+C(3,2)=1+(C(2,2)+C(2,1))=1+(1+(C(1,1)+C(1,0)))=1+(1+(1+1))=4\begin{aligned} C(4,3) &= C(3,3)+C(3,2)\\ &= 1+\bigl(C(2,2)+C(2,1)\bigr)\\ &= 1+\bigl(1+(C(1,1)+C(1,0))\bigr)\\ &= 1+(1+(1+1))\\ &= 4 \end{aligned}

其中,C(3,3)C(3,3)、C(2,2)C(2,2)、C(1,1)C(1,1) 都因為 n=kn=k 而回傳 1;C(1,0)C(1,0) 則因為 k=0k=0 而回傳 1。

🔒

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

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

免費註冊

第 11 題2 分

下列程式是 C 語言的 function,請問呼叫 g2(210,42,350)g2(210,42,350) 會得到多少?

int g(int m, int n) { /* assume m >= 1 && n >= 1 */ int i;

for (i=m; i>=1; i--)
    if (m%i == 0 && n%i == 0)
        return i;

}

int g2(int m, int n, int r) { /* assume m >=1 && n>=1 && r>=1 */ return g(g(m,n), r); }

這一題的完整詳解

核心觀念

函式 g(m,n) 由 mm 開始往下檢查整數 ii。第一個同時整除 mm 與 nn 的 ii,就是兩數的最大公因數(GCD)。函式 g2(m,n,r) 則先求出 m,nm,n 的最大公因數,再與 rr 求最大公因數。

解題方法

先計算:

g(210,42)=gcd⁡(210,42)=42g(210,42)=\gcd(210,42)=42

接著代入 g2 的回傳式:

g2(210,42,350)=g(42,350)g2(210,42,350)=g(42,350)

4242 的因數中,最大且也能整除 350350 的數是 1414,因此:

g(42,350)=gcd⁡(42,350)=14g(42,350)=\gcd(42,350)=14

所以呼叫結果為 1414。

選項分析

🔒

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

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

免費註冊

第 12 題2 分

下列有關軟體工程的軟體開發過程的敘述,何者錯誤?

這一題的完整詳解

核心觀念

本題考查軟體生命週期的階段,以及瀑布模型、需求分析與結構圖的用途。

軟體開發常見的階段包括需求分析、設計、實作與測試。各階段會產生不同的成果:分析階段整理「軟體要做什麼」,設計階段規劃「軟體要如何做到」,實作階段則依設計將功能寫成程式。結構圖(structure chart)屬於設計階段的工具,用來呈現系統或模組的階層關係與呼叫結構。

解題方法

先判斷各敘述對軟體開發階段及工具用途的描述是否相符。瀑布模型強調階段依序進行;分析階段著重需求與功能規格;再確認結構圖應歸於設計或實作。結構圖用於規劃程式模組的組成與關係,因此將它歸為實作階段工具的敘述錯誤。

選項分析

🔒

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

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

免費註冊

第 13 題2 分

下列有關資訊安全的敘述,何者錯誤?

這一題的完整詳解

核心觀念

本題考查資訊安全攻擊與安全服務、網路防火牆的過濾層級,以及對稱式與挑戰應答認證的基本概念。

封包過濾防火牆通常依據網路層與傳輸層的封包欄位判斷,例如來源/目的 IP 位址、通訊協定及連接埠;應用層防火牆則會檢查應用程式或應用層協定的內容。完整性(integrity)著重防止資料遭未授權修改;機密性(confidentiality)著重防止未授權讀取。

解題方法

逐項核對敘述是否符合標準定義。題目指定官方答案為 B,因此關鍵在分辨封包過濾防火牆使用的資訊層級:若把它說成依據應用層資訊過濾,即與其典型運作方式不符。

選項分析

  • (A) 正確。 偽裝攻擊是攻擊者冒充合法使用者或系統,以其身分進行未授權活動。這主要威脅身分鑑別與存取控制,也可能進一步造成資料遭竄改,因此題目將其歸為完整性威脅,符合常見資訊安全分類。
🔒

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

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

免費註冊

第 14 題2 分

下列電腦系統元件中,何者資料存取速度最快?

這一題的完整詳解

核心觀念

本題考查電腦系統中各種儲存元件的存取速度。一般速度由快至慢依序為:

暫存器>快取記憶體>主記憶體(RAM)>磁碟儲存裝置\text{暫存器} > \text{快取記憶體} > \text{主記憶體(RAM)} > \text{磁碟儲存裝置}

暫存器位於處理器內部,直接供 CPU 執行指令時使用,存取速度最快;快取記憶體也靠近處理器,但速度仍低於暫存器。

解題方法

比較各選項在記憶體階層中的位置即可。越靠近 CPU 的儲存元件,通常存取延遲越低、速度越快。暫存器位於 CPU 內部,快取記憶體與 RAM 則依序位於較外層,SATA 硬碟屬於次級儲存裝置,速度最慢。

選項分析

🔒

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

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

免費註冊

第 15 題2 分

假如某部電腦的 IP 為 160.70.14.66/26160.70.14.66/26,那麼它所在的子網路的 IP 範圍應是?

這一題的完整詳解

核心觀念

CIDR 的 /26 表示子網路遮罩有 26 個連續的網路位元,遮罩為 255.255.255.192。因此每個子網路在最後一個八位元組中有 232−26=642^{32-26}=64 個 IP 位址,網段邊界依序為 .0、.64、.128、.192。

解題方法

題目主機 IP 的最後一個八位元組是 66。以每個網段 64 個位址分組:

  • .0 ~ .63
  • .64 ~ .127
  • .128 ~ .191
  • .192 ~ .255

66 落在 .64 ~ .127,所以該子網路的網路位址是 160.70.14.64,廣播位址是 160.70.14.127,整個子網路的 IP 範圍為 160.70.14.64 ~ 160.70.14.127。

選項分析

🔒

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

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

免費註冊

第 16 題2 分

數位簽章(digital signature)無法提供下列哪一個功能?

這一題的完整詳解

核心觀念

數位簽章主要用來確認訊息來源、確保訊息未遭竄改,並讓簽署者事後不能輕易否認曾簽署該訊息。它不負責隱藏訊息內容,因此不能提供機密性。

以公開金鑰密碼學為例,傳送者先對訊息計算雜湊值,再以自己的私密金鑰對雜湊值簽章。接收者使用傳送者的公開金鑰驗證簽章,並比對訊息的雜湊值。

解題方法

判斷各選項是否屬於數位簽章的功能。可用「簽章讓人驗證訊息與簽署者;加密才讓未授權者看不懂內容」作為切入點。

簽章驗證可確認訊息是否由持有相應私密金鑰者簽署,並檢查訊息內容是否被更動;但訊息若未另外加密,旁人仍可讀取內容。因此,題目問數位簽章無法提供的功能,應選機密性。

選項分析

  • (A) 訊息的機密性(confidentiality)—正確答案。 數位簽章不會隱藏訊息內容。要提供機密性,通常須另外以接收者的公開金鑰加密,讓接收者以自己的私密金鑰解密。
🔒

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

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

免費註冊

第 17 題2 分

根據 TCP/IP 通訊協定(protocol suite),下列敘述何者錯誤?

這一題的完整詳解

核心觀念

本題考查 TCP/IP 協定套件各層的功能,以及各層通訊的對象範圍:

  • 傳輸層:負責端點之間的資料傳輸;TCP、UDP 都屬於此層。
  • 網路層:負責封包跨越網路的遞送,通常採盡力而為方式,不保證可靠送達。
  • 資料鏈結層:負責相鄰結點間的資料傳送。
  • 實體層:負責在實體媒介上傳送位元,不處理程序對程序的通訊。

解題方法

逐一核對選項中的「協定層」與「通訊對象/功能」是否相符。特別注意通訊範圍由局部鏈路逐步擴大:資料鏈結層是相鄰結點間;程序對程序的通訊則屬於傳輸層的功能。

選項分析

🔒

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

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

免費註冊

第 18 題2 分

下列哪一種威脅,並不是採取直接攻擊電腦,而是一種非法取得敏感資料(例如信用卡號、帳號密碼)的方式?

這一題的完整詳解

核心觀念

本題考資訊安全威脅的類型,關鍵在於分辨「直接攻擊電腦系統」與「利用欺騙手段取得敏感資料」。

網路釣魚(Phishing)通常透過偽造電子郵件、網站或訊息,誘使使用者自行提供信用卡號、帳號或密碼,重點是騙取資料,而非直接攻擊電腦。病毒、阻斷服務與木馬則屬於針對電腦、程式或網路服務造成危害的威脅。

解題方法

先抓題幹的辨識線索:「非法取得敏感資料」以及「並不是採取直接攻擊電腦」。若手法是誘騙使用者交出資料,對應的就是網路釣魚;若是感染程式、癱瘓服務或植入惡意程式,則屬於直接危害系統或服務的攻擊方式。

選項分析

  • (A) 病毒(Virus)錯誤。 病毒會附著於程式或檔案,並在執行或傳播時感染其他檔案或系統,可能破壞資料、干擾運作。它是直接危害電腦系統的惡意程式,不是以誘騙使用者提供敏感資料為主要手段。
🔒

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

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

免費註冊

第 19 題2 分

下列哪種技術,使用隧道協定(tunneling protocol)以及安全的程序,使得即使透過公共的骨幹網路進行網路連線,仍能維持其私密性(privacy)?

這一題的完整詳解

核心觀念

本題考查虛擬私人網路(VPN,Virtual Private Network)的用途與運作方式。VPN 透過公共網路建立加密的「隧道」,並使用身分驗證、加密等安全機制,讓資料在傳輸期間維持機密性與完整性,形成如同私人網路般的安全連線。

解題方法

題幹的關鍵線索是「使用隧道協定」以及「透過公共骨幹網路連線仍維持私密性」。能以隧道技術在公共網路上建立安全連線的技術是 VPN,因此選 (D)。

隧道會將原始資料封裝後,透過公共網路傳送;VPN 通常再搭配加密與驗證,避免未授權者讀取或竄改傳輸資料。隧道本身負責封裝與傳送,隱私與安全則仰賴 VPN 所使用的安全機制。

選項分析

  • (A) NAT:錯誤。 網路位址轉換(Network Address Translation)會轉換封包的 IP 位址,常用於讓多台內部設備共用公用 IP 位址;
🔒

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

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

免費註冊

第 20 題2 分

已知變數 XX 是十進位,若 (77)8+(X)10=(3F)16+(42)16(77)_8+(X)_{10}=(3F)_{16}+(42)_{16},求 X=X=?

這一題的完整詳解

核心觀念

不同進位制的數值相等時,可先各自轉換為十進位,再列式求解。位值轉換的規則為:每一位數字乘上該位的進位底數次方,再加總。

解題方法

將等式左右兩側分別轉成十進位:

(77)8=7×8+7=63(77)_8=7\times 8+7=63 (3F)16=3×16+15=63,(42)16=4×16+2=66(3F)_{16}=3\times 16+15=63,\qquad (42)_{16}=4\times 16+2=66

代回題目:

63+X=63+6663+X=63+66

因此:

X=66X=66

選項分析

🔒

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

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

免費註冊

第 21 題2 分

定義霍夫曼編碼(Huffman encoding)規則為:

0000 – A,1111 – E,010010 – T,01100110 – C,01110111 – L,10001000 – S,10111011 – R,1001010010 – O,1001110011 – I,101000101000 – N,101001101001 – F,101010101010 – H,101011101011 – D。

則 (10100100101000010001000010100110110)(10100100101000010001000010100110110) 編碼後為下列何者?

這一題的完整詳解

核心觀念

本題考霍夫曼編碼的前綴碼解碼:依題目列出的碼字,從位元串左端開始逐位讀取;一旦讀到完整碼字,就輸出對應字母,接著從下一個位元繼續。這些碼字具有前綴碼特性,因此可唯一切分,不必另外加入分隔符號。

解題方法

將位元串由左至右切分,並對照題目中的編碼表:

10100100101000010001000010100110110=101001∣00∣101000∣1000∣1000∣101001∣0110=F∣A∣N∣S∣S∣F∣C\begin{aligned} 10100100101000010001000010100110110 &=101001\mid 00\mid 101000\mid 1000\mid 1000\mid 101001\mid 0110\\ &=F\mid A\mid N\mid S\mid S\mid F\mid C \end{aligned}

依題目提供的編碼表,切分後的字母為 FANSSFC。這與選項 D「FANTASTIC」不一致:例如,T 的碼字是 010010,但切分結果中沒有 010010;而選項 D 的完整字串也無法由題目所列碼字逐字解出。

選項分析

🔒

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

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

免費註冊

第 22 題2 分

【題目包含電路圖】

針對下列電路圖,下列何者為正確布林表示式(Boolean Expression)?

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

核心觀念

本題考布林代數與邏輯閘符號判讀:

  • 三角形末端有小圓圈表示反相器,輸出為輸入的補數。
  • AND 閘輸出為兩個輸入相乘;OR 閘輸出為兩個輸入相加。
  • 閘的輸出端有小圓圈,表示整個閘的輸出再取反。

解題方法

依電路由左至右讀取:

  1. AA 先經過反相器,成為 A′A';再與 BB 輸入 AND 閘,輸出為 A′BA'B。
  2. 下方的閘是 OR 閘,輸入為 BB 與 CC,且輸出端有反相小圓圈,因此輸出為 (B+C)′(B+C)'。
  3. 最後兩路訊號輸入 OR 閘,所以總輸出為
A′B+(B+C)′A'B+(B+C)'

這與選項 (A) 相同。

選項分析

  • (A) A′B+(B+C)′A'B+(B+C)':正確。 上方支路是 A′BA'B,下方支路是 NOR 輸出 (B+C)′(B+C)',兩路最後以 OR 閘相加。
  • **(B) AB′+BC′AB'+BC':錯誤。
🔒

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

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

免費註冊

第 23 題2 分

在一個切割式(Partition)記憶體管理系統,若基礎暫存器(Base Register)的值是 744,且範圍暫存器(Bounds Register)的值是 1105,則邏輯記憶體位址 900 相對於實體記憶體位置的值為下列何者?

這一題的完整詳解

核心觀念

本題考查切割式記憶體管理中的位址轉換。基礎暫存器(Base Register)記錄該程式分割區在實體記憶體中的起始位置;邏輯位址是相對於分割區起點的位移。因此,合法邏輯位址的實體位址為:

實體位址=基礎暫存器值+邏輯位址\text{實體位址}=\text{基礎暫存器值}+\text{邏輯位址}

範圍暫存器(Bounds Register)用來限制可存取的邏輯位址範圍,供合法性檢查使用。

解題方法

題目給定基礎暫存器為 744744、範圍暫存器為 11051105,邏輯位址為 900900。

先檢查邏輯位址是否在範圍內:900<1105900<1105,因此位址合法。接著將基礎位址與邏輯位址相加:

744+900=1644744+900=1644
🔒

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

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

免費註冊

第 24 題2 分

【題目包含記憶體狀態圖】

假設電腦系統目前的主記憶體狀態如下圖,記憶體管理使用動態切割技術。一個新的工作(程序 5)要求 63 區塊(Block)主記憶體。若使用最差適用法(Worst fit)配置主記憶體,下列敘述何者正確?

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

核心觀念

動態切割會依程序需求,從主記憶體的空閒區塊中配置空間。最差適用法(Worst fit)每次選擇最大的可用空閒區塊;配置後,未使用的部分仍是空閒區塊。

解題方法

圖中的空閒區塊大小為 7575、6565、8080、200200 區塊。程序 5 需要 6363 區塊,四個空閒區塊都足以容納;依最差適用法,選擇最大的 200200 區塊。

配置後剩餘空間為:

200−63=137 區塊200-63=137\text{ 區塊}

因此,200200 空區塊分配 6363 區塊給程序 5,剩餘 137137 空區塊。

選項分析

🔒

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

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

免費註冊

第 25 題2 分

甲公司的電腦通訊使用偶同位(Even Parity)傳送重要資料,若傳送 7 位元原始資料,下列接收到的資料何者在傳送過程中一定發生錯誤?

這一題的完整詳解

核心觀念

偶同位(Even Parity)會在 7 位元原始資料外加 1 個同位元,使傳送的 8 位元資料中「1」的總數為偶數。接收端檢查 8 個位元的「1」總數:若為奇數,代表傳送過程中一定發生錯誤;若為偶數,則只能判定符合偶同位規則,不能保證資料完全沒有錯誤。

解題方法

逐一計算各選項中「1」的個數。若個數為奇數,該資料不符合偶同位,必定發生錯誤;若個數為偶數,則符合偶同位檢查。

選項分析

🔒

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

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

免費註冊

第 26 題2 分

建立二元搜尋樹(Binary Search Tree),其插入順序為 72,96,94,107,126,112,111,19,21,101,25,51,1672, 96, 94, 107, 126, 112, 111, 19, 21, 101, 25, 51, 16,則由左至右依序列出此樹的葉節點(Leaf node),下列何者正確?

這一題的完整詳解

核心觀念

二元搜尋樹(Binary Search Tree, BST)的規則是:對每個節點而言,較小的值插入其左子樹,較大的值插入其右子樹。依序插入時,每個新值都從根節點開始,比較並往左或往右,直到找到空的位置。

葉節點是沒有任何子節點的節點。本題的「由左至右」是依樹形圖的位置排列,不是依數值大小排序。

解題方法

依序插入題目所列數值,得到以下二元搜尋樹:

 72
 / \
 19 96
 / \ / \
 16 21 94 107
 \ / \
 25 101 126
 \ /
 51 112
 /
 111

例如,9494 比根節點 7272 大,因此往右;比 9696 小,因此插入 9696 的左側。111111 則依序比較 72、96、107、126、11272、96、107、126、112,最後插入 112112 的左側。

檢視各節點是否有子節點:

  • 1616 沒有子節點,是葉節點。
  • 2121 有右子節點 2525,不是葉節點;2525 又有右子節點 5151,所以 2525 也不是葉節點,而 5151 是葉節點。
🔒

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

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

免費註冊

第 27 題2 分

有關 B-tree 平衡樹特性之敘述,下列何者正確?

這一題的完整詳解

核心觀念

本題考 B-tree(B 樹)與 B+ tree(B+ 樹)的結構特性。兩者都是平衡搜尋樹,常用於資料庫與檔案系統的索引;題目選項中提到「葉節點依鍵值順序連結」是 B+ tree 的典型特徵。

B-tree 的節點可存放鍵值及資料(或指向資料的指標),搜尋可能在內部節點或葉節點找到目標。B+ tree 則將資料索引集中在葉節點,內部節點主要負責導引搜尋;葉節點通常按鍵值排序,並以指標串連,方便範圍查詢。

解題方法

先辨認各選項描述的樹型特徵:平衡樹的根到葉路徑長度是否相同、增刪是否會破壞平衡,以及資料是否集中於葉節點並以鏈結維持順序。選項 C 描述葉節點按鍵值順序相連,符合 B+ tree 的典型特性;本題官方答案為 C。

選項分析

  • (A) 錯誤。 B-tree 是平衡樹,所有葉節點位於相同深度,因此從根到葉的路徑長度相同,不是「歪斜樹」,距離也不是不一定相同。
🔒

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

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

免費註冊

第 28 題2 分

某二元樹(Binary tree)之中序走訪(Inorder traversal)為 ABCDEFGHJK,後序走訪(Postorder traversal)為 ACEDBJHKGF。對此二元樹之描述,下列何者錯誤?

這一題的完整詳解

核心觀念

二元樹的中序走訪順序為「左子樹、根節點、右子樹」;後序走訪順序為「左子樹、右子樹、根節點」。因此,後序序列的最後一個節點是整棵樹的根,再利用中序序列切分左右子樹,即可逐層重建二元樹。

解題方法

中序序列為 ABCDEFGHJK,後序序列為 ACEDBJHKGF。

  1. 後序最後一個節點是根節點 F。在中序序列中,以 F 為界,左子樹為 ABCDE,右子樹為 GHJK。
  2. 左子樹的後序序列為 ACEDB,故其根為 B。中序中 B 左側為 A,右側為 CDE;而 CDE 的根為 D,左右子節點分別為 C、E。
  3. 右子樹的後序序列為 JHKG,故其根為 G。中序中 G 右側為 HJK;該子樹後序為 JHK,根為 K。在中序的 HJK 中,K 左側為 HJ,其後序為 JH,所以根為 H,且 H 的右子節點為 J。

重建後的樹如下:

🔒

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

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

免費註冊

第 29 題2 分

【題目包含圖形結構】

針對下列圖形結構,以廣度優先順序搜尋輸出,下列何者正確?

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

核心觀念

廣度優先搜尋(BFS)從起點開始,先拜訪距離起點較近的節點,再拜訪較遠的節點;實作時通常使用佇列。拜訪節點時,將尚未拜訪的相鄰節點依圖示或題目採用的順序加入佇列。

從節點 1 出發,依圖中連線可得各層:

  • 第 0 層:1
  • 第 1 層:2、6
  • 第 2 層:3、7、5
  • 第 3 層:4

解題方法

依圖形的相鄰節點順序進行 BFS:

  1. 起點 1,將相鄰的 2、6 加入佇列。
  2. 取出 2,將尚未拜訪的相鄰節點 3、7 加入佇列。
  3. 取出 6,將尚未拜訪的相鄰節點 5 加入佇列。
  4. 依序取出 3、7、5;其中 3 或 5 會將尚未拜訪的 4 加入佇列。
  5. 最後取出 4。

因此輸出順序為 1→2→6→3→7→5→41\to2\to6\to3\to7\to5\to4。

選項分析

🔒

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

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

免費註冊

第 30 題2 分

使用選擇排序法(Selection sort)將 7 個整數 26,19,32,8,56,12,2426, 19, 32, 8, 56, 12, 24 由小排到大,下列敘述何者正確?

這一題的完整詳解

核心觀念

選擇排序法每一趟都在尚未排序的部分找出最小值,與該部分的第一個元素交換。升冪排序時,第一趟固定最小值到第 1 個位置,第二趟固定第 2 小的值,依此類推。

選擇排序法不論輸入資料原本是否已排序,都要逐趟搜尋未排序部分,因此比較次數為 n(n−1)2\frac{n(n-1)}{2},時間複雜度為 O(n2)O(n^2)。通常使用原陣列排序,額外空間複雜度為 O(1)O(1)。

解題方法

原始數列為:

26, 19, 32, 8, 56, 12, 2426,\ 19,\ 32,\ 8,\ 56,\ 12,\ 24

依序在未排序部分找最小值並交換:

趟數未排序部分的最小值交換後數列
第 1 趟88, 19, 32, 26, 56, 12, 248,\ 19,\ 32,\ 26,\ 56,\ 12,\ 24
第 2 趟128, 12, 32, 26, 56, 19, 248,\ 12,\ 32,\ 26,\ 56,\ 19,\ 24
第 3 趟198, 12, 19, 26, 56, 32, 248,\ 12,\ 19,\ 26,\ 56,\ 32,\ 24
🔒

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

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

免費註冊

第 31 題2 分

有關物件導向語言 C++ 建構子(Constructor)的敘述,下列何者正確?

這一題的完整詳解

核心觀念

C++ 的建構子(Constructor)是建立物件時負責初始化的特殊成員函式。它的名稱必須與類別名稱相同,且不宣告回傳型別。建構子可以多載,也可以依需求設為 public、protected 或 private。

解題方法

逐一檢查各選項是否符合 C++ 建構子的定義與使用方式。判斷關鍵是建構子的名稱,以及它是否有「必須使用 new」、「只能有一個」或「必須為 public」等限制。

選項分析

  • (A) 錯誤。 建構子不一定要配合 new。例如 MyClass obj; 可直接建立區域物件並呼叫預設建構子;
🔒

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

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

免費註冊

第 32 題2 分

有關 C 語言陣列(Array)的敘述,下列何者錯誤?

這一題的完整詳解

核心觀念

本題考查 C 語言陣列的大小、索引檢查方式,以及陣列與指標的關係。C 語言的陣列索引由 00 開始;若陣列長度為 nn,合法索引為 00 至 n−1n-1。C 語言本身不會在執行時自動檢查索引是否超出範圍,越界存取可能造成未定義行為。

解題方法

逐一判斷各選項是否符合 C 語言的陣列特性。題目問「何者錯誤」,因此找出與 C 語言實際行為不符的敘述即可。

選項分析

(A) 陣列在程式執行階段不可以改變其大小:正確。 一般宣告的陣列,其大小在建立時決定,之後不能直接調整。例如 int a[10]; 的元素數量不會因執行中指派不同值而改變。若需要可調整大小的儲存空間,通常使用動態記憶體配置,再依需求重新配置。

(B) 支援檢查所使用陣列之位址/索引(Index)是否超出宣告範圍:錯誤。 標準 C 語言不提供陣列索引的自動越界檢查。

🔒

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

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

免費註冊

第 33 題2 分

執行 C 程式 test(3)test(3),其回傳值為下列何者?

int test(int control) { int g[] = {0,2,4,6}, h[] = {20,40,60,80}; int i, g_length = 4, s = 0;

for(i = g_length-1; i >= 0; i--) {
    if(g[i] < control) break;
}

while(i >= 0) {
    s = s + (control-g[i]) * h[i];
    control = g[i];
    i--;
}

return s;

}

這一題的完整詳解

核心觀念

本題考查 C 語言陣列索引、for 迴圈中的 break,以及 while 迴圈如何更新變數。陣列索引從 00 開始,因此:

索引 iig[i]h[i]
0020
1240
2460
3680

解題方法

初始 control = 3。for 迴圈從索引 33 往下檢查,遇到第一個符合 g[i] < control 的位置就執行 break:

  • i=3i=3:g[3]=6g[3]=6,6<36<3 不成立。
  • i=2i=2:g[2]=4g[2]=4,4<34<3 不成立。
  • i=1i=1:g[1]=2g[1]=2,2<32<3 成立,跳出迴圈。

因此進入 while 時,i=1i=1。依序計算:

  1. i=1i=1:s=(3−2)×40=40s=(3-2)\times40=40;接著 control 更新為 22,ii 減為 00。
🔒

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

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

免費註冊

第 34 題2 分

針對下列 Python 程式,執行 test(3)test(3) 後,其輸出為下列何者?

def f(a, b): if a>b: a = a + b else: b = b - a return b, a

def test(x): x, y = f(x, x+3) print(x+y)

這一題的完整詳解

核心觀念

本題考查 Python 函式呼叫、區域變數,以及多個回傳值的順序。函式以 return b, a 回傳兩個值時,呼叫端會依照該順序指定給左側變數。

解題方法

執行 test(3) 時,先令 x=3x=3,接著呼叫:

x, y = f(x, x+3)

因此傳入 f 的引數為 a=3a=3、b=6b=6。由於 a>ba>b 不成立,執行 else:

b=b−a=6−3=3b=b-a=6-3=3

a 維持 33。函式以 return b, a 回傳 (3,3)(3,3),所以呼叫端指定為 x=3x=3、y=3y=3。最後輸出:

x+y=3+3=6x+y=3+3=6

選項分析

🔒

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

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

免費註冊

第 35 題2 分

給定 Python 函數 g()g(),已知 g(5)g(5)、g(6)g(6)、g(7)g(7) 回傳值分別為 13、19、22,則 if 的條件判斷式為下列何者?

def g(x): if (____): return x2+3 else: return x3+1

這一題的完整詳解

核心觀念

本題考查 Python 的 if...else 條件判斷:條件成立時執行 if 區塊,不成立時執行 else 區塊。解題時要把已知回傳值與兩個 return 式子對照,判斷各輸入值走哪個分支。

解題方法

當 x=5x=5 時,已知回傳值為 1313。兩個分支的計算結果分別是:

  • if 分支:5×2+3=135\times2+3=13
  • else 分支:5×3+1=165\times3+1=16

因此 x=5x=5 必須滿足 if 條件。

當 x=6x=6 時,已知回傳值為 1919:

  • if 分支:6×2+3=156\times2+3=15
  • else 分支:6×3+1=196\times3+1=19

因此 x=6x=6 不滿足 if 條件,執行 else 分支。

當 x=7x=7 時,已知回傳值為 2222:

  • if 分支:7×2+3=177\times2+3=17
  • else 分支:7×3+1=227\times3+1=22

因此 x=7x=7 也不滿足 if 條件。

條件必須在 x=5x=5 時成立,並在 x=6、7x=6、7 時不成立。

🔒

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

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

免費註冊

第 36 題2 分

對於資料庫中關聯式代數(Relational Algebra)運算子(Operator)的敘述,下列何者正確?

這一題的完整詳解

核心觀念

本題考查關聯式代數各運算子的分類。基本運算子是指一組可作為運算基礎的運算;其他運算子則可由基本運算子組合推導。常見的基本運算子包括選擇(Select,σ\sigma)、投影(Project,π\pi)、聯集(Union,∪\cup)、差集(Difference,−-)及卡式集(Cartesian Product,×\times)。交集、合併與除法等運算,則可由基本運算子推導。

解題方法

逐一比對選項所列的運算子是否屬於基本運算子。選擇與投影是關聯式代數的基本運算,因此 (B) 正確。

例如,選擇運算從資料表中挑出符合條件的資料列;投影運算則挑出指定欄位。兩者是基本運算,不必由其他運算子推導。

選項分析

🔒

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

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

免費註冊

第 37 題2 分

針對下列 C 程式,執行 test()test() 後回傳值為下列何者?

int f(int n) { if (n > 3) return 1; else if (n == 2) return (3 + f(n + 1)); else return (1 + f(n + 1)); }

int test() { int i=0, j=0;

for (i = 1; i < 4; i++)
    j = j + f(i);

return j;

}

這一題的完整詳解

核心觀念

本題考遞迴函式的呼叫與回傳值,以及 for 迴圈逐次累加。計算 f(n) 時,先依序判斷條件;每次遞迴呼叫會繼續往下執行,直到遇到終止條件 n > 3,再將回傳值逐層加回。

解題方法

先由終止條件往回計算:

  • f(4)=1f(4)=1,因為 4>34>3。
  • f(3)=1+f(4)=1+1=2f(3)=1+f(4)=1+1=2。
  • f(2)=3+f(3)=3+2=5f(2)=3+f(3)=3+2=5,因為 n=2n=2 時適用第二個條件。
  • f(1)=1+f(2)=1+5=6f(1)=1+f(2)=1+5=6。

test 的迴圈中,ii 依序為 1、2、31、2、3,因此:

j=f(1)+f(2)+f(3)=6+5+2=13j=f(1)+f(2)+f(3)=6+5+2=13

所以回傳值為 1313。

選項分析

🔒

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

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

免費註冊

第 38 題2 分

對一個二元樹的走訪(Binary tree traversal),以後序走訪(Postorder traversal)的結果是 FECHGDBA,但若以中序走訪(Inorder traversal)的結果是 FECABHDG,那麼這個二元樹若以先序走訪(Preorder traversal)的結果為何?

這一題的完整詳解

核心觀念

二元樹的三種深度優先走訪順序如下:

  • 先序走訪(Preorder):根 → 左子樹 → 右子樹。
  • 中序走訪(Inorder):左子樹 → 根 → 右子樹。
  • 後序走訪(Postorder):左子樹 → 右子樹 → 根。

由後序走訪的最後一個節點可找出整棵樹的根;再利用中序走訪中根的位置,分割出左、右子樹。對各子樹重複此步驟,即可還原樹形並求出先序走訪結果。

解題方法

後序結果為 FECHGDBA,最後一個節點 A 是整棵樹的根。在中序結果 FECABHDG 中,A 左側為 FEC,右側為 BHDG,因此左子樹節點為 F、E、C,右子樹節點為 B、H、D、G。

依後序序列分割:

  • 左子樹後序:FEC;中序:FEC。其根為 C,左側為 FE,且沒有右子樹。FE 的根為 E,其左子節點為 F。
  • 右子樹後序:HGD B,即 HGDB;中序:BHDG。其根為 B,沒有左子樹,右子樹中序為 HDG、後序為 HGD。該子樹根為 D,左子節點為 H,右子節點為 G。

還原後,先序走訪依序為根、左子樹、右子樹:

🔒

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

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

免費註冊

第 39 題2 分

有關網際網路通訊中 TCP(Transmission Control Protocol)通訊協定的敘述,下列何者正確?

這一題的完整詳解

核心觀念

TCP(傳輸控制協定)是傳輸層的連線導向協定,提供可靠的端對端資料傳輸。它會使用序號、確認回應、逾時重傳與錯誤檢查等機制,協助資料依序且完整地送達。

解題方法

判斷選項是否描述 TCP 的傳輸層功能。可靠傳輸是 TCP 的核心特性;頻寬保證、入侵偵測與流量限制則不是 TCP 本身提供的服務。

選項分析

  • (A) 提供最小頻寬保證:錯誤。 TCP 不負責保留或保證網路頻寬。頻寬與服務品質通常由網路管理或 QoS 機制處理。
  • **(B) 提供可靠傳輸:正確。
🔒

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

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

免費註冊

第 40 題2 分

由國際標準組織(ISO)訂定之 OSI 通訊協定,是採用通訊堆疊協定(Protocol Stack)方式運作,下列敘述何者正確?

這一題的完整詳解

核心觀念

OSI(開放系統互連)參考模型將網路通訊功能分成七層:實體層、資料連結層、網路層、傳輸層、會議層、表現層與應用層。各層負責不同工作;資料由上層往下層傳送時,會逐層加入控制資訊,接收端則逐層處理。

網路層負責在不同網路間傳送封包,並依網路位址選擇傳輸路徑,也就是路由(Routing)。資料連結層則處理相鄰節點間的資料傳送,例如媒體存取與訊框傳輸。

解題方法

逐一比對選項描述的功能與 OSI 各層職責。路由是網路層的代表功能,因此可先確認選項 (A);其餘選項則檢查表頭的處理方式,以及管理與安全相關功能所屬層級。

選項分析

  • (A) 正確。 網路層負責封包轉送與路由,會依目的網路位址選擇適當路徑。路由器主要在此層運作,因此本選項符合網路層職責。
🔒

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

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

免費註冊

其他考古題

資訊組《計算機大意》其他年度