113 原住民特考四等 電子工程 計算機概要 考古題詳解

113 年・原住民特考・四等・電子工程
試題代碼 計算機概要

第 1 題2 分

一個 8-bit 加法器(adder)於進行加法運算時,亦會同時送出 overflow flag 訊號 VV:當相加的結果超過 8-bit 有號數(以 two’s complement 編碼)可表示的範圍時 V=1V=1,否則 V=0V=0。下列的加法運算,何者會產生 V=1V=1 的輸出?

這一題的完整詳解

核心觀念

8-bit 二補數(two’s complement)可表示的有號整數範圍為

−27≤x≤27−1⟹−128≤x≤127-2^{7}\leq x\leq 2^{7}-1 \quad\Longrightarrow\quad -128\leq x\leq 127

加法結果超出此範圍時,會產生溢位,令 V=1V=1。計算時可先把數值相加,再檢查結果是否落在 [−128,127][-128,127] 內。

解題方法

逐一計算各選項的和,並與 8-bit 二補數的表示範圍比較:

  • 若和在 −128-128 至 127127 之間,V=0V=0。
  • 若和小於 −128-128 或大於 127127,V=1V=1。

選項分析

🔒

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

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

免費註冊

第 2 題2 分

某嵌入式微控制晶片上內建 16 KByte 的記憶體,用於儲存程式碼。在運作時,所有指令皆需儲存於此程式記憶體上執行。該晶片的處理器中,其 program counter 寬度至少為何?

這一題的完整詳解

核心觀念

程式計數器(Program Counter, PC)用來記錄下一個要執行的指令位址。其寬度需足以表示程式記憶體中的所有可定址位置。若以位元組為定址單位,nn 位元的 PC 可表示 2n2^n 個位址。

解題方法

程式記憶體容量為 16 KByte16\ \text{KByte},且 1 KByte=1024 Byte1\ \text{KByte}=1024\ \text{Byte},因此:

16×1024=16384=214 Byte16 \times 1024 = 16384 = 2^{14}\ \text{Byte}

每個位元組都有一個位址,共需 2142^{14} 個位址,因此 PC 至少需要 1414 位元,才能表示全部位址。

選項分析

🔒

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

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

免費註冊

第 3 題2 分

將含有小數點的 2 進位數字 0.01010.0101 轉換成 10 進位數字,其結果為:

這一題的完整詳解

核心觀念

二進位小數點後各位的位值,依序為 2−12^{-1}、2−22^{-2}、2−32^{-3}、2−42^{-4}⋯。將每一位數字乘上對應位值後加總,即可轉換為十進位。

解題方法

將 0.010120.0101_2 按位展開:

0.01012=0×2−1+1×2−2+0×2−3+1×2−40.0101_2 =0\times2^{-1}+1\times2^{-2}+0\times2^{-3}+1\times2^{-4} =14+116=0.25+0.0625=0.3125=\frac{1}{4}+\frac{1}{16} =0.25+0.0625 =0.3125

因此,0.01012=0.3125100.0101_2=0.3125_{10}。

選項分析

🔒

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

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

免費註冊

第 4 題2 分

某計算機系統以 paging 的方式實現 virtual memory,其 virtual memory 大小為 2322^{32} bytes,能支援的最大 physical memory 大小為 2242^{24} bytes,每個 page 的大小為 2122^{12} bytes。該系統的 page table 至少需有多大?

這一題的完整詳解

核心觀念

Paging 將虛擬記憶體切分為固定大小的 page,並將實體記憶體切分為相同大小的 frame。頁表至少要為每個虛擬頁面記錄一筆對應的實體 frame 編號。

解題方法

虛擬記憶體大小為 2322^{32} bytes,每個 page 大小為 2122^{12} bytes,因此虛擬頁面數為:

232212=220\frac{2^{32}}{2^{12}}=2^{20}

實體記憶體最大為 2242^{24} bytes,同樣以 2122^{12} bytes 為一個 frame,因此實體 frame 數為:

224212=212\frac{2^{24}}{2^{12}}=2^{12}

要表示 2122^{12} 個 frame 編號,每筆頁表項目至少需要 1212 bits。故頁表至少需要 2202^{20} 筆、每筆 1212 bits,總大小為:

220×12 bits2^{20}\times 12\text{ bits}

選項分析

🔒

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

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

免費註冊

第 5 題2 分

二進制數值 (1 1 1 1 0 1 0)2(1\ 1\ 1\ 1\ 0\ 1\ 0)_2 轉換為十六進制時,其值為何?

這一題的完整詳解

核心觀念

二進位轉換為十六進位,可從右至左每四個位元分成一組;每組二進位數對應一個十六進位數字。若最左側不足四位,前面補 00,不會改變數值。

解題方法

將題目的二進位數由右至左分組:

(1111010)2=(0111 1010)2(1111010)_2=(0111\ 1010)_2

分別換算每組:

  • 01112=710=7160111_2=7_{10}=7_{16}
  • 10102=1010=A161010_2=10_{10}=A_{16}

因此:

(1111010)2=(7A)16=7AH(1111010)_2=(7A)_{16}=7AH

選項分析

🔒

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

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

免費註冊

第 6 題2 分

假設 AA、BB、CC、FF 都是布林變數,F=not⁡(A or⁡(B and⁡C))F=\operatorname{not}(A\operatorname{\ or}(B\operatorname{\ and}C)),找出與 FF 等效的布林運算式:

