110 國安局特考五等 資訊組 資料處理大意 考古題詳解
第 1 題2 分
若一個正整數區間最大值為 ,請問至少需要幾位元的記憶體才能儲存?
核心觀念
本題測驗二進位數值表示法與整數編碼的記憶體容量需求。
在計算機系統中,以無號整數(Unsigned Integer)儲存非負整數時:
- 個位元(bits)共有 種狀態組合。
- 可表示的整數範圍為 。
- 若要儲存最大值為 的正整數,所需之最小位元數 必須滿足下列不等式: 亦即 。
解題方法
-
確立不等式條件 本題欲儲存之最大正整數 ,因此位元數 需滿足:
-
利用基準值推算 2 的次方 熟記 2 的次方基準常數 、:
- 數值比較與判斷
- 當 時,最大可表示值為 。
- 因為 (),故 23 位元無法儲存 。
第 2 題2 分
請問將程式原始碼(Source Code)轉換至可執行碼(Object Code)的編譯過程中,其中將符號(Symbol)轉為標記(Token)的轉換工具,是下列哪一個?
核心觀念
本題考查編譯器(Compiler)的處理階段與工作流程。 編譯器將高階語言原始碼(Source Code)轉換為目標碼/機器碼(Object Code)的傳統架構分為前端(Front-end)與後端(Back-end),包含六大主要階段:
- 詞法分析(Lexical Analysis / Scanning):將連續的原始碼字元/符號串流,依字彙規則識別並切割為具有語彙意義的標記(Token)。
- 語法分析(Syntax Analysis / Parsing):將 Token 序列依文法規則建構成語法剖析樹(Parse Tree / AST)。
- 語意分析(Semantic Analysis):進行型態檢查(Type Checking)、變數宣告與作用域驗證。
- 中間碼產生(Intermediate Code Generation):產生與機器無關的中間表示碼(如三位址碼 Three-Address Code)。
- 程式碼最佳化(Code Optimization):提升執行效能並精簡指令。
- 目標碼產生(Code Generator):將中間碼轉譯為特定硬體架構的機器碼或組合語言。
解題方法
本題的關鍵切入點在於輸入與輸出單位的對應:
- 題目要求找出「將符號(Symbol / 字元串流)轉為標記(Token)」的轉換工具。
- 原始程式碼本質上是一連串字元與符號(如
a,=,b,+,1,;)。編譯器的第一道工序即為「詞法分析」,透過有限狀態自動機(DFA/NFA)掃描並過濾空白與註解,將這些符號組裝並分類成一個個標準標記(例如:ID(a),ASSIGN,ID(b),PLUS,INT(1),SEMI)。 - 執行此轉換的工具即為詞法分析器(Lexical Analyzer,又稱 Scanner)。
選項分析
- (A) 詞法分析器(Lexical Analyzer):正確。
第 3 題2 分
下列四種不同進位表示法之數值,何者與其他三者不同?
核心觀念
本題評量數位邏輯與計算機基礎之「進位制轉換」(Number System Conversion),涉及以下核心觀念:
- 進位制快速轉換法則:
- 二進位轉八進位():自小數點向左(整數部分),每 個位元(bits)一組,直接對應一個八進位數字。
- 二進位轉十六進位():自小數點向左(整數部分),每 個位元一組,直接對應一個十六進位數字。
- 位置權重法(按權展開式): 將 進位制數值轉換為十進位制時,計算各數位乘上其位置權重之總和:
解題方法
在國家考試中,面對不同進位制(二、八、十、十六進位)之混合比對題目,最有效率的策略是以「二進位」作為轉換樞紐:
- 先利用選項 (D) 之二進位數,分別以「 位一組」與「 位一組」極速轉換為八進位與十六進位,快速核對 (A) 與 (C)。
- 確認 (A)、(C)、(D) 的關係後,將其中一者換算為十進位,核對選項 (B)。
選項分析
- (D) 二進位 :
- 轉為八進位:由右至左每 位劃分一組: 與選項 (A) 完全相同。
- 轉為十六進位:由右至左每 位劃分一組: 與選項 (C) 完全相同。
- 轉為十進位:以十六進位 展開計算最為簡捷:
第 4 題2 分
有一個二元樹,~ 為其節點,其先序(preorder)為 ,中序(inorder)為 ,求其後序(postorder)為何?
核心觀念
本題測驗二元樹(Binary Tree)的走訪(Traversal)原理與樹結構重建。
- 三種常見走訪定義:
- 先序走訪(Preorder,VLR):先存取根節點,再走訪左子樹,最後走訪右子樹。
- 中序走訪(Inorder,LVR):先走訪左子樹,再存取根節點,最後走訪右子樹。
- 後序走訪(Postorder,LRV):先走訪左子樹,再走訪右子樹,最後存取根節點。
- 唯一重建性質:
- 僅憑先序或後序無法唯一確定二元樹,但只要搭配中序走訪(如:先序+中序、或後序+中序),即可唯一確定一棵二元樹。
- 核心規律:先序走訪的第一個節點必定是當前樹(或子樹)的「根節點」;該根節點在中序走訪中會精確地將節點分割為「左子樹節點群」與「右子樹節點群」。
解題方法
透過先序找出各子樹的根節點,對應中序分割出左右子樹,依此遞迴推導出整棵樹的結構,最後寫出後序走訪順序。
步驟一:確定全樹樹根並切分左右子樹
- 先序為 第一個節點 為全樹的根節點。
- 中序為 根節點 的左側為 (左子樹,共 5 個節點),右側為 (右子樹,共 3 個節點)。
- 對應分割先序序列:
- 左子樹先序:
- 右子樹先序:
步驟二:重建左子樹(節點 )
- 先序為 左子樹的根為 。
- 中序為 的左側為 ,右側為 。
- 為單一節點,即為 的右子節點。
- 接著分析 :
- 先序對應為 根為 。
- 中序對應為 的左子節點為 ,右子節點為 。
- 左子樹架構完成:
- 根節點為 。
- 的左小孩為 ; 的左小孩為 、右小孩為 。
- 的右小孩為 。
步驟三:重建右子樹(節點 )
- 先序為 右子樹的根為 。
- 中序為 的左側為 ,右側為 。
- 右子樹架構完成:
- 根節點為 。
第 5 題2 分
採二之補數(2’s complement)的二進位 8 位(8 digits)數字 與 ,其相加之後的十進位數值為何?
核心觀念
本題考查數位邏輯與計算機概論中「二之補數(2's complement)」的表示法及其加法運算規則:
- 二之補數表示法: 在 位元(8-bit)二之補數系統中,最高有效位元(MSB,第 7 位)為「符號位元」(Sign bit):
- 若 ,表示為正數或零,數值直接按二進位權值轉換為十進位。
- 若 ,表示為負數。其十進位真值可透過「取反加一」(求絕對值)加上負號,或直接利用符號位元權重為 計算。
- 二之補數加法與捨棄進位規則: 兩數相加時直接進行二進位直式加法。若產生超過位元數(第 8 位)的進位(End-around Carry),在二之補數運算中應直接捨棄(Discard)。
- 溢位(Overflow)判斷: 正數與負數相加(一正一負),結果必定落在原數值的界限內,絕對不會產生溢位。
解題方法
本題有兩種解題切入途徑:
【解法一:二進位直接相加(推薦,運算最快)】
直接將兩組 位元二進位數字以直式相加:
\begin{array}{r@{\quad}l} & 01101011_2 \\ + & 11001010_2 \\ \hline (1) & 00110101_2 \end{array}各項細部加法推導如下:
- 第 0 位(最右):
- 第 1 位:(向第 2 位進 )
- 第 2 位:
- 第 3 位:(向第 4 位進 )
- 第 4 位:
- 第 5 位:
- 第 6 位:(向第 7 位進 )
- 第 7 位:(向第 8 位進 )
相加結果為 9 位元數字 。 由於系統為 位元,捨棄溢出的第 8 位進位 ,保留 8 位元結果:。
判斷結果數值:
- ,為正數。
- 轉換為十進位:
【解法二:先轉十進位再相加(直觀、適合驗算)】
第 6 題2 分
請問以下程式中, 的值為何?
int f(int m, int n) {
if (n == 0) return m;
else if (m >= n) return f(m-n, n);
else return f(n-m, m);
}
核心觀念
本題測驗的核心為**遞迴函式(Recursive Function)的執行流程,以及古典演算法中以減法實作求最大公因數(Greatest Common Divisor, )**的「更相減損術」(即輾轉相除法的減法版本)。
函式的數學意義如下:
- 終止條件:當第二個參數 時,回傳第一個參數 。
- 輾轉相減特性:
- 若 ,呼叫 。連續減去 的效果等價於以 除 取餘數(即 )。
- 若 ,呼叫 ,此呼叫將兩數之差與較小數傳入,根據數論性質,。
- 結論:此函式計算的本質即為兩數的最大公因數,即 。
解題方法
1. 識別演算法本質
直接展開遞迴會耗費大量時間(因需重複減去多次 66)。由於本題本質為求 ,可直接利用輾轉相除法快速計算:
因此,。
2. 遞迴呼叫關鍵節點驗證
將上述除法對應回程式的遞迴執行過程:
- 執行 的分支共 23 次減法:
- 此時 ,進入 分支,執行 。
第 7 題2 分
下列何者敘述(Statement)不是程式語言中常見的重複結構(Repetition Construct)?
核心觀念
本題測驗結構化程式設計(Structured Programming)中的「基本控制結構(Control Structures)」。 結構化程式設計主要包含三大基本控制結構:
- 循序結構(Sequence Construct):程式指令依書寫順序由上而下循序執行。
- 選擇結構(Selection / Conditional Construct):依據條件判斷結果決定執行的程式分支,常見敘述如
if、if-else、switch-case,以及部分現代語言(如 Kotlin)或 SQL 中的when。 - 重複結構(Repetition / Iteration / Loop Construct):當指定條件滿足時,反覆執行某段程式碼區塊(即迴圈)。在主流程式語言(如 C、C++、Java、Python 等)中最常見的重複結構為
for、while與do-while。
解題方法
本題的核心切入點是「區分選擇結構與重複結構」:
- 題目詢問何者「不是」重複結構(Repetition Construct)。
- 檢視各選項是否具備「迴圈(Loop)反覆執行」的語法語意。主流程式語言定義的標準迴圈關鍵字包含
while、for與do-while;而when則是用於多向條件分支評估的「選擇結構」,不具備反覆疊代執行的語意,故為正解。
選項分析
- (A) While:錯誤(屬於常見的重複結構)
while屬於「前測試迴圈(Pre-test Loop)」。在每次進入迴圈體之前先檢查條件判斷式,若條件為真(True)則執行迴圈體內的敘述,若條件為假(False)則直接結束迴圈。常見於迴圈執行次數未預先確定的情境。
第 8 題2 分
下列何者不是會使得程序(Process)產生死結(Deadlock)的必要條件(Necessary Condition)?
核心觀念
本題測驗作業系統(Operating System)中「死結(Deadlock)的四個必要條件」(Coffman Conditions)。
當多個程序(Processes)因彼此競爭系統資源而陷入無限期等待的僵局時,稱為死結。根據計算機科學家 E. G. Coffman 等人於 1971 年提出的理論,死結的發生必須同時具備以下四項必要條件(缺一不可):
- 資源互斥(Mutual Exclusion):至少有一個資源處於非共享模式,一次只能被一個程序獨佔使用。
- 佔有並等待/握有資源才可執行(Hold and Wait / Resource Holding):程序至少持有一個資源,同時又在等待其他已被其他程序佔用的資源。
- 不可先占/不可剝奪(No Preemption):程序持有的資源不能被強制搶奪,只能在該程序執行完畢後自行主動釋放。
- 循環等待(Circular Wait):存在一組程序 ,其中 等待 佔有的資源, 等待 佔有的資源…… 則等待 佔有的資源,形成一個封閉的循環鏈。
解題方法
本題的解題關鍵在於檢視四個選項中,何者「不屬於」上述四項 Coffman 必要條件。 死結發生的條件是「不可先占(No Preemption)」;若系統「有先占權(Preemption)」,作業系統就能隨時強制收回程序持有的資源並重新分配,此舉正好破壞了死結發生的條件(這是死結預防與回復的策略之一),因此「有先占權」絕非死結的必要條件。
第 9 題2 分
下列何者是利用電子通訊中,透過偽裝成信譽卓著的媒體或網站,以獲得使用者個人敏感資訊的詐騙過程?
核心觀念
本題測驗資訊安全領域中「常見資安威脅與攻擊手法」之精確定義與分類:
- 網路釣魚(Phishing):屬於社交工程技術的一種具體實踐。攻擊者藉由電子郵件、即時通訊或偽冒網站,偽裝成銀行、政府機關、知名媒體或大型電商等信譽卓著的組織,誘騙受害者提供個人敏感資訊(如帳號密碼、信用卡號、身分證字號等)。
- 概念層級區分(上位概念 vs. 下位專屬概念):在公職考試中,常同時出現包含關係的選項(例如社交工程與網路釣魚)。解題時必須根據題幹是否具有「特定情境要素」(電子通訊、偽冒合法媒體/站點、獲取憑證),選擇定義最精確、最適切的專有名詞。
解題方法
本題採「關鍵字比對與特徵定位法」,拆解題幹中的三大核心要素:
- 途徑:「利用電子通訊中」(如 Email、簡訊、通訊軟體)。
- 手法:「偽裝成信譽卓著的媒體或網站」(假冒知名品牌、官方站台或知名平台)。
- 目的:「獲得使用者個人敏感資訊」(竊取帳密、信用卡等機密)。
比對資安專有名詞定義,完全符合「網路釣魚(Phishing)」的標準定義。
選項分析
- (A) 社交工程(Social Engineering)錯誤(非最佳解) 社交工程是一個「廣義的統稱」,指任何利用人性弱點(如貪念、好奇心、恐懼、同情心或信任感)進行心理操縱,以獲取機密資訊或系統存取權限的手法(包括肩窺、假冒身份通話、翻垃圾搜集資訊、偽裝網站等)。題幹所描述的情境具備明確的「電子通訊」與「偽造信譽網站/媒體」特徵,屬於社交工程下的特定分支——網路釣魚。在單選題「選最適切者」原則下,(B) 比 (A) 更精確。
第 10 題2 分
下列對於 SQL 語言 UPDATE 指令之敘述,何者有誤?
核心觀念
本題考查關聯式資料庫中 SQL(Structured Query Language)的分類架構與 UPDATE 資料操作語法之特性:
- SQL 分類架構:
- DML(Data Manipulation Language,資料操作語言):處理資料表內部的資料紀錄,包含
SELECT、INSERT、UPDATE、DELETE。 - DDL(Data Definition Language,資料定義語言):定義或修改資料庫結構(Schema),包含
CREATE、ALTER、DROP、TRUNCATE。 - DCL(Data Control Language,資料控制語言):控制使用者存取權限,包含
GRANT、REVOKE。 - TCL(Transaction Control Language,交易控制語言):管理資料庫交易,包含
COMMIT、ROLLBACK。
UPDATE語法規範: 標準語法為:
UPDATE 資料表名稱
SET 欄位1 = 值1, 欄位2 = 值2, ...
WHERE 條件式;
其功能為修改資料表中既有資料列(rows/tuples)的欄位數值,並非變更綱要結構,亦非增刪資料列。
解題方法
檢驗題目所詢問之「何者有誤」:
從 SQL 標準規範出發,逐一比對 UPDATE 的指令分類、語法子句(SET 與 WHERE)以及對資料列生命週期的影響。依據標準語法,SET 子句允許使用逗號(,)串接多個欄位同時賦值,據此可判定選項之正誤。
選項分析
- (A) 可以合併 WHERE 條件來過濾資料:敘述正確。
UPDATE語句通常搭配WHERE子句來限定修改範圍,只有滿足條件的資料列才會被更新;
第 11 題2 分
假設你想要規劃電腦教室的電腦可以自動設定相關的上網 IP 配置,此配置包含 IP 位址、子網路遮罩(subnet mask)、網路閘道器(gateway)、網域命名系統(DNS)等,請問你可以使用下列哪一種網路協定?
核心觀念
本題測驗電腦網路中應用層協定的功能與應用場景,核心在於**動態主機設定協定(Dynamic Host Configuration Protocol, DHCP)**的定義與功用。 在 TCP/IP 網路環境中,端點主機若要正常連線上網,必須正確配置以下四項基本網路參數:
- IP 位址(IP Address):識別主機在網路上的邏輯位址。
- 子網路遮罩(Subnet Mask):劃分網路位址(Network ID)與主機位址(Host ID)。
- 預設閘道器(Default Gateway):當封包的目的地不在同一子網段時,負責轉發封包的路由器介面 IP。
- 網域命名系統伺服器(DNS Server):提供網域名稱(FQDN)與 IP 位址之間的解析轉換服務。
DHCP 採用客戶端/伺服器(Client/Server)架構,運作於應用層(傳輸層採用 UDP 協定,伺服器埠號為 67、客戶端埠號為 68),專門負責在區域網路中動態且自動地將上述參數分發給客戶端主機。
解題方法
解題切入點在於抓住題幹描述的核心動作與標的:
- 核心動作:「自動設定」
- 設定內容:「上網 IP 配置(IP 位址、子網路遮罩、網路閘道器、DNS)」
在各選項的協定中,只有 DHCP 具備「自動派發主機網路組態參數」的機制。主機開機連上網路時,透過 DHCP 的「DORA」四步驟交換過程(Discover Offer Request Acknowledge),即可自動取得完整的連網組態,無須網管人員逐台手動指派靜態 IP,因此本題應選 DHCP。
選項分析
- (A) DHCP(Dynamic Host Configuration Protocol,動態主機設定協定):【正確】
第 12 題2 分
下列何者不是用來做為評估軟體品質(Software Quality)的依據?
核心觀念
本題測驗軟體工程中**軟體品質模型(Software Quality Model)**的評估標準與特性架構。 在國際標準(如 ISO/IEC 9126 及後續的 ISO/IEC 25010)以及經典的 McCall 軟體品質模型中,評估軟體品質主要依據一套嚴謹的「品質特性(Quality Characteristics)」與「子特性(Sub-characteristics)」。
以國家考試最常命題的 ISO/IEC 9126 為例,軟體品質分為六大核心特性:
- 功能性(Functionality):軟體滿足明確與隱含需求的能力。
- 可靠性(Reliability):在特定條件與期間內,維持特定效能水準的能力。
- 易用性(Usability):軟體被使用者理解、學習與使用的能力。
- 效率性(Efficiency):在規定條件下,軟體效能與所消耗資源之間的關係。
- 維護性(Maintainability):軟體可被修改、除錯、調整適應的難易程度。
- 可攜性/移轉性(Portability / Transferability):軟體從一個環境轉移至另一個環境的適應能力。
解題方法
解答本題時,切入點為區分**「軟體品質衡量指標(特性)」與「資安檢測技術/手段」**:
- 軟體品質評估的依據必須是描述軟體系統本身屬性的品質特性或其子特性(如移轉性、易用性子項目操作性、維護性等)。
- 「滲透(Penetration)」屬於資訊安全領域中的檢測手段(如滲透測試),並非軟體品質模型中用來衡量軟體品質的特性指標。
選項分析
- (A) 移轉性(Transferability): 正確(屬於評估依據)。
第 13 題2 分
下列何者是非對稱式加密技術(Asymmetric-key Cryptosystem)?
核心觀念
本題測驗「資訊安全」範疇中密碼學架構的分類,特別是**對稱式加密(Symmetric-key Cryptosystem)與非對稱式加密(Asymmetric-key Cryptosystem,又稱公開金鑰密碼系統)**的代表性演算法區分:
- 對稱式加密技術:
- 加密與解密使用同一把金鑰(或由其中一把可輕易推導出另一把)。
- 運算速度快,適合大量資料傳輸加密,但面臨金鑰分配與管理的瓶頸。
- 代表演算法:DES、3DES、AES、RC4、Blowfish、IDEA。
- 非對稱式加密技術:
- 使用成對的兩把金鑰:公開金鑰(Public Key)與私密金鑰(Private Key)。
- 安全性多基於複雜的單向數學難題(如質因數分解、離散對數問題、橢圓曲線離散對數問題)。
- 運算速度較慢,但能有效解決金鑰傳遞問題,並可支援數位簽章(Digital Signature)與身分驗證。
- 代表演算法:RSA、ECC(橢圓曲線密碼)、ElGamal、Diffie-Hellman。
解題方法
由題幹關鍵字「非對稱式加密技術」切入,逐一檢驗四個選項所屬的密碼系統類別:
- 判定選項中各演算法的金鑰使用機制:若為「單一金鑰加密/解密」即屬對稱式;若為「成對公私鑰」即屬非對稱式。
- 經比對,DES、AES 與 3DES 皆屬對稱式區塊加密(Block Cipher)演算法;僅 RSA 採用公鑰與私鑰之金鑰對機制,屬於非對稱式加密演算法。
選項分析
- (A) RSA:正確。 由 Ron Rivest、Adi Shamir 與 Leonard Adleman 於 1977 年共同提出,以三人姓氏字首命名。其數學安全性建立在「大整數質因數分解(Integer Factorization)」的計算複雜度上。加密時使用接收者的公鑰,解密時使用私鑰;反之,以私鑰加密則可用作數位簽章,為目前最廣泛應用的非對稱式加密技術。
第 14 題2 分
下列有關 IPv4 與 IPv6 兩種協定的敘述,何者有誤?
核心觀念
本題測驗網際網路協定(Internet Protocol)中 IPv4 與 IPv6 之基本架構規範,核心重點在於兩者的「位址長度(位元/位元組單位換算)」與「書寫表示法(進位制與分隔符號)」:
- 位址長度:
- IPv4 為 個位元(bits),因 ,亦即 個位元組(bytes)。
- IPv6 為 個位元(bits),即 個位元組(bytes)。
- 書寫格式:
- IPv4 採用「點分十進位表示法(Dotted-decimal notation)」,共分 組(每組 ),組與組之間以「圓點(
.)」隔開。 - IPv6 採用「冒號十六進位表示法(Colon-hexadecimal notation)」,共分 組(每組 ),組與組之間以「冒號(
:)」隔開。
解題方法
本題為標準的觀念比對題,要求選出「有誤」的敘述。解題切入點為比對兩協定的規格定義:
- 先檢驗位址長度單位是否正確(注意題目使用的是 bit 還是 byte)。
- 再檢驗書寫格式的進位制(十進位 vs. 十六進位)與分隔符號(圓點 vs. 冒號)。
- 經比對,IPv6 位址是使用十六進位表示,而非十進位,故可快速鎖定錯誤敘述。
選項分析
- (A) 敘述錯誤(本題應選):
IPv6 的長度高達 ,若以十進位表示長度過於冗長,故規範採用**十六進位數字(Hexadecimal)**表示(例如:
2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
第 15 題2 分
下列何者是利用線上行銷及線上購買,以帶動線下(非網路上的)經營和線下消費的電子商務模式?
核心觀念
本題測驗電子商務(Electronic Commerce, EC)中虛實整合商業模式的定義。常見的電子商務分類可分為兩大維度:
- 依交易對象角色劃分:如企業(Business, B)、消費者(Consumer, C)、政府(Government, G)等主體間的互動(如 B2C、C2C、C2B、B2B、G2C)。
- 依虛實通路的串聯劃分:以網路虛擬空間(Online)與實體店面空間(Offline)的引流整合為主軸,即「O2O(Online to Offline / Offline to Online)」。
解題方法
本題的解題核心在於識別題幹中的通路場域轉移:
- 交易起點:「線上行銷及線上購買」(Online)——消費者透過網站、社群或行動 App 瀏覽資訊、獲取優惠券或預先付款。
- 交易終點:「帶動線下經營和線下消費」(Offline)——消費者前往實體店面體驗服務、享用商品或自取貨物。
這種將實體商業機會與網際網路結合,讓網路成為實體交易前台的模式,即為標準的 Online to Offline(O2O)。
選項分析
- (A) B2C(Business-to-Consumer,企業對消費者):錯誤。 指企業透過電子商務平台直接向一般大眾販售商品或服務(如 momo 購物網、PChome 24h 線上購物)。此分類著眼於「交易主體的角色」,而非強調虛擬網路與實體店面之間的導流。
第 16 題2 分
有一個數列 ,若採用選擇排序法(Selection Sort)將其由左至右、由小到大排序,請問要執行幾次位置互換(Swap)的動作?
核心觀念
- 選擇排序法(Selection Sort)基本原理:
- 排序過程中將資料分為「已排序區間」與「未排序區間」。
- 由左至右進行,每回合(Pass)從「未排序區間」中尋找最小值,並將該最小值與未排序區間的第一個元素進行位置互換(Swap)。
- 交換後,該元素納入「已排序區間」,未排序區間長度減 1。
- 迴圈與交換次數的理論定義:
- 對於長度為 的數列,演算法的外層迴圈共需執行 個回合。當前 個元素皆就定位後,最後剩下的第 個元素必然已經在正確位置,無須再處理。
- 經典教科書演算法:每回合固定呼叫一次交換指令(即使最小值已在該回合的起始位置,亦視為自我交換一次),總交換次數恆為 次。
- 實務優化實作(條件式交換):若加上判斷式
if (min_index != i),則僅在最小值不在起始位置時才執行交換。在本題給定的數列中,每一個回合的最小值位置皆不等於起始位置,因此兩種實作方式的交換次數完全相同,皆為 次。
解題方法
給定數列元素個數 ,原始數列如下(索引 ):
我們依序追蹤(Trace)每回合的未排序區間、找到的最小值位置、交換動作及交換後的數列狀態:
- 第 1 回合():
- 未排序區間為索引 :
- 區間最小值為 (位於索引 6)。
- 執行交換:將索引 0(值 )與索引 6(值 )互換。
- 交換後數列: 第 1 次交換
- 第 2 回合():
- 未排序區間為索引 :
- 區間最小值為 (位於索引 6)。
- 執行交換:將索引 1(值 )與索引 6(值 )互換。
- 交換後數列: 第 2 次交換
- 第 3 回合():
- 未排序區間為索引 :
- 區間最小值為 (位於索引 4)。
- 執行交換:將索引 2(值 )與索引 4(值 )互換。
- 交換後數列: 第 3 次交換
- 第 4 回合():
- 未排序區間為索引 :
- 區間最小值為 (位於索引 5)。
- 執行交換:將索引 3(值 )與索引 5(值 )互換。
- 交換後數列: 第 4 次交換
- 第 5 回合():
- 未排序區間為索引 :
- 區間最小值為 (位於索引 8)。
第 17 題2 分
請問以下程式片段最後的 值是多少?
A = 1; B = 2; C = 3;
do {
B = A + B;
A = A + 2;
C = A + B + C;
} while (A <= 10);
核心觀念
本題考查 do...while 迴圈的執行順序與變數更新。do...while 會先執行迴圈本體,再判斷條件;因此,即使本體執行後 A 已大於 10,該輪仍會完整執行。
解題方法
初始值為 、、。每輪依序執行:
- 判斷 ,成立則進入下一輪
| 輪次 | 更新後的 | 更新後的 | 更新後的 | 條件 |
|---|---|---|---|---|
| 初始 | 2 | 1 | 3 | — |
| 第 1 輪 | 成立 | |||
| 第 2 輪 | 成立 | |||
| 第 3 輪 | 成立 |
第 18 題2 分
在物件導向程式設計(Object-Oriented Programming)方法中,下列何者乃是將抽象性函式介面的實作細節包裝隱藏起來的方法?
核心觀念
本題測驗物件導向程式設計(Object-Oriented Programming, OOP)的四大核心特性及其核心定義:
- 封裝(Encapsulation):將資料(屬性)與操作這些資料的函式(方法)組合成單一單元(類別,Class),並實施資訊隱藏(Information Hiding),限制外部對內部細節與資料結構的直接存取。
- 繼承(Inheritance):子類別繼承父類別的特徵與行為,達成程式碼重用(Code Reuse)。
- 多型(Polymorphism):同一操作介面在不同型態的物件上可產生不同的執行結果。
- 抽象(Abstraction):擷取事物的共同本質特徵,忽略非本質的細節。
解題方法
由題幹關鍵字切入:「包裝」與「實作細節……隱藏起來」。 在物件導向設計中,用來提供外部公開介面(Public Interface),同時將內部的具體運算邏輯與資料結構隔離、隱藏不對外公開的實作機制,即為「封裝」與「資訊隱藏」。因此,透過語意與定義對照,本題標準解法為直接對應「封裝」。
選項分析
- (A) 繼承(Inheritance)—— 錯誤 繼承是指子類別(Subclass)承接父類別(Superclass)的屬性與方法,建立「is-a」的階層關係。其主要效益在於減少重複程式碼、提高重用性與擴充性,並非用來包裝或隱藏實作細節。
- (B) 多型(Polymorphism)—— 錯誤
第 19 題2 分
下列何者是資料庫進行三階正規化(3NF)的目的?
核心觀念
本題測驗關聯式資料庫(Relational Database)的**正規化理論(Normalization)**各階段定義與消除相依性的目的:
- 第一正規化(1NF):強調屬性值原子性(Atomicity),每個欄位皆為單一值,消除重複群(Repeating Groups)。
- 第二正規化(2NF):符合 1NF,且消除部分功能相依(Partial Functional Dependency),即所有非鍵屬性必須完全功能相依於主鍵。
- 第三正規化(3NF):符合 2NF,且消除遞移功能相依(Transitive Functional Dependency)。若主鍵為 、非鍵屬性為 與 ,存在 且 ,則 遞移相依於 。欲消除此相依,非主鍵屬性之間不得存在相依關係,即非主鍵屬性之間應各自獨立無關。
解題方法
正規化是由低階逐步推展至高階的過程,各階層的核心任務如下:
- 1NF:處理欄位層級的結構,要求不可為多值(Multivalued)。
- 2NF:處理複合主鍵情況下,非鍵屬性對主鍵的直接相依性,要求完全相依。
- 3NF:處理非鍵屬性彼此之間的間接相依性。若資料庫中存在兩個非主鍵欄位 與 ,且 ,則會產生遞移相依問題,導致更新異常(Update Anomaly)或刪除異常(Deletion Anomaly)。因此,3NF 的核心目的在於切斷非主鍵屬性之間的相依鏈,使非主鍵屬性之間彼此獨立無關。
第 20 題2 分
下列何者不是資料庫交易所必須符合的 ACID 原則?
核心觀念
本題考查**關聯式資料庫管理系統(RDBMS)中資料庫交易(Transaction)**的四大核心特性——ACID 原則。
交易是資料庫執行的一組邏輯操作單元(Logical Unit of Work)。為確保資料庫在多使用者並行存取(Concurrency Control)及系統發生故障與毀損(Crash Recovery)時,仍能維持資料的正確性與可靠性,任何交易處理都必須嚴格滿足以下四大特性:
- Atomicity(原子性/不可分割性):交易內的所有操作要麼全部完成,要麼全部不執行(All or Nothing)。
- Consistency(一致性):交易執行前後,資料庫都必須處於合法的狀態,滿足所有完整性限制(Integrity Constraints)。
- Isolation(隔離性/獨立性):多個交易並行執行時,彼此的操作互不干擾,各交易彷彿獨立執行一般。
- Durability(耐久性/持久性):交易一旦確認提交(Commit),其對資料所做的修改就會永久儲存,即使系統當機亦不遺失。
解題方法
本題屬於標準的專業英文縮寫檢驗題。解題切入點在於精確還原「A-C-I-D」四個英文字母所代表的資料庫專有名詞:
- A 代表 Atomicity(原子性),並非 Automation(自動化)。
- C 代表 Consistency(一致性)。
- I 代表 Isolation(隔離性)。
- D 代表 Durability(耐久性)。
題目詢問「何者不是」,比對後可立即確認選項 (A) 的「Automation」並非 ACID 的組成原則。
選項分析
- (A) Automation(錯誤,為本題應選答案): Automation 中文為「自動化」。
第 21 題2 分
小明到電腦商場購買電腦,他看到以下的電腦規格:
- Intel Core i9-7900X 8 Core 3.3 GHz
- 13 MB L3 cache
- 32 GB DDR4 2800MHz
- NVIDIA GeForce GT 8 GB GDDR5
- 1 TB SATA3 HDD
- 500 GB SATA3 SSD
請問下列敘述何者錯誤?
核心觀念
本題主要測驗電腦硬體規格的判讀能力,以及記憶體與儲存裝置的分類與階層架構:
- 揮發性記憶體(Volatile Memory):電源中斷(斷電)後,儲存的資料即會消失。常見範例包含暫存器(Register)、快取記憶體(SRAM,如 L1/L2/L3 Cache)、系統主記憶體(DRAM,如 DDR4)以及獨立顯示卡上的視訊記憶體(VRAM,如 GDDR5)。
- 非揮發性記憶體/儲存媒體(Non-volatile Memory / Storage):斷電後資料仍能完整保存。廣義的輔助儲存裝置皆屬此類,包含機械硬碟(HDD)、固態硬碟(SSD,基於快閃記憶體 Flash Memory)、ROM 等。
- 記憶體階層(Memory Hierarchy)與存取速度:
- 顯示卡規格判讀:具有獨立 GPU 晶片與獨立配置記憶體(如 GDDR5)者,屬於「獨立顯示卡(Discrete GPU)」。
解題方法
檢視題目所列出的各項規格清單,並依屬性進行歸類分析:
- 13 MB L3 cache:SRAM,屬於極高速的揮發性快取記憶體。
- 32 GB DDR4 2800MHz:系統主記憶體(DRAM),屬於揮發性記憶體。
- NVIDIA GeForce GT 8 GB GDDR5:配備 8 GB 獨立視訊記憶體(VRAM)的獨立顯示卡,其 GDDR5 亦屬於揮發性記憶體。
- 1 TB SATA3 HDD:機械硬碟(磁性儲存),屬於非揮發性儲存裝置。
- 500 GB SATA3 SSD:固態硬碟(快閃記憶體),屬於非揮發性儲存裝置。
選項分析
- (A) 正確: 這台電腦的揮發性記憶體主要包含「系統主記憶體()」與「顯示卡視訊記憶體()」,合計約為:
第 22 題2 分
小蘇要透過 email 系統傳送信件給相關朋友,他寄信的方式與對象如下:
To(收件者):小瑛 Cc(副本):小鍾;小華 Bcc(密件副本):小明;小國
請問下列敘述何者正確?
核心觀念
本題測驗電子郵件(E-mail)系統中收件者欄位的屬性與**名單可見度(Visibility)**規範(依據網際網路郵件格式標準 RFC 5322):
- To(收件者):信件的主要接收對象。其名單對所有收件人(包含 To、Cc、Bcc)皆公開可見。
- Cc(Carbon Copy,副本):信件的參考或副知對象。其名單對所有收件人(包含 To、Cc、Bcc)皆公開可見。
- Bcc(Blind Carbon Copy,密件副本):信件的保密收件對象。
- 外部隱蔽性:To 與 Cc 的收件人無法得知有任何 Bcc 收件人的存在。
- 內部互盲性:各個 Bcc 收件人只能看見自己的名字(或看不到任何 Bcc 標頭),無法看見其他 Bcc 收件人。但 Bcc 收件人可以看見 To 與 Cc 的完整名單。
解題方法
將本題題目設定的角色分類,並依可見度規則建立資訊掌握對照表:
- To(收件者):小瑛
- Cc(副本):小鍾、小華
- Bcc(密件副本):小明、小國
各收件人開啟信件時所能看到的收件名單如下:
- 小瑛(To)、小鍾(Cc)、小華(Cc):只能看見「小瑛、小鍾、小華」。
- 小明(Bcc):能看見「小瑛、小鍾、小華」以及「自己(小明)」,看不到小國。
第 23 題2 分
根據以下的真值表可以輸出 值,請問哪一個是正確的布林代數運算式?
(此題原卷文字擷取不全,請參考原卷。)
核心觀念
本題考布林函數與真值表的對應。符號「」表示 OR(或),相乘表示 AND(且),上橫線表示 NOT(反相)。判斷公式是否正確,必須在每一組輸入下都得到真值表中的 。
解題方法
依圖中真值表,輸出依序為:
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 0 |
觀察可知, 時輸出皆為 ; 時,輸出等於 與 的 OR。因此圖中真值表對應的函數是:
例如輸入 時,公式輸出 ;輸入 時,公式輸出 ,與表格一致。
選項分析
第 24 題2 分
針對記憶體的描述,下列何者錯誤?
核心觀念
本題測驗電腦硬體架構中的**「記憶體階層架構(Memory Hierarchy)」**及主記憶體與輔助記憶體的特性比較:
- 記憶體階層架構:由上至下依序為「暫存器(Register) 快取記憶體(Cache) 主記憶體(Main Memory / RAM) 輔助記憶體(Secondary Storage / SSD、HDD) 離線儲存設備(磁帶、光碟等)」。
- 速度與單位成本:越靠近 CPU(越上層),存取速度越快,每單位儲存成本(Cost per bit)越高。
- 容量:越遠離 CPU(越下層),容量通常越大,每單位儲存成本越便宜。
- 揮發性(Volatility):
- 揮發性記憶體(Volatile Memory):如 RAM(SRAM、DRAM),斷電後資料隨即消失,必須在通電運作時方能維持暫存資料。
- 非揮發性記憶體(Non-volatile Memory):如 ROM、輔助記憶體(SSD、HDD、隨身碟),電源關閉後資料仍可永久保存。
解題方法
本題要求選出錯誤的敘述。解題切入點在於利用記憶體階層的兩大黃金定律進行比對:
- 成本與速度成正比:速度越快的記憶體,製造技術與材質要求越高,故單位容量價格越貴。
- 功能與定位分工:主記憶體(RAM)追求速度以配合 CPU 運作,因此容量較小且具揮發性;輔助記憶體追求大容量與持久保存,因此速度較慢但單位成本低廉。
選項分析
- (A) 輔助記憶體(Secondary storage)的容量通常比 RAM 大:正確。
第 25 題2 分
假設一台電腦的 CPU 具有 之規格,若此電腦之 Move 指令需要 5 個時脈週期(clock cycle),則執行此一指令大約需要多少時間?
核心觀念
本題評量計算機組織與結構中「CPU 時脈頻率與指令執行時間之關聯」,主要涵蓋以下定義與公式:
- 時脈頻率(Clock Frequency, )與時脈週期(Clock Cycle Time, ): 兩者互為倒數關係:
- 指令執行時間(Instruction Execution Time, ): 執行單一指令所需的時間等於該指令耗費的時脈週期數(Clock Cycles)乘以每個時脈週期的時間:
- 單位換算:
- 頻率單位:
- 時間單位:(奈秒)
解題方法
步驟一:求出單一時脈週期所需時間() 已知 CPU 時脈規格 :
步驟二:計算執行 Move 指令所需的總時間() Move 指令需要 5 個時脈週期,因此總執行時間為:
選項分析
第 26 題2 分
下列二進位數值 之 1 的補數(1’s complement)為何?
核心觀念
本題測驗電腦數系中「二進位負數表示法」之 1 的補數(1’s complement) 的求法。
- 1 的補數(1’s complement)定義:將二進位數值的每一個位元(Bit)直接反轉(NOT 運算),即「 變 、 變 」。
- 2 的補數(2’s complement)對比:為「1 的補數加 」,即「逐位反轉後在最低有效位(LSB)加 」。兩者為國考常考觀念,切勿混淆。
解題方法
題目給定 8 位元二進位數值 ,求其 1 的補數,只需將各個位元逐一進行「位元反轉」:
推導結果為 。
第 27 題2 分
作業系統中兩個執行程序(process)因為互搶資源、互不相讓,造成兩個程序都無法完成工作的現象稱之為:
核心觀念
本題測驗作業系統(Operating System)中多行程(Process)併發執行時的資源競爭與同步問題——死結(Deadlock)。
- 死結定義:在多工環境下,一組行程中的每一個行程都佔有某些資源,同時又在等待該組中其他行程所佔有的資源,導致所有相關行程皆陷入無限期等待、無法繼續向前推進的僵局。
- 延伸觀念(死結發生的四個必要條件):
- 互斥(Mutual Exclusion):資源同一時間只能被一個行程使用。
- 持有並等待(Hold and Wait):行程持有至少一項資源,且同時等待其他行程持有的資源。
- 不可搶奪(No Preemption):資源不能被強制剝奪,只能由持有者自行釋放。
- 循環等待(Circular Wait):存在一組行程鏈,行程之間形成封閉的等待環(例如 等 、 等 )。
解題方法
解題關鍵在於抓取題幹中的核心特徵描述:
- 「兩個執行程序(process)」:指多個行程併發運行。
- 「互搶資源、互不相讓」:行程各自佔有部分資源,又各自要求對方手中的資源(符合「持有並等待」與「循環等待」)。
- 「造成兩個程序都無法完成工作」:系統陷入停滯,任何一方都無法解除等待狀態。
綜合上述特徵,此現象完全符合作業系統理論中對 Deadlock(死結) 的標準定義。
選項分析
- (A) Deadlock(死結):【正確】。兩個或多個行程因相互競爭資源且彼此循環等待,在沒有外力介入介入下皆無法結束工作,符合題意。
- (B) Spooling(假脫機/循序周邊操作同時進行):【錯誤】。
第 28 題2 分
下列哪一個數值與其他三個數值不同(括號右下角數字表示進位系統)?
核心觀念
本題評量數字系統與進位制轉換(Number Base Conversion)。核心觀念包含:
- 加權值展開法(Positional Notation):任意 進位數值,其數值大小為各數位乘上基底 之對應次方總和: 小數點左側整數次方為 ;小數點右側小數次方為 。
- 二進位與 進位系統之快速對應:
- 八進位():每 1 位八進位數字對應 3 位二進位數字。
- 十六進位():每 1 位十六進位數字對應 4 位二進位數字。
解題方法
將所有選項化為相同的進位制進行比對。在國家考試中,有兩種標準解法:
方法一:統一轉換為「十進位」(最直觀、不易失誤)
分別將 (A)、(C)、(D) 的整數與小數透過權值展開轉換為十進位,再與 (B) 比對數值是否相等。
方法二:整數與小數「分離秒殺法」(考場最佳策略)
先比對整數部分,再比對小數部分:
- 整數部分:
- (A)
- (B)
- (C)
- (D)
四個選項之整數部分皆完全相等(均為 157),故勝負完全取決於小數部分。
- 小數部分:
- (A)
- (B)
- (C)
- (D)
因此選項 (C) 之數值與其他三個選項不同。
選項分析
- (A) :數值與其他選項相同。
- 整數部分:
- 小數部分:
- 換算為十進位為 。若轉為二進位,每位十六進位以 4 位二進位表示:
- 結果為 ,與 (B)、(D) 完全一致。
第 29 題2 分
下列資料儲存裝置的速度由高到低排列,何者正確?
核心觀念
本題測驗計算機組織與結構中的記憶體階層(Memory Hierarchy)與儲存裝置存取速度比較。
現代電腦架構為了在「存取速度(Speed)」、「單位成本(Cost)」與「儲存容量(Capacity)」之間取得最佳平衡,設計了階層式儲存架構。其基本通則是:
- 越接近 CPU 運算核心的儲存元件:存取速度越快、容量越小、單位成本最高。
- 越遠離 CPU 運算核心的儲存元件:存取速度越慢、容量越大、單位成本最低。
標準記憶體階層的存取速度由快至慢依序為:
解題方法
題目要求選出速度**由高到低(由快至慢)**排列的正確組合。分析題目中提及的三種裝置特性與工作層級:
- 暫存器(Register):
- 位於 CPU 核心晶片內部(直接與算術邏輯單元 ALU 及控制單元 CU 相連)。
- 與 CPU 工作時脈同頻運作,存取時間通常小於 (小於或等於 1 個 Clock Cycle),為整部電腦系統中速度最快的儲存元件。
- 快取記憶體(Cache memory):
- 通常採用靜態隨機存取記憶體(SRAM)技術製作,分為 L1、L2、L3 快取,多數已整合於 CPU 晶片中。
- 用於快取主記憶體中經常使用的指令與資料,以縮減 CPU 與主記憶體之間的速度落差。存取時間約數個至數十個時脈週期(約 ),速度僅次於暫存器。
- 唯讀記憶體(Read-only Memory, ROM):
第 30 題2 分
下列哪一個不是作業系統(Operating System)主要提供的功能?
核心觀念
本題考查「作業系統(Operating System, OS)的核心功能與角色定位」以及「作業系統與硬體(CPU)的職責劃分」。
- 作業系統的角色與核心功能: 作業系統是介於硬體與應用程式之間的系統軟體,主要扮演「資源管理者(Resource Allocator)」與「控制程式(Control Program)」,其五大核心管理功能包括:
- 處理程序管理(Process Management):負責 CPU 排程、處理程序的建立、終止與同步。
- 記憶體管理(Memory Management):負責主記憶體的分配、回收、位址重定位與虛擬記憶體管理。
- I/O 裝置管理(I/O Device Management):透過裝置驅動程式(Device Driver)、中斷處理、緩衝區(Buffer)管理各類周邊設備。
- 檔案系統與儲存管理(File and Storage Management):負責目錄結構、檔案存取權限與次級儲存裝置的空間配置。
- 保護、安全與錯誤處理(Protection, Security, and Error Handling):監控軟硬體狀態並處理異常事件。
- 硬體 CPU 的核心功能: 在馮紐曼架構下,程式指令的「擷取(Fetch)」與「解碼/解譯(Decode)」由 CPU 內部的**控制單元(Control Unit, CU)完成;而指令的算術與邏輯「計算/執行(Execute)」則由 CPU 內部的算術邏輯單元(Arithmetic Logic Unit, ALU)**完成。
解題方法
本題的解題切入點為區分「軟體層級的資源管理」與「硬體層級的指令執行」:
- 作業系統的職責是管理資源與協調整體運作,例如分配多少記憶體、何時讓程式使用 CPU、如何讀寫外設等。
- 真正逐條讀取機器指令、進行解譯並執行數值運算的主體是硬體中央處理單元(CPU),而非作業系統。透過此界線即可快速找出非屬作業系統功能的選項。
第 31 題2 分
請問下列二元樹其前序走訪(Pre-order)何者正確?
(題目附二元樹圖,文字層擷取結果如下:)
B
Q R
A V S
N M P
核心觀念
前序走訪(Pre-order)的順序是「根節點、左子樹、右子樹」,也就是先訪問目前節點,再依序走訪它的左、右子樹。
解題方法
依圖由根節點開始:
- 根節點是 B,先訪問 B。
- 走訪 B 的左子樹:先訪問 Q;Q 的左子節點是 A,接著走訪 Q 的右子節點 V,再訪問 V 下方的 N。
- 完成 B 的左子樹後,走訪 B 的右子樹:先訪問 R,再走訪 R 下方的 S,最後依左、右順序訪問 S 的子節點 M、P。
因此前序走訪結果為:
選項分析
第 32 題2 分
某台機器共有 4 個指令(A、B、C、D),其出現的機率分別如下:A:、B:、C:、D:。下列何者為其最佳之霍夫曼編碼(Huffman Code)?
核心觀念
- 霍夫曼編碼(Huffman Coding):
- 一種基於貪婪演算法(Greedy Algorithm)所構建的最佳「前置碼」(Prefix Code / Prefix-free Code),常用於資料的無失真壓縮。
- 核心原則為「出現機率越高者,分配越短的編碼;出現機率越低者,分配越長的編碼」,藉此使整體加權路徑長度(Weighted Path Length, WPL)最小化。
- 平均編碼長度(Average Code Length): 其中 為指令出現機率, 為該指令之編碼位元長度(以 bits 為單位)。
- 嚴格二元樹性質(Strict / Full Binary Tree): 最佳霍夫曼編碼樹必為嚴格二元樹,即所有非葉節點(內部節點)皆恰有兩個子節點,不應存在單一分支或未分配的冗餘代碼空間。
解題方法
建立霍夫曼編碼樹採用「由下而上(Bottom-Up)」的合併步驟:
-
步驟一:依機率由小到大排序符號 C()、D()、B()、A()。
-
步驟二:反覆選取最小的兩個節點進行合併
- 取出權重最小的兩節點 C()與 D(),合併為內部節點 ,其權重為: 目前待處理節點為:。
- 再取出目前權重最小的兩節點 B()與 (),合併為內部節點 ,其權重為: 目前待處理節點為:。
- 取出最後兩個節點 A()與 (),合併為根節點(Root),權重為:
-
步驟三:指派分支位元(依慣例左分支指派 0、右分支指派 1)
-
根節點向下:左分支至 A(碼為
0),右分支至 (前綴為1)。 -
向下:左分支至 B(碼為
10),右分支至 (前綴為11)。 -
向下:左分支至 C(碼為
110),右分支至 D(碼為111)。 -
步驟四:統計各指令編碼與長度
-
A:
0(長度 1) -
B:
10(長度 2) -
C:
110(長度 3) -
D:
111(長度 3)
第 33 題2 分
給定下列一個 C 程式片段,請問此程式執行後輸出為何?
int x = 5; //全域變數
void main() { int x = 3;
m();
printf("%d", x);
}
void m() { x = 8;
n();
}
void n() { printf("%d", x); }
核心觀念
本題測驗 C 語言的變數有效範圍(Scope)、變數遮蔽效應(Variable Shadowing / Hiding)以及函式呼叫追蹤:
- 全域變數(Global Variable)與區域變數(Local Variable):
- 宣告於函式外部的變數為全域變數,生命週期伴隨整個程式執行期間,未被遮蔽時所有函式皆可存取。
- 宣告於函式內部的變數為區域變數,僅在該函式區塊內有效。
- 遮蔽效應(Shadowing):當區域變數與全域變數同名時,在該函式內部「區域變數優先」,全域變數會被暫時隱蔽。
- 靜態範疇(Static Scope / Lexical Scope):C 語言採用靜態範疇規則。當函式內部找不到某變數的宣告時,會依原始碼語法結構向外層(全域範疇)尋找,絕不會存取呼叫者(Caller)的區域變數。
解題方法
依據程式執行流程(由 main 開始),逐步追蹤各變數在記憶體中的狀態:
- 初始狀態:
int x = 5;配置全域變數 ,其值為 。
- 進入
main函式:
int x = 3;宣告了屬於main的同名區域變數 ,其值為 。此時在main內部,全域變數 被遮蔽。- 呼叫函式
m。
- 進入
m函式:
- 函式
m內部並未重新宣告變數 ,依靜態範疇規則,此處的 指向全域變數。 - 執行
x = 8;,將全域變數 的值由 修改為 (main內部的區域變數 完全不受影響)。 - 呼叫函式
n。
- 進入
n函式:
- 函式
n內部亦無宣告區域變數 ,故參照全域變數 。
第 34 題2 分
下列 SQL 語法目的是對一個資料表 Book 作查詢,但是該 SQL 語法有錯誤,請問該語法缺少哪一個子句?
SELECT title, author, year WHERE year > 2010;
核心觀念
本題測驗關聯式資料庫查詢語言 SQL(Structured Query Language)之基本 SELECT 查詢陳述句結構與必要子句。
在標準 SQL 語法中,若要從關聯式資料庫的實體資料表檢索資料,最基本的查詢結構必須由 SELECT 與 FROM 兩大子句構成:
SELECT:指定要檢索的欄位清單(Attributes / Columns)。FROM:指定資料來源的資料表名稱(Tables / Views)。
標準 SQL 查詢陳述句的語法書寫順序如下(中括號 [] 表示非必要之選用子句):
SELECT 欄位清單
FROM 資料表名稱
[WHERE 篩選條件]
[GROUP BY 群組欄位]
[HAVING 群組聚合篩選條件]
[ORDER BY 排序欄位 [ASC | DESC]]
解題方法
- 檢視題目給定的 SQL 語法:
SELECT title, author, year WHERE year > 2010;
- 分析語法缺失:
- 語法開頭為
SELECT title, author, year,定義了要擷取的欄位。 - 語法結尾為
WHERE year > 2010,定義了資料檢索的過濾條件。 - 在
SELECT與WHERE之間,缺少了指定「資料來源表格」的關鍵子句。
- 對照題意補齊語法:
題目指明「目的是對一個資料表 Book 作查詢」,因此必須加入
FROM Book來指定資料來源。修正後的合法語法為:
SELECT title, author, year FROM Book WHERE year > 2010;
第 35 題2 分
給定一個資料關聯 以及其屬性間的相依性(dependences)如下:
請問其最高符合下列哪一種正規化形式?
核心觀念
本題評量關聯式資料庫(Relational Database)中「正規化(Normalization)」的判定層級,主要涉及以下核心定義:
- 候選鍵(Candidate Key)與屬性分類:
- 超鍵(Super Key):能唯一識別關聯中每一筆元組(Tuple)的屬性集合。
- 候選鍵(Candidate Key):最小的超鍵(不可再縮減)。
- 主屬性(Prime Attribute):包含在任一候選鍵中的屬性。
- 非主屬性(Non-prime Attribute):不包含在任何候選鍵中的屬性。
- 正規化形式層級定義:
- 第一正規化(1NF):關聯中的所有屬性值皆為不可再分割的「單一值/原子值(Atomic Value)」。
- 第二正規化(2NF):符合 1NF,且消除部分功能相依(Partial Functional Dependency)。即所有「非主屬性」完全相依(Fully Functionally Dependent)於候選鍵,不可相依於候選鍵的真子集。
- 第三正規化(3NF):符合 2NF,且消除遞移功能相依(Transitive Functional Dependency)。即不可存在「非主屬性相依於另一個非主屬性」的情況。嚴格定義為:對所有非顯然的功能相依 , 必須是超鍵(Super Key),或 必須是主屬性(Prime Attribute)。
- Boyce-Codd 正規化(BCNF):符合 3NF,且對所有非顯然的功能相依 , 必須為超鍵(Super Key)。
解題方法
正規化判定的標準步驟為:「求候選鍵 劃分主/非主屬性 循序檢驗 1NF、2NF、3NF、BCNF」。
步驟一:求出關聯 的候選鍵與屬性分類
給定功能相依集 :
- 檢視屬性出現位置: 與 僅出現在決定方(左側),從未出現在被決定方(右側),因此兩者必然屬於候選鍵的一部分。
- 計算閉包(Attribute Closure):
- 由閉包可涵蓋 的全體屬性可知,本關聯唯一的候選鍵(Candidate Key)為:
- 屬性分類:
- 主屬性(Prime Attributes):
- 非主屬性(Non-prime Attributes):
步驟二:檢驗第一正規化(1NF)
關聯式資料庫的預設屬性皆為單一值(純量值),題目未提及多值屬性或重複群(Repeating Groups),故符合 1NF。
步驟三:檢驗第二正規化(2NF)
- 候選鍵為複合鍵 ,其真子集僅有 與 。
- 檢視功能相依集:
第 36 題2 分
根據以下的網路組織圖,為了進一步檢測防火牆(Firewall)無法識別的攻擊意圖,資訊安全人員建議應該裝置一個網路入侵檢測系統(IDS, network intrusion detection system),請問此 IDS 應該置於哪兩者之間?
(題目附網路組織圖。)
核心觀念
網路入侵檢測系統(IDS)會監控網路流量,依據已知攻擊特徵或異常行為發出警示。防火牆依設定的規則允許或阻擋流量;IDS 的作用是補足防火牆對攻擊意圖辨識的不足。
依題目圖示,網路順序為「Internet → Web Server → Firewall → 組織內部網路」。要檢測經防火牆通過、進入內部網路的流量,IDS 應放在防火牆的內側,也就是防火牆與組織內部網路之間。
解題方法
先依圖判讀網路設備與區域的排列,再找出能觀察「防火牆放行、即將進入內部網路」流量的位置。IDS 設在防火牆內側,可檢查防火牆未能識別或未阻擋的攻擊流量,符合題目所述的補強目的。
選項分析
- (A) Internet 與 Firewall 之間:錯誤。 此處屬於防火牆外側,IDS 會看到尚未經防火牆篩選的流量,包括遭防火牆阻擋的連線。
第 37 題2 分
請問網路之網域名稱伺服器(DNS; domain name server)的目的為何?
核心觀念
本題旨在測驗電腦網路中**網域名稱系統(Domain Name System, DNS)**的基本定義與核心功能:
- 網域名稱與 IP 位址的對照關係:
- 網際網路底層通訊與路由器定址,皆依賴數值型的 IP 位址(如 IPv4 的 32 位元或 IPv6 的 128 位元數值)。
- 對人類使用者而言,數值型 IP 位址極難記憶,人類習慣使用具語意、易閱讀的網域名稱(Domain Name,例如
www.gov.tw)。
- DNS 的角色:
- DNS 運作於 TCP/IP 模型的應用層(預設使用 UDP/TCP port 53),本質上是網際網路的分散式階層資料庫,主要功能猶如網路世界的「電話簿」,負責執行「名稱解析」(Name Resolution):
- 正向解析(Forward Lookup):將人類可讀的網域名稱轉換為機器辨識的 IP 位址。
- 反向解析(Reverse Lookup):將 IP 位址反查為對應的網域名稱。
解題方法
解題時應採取「功能對應與伺服器類型排除法」:
- 掌握名詞核心本質:看到「DNS」,直接聯想關鍵字「網域名稱(Domain Name)與 IP 位址(IP Address)的對應/解析」。
- 審視選項描述之主體:
- 選項 (A) 描述的是提供網頁內容傳輸的伺服器。
- 選項 (B) 描述的是提供隱私與匿名代理的伺服器。
- 選項 (C) 描述的是儲存網頁靜態內容以加速存取的快取伺服器。
- 選項 (D) 精準描述「可讀性網域名稱與實際 IP 位址的對應」,與 DNS 的定義完全吻合。
選項分析
- (A) 錯誤: 為特定網域名稱提供網頁連線、傳輸 HTML 等內容的服務,屬於**網頁伺服器(Web Server,如 Apache、Nginx、IIS)**與 HTTP/HTTPS 協
第 38 題2 分
根據 ISO 所定義的七層網路架構(OSI networking stack),下列哪一層是主要處理路由(routing)的問題?
核心觀念
本題測驗國際標準化組織(ISO)所提出的 OSI 七層開放式系統互連參考模型(OSI 7-Layer Reference Model) 中各層的核心職責。
OSI 模型由下至上共分為七層,各層分工明確:
- 實體層(Physical Layer):負責位元流(Bit Stream)的實體傳輸(電氣、機械特性)。
- 資料連結層(Data-Link Layer):負責相鄰節點間(Node-to-Node)傳輸、實體定址(MAC 位址)、訊框化(Framing)與錯誤偵測。
- 網路層(Network Layer):負責主機對主機(Host-to-Host)的端對端傳送、邏輯定址(如 IP 位址)、子網路切割,以及最核心的**路由選擇(Routing)**與封包轉送(Forwarding)。
- 傳輸層(Transport Layer):負責行程對行程(Process-to-Process)的通訊服務、連接埠定址(Port)、分段與重組、可靠性控制(如 TCP 的滑動視窗、重傳機制)。
- 會議層(Session Layer):負責管理通訊雙方連線(Session)的建立、維持、終止與同步檢查點(Checkpoints)。
- 表現層(Presentation Layer):負責資料的語法表示、格式轉換、資料加解密(Encryption/Decryption)與壓縮(Compression)。
- 應用層(Application Layer):提供使用者直接操作的網路應用介面與服務(如 HTTP、FTP、DNS 等協定)。
解題方法
題目詢問「主要處理**路由(routing)**的問題」屬於哪一層:
- 路由(Routing)的定義:在多個相連的異質網路(Internetwork)中,依據邏輯位址(如 IP 位址),計算並決定資料封包從來源端通往目的端之最佳傳輸路徑的機制。
- 功能對應:在 OSI 體系結構中,路徑選擇(Path Determination)與封包轉送(Packet Forwarding)完全由**第三層:網路層(Network Layer)**掌管,其對應的代表性網路設備為「路由器(Router)」。因此,正確答案為網路層。
選項分析
第 39 題2 分
在公開金鑰密碼系統(Public key cryptography)中,要讓資料在網路上傳送的過程中是以亂碼呈現,其他人無法竊看到訊息內容,而且還要讓傳送者無法否認曾經傳送過此訊息,需要下列何種金鑰協助才能達成?
核心觀念
本題測驗「公開金鑰密碼系統」(Public Key Cryptography,又稱非對稱式密碼系統)之金鑰配對原理與資訊安全屬性應用:
- 金鑰配對與特性: 每一位通訊實體皆擁有一對數學相關聯的金鑰:
- 公開金鑰(Public Key,公鑰):公開發布,任何人皆可取得。
- 私密金鑰(Private Key,私鑰):由本人秘密保管,絕對不可洩漏。
- 資訊安全屬性與金鑰用途對應:
- 機密性(Confidentiality,保密性):防止非授權第三方竊看訊息內容。必須使用**「接收者的公鑰」**加密,因為全世界只有持有對應私鑰的接收者才能將其解密。
- 不可否認性(Non-repudiation)與身分鑑別(Authentication):防止傳送者事後否認發送過訊息(即數位簽章之核心)。必須使用**「傳送者的私鑰」**加密(簽章),因為只有傳送者持有該私鑰,且任何人皆可用傳送者的公鑰進行驗證,一旦驗證成功即可確定訊息出自該傳送者。
解題方法
題目同時提出兩項資訊安全需求,解題切入點為將需求分拆並對應至正確的金鑰角色:
- 需求一:「在網路上以亂碼呈現,其他人無法竊看到訊息內容」
- 屬性:機密性。
- 做法:使用**「接收者的公鑰」**加密。
- 推導:傳送者在送出資料前,以接收者公開的公鑰加密。訊息在網路上傳輸時呈密文亂碼狀態,唯有擁有對應私鑰的接收者本人能夠解密,第三方即使截獲封包亦無法窺得明文。
- 需求二:「讓傳送者無法否認曾經傳送過此訊息」
- 屬性:不可否認性(數位簽章機制)。
- 做法:使用**「傳送者的私鑰」**加密(簽署)。
第 40 題2 分
請問標準的網路設備媒體存取控制位址(MAC address)共有幾個位元?
核心觀念
本題考查網路通訊協定與架構中「實體位址(MAC Address)」的定義與規格。
- MAC 位址(Media Access Control Address,媒體存取控制位址):又稱為實體位址(Physical Address)或硬體位址,運作於 OSI 模型第二層(資料鏈結層,Data Link Layer)。
- 規格標準:現行標準乙太網路(Ethernet)設備普遍採用 IEEE 規範的 MAC-48(或稱 EUI-48),長度為 48 位元(bits),即 6 個位元組(Bytes)。
- 組成架構:
- 前 24 位元(前 3 個位元組):稱為 OUI(Organizationally Unique Identifier,機構唯一識別碼),由 IEEE 統一核發給網路設備製造商。
- 後 24 位元(後 3 個位元組):由製造商自行規劃指派的設備序號(NIC 延伸碼)。
- 表示方式:通常以 12 個十六進位數字(Hexadecimal)表示,每 2 位一組,以冒號或連字號隔開(例如:
00:1A:2B:3C:4D:5E或00-1A-2B-3C-4D-5E)。
解題方法
題目詢問標準網路設備之 MAC 位址包含「幾個位元」:
- 標準 MAC 位址占用 6 個位元組(Bytes)。
- ,進行單位換算:
- 亦可由十六進位表示法反推:MAC 位址由 12 個十六進位數組成,每個十六進位符號代表 4 個位元():