113 調查局特考三等 電子科學組 計算機概論 考古題詳解
第 一 題25 分
程式設計完成後,後續測試工作也很重要。例如,黑箱測試(Black-box Testing)常用以測試軟體的功能性,有很多種方法都屬於黑箱測試。
假若測試時輸入程式的資料是由介於 2000(含)到 2999(含)間的三個整數組合而成,請回答下列問題:
(一) 若以邊界值測試(Boundary-Value Testing)法進行測試,請列出所有的測試輸入組合。(16 分)
(二) 若以徹底測試(Exhaustive Testing)法進行測試,請問此方法的輸入組合需要進行多少次?(4 分)
(三) 若一亂數產生器可由 0(含)到 0.999(含)間隨機產生 3 個數字,要如何利用此亂數產生器來進行隨機測試法進行測試?(5 分)
登入後即可作答並保存紀錄。
核心觀念
本題考黑箱測試中的邊界值測試、徹底測試與隨機測試。
輸入由三個整數組成,每個整數的有效範圍都是 至 ,含上下界。邊界值測試著重檢查範圍端點及其鄰近值;徹底測試則列舉所有有效輸入組合;隨機測試則將亂數映射成有效範圍內的輸入值。
解題方法
(一)邊界值測試
常見的邊界值測試取每個輸入欄位的「最小值、最小值加一、中間值、最大值減一、最大值」。本題每個整數的測試值為:
以三個欄位逐一變動、其餘欄位固定在中間值 的基本邊界值測試法(每次只改變一個欄位),測試組合如下:
- 固定第二、第三個數為 ,改變第一個數: 、、、、
- 固定第一、第三個數為 ,改變第二個數: 、、、、
- 固定第一、第二個數為 ,改變第三個數: 、、、、
重複三次,去除重複後共有 組。
(二)徹底測試
每個欄位有 種整數,三個欄位的組合數為:
第 二 題25 分
關於電腦網路設備與應用,以及資訊安全的重要性,請回答下列問題:
(一) 網路上使用閘道器(Gateway)的目的?(5 分)
(二) 網路上路由器(Router)的功能?(5 分)
(三) 請簡要說明防火牆(Firewall)的運作原理?(5 分)
(四) 請說明替代加密(Substitution Cipher)及換位加密(Transposition Cipher)的差別?(6 分)
(五) 假設阿明與阿華使用模除 26 算術的加法加密(Additive Cipher),如果入侵者小王要以測試所有可能金鑰的方式來破解密碼,即採用暴力攻擊法(Brute-force Attack),請問平均需要測試幾把金鑰?(4 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查網路設備的分工,以及古典加密法的基本分類與金鑰空間。
- 閘道器(Gateway):連接使用不同協定或架構的網路,負責協定轉換,使兩端能互通。
- 路由器(Router):依據網路層位址與路由表,選擇封包通往目的網路的路徑。
- 防火牆(Firewall):依預先設定的安全規則,檢查並控制網路流量。
- 替代加密與換位加密:前者替換字元,後者改變字元順序。
- 加法加密:在模 26 下以金鑰位移字母,金鑰共有 26 種可能。
解題方法
(一)閘道器的目的
閘道器的主要目的,是讓使用不同通訊協定、資料格式或網路架構的網路彼此溝通。它可在網路邊界進行必要的協定轉換或資料轉換,使來源網路的資料能被目的網路理解。
例如,兩個網路採用不同協定時,閘道器可將資料從一種協定格式轉換為另一種格式。一般而言,閘道器是不同網路之間的轉接點;路由器則主要負責依路由資訊轉送封包。
(二)路由器的功能
路由器主要在網路層運作,依據封包的目的 IP 位址查詢路由表,決定下一個轉送節點或輸出介面,將封包送往目的網路。
路由器也可執行路由選擇、轉送封包,並隔離不同的網路區段。若有多條路徑可供選擇,路由器會依路由資訊及路由度量選擇適當路徑。
(三)防火牆的運作原理
防火牆設置於不同安全區域或網路的邊界,依安全政策檢查進出網路的流量,再決定允許、拒絕或記錄該流量。
常見檢查方式包括:
- 封包過濾:檢查來源與目的 IP 位址、連接埠及通訊協定等欄位。
- 狀態檢查:追蹤連線狀態,只允許符合既有連線狀態與規則的封包通過。
- 應用層檢查:檢查特定應用程式或應用層內容,依規則管制服務。
防火牆的核心是依規則控制網路流量;它能降低未授權存取風險,但不能取代所有資訊安全措施。
(四)替代加密與換位加密的差別
第 三 題20 分
假設一台 32 位元的電腦,CPU 有 16 個暫存器(R0 到 R15),主記憶體有 2048 個字組(Word)和 16 個不同的指令(例如:add(加法)、sub(減法)等)。
如果一個典型指令設計成下列格式:「add R1, R2, R3」,請回答下列問題:
(一) 每個暫存器最佳長度(Size)會是多少位元(bit/bits)?(5 分)
(二) 此 CPU 指令格式的運作碼(opcode)最少需要幾位元(bit/bits)?(5 分)
(三) 主記憶體是多少位元組(byte/bytes)?(5 分)
(四) 此指令「add R1, R2, R3」的機器碼(Machine Code)所需的最少長度(Size)會是多少位元(bit/bits)?(5 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查暫存器編號、指令運作碼、主記憶體容量與指令格式的位元數計算。
若要表示 種不同狀態,至少需要 位元。指令中的暫存器欄位則依操作數個數,重複計算所需的暫存器編號位元數。
解題方法
(一)每個暫存器的長度
題目指出電腦為 32 位元,故每個暫存器的資料長度為 32 位元。暫存器共有 16 個,影響的是表示暫存器編號所需的位元數,並不改變暫存器本身的資料長度。
因此,每個暫存器長度為 32 位元。
(二)運作碼(opcode)長度
16 種指令需要區分 16 種運作碼:
因此,opcode 最少需要 4 位元。
(三)主記憶體容量
主記憶體有 2048 個 Word。依題目所述的 32 位元電腦,每個 Word 為 32 位元,即 4 bytes。
第 四 題10 分
有兩個一維陣列(Array) 和 ,每一陣列都有 個整數。請使用 while 迴圈語法寫出一虛擬程式碼(Pseudo Code)演算法,來測試陣列 中每一個元素是否等於陣列 中相對應位置之元素。
若上述條件成立( 陣列相等於 陣列),則回傳(Return)為真(True);反之,則回傳為假(False)。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題考一維陣列的逐項比較,以及使用 while 迴圈控制索引。兩個陣列相等的條件是:每個相同位置的元素都相等。只要找到一組對應元素不同,即可判定兩個陣列不相等。
解題方法
以索引 i 從第一個元素開始,逐項比較 X[i] 與 Y[i]。若不同,立即回傳 False;若相同,將索引加一,繼續比較。全部 個位置都相同時,回傳 True。
以下採用從 0 開始的索引,元素位置為 0 至 M-1:
Algorithm ArraysEqual(X, Y, M)
i ← 0
while i < M do
if X[i] ≠ Y[i] then
return False
end if
i ← i + 1
end while
return True
第 五 題10 分
圖形(Graph)是一種抽象資料型態(Abstract Data Type),請回答下列問題:
(一) 請定義何謂圖形(Graph)?(4 分)
(二) 請簡要說明有向圖形(Directed Graph)與無向圖形(Undirected Graph)的不同?(3 分)
(三) 在電腦中,城市與城市間的道路若要以圖形來表示,會使用有向圖形還是無向圖形?城市名稱如何在圖形中表示?城市之間的距離如何在圖形中表示?(3 分)
登入後即可作答並保存紀錄。
核心觀念
圖形(Graph)由頂點與邊組成,用來表示物件之間的關係。一般記為 ,其中 是頂點(Vertex)的集合, 是邊(Edge)的集合。若邊連接兩個頂點,便表示這兩個頂點之間存在某種關係。
解題方法
先看邊是否具有方向:有方向的是有向圖,沒有方向的是無向圖。再將題目中的城市道路對應為頂點與邊,城市名稱作為頂點的標籤,道路距離則記為邊的權重。
分題作答
(一)圖形的定義
圖形是由頂點集合 與邊集合 所構成的資料結構,表示為 。頂點代表被描述的對象,邊代表對象彼此之間的連結或關係。
(二)有向圖與無向圖的差異
- 有向圖(Directed Graph):邊具有方向,連接 與 的邊可表示為有序對 ,表示由 指向 。一般而言, 與 是不同的邊。
第 六 題10 分
有 3 個數 、、,分別以不同進位的方式來表示:
以 8 進位表示其值為 ;
以 16 進位表示其值為 ;
以 10 進位表示其值為 。
請比較這 3 個數 、、 的大小關係為何?(10 分)
登入後即可作答並保存紀錄。
核心觀念
不同進位的數要先換成同一進位,才能直接比較。 進位數的整數部分,依各位數乘上 的次方加總;小數部分則依小數點後各位數乘上 加總。
解題方法
將三個數都換算成十進位: