112 國安局特考五等 資訊組 計算機大意 考古題詳解
第 1 題2 分
是利用八位元二的補數表示法所表示的整數,其對應的十進位數值為何?
核心觀念
八位元二的補數可表示的整數範圍為 至 。最左側位元是符號位:最高位為 表示非負數,為 表示負數。
解題方法
的最高位是 ,因此它代表負數。求其絕對值,可將各位元反相後加 :
將 轉換為十進位:
因此原數為 。
選項分析
第 2 題2 分
假設我們以八位元二的補數表示法來表示整數,則下列何者的加總結果會超出此表示法的儲存範圍?
核心觀念
八位元二補數可表示的整數範圍為 至 。最高位元(最左側位元)是符號位: 表示非負數, 表示負數。
判斷二補數加法是否溢位,可看兩個數的符號與加總結果:
- 兩個同號數相加,結果卻變成異號:溢位。
- 兩個異號數相加:不會發生溢位。
解題方法
逐一判斷運算元的正負,再檢查加總結果的符號。
(A)
的符號位是 ,為正數; 的符號位是 ,為負數。兩數異號,相加不會溢位。
(B)
為負數, 為正數。兩數異號,相加不會溢位。
(C)
兩個數的符號位都是 ,皆為正數。換算十進位:
因此:
第 3 題2 分
大五碼(Big 5)是繁體中文常見的編碼標準,如果利用大五碼儲存「資訊安全」四個字,則需要使用多少個位元組?
核心觀念
大五碼(Big 5)是繁體中文常用的雙位元組字元編碼。一般情況下,一個中文字以 個位元組儲存;英文字母、數字等 ASCII 字元則通常以 個位元組儲存。
解題方法
「資訊安全」共有「資、訊、安、全」四個中文字。每個中文字以大五碼編碼需要 個位元組,因此:
選項分析
第 4 題2 分
與 皆為一位元二進位的數,下列何者布林函式可用於判斷 與 是否相同(當 時輸出 ,反之則輸出 )?
核心觀念
本題測驗「布林代數(Boolean Algebra)」與「基本邏輯閘(Logic Gates)」的運算式與真值表:
- 互斥或閘(XOR Gate):
- 當兩輸入值相異時(),輸出為 。
- 當兩輸入值相同時(),輸出為 。
- 在數位邏輯電路中,XOR 常用於構成「位元比較器(Comparator)」,以偵測兩輸入位元是否有差異。
- 反互斥或閘/同位閘(XNOR Gate):
- 當兩輸入值相同時(),輸出為 。
- 當兩輸入值相異時(),輸出為 。
解題方法
1. 建立目標真值表(Truth Table)
依題幹括號內指定之輸出條件「當 時輸出 ,反之則輸出 」:
| 關係 | 期望輸出 | ||
|---|---|---|---|
| 0 | 0 | 1 | |
| 0 | 1 | 0 | |
| 1 | 0 | 0 | |
| 1 | 1 | 1 |
由積項之和(Sum of Products, SOP)展開,滿足 的最小項為 與 ,邏輯式為:
2. 官方答案觀點與命題背景
官方公告答案定為 (B)。其命題依據為:
- 在數位系統硬體設計中,基本「一位元比較器(1-bit Comparator)」的核心運算邏輯是利用 XOR 閘()執行減法差異比對。
- 命題委員著眼於 XOR 閘作為「判斷兩者是否一致之比較核心元件」,因而選定 (B)。
第 5 題2 分
下列何者不是作業系統的功能?
核心觀念
本題考作業系統(Operating System, OS)的基本功能。作業系統是使用者、應用程式與電腦硬體之間的管理者,主要負責提供操作介面、管理硬體資源,以及支援程序執行與彼此協調。編譯程式則屬於系統軟體中的語言處理工具,不是作業系統的基本功能。
解題方法
先辨認各選項描述的工作性質:若是管理硬體資源、提供操作介面,或支援程序間協作,屬於作業系統的職責;若是把程式從一種語言轉換成另一種語言,則屬於編譯器的工作。
選項分析
- (A) 提供介面讓使用者和硬體互動:正確。 作業系統提供使用者介面,例如命令列或圖形介面,並透過系統呼叫等機制,讓應用程式能使用硬體服務。
第 6 題2 分
最短工作優先(Shortest Job First, SJF)排班法是一種常見的 CPU 排班演算法。假設新進三個行程依序為 、、,其工作時間依序為 、、,利用最短工作優先排班法的等待時間總和為何?
核心觀念
最短工作優先(SJF)會先安排工作時間較短的行程執行。本題依序有 ,工作時間分別為 。假設三個行程同時進入就緒佇列,且採非搶先式 SJF,便依工作時間由短至長排列。
等待時間是行程開始執行前,在就緒佇列中等待的時間。
解題方法
依工作時間排序:
- 最先執行,等待時間為 。
- 在 執行完後才開始,等待時間為 。
- 在 、 執行完後才開始,等待時間為 。
因此等待時間總和為:
第 7 題2 分
下列關於陣列(array)與連結串列(linked list)的敘述何者正確?
核心觀念
本題考查陣列與連結串列的儲存方式,以及資料存取方式。
- 陣列(array)通常配置在一段連續的記憶體空間,可依索引直接定位元素,因此屬於直接存取資料結構。
- 連結串列(linked list)由節點組成,節點透過指標連接,不要求各節點位於連續記憶體。要找到第 個節點,通常須從起點沿指標逐一走訪,屬於循序存取。
解題方法
判斷時抓住兩組對應即可:
| 資料結構 | 記憶體配置 | 存取方式 |
|---|---|---|
| 陣列 | 通常連續 | 依索引直接存取 |
| 連結串列 | 不必連續 | 沿指標循序存取 |
第 8 題2 分
下列關於堆積(Heap)的敘述何者錯誤?
核心觀念
堆積(Heap)是一種符合特定形狀與順序條件的二元樹,常見的二元堆積須同時滿足:
- 形狀性質:必須是完全二元樹。除最後一層外,各層皆填滿;最後一層的節點由左至右排列。
- 堆積順序性質:最大堆積中,父節點的值不小於子節點;最小堆積中,父節點的值不大於子節點。
完全二元樹可依層序存入陣列,常用於優先佇列與堆積排序。
解題方法
逐項比對選項與堆積的定義。關鍵在於區分「完美二元樹」和「完全二元樹」:堆積要求完全二元樹,並不要求每一層都填滿。只要找出把形狀條件說得過嚴的選項,即可判定錯誤敘述。
選項分析
(A) 堆積必須是一個完美二元樹(perfect or full binary tree)——錯誤。 堆積須為完全二元樹,不必是完美二元樹。完美二元樹要求所有內部節點都有兩個子節點,且所有葉節點位於同一層;完全二元樹則允許最後一層未填滿,只要求節點從左至右排列。例如只有根節點及其左子節點的二元樹,符合完全二元樹的形狀,但不是完美二元樹。
第 9 題2 分
在一個連通加權無向圖(Connected weighted undirected graph)中,關於最小生成樹(minimum spanning tree)的敘述何者錯誤?
核心觀念
生成樹是從連通無向圖中選取部分邊,使所有頂點彼此連通且不含環路的子圖。若圖有 個頂點,每棵生成樹恰有 條邊。
最小生成樹(minimum spanning tree, MST)是所有生成樹中,邊權值總和最小的一棵。只要原圖是有限的連通加權無向圖,就至少有一棵生成樹;在有限棵生成樹中,總權值最小者必定存在。若邊權值互不相同,MST 唯一。
解題方法
先依定義判斷哪些性質是生成樹或最小生成樹的必然條件,再檢查「不一定存在」是否符合題目已給的連通條件。連通圖保證存在生成樹,而有限個生成樹的權值總和必有最小值,因此 MST 必定存在。
選項分析
第 10 題2 分
如果鍵值相同之資料,在排序後相對位置與排序前相同時,則稱為穩定排序(stable sorting)法,下列何者不屬於穩定排序法?
核心觀念
穩定排序是指:鍵值相同的資料,排序後仍維持原本的相對先後順序。例如原始資料為 ,其中 先於 ;排序後若仍是 ,排序便是穩定的。
解題方法
判斷各排序法處理相同鍵值資料時,是否可能交換它們的相對位置。氣泡排序、插入排序與合併排序在常見的穩定實作中會保留相同鍵值的先後順序;堆積排序則可能因堆積調整時的交換而改變其相對位置,因此不穩定。
選項分析
- (A) 堆積排序法(Heap sort)— 正確答案。 堆積排序會將元素與堆頂交換,並在調整堆積時進行跨位置交換。即使兩筆資料鍵值相同,也可能因此改變原本的先後順序,故不屬於穩定排序。
第 11 題2 分
下列何種排序方法其最壞情況時間複雜度為 ?
核心觀念
本題考查排序演算法在最壞情況下的時間複雜度。 表示執行時間的漸進上界與 同階;對比較式排序而言,合併排序的最壞時間複雜度為 。
解題方法
逐一判斷各排序方法在最壞情況下需要多少次比較或資料移動:
-
選擇排序:每一輪都要在未排序部分尋找最小值,總比較次數約為 因此時間複雜度為 。
-
插入排序:若資料呈反向排列,每次插入都要將先前元素逐一向後移,總操作次數約為 因此最壞時間複雜度為 。
-
合併排序:每次將資料分成兩半,遞迴排序後再以線性時間合併。其遞迴式為 每層合併總成本為 ,而分割層數為 ,所以 此複雜度在最好、平均與最壞情況皆成立。
第 12 題2 分
下列 C 語言程式片段執行後,變數 的值為何?
int S=0;
for(int i=0;i<5;i++)
S=S+i*i;
核心觀念
本題考查 for 迴圈的執行次數,以及累加運算。迴圈從 開始,每次執行後令 加 ;只要 ,就執行一次 S=S+i*i。因此, 依序取 ,各自的平方加到 中。
解題方法
初始值為 ,逐次代入:
| 加入 的值 | 累加後的 | |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 1 | 1 |
| 2 | 4 | 5 |
| 3 | 9 | 14 |
| 4 | 16 | 30 |
當 增加到 時,條件 不成立,迴圈結束。因此:
第 13 題2 分
下列 C 語言程式片段印出的數值為何?
for(i = 2; i < 100; i++) {
flag = 1;
for(j = 2; j <= i/2; j++){
if(i % j == 0){
flag = 0;
break;
}
}
if(flag == 1) {
printf("%d\n", i);
}
}
核心觀念
本題考查質數的判斷,以及 for 迴圈、條件判斷和 break 的執行方式。
質數是大於 、且只有 和本身兩個正因數的整數。若整數 能被某個介於 與 之間的整數整除,表示 有其他因數,因此是合數。
解題方法
外層迴圈令 依序取 到 :
for(i = 2; i < 100; i++)
每次檢查一個 時,先設 flag = 1,表示目前尚未找到可整除 的數。內層迴圈依序檢查 到 :
for(j = 2; j <= i/2; j++)
若 i % j == 0,代表 可被 整除,程式便將 flag 設為 並以 break 離開內層迴圈。之後只有 flag 仍為 時才會印出 。
例如:
- :內層迴圈不執行,
flag維持 ,印出 。 - :沒有整數 能整除 ,印出 。
第 14 題2 分
下列程式是 C 語言的函式(function),呼叫 會得到多少?
int ff(int n)
{
if(n<=4)return n;
else return ff(n-3)+ff(n-2);
}
核心觀念
本題考遞迴函式的執行方式。函式 ff(n) 在 時直接回傳 ;當 時,回傳 ff(n-3) 與 ff(n-2) 兩次遞迴呼叫結果的總和。計算時須依照程式定義逐步展開,直到每個呼叫都符合停止條件。
解題方法
由 ff(10) 開始展開:
再依序計算:
第 15 題2 分
在關聯式資料庫中,外來鍵的作用是什麼?
核心觀念
外來鍵(Foreign Key)是資料表中的一個欄位或一組欄位,其值參照另一資料表的主鍵或候選鍵,用來建立資料表之間的關聯,並維持參照完整性。
例如,「訂單」資料表中的「顧客編號」可作為外來鍵,參照「顧客」資料表的「顧客編號」。如此可確認訂單所記錄的顧客存在於顧客資料表中。
解題方法
看到題目問「外來鍵的作用」,先辨別它與其他資料庫概念的功能:
- 主鍵(Primary Key):識別資料表中的每一列,確保鍵值唯一且不可為空。
- 外來鍵(Foreign Key):參照另一資料表的鍵值,建立表間關聯並維持參照完整性。
- 欄位屬性:由資料型態、限制條件等設定。
- 存取權限:由權限控管機制管理。
第 16 題2 分
資料探勘是從大量的資料中發現知識的過程。假設大賣場的主管想從交易資料庫中了解哪些商品常常一起被購買,可以利用下列哪種技術?
核心觀念
本題考查資料探勘中的「資料關聯分析」(data association analysis),常用來找出大量交易紀錄中經常同時出現的商品,例如「購買麵包的顧客也常購買牛奶」。這類分析常以關聯規則呈現,並可用支持度與信賴度衡量規則的普遍程度及關聯強度。
解題方法
題目要從大賣場交易資料中找出「哪些商品常常一起被購買」,關鍵是辨認商品之間的共同出現關係。每筆交易可視為一組商品,分析這些商品組合在不同交易中出現的頻率,即屬於資料關聯分析。
例如,規則「麵包 牛奶」的支持度,表示同時購買麵包與牛奶的交易占全部交易的比例;信賴度則表示在購買麵包的交易中,也購買牛奶的比例。
選項分析
第 17 題2 分
當我們指定一網域名稱時,下列何種伺服器會將它轉化成對應的 IP 位置?
核心觀念
本題考查網域名稱系統(DNS)的功能。網域名稱是方便人類記憶與輸入的文字名稱;網路上的主機則以 IP 位址識別。DNS 伺服器負責查詢網域名稱對應的 IP 位址,這個過程稱為「名稱解析」。
解題方法
看到題目問「將網域名稱轉化成對應的 IP 位置」,即可判斷是在問名稱解析。負責提供這項服務的是 DNS 伺服器,因此選項 (B) 正確。
選項分析
- (A) WEB 伺服器:錯誤。 WEB 伺服器負責提供網站內容,例如網頁與相關檔案;它不是負責查詢網域名稱所對應 IP 位址的伺服器。
- **(B) DNS 伺服器:正確。
第 18 題2 分
下列關於惡意軟體與電腦病毒的敘述,何者錯誤?
核心觀念
本題考查惡意軟體的種類與感染方式。辨別時要抓住兩個重點:惡意軟體如何傳播,以及它感染的對象或位置。
蠕蟲是可獨立執行並自我複製的程式;巨集病毒利用應用軟體中的巨集程式碼感染文件或其他檔案;開機型病毒則感染磁碟的開機區域,並在開機時載入記憶體。特洛伊木馬會偽裝成看似有用的程式,誘騙使用者執行。
解題方法
逐項比對「名稱」與「感染方式」。關鍵在於分清楚檔案型病毒與開機型病毒:
- 檔案型病毒:感染可執行檔等檔案,通常在受感染檔案執行時發作。
- 開機型病毒:感染磁碟的開機磁區,並藉由開機過程載入記憶體。
題目若把「第一個磁區」與「開機動作」連在一起,描述的是開機型病毒,而非檔案型病毒。
選項分析
第 19 題2 分
下列何者為印表機解析度的單位?
核心觀念
本題考印表機常見規格的單位。解析度表示印表機在一定長度內能呈現多少個墨點,常用 dpi 表示,英文是 dots per inch,意為「每英吋點數」。dpi 數值越高,通常代表可呈現的細節越多。
解題方法
辨認題目問的是「解析度」,即可對應到 dpi。其他選項分別代表傳輸速率、列印速度或記憶體技術,並非解析度單位。
選項分析
第 20 題2 分
對於多工的電腦作業系統,同時可以讓多個程序(process)在系統裡執行,但因為資源限制的關係,有可能會讓程序彼此之間造成死結(deadlock),無法順利完成工作。下列哪一個不是死結發生的必要條件?
核心觀念
在多工作業系統中,**死結(Deadlock)**是指兩個或兩個以上的程序(Process),因互相等待對方所持有的資源,而陷入彼此均無法繼續執行的永久僵局。
根據作業系統經典理論(Coffman 等人於 1971 年提出),死結發生必須同時具備以下四個必要條件(Coffman Conditions):
- 互斥(Mutual Exclusion):資源具有獨占性,同一時間內一個資源只能被一個程序持有,無法由多個程序共享。
- 持有並等待(Hold and Wait,或稱占有與等待):程序已持有至少一個資源,但又提出新的資源請求,且在等待新資源的過程中,堅決不釋放自己目前已持有的資源。
- 不可先占(No Preemption,或稱不可剝奪/不可搶奪):資源一旦分配給某程序,作業系統或其他程序不能強制將其收回或重新分配,只能由該程序在工作完成後自願釋出。
- 循環等待(Circular Wait,或稱環狀等待):存在一組程序 ,其中 等待 持有的資源, 等待 持有的資源,, 則等待 持有的資源,形成封閉的環狀等待鏈。
解題方法
本題為純粹的觀念檢驗題,切入點在於將題目選項的白話描述與死結的四大必要條件進行精準對照:
- 選項 (A) 對應「互斥(Mutual Exclusion)」
- 選項 (B) 對應「不可先占(No Preemption)」
- 選項 (D) 對應「持有並等待(Hold and Wait)」
- 選項 (C) 僅是一般多工環境下的常態「資源競爭與等待(Resource Contention / Blocking)」,並非死結發生的特定必要條件。
由此可快速判定非死結必要條件的選項。
選項分析
第 21 題2 分
在一個多工的電腦系統內,下列哪個情況並不會將正在執行(running)狀態的程序,轉換到另一種狀態?
核心觀念
本題考查多工作業系統中的程序狀態轉換。程序執行時處於 執行(running) 狀態;當它完成工作、等待 I/O,或因時槽用盡而被排程器暫停時,會離開執行狀態:
- 工作結束:轉為**終止(terminated)**狀態。
- 需要 I/O:轉為**等待/阻塞(waiting/blocked)**狀態。
- 時槽用盡:通常轉為**就緒(ready)**狀態,等待再次取得 CPU。
遞迴函式呼叫是程式內部的控制流程,不會因此改變程序的作業系統狀態。
解題方法
逐一判斷各情況是否造成程序停止使用 CPU,或使程序進入終止、等待或就緒狀態。若只是程式執行內容中的函式呼叫,且沒有引發上述事件,程序仍維持執行狀態。
選項分析
第 22 題2 分
以下的邏輯線路圖,有兩個 -bit 的輸入 及 ,產生 -bit 的輸出。請問這個邏輯線路跟哪一個運算結果是一樣的?
核心觀念
本題考查邏輯閘、布林代數與德摩根定律。
圖中:
- 經過 NOT 閘,變成
- 經過 NOT 閘,變成
- 與 再輸入 AND 閘
因此輸出為:
依德摩根定律:
所以此邏輯線路等同於 。
解題方法
先依訊號流向逐一判讀邏輯閘:
兩個反相後的訊號進入 AND 閘,輸出為:
再利用德摩根定律:
故邏輯線路的運算結果為:
選項分析
第 23 題2 分
通常我們使用脈衝編碼調變(Pulse Code Modulation),將類比音訊數位化。如果我們的取樣率是每秒 個,每個取樣以 個量化級別(quantization level)來編碼,那麼輸出的數位化資料,大約每秒有多少?
核心觀念
PCM(脈衝編碼調變)將類比訊號轉成數位資料。每秒資料量由「每秒取樣次數」乘以「每個取樣所需的位元數」計算。
若有 個量化級別,編碼每個取樣所需位元數為:
解題方法
本題每秒取樣 次,量化級別為 。因為 ,每個取樣需要 bits。
此處 ,因此選 。
第 24 題2 分
下列依據由左至右順序來建構二元搜尋樹(binary search tree),哪一個建構的樹有最大的深度(depth)?
核心觀念
二元搜尋樹(Binary Search Tree, BST)依序插入節點時,對每個新值都從根節點開始比較:
- 值小於目前節點,往左子樹走。
- 值大於目前節點,往右子樹走。
- 走到空的位置時,便將新值插入該處。
本題的「深度」依常見考試用法,指樹中最深節點距離根節點的層數;因此,節點數相同時,樹越偏斜,最大深度越大。
解題方法
依題目給定順序逐一插入,找出每棵樹最長的根至葉節點路徑:
- (A) : 為根; 插入左側, 插入右側, 大於 、也大於 ,插入 的右側。最深路徑為 ,共 層。
- (B) : 為根; 插入右側, 插入左側, 大於 、也大於 ,插入 的右側。最深路徑為 ,共 層。
- (C) : 為根; 插入左側; 小於 、大於 ,插入 的右側;
第 25 題2 分
下列敘述中何者錯誤?
核心觀念
本題考查搜尋法與排序法的前提條件,以及它們的時間複雜度:
- 二元搜尋法每次比較後都能排除一半搜尋範圍,因此要求資料已按順序排列。
- 合併排序法會將資料分割、排序,再合併兩個已排序的子序列;合併是排序過程中的一個步驟。
- 氣泡排序法以相鄰元素比較並交換,平均時間複雜度為 。
- 循序搜尋法逐一檢查資料,平均時間複雜度為 。
解題方法
逐項檢查敘述是否符合演算法的定義與複雜度。前三個選項涉及排序法,其中氣泡排序的平均複雜度是關鍵;比對後可知,(C) 把氣泡排序的複雜度寫成 ,因此錯誤。
選項分析
(A) 正確。 二元搜尋每次依比較結果排除資料的一半。若資料未排序,無法根據中間值判斷目標應位於左半部或右半部,因此必須先排序。
第 26 題2 分
有一個二元樹,它的後序走訪(postorder traversal)的結果是 ,那麼它的中序走訪的結果,不可能是下列哪一個?
核心觀念
二元樹的後序走訪順序是「左子樹、右子樹、根節點」,因此序列最後一個節點必定是根;中序走訪順序是「左子樹、根節點、右子樹」。對同一棵二元樹而言,中序與後序序列都必須包含相同節點,且根節點在兩種序列中的位置必須一致。
解題方法
後序序列為 ,最後一個字母 是根。要檢查各選項能否作為中序序列:
- 在中序序列中找到根 。
- 左側的節點必須恰好對應後序序列中根之前的左子樹部分;右側則對應右子樹。
- 依此規則遞迴檢查各子樹的根與節點順序。
選項分析
(A) :可以。 中序序列以 分為左子樹 、右子樹 。後序序列去掉根 後為 ,可分為左子樹後序 、右子樹後序 。
- 左子樹中序 、後序 :根為 ,其右子節點為 。
- 右子樹中序 、後序 :根為 ,左子節點為 ,右子節點為 。
各子樹的中序與後序順序相符,因此可形成二元樹。
第 27 題2 分
下列的運算式是以前序法(prefix)表示:
請問運算的結果為何?
核心觀念
前序表示法(prefix)將運算子放在運算元之前。每個二元運算子都會搭配其後的兩個運算式,因此可由左至右讀取,依運算子的結構判定運算順序。
解題方法
原式為:
最前面的 是根運算子,左右兩側分別是 與一個乘法運算式;乘法的右側又是一個加法運算式,因此可加上括號表示為:
依括號由內而外計算:
選項分析
第 28 題2 分
假設兩個堆疊(stack) 與 ,一開始它們的內容都是空的(empty)。那麼執行下列的演算法後, 的內容為何?(由左至右的順序代表堆疊的底部到上面)
push(, )
push(, )
push(, )
push(, )
push(, )
pop()
while(not empty()) push(, pop())
核心觀念
堆疊(stack)遵循「後進先出」(LIFO, Last In First Out):最後放入的元素會最先取出。push 將元素放到堆疊頂端;pop 移除並回傳頂端元素。
題目要求的排列方向是由左至右表示由堆疊底部到頂端,因此每次操作後都要留意哪些元素仍在堆疊中,以及它們的上下順序。
解題方法
先依序執行前五個 push:
- 依序放入 ,由底至頂為 。
- 依序放入 ,由底至頂為 。
接著執行 pop($S_1$),移除頂端的 ,所以 剩下 。
while(not empty($S_2$)) 會持續從 頂端取出元素,再放到 頂端:
- 從 取出 ,放入 : 變成 。
第 29 題2 分
如果資料用下列的資料結構來儲存,那麼我們要搜尋某個資料,下列哪一個的平均時間複雜度跟其他三個不一樣?
核心觀念
本題考查不同資料結構搜尋資料時的平均時間複雜度。線性鏈結串列、堆疊與佇列若沒有額外索引或排序資訊,搜尋時通常須逐一檢查資料;二元搜尋樹則可利用節點間的大小關係縮小搜尋範圍。
解題方法
假設資料共有 筆,且搜尋目標可能位於任何位置:
- 線性鏈結串列、堆疊、佇列:最壞情況都要檢查全部 筆;若目標等可能出現在各位置,平均約檢查 筆,因此平均時間複雜度為 。
- 二元搜尋樹:每次比較後可往左或往右子樹繼續搜尋。若樹大致平衡,高度約為 ,平均搜尋時間為 。
因此,前三種的平均搜尋複雜度相同,二元搜尋樹不同。
選項分析
第 30 題2 分
下列是 Scheme 的 function:
(define(cube X) (( X X) X))
(define(double X) (* 2 X))
(define(five X) (* 5 X))
(define(poly X) (+ (-(double(cube X)) (five X)) 1))
那麼執行 (poly 2) 的結果是多少?
核心觀念
本題考 Scheme 函數的定義與巢狀呼叫。函數以 define 定義;呼叫函數時,先把引數代入函數參數,再依運算式逐層求值。* 與 + 分別代表乘法與加法,- 代表減法。
解題方法
先將 (poly 2) 中的 X 代入 poly 的定義:
依函數定義逐步計算:
cube將輸入值自乘三次:
double將輸入值乘以 :
five將輸入值乘以 :
第 31 題2 分
下列是 C 語言的函式 mm,請問呼叫 會回傳多少?
int mm(int x, int y)
{ /* assume x>=1 && y>=1 */
int i, max=x*y;
for(i = x; i <= max; i++)
if(i%x==0 && i%y==0)
return i;
}
核心觀念
函式 mm(x, y) 會從 開始逐一檢查整數 ,找出第一個同時能被 與 整除的數,因此回傳的是 與 的最小公倍數。
題目使用巢狀呼叫:先計算內層 mm(20,30),再將其回傳值作為外層函式的第一個參數。
解題方法
內層呼叫 mm(20,30):
- 與 的最小公倍數為 ,所以回傳 。
- 外層呼叫因此成為
mm(60,21)。
外層函式尋找 與 的最小公倍數。兩數最大公因數為 ,故:
第 32 題2 分
軟體工程對軟體開發程序(development process)的第一個階段是哪個?
核心觀念
本題考查軟體開發程序的基本階段順序。常見的軟體開發生命週期(SDLC)會依序經過需求分析、系統設計、實作、測試與維護。各教材對階段名稱或細分方式略有不同,但分析需求通常是開發工作的起點。
解題方法
先判斷題目問的是「開發程序的第一個階段」,再比較四個選項在生命週期中的先後:分析需求、設計方案、撰寫程式、測試成果。必須先了解要解決的問題與需求,才能據此進行設計;完成設計後才實作,程式完成後再測試。因此第一階段是分析。
選項分析
第 33 題2 分
關於三層式架構的資料庫管理系統,那一層是在定義對資料的邏輯觀點(logical view)?
核心觀念
本題測驗關聯式資料庫管理系統(DBMS)著名的 ANSI/SPARC 三層架構(Three-Level Architecture / Three-Schema Architecture)。該架構的主要目的為達成「資料獨立性(Data Independence)」,自上而下劃分為三個層次:
- 外部層(External Level / View Level):定義個別使用者或應用程式所看到的局部觀點,稱為「使用者觀點(User View)」或「外部綱要(External Schema)」。
- 概念層(Conceptual Level / Logical Level):定義整個資料庫的全域邏輯結構,稱為「邏輯觀點(Logical View / Community View)」或「概念綱要(Conceptual Schema)」。其著重於資料庫儲存了「什麼資料(What)」以及資料間的關聯與完整性限制,完全獨立於實體儲存細節。
- 內部層(Internal Level / Physical Level):定義資料在儲存媒體上的實際配置方式,稱為「實體觀點(Physical View)」或「內部綱要(Internal Schema)」,著重於資料「如何被儲存(How)」,包含資料結構、索引配置與存取路徑。
解題方法
本題解題關鍵在於辨識「三層架構」與「觀點(View)」的對應關係:
- 題目詢問何者定義資料的「邏輯觀點(logical view)」。
- 在資料庫理論中,未加修飾的「邏輯觀點」或「全域觀點」即是指不涉及實體硬體與儲存配置、從邏輯面完整描述實體(Entities)、屬性(Attributes)及關聯(Relationships)的中間層級,此層即為概念層(Conceptual level),亦常被稱為邏輯層(Logical level)。
選項分析
- (A) 內部層(Internal level)—— 錯誤 內部層又稱實體層(Physical level),定義的是資料的「實體觀點(Physical view)」或「儲存觀點(Sto
第 34 題2 分
下列表格有四個欄位(、、、),含有三個橫列值組(Tuple),但它並沒有符合第一正規化(1NF)規範。若要將其調整,使其符合第一正規化形式,會變成有幾個橫列值組?
核心觀念
第一正規化(1NF)要求每個欄位在每筆資料中都只能有一個不可再分的值。若一個欄位含有以逗號分隔的多個值,就須拆成多筆資料,使每個欄位都只保留單一值。
解題方法
逐列計算各欄位的值個數,再將同一列中各欄位的個數相乘,得到該列拆分後的橫列數:
- 第 1 列: 各有 個值,拆分後為 列。
- 第 2 列: 有 個值、 有 個值、 有 個值、 有 個值,拆分後為 列。
第 35 題2 分
下列哪個選項內的兩個 IP 並不在同一個子網域內?
核心觀念
本題考查 IPv4 子網路的判斷。兩個 IP 使用相同的網路遮罩時,若其「網路位址」相同,就在同一個子網域內;網路位址可由下式求得:
CIDR 的 /n 表示子網路遮罩前 個位元為 1。例如 /27 的遮罩為 255.255.255.224。
解題方法
本題前 3 個八位元組皆相同,只有最後一個八位元組不同,因此只需比較最後一組的子網範圍。
| 前綴長度 | 遮罩最後一組 | 每個子網的位址數 | 子網範圍大小 |
|---|---|---|---|
/25 | 128 | 128 | 每 128 個位址一段 |
/27 | 224 | 32 | 每 32 個位址一段 |
/29 | 248 | 8 | 每 8 個位址一段 |
子網範圍可用「區塊大小」判斷:將最後一組 IP 除以區塊大小,找出其所屬的區間。
選項分析
(A) 167.199.170.82/25 與 167.199.170.114/25
第 36 題2 分
針對傳送的訊息,務必要讓接收方收到的訊息,跟所傳送的訊息一致,是下列哪一個特性?
核心觀念
本題考查資訊安全的基本特性。**訊息完整性(Message Integrity)**是指訊息在傳送與接收過程中未遭竄改,使接收方收到的內容與傳送方送出的內容一致。
解題方法
抓住題幹的關鍵詞「收到的訊息,跟所傳送的訊息一致」。這描述的是訊息內容是否保持完整,因此對應「訊息完整性」。
選項分析
- (A) 不可否認性(Nonrepudiation):確保傳送者事後不能否認曾傳送訊息,著重於行為的證明,不是內容是否一致。
第 37 題2 分
根據 TCP/IP 的通訊協定(protocol suite),下列敘述何者錯誤?
核心觀念
本題考查 TCP/IP 通訊協定中,傳輸層的流量控制與壅塞控制,以及資料鏈結層的媒介存取控制,並測驗 IP 層的服務特性。
- 流量控制(flow control):避免傳送端送資料的速度超過接收端處理或接收的能力。TCP 會利用接收視窗等機制調整傳送量;UDP 本身不提供流量控制。
- 壅塞控制(congestion control):避免網路中的流量超過網路設備或鏈路可承受的容量,造成壅塞。
- 媒介存取控制(MAC):多部裝置共用傳輸媒介時,規範各裝置如何取得傳送機會。
- 盡力服務(best-effort):IP 對封包提供基本傳送服務,但不保證封包一定送達、依序到達或不重複。
解題方法
逐項檢查敘述是否把不同層次、不同對象的功能混為一談。判斷本題關鍵在於區分流量控制與壅塞控制:兩者都可能使來源端降低傳送速率,但所處理的問題不同,不能視為同一議題。
選項分析
第 38 題2 分
假設班上有 位同學,如果使用對稱式(symmetric-key)加密方式,讓任何兩位同學互相傳遞訊息作加密,以保有兩方的私訊機密,那麼總共需要幾隻密鑰(secret key)才夠?
核心觀念
對稱式加密中,傳送訊息的兩方須共享同一把密鑰。若要讓任意兩位同學都能互相傳遞私密訊息,每一組不同的兩位同學都需要一把專屬密鑰。
解題方法
從 位同學中選出 位,計算不同配對的總數:
每一組配對各使用一把密鑰,因此共需要 把密鑰。
選項分析
第 39 題2 分
針對 IEEE 802.11 的標準,下列哪個敘述是錯誤的?
核心觀念
本題測驗 IEEE 802.11(Wi-Fi)無線區域網路之媒介存取控制(MAC, Medium Access Control)層 的核心技術與協定規範,涵蓋以下重點:
- 媒介存取協定:802.11 無線網路採用 CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,載波感測多重存取/碰撞避免)。
- 訊框間隔(IFS, Inter-Frame Space)分級:利用不同時間長度的 IFS 劃分媒介存取的優先等級(Priority)。
- 隱藏節點問題(Hidden Terminal Problem):利用虛擬載波感測的 RTS/CTS(Request to Send / Clear to Send) 機制預約傳輸通道。
- 隨機後退機制(Random Backoff):在分散式協調功能(DCF)中,透過隨機選取退避槽(Backoff Slots)與凍結計時機制,分散傳送時機並兼顧傳輸公平性(Fairness)。
解題方法
本題為標準的觀念辨析題,解題切入點在於檢視 IEEE 802.11 MAC 層各項機制的「設計目的」與「運作特性」:
- 逐一比對選項 (A)、(B)、(C) 是否符合 802.11 的基本定義與技術規範。
- 檢視選項 (D) 之「隨機後退機制」的設計目的:隨機後退(Random Backoff)是為了在通道轉為閒置時分散各節點的發送時程以減少碰撞,並透過「閒置時倒數、忙碌時凍結、歸零即發送」的計數器機制確保所有節點享有長期統計上的公平存取機會,其本質旨在實現公平性,不會造成節點發生飢餓(Starvation)。
選項分析
-
(A) 正確 無線傳輸媒介具有半雙工特性,且發送端的發送訊號強度遠大於接收訊號強度,導致節點無法像有線乙太網路(IEEE 802.3)一樣邊傳送邊偵測碰撞(CSMA/CD)。因此,IEEE 802.11 採用「碰撞避免」機制的 CSMA/CA 協定,在傳送前透過實體與虛擬載波感測確認通道閒置,盡可能降低碰撞發生的機率。
-
(B) 正確 IEEE 802.11 定義了不同時間長度的訊框間隔(IFS)。等待時間越短,取得通道的優先權越高。標準中依訊框重要性區分為三種基本優先等級:
第 40 題2 分
假設我們有個關聯表格 COURSES 如下:
| No | Course-Name | Unit |
|---|---|---|
| CIS15 | Intro to C | |
| CIS17 | Intro to Java | |
| CIS19 | UNIX | |
| CIS51 | Networking | |
| CIS52 | TCP/IP |
那麼執行下列 SQL 指令,會得到什麼?
select No, Unit from COURSES where Unit = 5
核心觀念
本題考查 SQL 查詢中的 SELECT 欄位選取,以及 WHERE 條件篩選:
SELECT No, Unit:只輸出No與Unit兩個欄位。WHERE Unit = 5:只保留Unit值等於 的資料列。
解題方法
逐列檢查 COURSES 表格的 Unit 欄位:
| No | Unit | 是否符合 Unit = 5 |
|---|---|---|
| CIS15 | 5 | 是 |
| CIS17 | 5 | 是 |
| CIS19 | 4 | 否 |
| CIS51 | 5 | 是 |
| CIS52 | 6 | 否 |