這一題的完整詳解

核心觀念

本題考查布林代數的德摩根定律:

not⁡(X or⁡Y)=(not⁡X) and⁡(not⁡Y)\operatorname{not}(X\operatorname{\ or}Y) =(\operatorname{not}X)\operatorname{\ and}(\operatorname{not}Y) not⁡(X and⁡Y)=(not⁡X) or⁡(not⁡Y)\operatorname{not}(X\operatorname{\ and}Y) =(\operatorname{not}X)\operatorname{\ or}(\operatorname{not}Y)

布林變數只有 00、11 兩種值; and⁡\operatorname{\ and} 表示 AND, or⁡\operatorname{\ or} 表示 OR。

解題方法

原式為:

F=not⁡(A or⁡(B and⁡C))F=\operatorname{not}(A\operatorname{\ or}(B\operatorname{\ and}C))

先將德摩根定律套用於最外層的 OR:

F=(not⁡A) and⁡not⁡(B and⁡C)F=(\operatorname{not}A)\operatorname{\ and} \operatorname{not}(B\operatorname{\ and}C)

再對括號內的 AND 套用德摩根定律:

🔒

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

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

免費註冊

第 7 題2 分

當一個 process 包含多個 threads 時,下列資料何者不是多個 thread 共享?

① register values ② global variables ③ stack memory ④ heap memory

這一題的完整詳解

核心觀念

這題考多執行緒(multi-threading)中,哪些資源由同一個 process 的多個 thread 共同使用。每個 thread 有自己的執行狀態與執行堆疊;同一個 process 內的 threads 則共享程式碼、全域變數與動態配置的記憶體等資源。

資料是否共享說明
Register values(暫存器值)否每個 thread 各有自己的暫存器狀態,供作業系統切換與保存執行脈絡。
Global variables(全域變數)是位於 process 的共享記憶體區域,同一 process 內的 threads 可存取。
Stack memory(堆疊記憶體)否每個 thread 各有自己的 stack,用來保存函式呼叫、區域變數與返回位址。
Heap memory(堆積記憶體)是同一 process 的 threads 共用 heap,可存取在其中動態配置的資料。

解題方法

逐項判斷各資料屬於「thread 私有的執行狀態」還是「process 共享的記憶體資源」:

🔒

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

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

免費註冊

第 8 題2 分

印出品質為 300 dpi(每英吋的列印點數)、寬約 10 公分且高約 5 公分的圖片,該圖片至少應具有多少像素(Pixel)?

這一題的完整詳解

核心觀念

列印解析度以 dpi(dots per inch,每英吋的點數)表示。先把圖片的實際尺寸換算成英吋,再分別計算寬、高方向所需的像素數;圖片總像素數為寬像素乘以高像素。

換算關係為 1 英吋=2.54 公分1\text{ 英吋}=2.54\text{ 公分}。

解題方法

寬約 1010 公分、高約 55 公分,換算成英吋:

寬=102.54≈3.94 英吋\text{寬}=\frac{10}{2.54}\approx 3.94\text{ 英吋} 高=52.54≈1.97 英吋\text{高}=\frac{5}{2.54}\approx 1.97\text{ 英吋}

以 300300 dpi 列印時,寬、高方向所需的像素數分別約為:

寬像素=3.94×300≈1,181\text{寬像素}=3.94\times 300\approx 1{,}181 高像素=1.97×300≈591\text{高像素}=1.97\times 300\approx 591

因此總像素數約為:

1,181×591≈698,000 像素1{,}181\times 591\approx 698{,}000\text{ 像素}

約為 7070 萬像素,選項中最接近的是 72 萬。

選項分析

🔒

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

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

免費註冊

第 9 題2 分

若某個程序(process)P1 剛剛完成 I/O 的動作,想要獲得再次使用 CPU 的機會,則作業系統會將程序 P1 改變成何種狀態?

這一題的完整詳解

核心觀念

這題考的是作業系統的程序狀態轉換。程序執行 I/O 時,通常會進入等待狀態;I/O 完成後,程序已具備繼續執行的條件,會回到就緒狀態,等待作業系統分配 CPU。

解題方法

題目問 P1「完成 I/O 後,想要再次使用 CPU」會轉成何種狀態。判斷關鍵是:I/O 完成只代表等待事件已結束,程序可以競爭 CPU,並不代表它已經取得 CPU。因此,狀態由 Waiting 轉為 Ready;等排程器選中它之後,才會進入 Running。

選項分析

🔒

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

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

免費註冊

第 10 題2 分

假設有三個行程,其完成工作需要的時間分別為 30、15 和 18 單位時間。若使用最短工作優先排班法(SJF),則平均等待時間為多少單位?

這一題的完整詳解

核心觀念

最短工作優先排班法(SJF)會先安排工作時間最短的行程執行。等待時間是行程開始執行前,在佇列中等待的時間。若所有行程同時到達,依工作時間由短至長排序後,平均等待時間為各行程等待時間的平均值。

解題方法

將三個行程的工作時間由短至長排列:15、18、3015、18、30。

  • 工作時間為 1515 的行程最先執行,等待 00。
  • 工作時間為 1818 的行程須等待前一個行程完成,等待 1515。
  • 工作時間為 3030 的行程須等待前兩個行程完成,等待 15+18=3315+18=33。

因此平均等待時間為:

0+15+333=483=16\frac{0+15+33}{3}=\frac{48}{3}=16

選項分析

🔒

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

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

免費註冊

第 11 題2 分

關於巨型開放式線上課程(Massive Open Online Courses,簡稱 MOOCs)的敘述,下列何者錯誤?

這一題的完整詳解

核心觀念

MOOCs 是「巨型開放式線上課程」(Massive Open Online Courses)的簡稱,特色是透過網路提供大量學習者參與的課程。課程常以影片、講義、測驗及討論等數位方式呈現,但課程是否收費、能否取得學分,則依平台與合作學校的規定而定。

解題方法

判斷各選項是否把 MOOCs 的一般特徵說得太絕對。線上教學是 MOOCs 的基本形式;數位多媒體教材很常見,但「教材就是多媒體教材」並非嚴謹的定義;免費與學分則都不能一概而論,須看平台及課程安排。

選項分析

🔒

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

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

免費註冊

第 12 題2 分

下列何者是關聯式資料庫中常見的二元運算子(binary operator),其運作需要二個關聯(relation)表?

這一題的完整詳解

核心觀念

關聯式代數的運算子會以一個或多個關聯(relation,也可理解為資料表)作為輸入。依所需輸入的關聯數量,可分為一元運算與二元運算:

  • 一元運算:只需一個關聯,例如選擇(select)與投影(project)。
  • 二元運算:需要兩個關聯,例如差集(difference)與聯集(union)。

差集 R−SR-S 取出「屬於關聯 RR、但不屬於關聯 SS」的資料列,運算時須同時提供 RR 和 SS。

解題方法

逐一判斷各運算子需要幾個關聯作為輸入。題目問的是常見的二元運算子,因此選出必須比較或合併兩個關聯才能得到結果的選項。差集的結果取決於兩個關聯的內容;選擇與投影則各自只對單一關聯進行運算。

選項分析

🔒

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

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

免費註冊

第 13 題2 分

有關 DBMS 是指:

這一題的完整詳解

核心觀念

DBMS 是 Database Management System 的縮寫,中文為「資料庫管理系統」。它是用來建立、管理及操作資料庫的軟體系統,常見功能包括資料新增、查詢、修改、刪除,以及權限與資料安全管理。

「資料庫」是資料的集合;「資料庫管理系統」則是管理這些資料的軟體,兩者不可混為一談。

解題方法

辨認英文縮寫的完整名稱即可:DBMS 中的「DB」代表 Database,「MS」代表 Management System,合起來是「資料庫管理系統」。因此,選出對應的中文名稱。

選項分析

🔒

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

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

免費註冊

第 14 題2 分

下列哪一個結構採取空間換取時間的策略,藉以提升在該結構中搜尋資料、新增、刪除的時間複雜度?

這一題的完整詳解

核心觀念

本題考查資料結構中的「空間換取時間」:多使用額外記憶體儲存索引或輔助資訊,讓資料的搜尋、插入及刪除更有效率。

雜湊表(Hash Table)利用雜湊函數,將鍵值映射到表中的位置,並以額外的表格空間儲存資料。若雜湊分布良好、碰撞處理成本有限,搜尋、新增與刪除的平均時間複雜度可達 O(1)O(1)。

解題方法

辨認各選項使用的核心機制:樹狀結構依排序關係縮小搜尋範圍,鏈結串列依序走訪;雜湊表則額外配置表格,直接計算資料應位於的位置。題幹描述以空間換取上述操作的時間,符合雜湊表。

選項分析

  • (A) 二元搜尋樹(Binary Search Tree)錯誤。 利用節點間的大小關係搜尋,操作時間取決於樹高。平衡時約為 O(log⁡n)O(\log n),退化成鏈狀時可達 O(n)O(n);其主要特徵是依排序組織資料。
  • **(B) 紅黑樹(Red-Black Tree)錯誤。
🔒

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

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

免費註冊

第 15 題2 分

在空的佇列(Queue)中依序插入(Enqueue)1、9、7、2、5 和 10 等數字,接著執行三次刪除(Dequeue),最後插入 15。完成上述運算後,該佇列的前端(Front)元素為何?

這一題的完整詳解

核心觀念

佇列(Queue)採「先進先出」(FIFO, First In First Out):先插入的元素會先被刪除。Enqueue 將元素加入佇列尾端;Dequeue 刪除佇列前端元素。

解題方法

依序列出每次操作後佇列由前端到尾端的內容:

  • 依序插入 1、9、7、2、5、101、9、7、2、5、10 後:[1,9,7,2,5,10][1, 9, 7, 2, 5, 10]
  • 執行三次刪除,依序移除前端的 1、9、71、9、7:[2,5,10][2, 5, 10]
  • 再插入 1515 至尾端:[2,5,10,15][2, 5, 10, 15]
🔒

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

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

免費註冊

第 16 題2 分

以中序式(Infix)表示的算術運算式 A−(B∗C)+DA-(B*C)+D,轉換成後序式(Postfix)的結果是:

這一題的完整詳解

核心觀念

後序式(Postfix)又稱逆波蘭式,運算子放在運算元之後。例如,中序式 X+YX+Y 的後序式為 XY+XY+。轉換時須保留原式的運算順序與優先級;括號內的運算先處理,乘法優先於加、減法,而加、減法同級時由左至右結合。

解題方法

原式為 A−(B∗C)+DA-(B*C)+D。依優先級與結合方向,先計算括號內的乘法,再處理減法,最後處理加法:

  1. B∗CB*C 轉成 BC∗BC*。
  2. A−(B∗C)A-(B*C) 轉成 ABC∗−ABC*-:將 AA 與 BC∗BC* 作減法,運算子「−-」置於兩個運算元之後。
  3. 再將前一步結果與 DD 相加,得到 ABC∗−D+ABC*-D+。

因此,正確的後序式為 *ABC-D+**。

選項分析

🔒

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

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

免費註冊

第 17 題2 分

若以廣度優先拜訪(Breadth-first traversal)走訪下圖的樹,拜訪順序應為下列何者?

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

核心觀念

廣度優先走訪(Breadth-first traversal, BFS)採用「逐層拜訪」原則:

  1. 先拜訪根節點。
  2. 再拜訪根節點的所有子節點。
  3. 接著依照由左至右順序,拜訪下一層節點。
  4. 通常以佇列(Queue)實作,先進入佇列的節點先被處理。

解題方法

依圖形由上而下、由左至右分層:

  • 第 0 層:bb
  • 第 1 層:a,ca,c
  • 第 2 層:d,ed,e
  • 第 3 層:i,k,h,fi,k,h,f

因此廣度優先走訪順序為:

b→a→c→d→e→i→k→h→fb \rightarrow a \rightarrow c \rightarrow d \rightarrow e \rightarrow i \rightarrow k \rightarrow h \rightarrow f

合併後得到:

bacdeikhf\text{bacdeikhf}

選項分析

🔒

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

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

免費註冊

第 18 題2 分

關於二元樹(Binary tree)、完整二元樹(Complete binary tree)、完滿二元樹(Full binary tree)的敘述,下列何者正確?

這一題的完整詳解

核心觀念

本題測驗資料結構(Data Structures)中**二元樹(Binary Tree)**的特定型態定義及其集合包容關係。在臺灣國家考試(公職專技與高普特考)及國內大學資訊學群中,二元樹的定義絕大多數以權威經典教科書 Horowitz 等人所著之《Fundamentals of Data Structures》為命題基準:

  1. 二元樹(Binary Tree):每個節點最多只能有 22 個子節點(分支度 degree ≤2\le 2)的多元集合。
  2. 完滿二元樹(Full Binary Tree,亦稱滿二元樹):若一棵二元樹的深度為 kk,其總節點數恰好為 2k−12^k - 1(各層節點數皆達到最大容量 2i−12^{i-1},無任何空缺)。
  3. 完整二元樹(Complete Binary Tree):深度為 kk 且有 nn 個節點的二元樹,其節點由上而下、由左至右依序編號為 11 至 nn 時,每個節點的位置皆與深度為 kk 的完滿二元樹中編號 11 至 nn 的節點位置完全吻合。換言之,除最後一層外其餘各層均完全填滿,且最後一層的所有葉節點皆由左向右緊密排列。

解題方法

由定義切入分析兩者的集合關係:

  • 深度為 kk 的完滿二元樹擁有最大節點數 n=2k−1n = 2^k - 1,所有階層皆排滿,最後一層亦由左向右全部填滿。
  • 依序將其節點由上至下、由左至右編號,其編號順序完全符合「完整二元樹」的節點連續排列規則。
🔒

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

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

免費註冊

第 19 題2 分

10 個城市之間彼此的距離如下圖所示。若您預計從 a 城市出發前往 z 城市,最短的路線長度為多少?

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

核心觀念

本題考加權圖的最短路徑。城市是頂點,道路是邊,邊上的數字代表距離;要找從 aa 到 zz 的總距離最小路徑。各邊距離皆為正,可用 Dijkstra 演算法逐步確定最短距離。

解題方法

從 aa 出發,先將可直接到達的城市距離設為暫定值,再依序選取「目前暫定距離最小」的城市,更新其相鄰城市的距離。圖中的道路視為雙向。

Dijkstra 演算中,最短距離依序確定如下:

城市最短距離路徑
aa00起點
bb22a→ba \to b
ee33a→ea \to e
dd55a→e→da \to e \to d
hh88a→e→d→ha \to e \to d \to h
cc99a→e→d→h→ca \to e \to d \to h \to c
ff1111a→e→d→h→c→fa \to e \to d \to h \to c \to f
ii1111a→e→d→h→ia \to e \to d \to h \to i
🔒

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

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

免費註冊

第 20 題2 分

以快速排序法(Quick Sort)與堆積排序法(Heap Sort)來排序 nn 筆資料,其最壞狀況(Worst case)的時間複雜度為:

這一題的完整詳解

核心觀念

本題考快速排序法(Quick Sort)與堆積排序法(Heap Sort)在最壞狀況下的時間複雜度。

快速排序法每次選擇樞紐值(pivot)後,將資料分成兩部分。若每次都分得極不平均,例如一邊有 n−1n-1 筆、另一邊有 00 筆,遞迴深度會達到 nn,最壞時間複雜度為 O(n2)O(n^2)。

堆積排序法先建構堆積,再逐次取出堆頂並調整堆積。建堆為 O(n)O(n),之後約需進行 nn 次調整,每次至多花費 O(log⁡n)O(\log n),因此整體最壞時間複雜度為 O(nlog⁡n)O(n\log n)。

解題方法

快速排序最壞情況的遞迴式為:

T(n)=T(n−1)+O(n)T(n)=T(n-1)+O(n)

每次分割都要掃描目前的資料,成本依序約為 n、n−1、n−2、…、1n、n-1、n-2、\ldots、1,所以:

T(n)=O(n+(n−1)+⋯+1)=O(n2)T(n)=O(n+(n-1)+\cdots+1)=O(n^2)
🔒

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

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

免費註冊

第 21 題2 分

當輸入到陣列的資料本身就已排序好或幾乎排序好,至多只有 1 或 2 個資料次序不正確。以一般實作言,採用哪種排序法效率較佳?

這一題的完整詳解

核心觀念

本題考查排序法在「輸入資料原本已排序或接近排序」時的效率。插入排序會從左至右掃描資料,將每個元素插入前方已排序的部分;若資料本來就接近正確位置,每個元素需要移動的距離很短,因此通常很有效率。

解題方法

插入排序的時間複雜度取決於資料中需要搬移的次數。若資料已排序,每個元素只需與前一個元素比較,時間複雜度為 O(n)O(n);若只有少數元素次序錯置,所需搬移也通常很少,效率接近線性。

快速排序、堆積排序與合併排序的一般時間複雜度約為 O(nlog⁡n)O(n\log n),不會像插入排序一樣直接受益於「資料幾乎已排序」的特性。

選項分析

  • (A) 快速排序(Quick Sort)錯誤: 一般平均時間複雜度為 O(nlog⁡n)O(n\log n)。標準快速排序通常不會因資料接近排序而大幅減少工作;
🔒

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

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

免費註冊

第 22 題2 分

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

這一題的完整詳解

核心觀念

本題考查搜尋方法對資料排列狀態的要求。

  • **二元搜尋(Binary search)**每次比較目標值與資料中間位置的值,再排除一半的搜尋範圍。要正確判斷應往左半部或右半部搜尋,資料必須先依值排序。
  • **循序搜尋(Sequential search)**從資料起點逐筆比較,直到找到目標或檢查完所有資料;不要求資料排序。

解題方法

判斷各方法能否用於已排序與未排序資料:

搜尋方法已排序資料未排序資料
二元搜尋可以不可以
循序搜尋可以可以
🔒

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

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

免費註冊

第 23 題2 分

假設我們利用 BNF(Backus-Naur Form)定義一個程式的語法(grammar)如下:

<statement>→<id>:=<integer><statement>\to<id>:=<integer>

<id>→x∣y<id>\to x\mid y

<integer>→0∣1∣2<integer>\to 0\mid 1\mid 2

此語法 <statement><statement> 會產生下列哪個語句(sentence)?

這一題的完整詳解

核心觀念

本題考查 BNF 文法的產生規則,以及如何判斷一個語句是否能由指定的非終結符號推導產生。

在 BNF 中,<statement>、<id>、<integer> 是非終結符號;:=、x、y、0、1、2 是終結符號。符號 → 表示「可展開為」,而 | 表示「或」。

解題方法

從起始符號 <statement> 依序套用文法:

<statement>→<id>:=<integer><id>→x∣y<integer>→0∣1∣2\begin{aligned} <statement>&\to<id>:=<integer>\\ <id>&\to x\mid y\\ <integer>&\to 0\mid 1\mid 2 \end{aligned}
🔒

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

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

免費註冊

第 24 題2 分

下列何者最能描述陣列(array)的特性?

這一題的完整詳解

核心觀念

陣列(array)是一種用來儲存多個資料的容器,通常要求元素具有相同或相容的資料型態,並以索引存取各元素。例如,整數陣列可依序存放多個整數,並透過索引取得指定位置的值。

解題方法

判斷選項是否描述陣列的典型特性。陣列的核心是以索引存取一組同型態或相似型態的元素;階層關係、不可變性及節省記憶體都不是陣列的一般定義特徵。

選項分析

  • (A) 錯誤。 階層(hierarchical)行為常見於樹、檔案系統等階層式資料結構。陣列主要以連續位置與索引組織元素,並不以呈現階層關係為特徵。
🔒

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

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

免費註冊

第 25 題2 分

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

#include <stdio.h>

int f(int n) { if (n == 1 || n == 2) { return 10; } else { return f(n-1) * f(n-2); } }

int main() { printf("%d\n", f(5)); return 0; }

這一題的完整詳解

核心觀念

本題考遞迴函式的呼叫與回傳值。函式 f(n) 遇到 n=1n=1 或 n=2n=2 時,會直接回傳 1010;其他情況則回傳 f(n−1)×f(n−2)f(n-1)\times f(n-2)。

解題方法

由基礎值開始逐步計算:

f(1)=10,f(2)=10f(1)=10,\qquad f(2)=10 f(3)=f(2)×f(1)=10×10=100f(3)=f(2)\times f(1)=10\times10=100 f(4)=f(3)×f(2)=100×10=1000f(4)=f(3)\times f(2)=100\times10=1000 f(5)=f(4)×f(3)=1000×100=100000f(5)=f(4)\times f(3)=1000\times100=100000

因此,printf 輸出:

🔒

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

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

免費註冊

第 26 題2 分

針對下列 C 遞迴函式:

int fn(int a, int b) { int c;

if (b == 0)
    return 1;
else if (b % 2 == 0)
{
    c = fn(a, b / 2);
    return c * c;
}
else
    return a * fn(a, b - 1);

}

若以下列方式呼叫,將產生何種輸出?

printf("%d", fn(10, 5))

這一題的完整詳解

核心觀念

本題考查遞迴函式的執行流程,以及以「平方乘冪」方式計算整數次方。

函式的終止條件是 b=0b=0 時回傳 11。當 bb 為偶數時,先計算 fn(a,b/2)fn(a,b/2),再將結果平方;當 bb 為奇數時,則先提出一個 aa,再計算 fn(a,b−1)fn(a,b-1)。

解題方法

將 fn(10,5)fn(10,5) 依照函式分支逐步展開:

fn(10,5)=10×fn(10,4)(5 為奇數)fn(10,4)=fn(10,2)2(4 為偶數)fn(10,2)=fn(10,1)2(2 為偶數)fn(10,1)=10×fn(10,0)(1 為奇數)fn(10,0)=1(符合終止條件)\begin{aligned} fn(10,5) &=10\times fn(10,4) &&\text{(5 為奇數)}\\ fn(10,4) &=fn(10,2)^2 &&\text{(4 為偶數)}\\ fn(10,2) &=fn(10,1)^2 &&\text{(2 為偶數)}\\ fn(10,1) &=10\times fn(10,0) &&\text{(1 為奇數)}\\ fn(10,0) &=1 &&\text{(符合終止條件)} \end{aligned}

由內向外代回:

fn(10,1)=10×1=10fn(10,1)=10\times1=10
🔒

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

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

免費註冊

第 27 題2 分

關於 C 語言中的 int(整數)型態資料,下列指令何者錯誤?

int i;

這一題的完整詳解

核心觀念

本題考查 C 語言整數常數的表示方式,以及字元常數可否指定給 int 型態變數。

  • int 變數可以存放整數值。
  • C 語言的整數常數可用不同進位表示:一般數字為十進位、前置 0 表示八進位、前置 0x 或 0X 表示十六進位。
  • 字元常數以單引號括住,例如 'A'。在 C 語言中,字元常數具有整數值,因此可指定給 int 變數。
  • 0b 二進位前綴並非傳統 ISO C 標準的整數常數寫法;部分編譯器將它作為延伸功能支援,但不屬於標準 C 語法。

解題方法

逐一檢查指定給 int i 的右側是否為標準 C 語法可接受的整數值或字元常數:

  1. 字元常數 'A' 可轉為整數值。
  2. 檢查 0b 是否為標準 C 的二進位前綴。
  3. 前置 0 的整數常數按八進位解讀。
  4. 0x 開頭的整數常數按十六進位解讀。

選項分析

(A) i='A'; 正確。 'A' 是字元常數,在 C 語言中可用其整數值指定給 int 變數。

🔒

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

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

免費註冊

第 28 題2 分

考慮下列 C 語言結構變數(Structure variable)的宣告:

struct customer { int number; char name[20]; int age; char sex; };

struct customer John;

下列何者不是讀取一個 struct customer 欄位(Attribute)的位址(Address)?

這一題的完整詳解

核心觀念

結構(struct)以成員運算子 . 存取欄位,例如 John.number。在運算式中,陣列名稱通常會轉換為指向首元素的指標;因此,John.name 可表示字元陣列首元素的位置,也就是名稱欄位的起始位址。

取欄位位址的常見寫法是 &John.欄位名稱。& 是一元運算子,必須放在運算式前面;欄位存取則使用 .,不能把兩者寫成 John&age。

解題方法

逐一檢查選項是否能以合法的 C 語法表示欄位位址:

  • 整數或字元欄位可用 &John.欄位 取得位址。
  • 字元陣列欄位 John.name 在運算式中會轉換為指向首元素的指標,代表該陣列的起始位置。
  • 不符合 C 語法的寫法,不能讀取任何欄位的位址。

選項分析

🔒

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

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

免費註冊

第 29 題2 分

下列所定義的 C 語言結構變數:

typedef struct { enum { A, B } kind; union { int i; short s; } u; } Number;

Number a; a.kind = A; a.u.i = 2;

執行以下的 printf 指令,將會產生何種輸出?

printf("%d %hd", a.kind, a.u.s);

這一題的完整詳解

核心觀念

本題考 C 語言列舉型別與聯合(union)的記憶體共用方式。列舉常數未另行指定值時,從 00 開始依序遞增,因此 A 的值是 00、B 的值是 11。聯合的各個成員共用同一塊記憶體,透過一個成員寫入的資料,也會影響其他成員所讀取的位元組。

解題方法

  1. a.kind = A; 將列舉值 A 存入 kind,所以 a.kind 的值為 00。
  2. a.u.i = 2; 將整數 22 寫入聯合成員 i。
  3. a.u.s 與 a.u.i 共用聯合的記憶體。以一般採用 32 位元 int、16 位元 short 的系統表示,整數 22 的低 16 位元為 22,讀取 s 得到 22。
  4. %d 輸出 a.kind,%hd 輸出 a.u.s,因此輸出為 0 2。
🔒

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

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

免費註冊

第 30 題2 分

假設一個文字檔案共有 3600 個字元,且檔案指標 fptr 指在該檔的第 400 個字元的位置。下列何種 C 語言的程式片段執行後,feof(fptr) 的值為 0?

這一題的完整詳解

核心觀念

feof(fptr) 用來檢查串流的「檔案結尾指示器」是否已被設定。讀取位置到達檔案結尾時,並不會立刻設定此指示器;通常要在讀取操作因已無資料可讀而失敗後,指示器才會被設定。因此,若最後一次讀取仍成功,feof(fptr) 的值為 0。

本題假設檔案有 3600 個字元,檔案指標起初位於第 400 個字元。依 C 語言檔案定位慣例,第 400 個字元後方的位置是讀取第 401 個字元的位置。

解題方法

逐一追蹤各選項執行後的讀取位置,並判斷讀取是否成功:

  • 若讀取到檔案結尾前仍有字元可讀,feof(fptr) 為 0。
  • 若讀取操作嘗試取得超出檔案範圍的字元,便會遇到 EOF,設定結尾指示器,此時 feof(fptr) 為非零值。

選項分析

(A) fread(buffer, 1, 3600, fptr);

從目前位置開始要求讀取 3600 個位元組,但檔案指標已在檔案中途,剩餘資料不足 3600 個位元組。讀取過程到達檔案結尾時,會設定結尾指示器,因此 feof(fptr) 不為 0。錯誤。

(B) fseek(fptr, 3200, SEEK_CUR); fgetc(fptr);

🔒

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

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

免費註冊

第 31 題2 分

執行下列 C 語言撰寫之程式,產生之輸出結果為何?

#include <stdio.h>

void subA(void);

int a = 0, b = 4;

int main() { printf("a = %d, b = %d, ", a, b); subA(); printf("a = %d, b = %d", a, b); return 0; }

void subA() { int a; a = 2; b = b + 1; printf("a = %d, b = %d, ", a, b); }

這一題的完整詳解

核心觀念

本題考查全域變數與區域變數的作用域,以及函式呼叫時變數的存取方式。

程式在函式外宣告全域變數 a、b:

int a = 0, b = 4;

subA 函式內又宣告區域變數 a。函式內的區域變數會遮蔽同名的全域變數,因此在 subA 中使用 a 時,指的是區域變數;全域變數 a 不會因此改變。b 則沒有區域宣告,所以 subA 使用的是全域變數 b。

解題方法

依照程式執行順序追蹤變數:

  1. main 一開始,印出全域變數的值:a = 0、b = 4。
  2. 呼叫 subA,建立區域變數 a,並設定 a = 2。此處的 a 是區域變數。
  3. 執行 b = b + 1。b 是全域變數,因此從 44 增加為 55。
  4. subA 印出區域變數 a = 2 及全域變數 b = 5。
  5. 函式結束後,區域變數 a 消失;全域變數 a 仍為 00,全域變數 b 保持為 55。
🔒

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

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

免費註冊

第 32 題2 分

在下列 Java 程式中的兩個 method 方法運用到物件導向程式設計中的何種概念?

class Test { public int method(int a) { return a * a; } }

class Test2 extends Test { public int method(int a) { return a * a * a; } }

這一題的完整詳解

核心觀念

本題考查 Java 的方法覆寫(Overriding)。子類別繼承父類別的方法後,以相同的方法名稱與參數列重新定義方法,稱為方法覆寫。此例中,Test2 繼承 Test,並重新定義 method(int a)。

解題方法

比較兩個類別中的方法:

  • 父類別 Test 的 method(int a) 回傳 a×aa \times a。
  • 子類別 Test2 的 method(int a) 也具有相同的方法名稱與參數型別,回傳 a×a×aa \times a \times a。

子類別重新定義繼承而來的方法,因此是覆寫;方法內容不同不影響判斷。

選項分析

🔒

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

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

免費註冊

第 33 題2 分

UDP 協定對應到 OSI 所定義之網路模型的哪一層?

這一題的完整詳解

核心觀念

本題考查 UDP(User Datagram Protocol,使用者資料包協定)在 OSI 七層網路模型中的位置。UDP 負責端點之間的資料傳送,並以連接埠號碼區分不同應用程式,因此屬於傳輸層(Transport Layer)。

解題方法

辨認協定功能即可判斷層級:IP 負責在網路間傳遞封包,屬於網路層;UDP 與 TCP 則利用 IP 傳送資料,負責端點間的傳輸與連接埠識別,因此位於網路層之上、應用程式之下的傳輸層。

選項分析

  • (A) Data Link Layer:錯誤。 資料鏈結層負責同一鏈結上的訊框傳送,例如乙太網路;UDP 不處理訊框或媒體存取。
🔒

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

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

免費註冊

第 34 題2 分

有關區域網路使用 1000 Base Tx 乙太網路,其中 1000 代表的意義:

這一題的完整詳解

核心觀念

題目考查乙太網路規格名稱中的數字代表什麼。1000BASE-TX(題目寫作 1000 Base Tx)屬於傳輸速率為 1000 Mbps 的乙太網路規格,也就是每秒傳輸 1000 百萬位元,等於 1 Gbps1\text{ Gbps}。

解題方法

判讀規格名稱開頭的 1000,即可確認其傳輸速率為 1000 Mbps。題目詢問的是「1000 代表的意義」,因此選擇表示傳輸速率的選項;佈線距離則不是這個數字的意義。

選項分析

🔒

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

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

免費註冊

第 35 題2 分

封包經過下列何種網路設備後,可能會使得封包的接收端無法看到傳送端原本的 IP 位址?

這一題的完整詳解

核心觀念

本題考查各種網路設備對封包中來源 IP 位址的處理方式。路由器依據 IP 位址轉送封包;集線器與中繼器則處理實體層訊號,通常不會改寫封包的來源 IP 位址。網路位址轉換(Network Address Translation, NAT)會改寫 IP 標頭中的位址,讓接收端看到轉換後的位址,而非傳送端原本的 IP 位址。

解題方法

辨認哪種設備會修改 IP 標頭即可。NAT 會將內部主機的私有 IP 位址轉換為另一個 IP 位址;若使用連接埠位址轉換(PAT),也會一併轉換連接埠。封包抵達外部接收端時,來源 IP 欄位已是轉換後的位址,因此接收端看不到原始來源 IP。

選項分析

  • (A) 路由器(Router):錯誤。 一般路由器依目的 IP 位址選擇轉送路徑,轉送時不會因此改寫封包的來源 IP 位址。
🔒

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

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

免費註冊

第 36 題2 分

當一台電腦剛開機後欲瀏覽網頁,最有可能先送出下列何種協定的封包?

這一題的完整詳解

核心觀念

本題考查電腦開機後瀏覽網頁時,網路通訊的基本順序,以及各協定的用途。

  • ARP:在區域網路中,依據目的端的 IPv4 位址查詢對應的 MAC 位址,讓資料能透過乙太網路傳送。
  • DNS:將網域名稱解析為 IP 位址,例如將網站名稱轉換成伺服器的 IP 位址。
  • HTTP:瀏覽器與網站伺服器之間傳輸網頁內容的應用層協定。
  • ICMP:用於網路錯誤回報與診斷,例如 ping 使用的訊息。

解題方法

題目強調「剛開機後欲瀏覽網頁」,判斷重點是:在瀏覽器能向網站伺服器送出 HTTP 請求之前,電腦必須先知道目的伺服器的 IP 位址;若網站以網域名稱輸入,通常會先透過 DNS 查詢取得 IP 位址。

取得目的 IP 後,電腦還須將封包交給區域網路中的下一個傳送對象。若目的端在不同網路,這個對象通常是預設閘道器;電腦需透過 ARP 查出該閘道器的 MAC 位址,才能在區域網路上送出封包。因此,依照題目所問的「最有可能先送出」且選項提供的協定,答案為 ARP。

選項分析

🔒

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

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

免費註冊

第 37 題2 分

下列何種無線通訊協定的傳輸距離最短?

這一題的完整詳解

核心觀念

本題考查常見無線通訊技術的典型傳輸距離。不同協定的設計用途與涵蓋範圍不同:NFC 用於近距離感應,Bluetooth 用於短距離裝置連線,Wi‑Fi 用於區域網路,4G 則用於行動廣域網路。

解題方法

比較各技術的一般有效通訊範圍即可。NFC 的操作距離通常只有數公分,Bluetooth 通常為數公尺至數十公尺,Wi‑Fi 通常可涵蓋數十公尺以上,4G 則透過基地臺提供較大範圍的行動通訊。因此,傳輸距離最短的是 NFC。

選項分析

🔒

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

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

免費註冊

第 38 題2 分

透過網頁快取(Web Cache)的方式,儲存最近被請求的網頁物件的副本,以降低用戶請求網頁回應的時間,這樣的網頁服務設施稱為:

這一題的完整詳解

核心觀念

本題考查網頁快取與網頁服務設施的功能。**Proxy 伺服器(代理伺服器)**可代替用戶向網頁伺服器請求內容,並快取最近請求過的網頁物件。後續用戶再次請求相同物件時,Proxy 可直接提供快取副本,減少等待時間與對外網路流量。

解題方法

抓住題幹的關鍵描述:「儲存最近被請求的網頁物件副本」及「降低用戶請求網頁回應的時間」。這是 Proxy 伺服器的網頁快取功能,因此選 (B)。

選項分析

  • (A) FTP 伺服器:錯誤。 FTP 伺服器提供檔案傳輸服務,功能重點是上傳、下載與管理檔案,不是替用戶快取網頁物件。
  • **(B) Proxy 伺服器:正確。
🔒

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

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

免費註冊

第 39 題2 分

IPv6 是為了解決目前 IPv4 網際網路地址不足的問題而提出的新一代網際網路定址系統,一個 IPv6 的位址長度有幾個位元?

這一題的完整詳解

核心觀念

本題考查 IPv6 位址的長度。IPv6(Internet Protocol version 6)使用 128 位元位址,以提供遠多於 IPv4 的可用位址數量。IPv4 位址則長 32 位元。

解題方法

直接辨認兩代網際網路協定的位址長度即可:IPv4 為 32 位元,IPv6 為 128 位元。因此本題選擇標示 128 位元的選項。

選項分析

🔒

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

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

免費註冊

第 40 題2 分

當發現某公司產品有資安漏洞時,下列何者為負責任的披露方式(Responsible disclosure)?

這一題的完整詳解

核心觀念

本題考查資安漏洞的「負責任披露」(Responsible disclosure):發現漏洞後,研究者應先私下通知受影響公司,提供足以確認與修補漏洞的資訊,讓公司有合理時間處理;在漏洞修復前,避免公開足以讓他人利用漏洞的細節,以降低使用者遭受攻擊的風險。

解題方法

判斷各選項是否以降低風險、促成修補為原則。負責任披露的關鍵順序是「先通知、給予修補時間,再視情況披露」;牟利、搶先公開或擅自利用漏洞取得資料,都不符合這項原則。

選項分析

  • (A) 將漏洞資訊賣給出價最高的人:錯誤。 這是以交易獲利為目的,無法確保漏洞資訊會交由公司修補,也可能讓漏洞被用於攻擊。
🔒

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

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

免費註冊

其他考古題