108 鐵路特考員級 電子工程 計算機概要 考古題詳解
第 1 題2 分
二補數表示法中,二進位數 之補數應為何?
核心觀念
二補數是固定位元數下表示負數及進行減法運算的方法。求一個二進位數的二補數,先將每一位元反相,再加上 ;也可由右向左保留最右邊的 及其右側位元,其餘位元反相。
解題方法
題目給定 位元數:
先逐位反相,得到一補數:
再加上 :
因此,其二補數為 。
選項分析
第 2 題2 分
相較於向量圖,點陣圖的主要優點為何?
核心觀念
點陣圖(bitmap/raster image)由許多像素組成,每個像素記錄一個位置的顏色或亮度;向量圖(vector image)則以點、線、曲線與幾何圖形的數學描述來表示影像。
點陣圖能逐像素記錄細緻的色彩與明暗變化,因此適合表現景物複雜、色彩連續的攝影照片。向量圖則擅長呈現線條清楚、形狀規則的圖案,例如標誌、圖示與工程圖。
解題方法
比較兩種格式最擅長的影像類型:照片包含大量細節、漸層與複雜色彩,點陣圖可以直接記錄各像素的視覺資訊;向量圖以幾何物件描述圖形,較適合可縮放的線條與規則形狀。題目問點陣圖相較於向量圖的主要優點,因此選擇適合表現攝影照片的選項。
選項分析
- (A) 圖形檔案較小:錯誤。 點陣圖需要記錄大量像素,解析度與色彩深度越高,檔案通常越大。簡單圖形若用向量描述,檔案往往較精簡;
第 3 題2 分
下列哪些軟體是以開放程式碼(open source)的方式開發的?
核心觀念
本題考查軟體的授權與開發模式。開放程式碼(open source)軟體依其授權條款,允許使用者取得程式原始碼,並在授權條件下使用、修改或散布。判斷時要看軟體是否以開放程式碼方式發行,而非只看它是否常見或能否免費取得。
解題方法
逐一辨認各軟體的開發與授權模式:Windows、Access 與 Oracle 資料庫軟體皆屬專有軟體;Linux 則是以開放程式碼方式開發與散布的作業系統。因此,符合題意的是 Linux。
選項分析
- (A) Windows 作業系統:錯誤。 Windows 是 Microsoft 的專有作業系統,程式原始碼不以開放程式碼方式公開。
- **(B) Linux 作業系統:正確。
第 4 題2 分
在中央處理器的內部結構中,下列何者負責協調將程式運算指令從記憶體搬到暫存器並進行解碼?
核心觀念
本題考查中央處理器(CPU)的基本組成與指令處理流程。控制單元(Control Unit)負責協調 CPU 各部件的工作,包含從記憶體擷取指令、解碼指令,以及發出控制訊號,使指令能依序執行。
解題方法
看到題目中的「協調」、「搬到暫存器」與「解碼」,應聯想到指令週期中的擷取與解碼階段。控制單元會控制指令由記憶體送入指令暫存器,再解讀指令內容,並安排後續運算所需的資料傳送與元件動作。因此,負責協調這些工作的單元是控制單元。
選項分析
第 5 題2 分
補間動畫(Tweening),針對下列何者無效?
核心觀念
補間動畫(Tweening,亦稱中間畫格法)是先設定動畫的起始與結束狀態,再由電腦自動計算兩者之間的中間狀態,讓畫面呈現連續變化。常見可補間的項目包括物件的位置或路徑、色彩,以及形狀。
解題方法
判斷選項是否屬於可逐步變化的動畫屬性。位置、色彩、形狀都能在起始與結束狀態之間計算中間值;貼圖則是已製作完成的影像素材,本身不是此題所列的補間動畫變化項目。因此依官方答案選擇 (D)。
選項分析
第 6 題2 分
一般作業系統都會採用某種排班(scheduling)策略來決定當下要執行哪個程序(process)。假設所使用的策略會考慮每個程序所需花費的執行時間,則該策略最有可能是下列何者?
核心觀念
本題考查作業系統的程序排班策略,以及各策略挑選下一個執行程序時依據的條件。
最短工作先處理(Shortest Job First, SJF)會優先選擇預估執行時間最短的程序。因此,題目所說「考慮每個程序所需花費的執行時間」,符合 SJF 的特徵。
解題方法
抓住關鍵字「執行時間」即可判斷:在選項中,直接依程序工作長短來決定執行順序的策略是 SJF。它的典型目標是降低平均等待時間;實務上須估計程序的執行時間,且長工作可能因短工作持續到達而等待過久。
選項分析
- (A) 先到先處理(First In First Out, FIFO)錯誤。 按程序抵達就緒佇列的先後順序執行,不以執行時間長短決定次序。
第 7 題2 分
IEEE 754 標準是目前最通用的浮點數(Floating point)表示法,若以 IEEE 754 的單倍精準數(Single precision)儲存格式表示 ,結果應為下列何者?
核心觀念
IEEE 754 單倍精準數共 32 位元,依序由 1 位元符號位、8 位元指數欄位及 23 位元小數欄位組成。正規化數的指數欄位採用偏移值 表示:
其中 為符號位, 為指數欄位的無號整數值, 為小數欄位所表示的部分。
解題方法
先將 轉成二進位:
再依序求出三個欄位:
- 符號位:原數為負數,故 。
- 指數欄位:實際指數為 ,加上偏移值 ,得 。其 8 位元二進位為 。
- 小數欄位:正規化後有效數為 ,最高位的隱含 不儲存;將小數部分 補至 23 位,得 。
合併為:
第 8 題2 分
將組合語言程式翻譯成機器語言的軟體稱為:
核心觀念
本題考查系統軟體的功能分工。組合語言以助記符表示機器指令,例如 ADD、MOV;將這些助記符及運算元轉換成處理器可執行的機器語言,是組譯器(Assembler)的工作。
解題方法
先辨認程式來源語言是「組合語言」,再對照負責翻譯它的軟體:組合語言轉機器語言,使用組譯器。編譯器與直譯器主要處理高階語言;連結器則負責組合目標檔與程式庫、解析外部參照,不負責把組合語言翻譯成機器語言。
選項分析
第 9 題2 分
一個程式在一台電腦中執行共需 秒,其中除法指令共花掉 秒,請問要將除法指令速度提升為多少倍,可使原程式執行時間縮短為原來的四分之一?
核心觀念
本題考查 Amdahl 定律:只加速程式中的一部分時,整體執行時間的改善幅度會受未加速部分限制。若被加速部分原本耗時 ,加速 倍,其新耗時為 ;其餘部分的耗時則維持不變。
解題方法
原程式共執行 秒,其中除法指令耗時 秒,因此非除法指令耗時:
要求新執行時間為原來的四分之一:
設除法指令加速 倍。加速後,整體執行時間為:
移項得:
第 10 題2 分
若將十進位數字 轉成 進位,其對應的表示法為下列何者?
核心觀念
本題考查十進位轉換為八進位。八進位採「逢八進一」,各位數的位值依序為 。因此,八進位數 代表 。
解題方法
以連續除以 的方式轉換,記錄每次的餘數,最後由下往上排列:
將餘數由最後一次除法往前讀,得到 。驗算:
選項分析
第 11 題2 分
下列何種計算機架構主要以「零位址指令(Zero-address Instruction)」來進行「資料定址(Data Addressing)」?
核心觀念
本題考查指令集架構中,運算元(operand)如何指定,以及指令位址欄位的數量。
零位址指令不在指令中明列運算元位址;在堆疊架構中,運算元預先放在堆疊頂端,運算指令會自動取用堆疊頂端的資料,並將結果放回堆疊,因此主要以零位址指令進行資料定址。
解題方法
辨認各架構如何取得運算元:
- 若指令明列暫存器或記憶體位置,便有一個或多個位址欄位。
- 若運算元由累進器固定提供,指令通常不需指定其中一個運算元,但架構仍以累進器為主要操作位置。
- 若運算元由堆疊頂端隱含提供,運算指令可不帶位址欄位,屬於零位址指令。
因此,題目所述「主要以零位址指令」操作的架構是堆疊。
選項分析
(A) 暫存器對暫存器(Register-to-register):錯誤。
運算指令通常須指定來源與目的暫存器,例如 ADD R1, R2, R3,至少要透過暫存器欄位指出運算元及結果位置,不屬於零位址指令的典型架構。
第 12 題2 分
假設一個表格定義了四個屬性(attribute),分別名為 、、、,如下表中的第 1 列所示。根據目前表格內所記錄的兩筆資料列(tuple),如下表中的第 2~3 列所示,以下哪個屬性集合不可能是該表格的主鍵(primary key)?
核心觀念
主鍵(primary key)是能唯一識別每一筆資料列的屬性集合,因此表中任兩筆資料在主鍵所包含的所有屬性值都必須不同。若某屬性集合在資料列間出現相同值,就不能作為主鍵。
解題方法
比較兩筆資料在各選項所列屬性上的值:
| 屬性集合 | 第 1 筆資料 | 第 2 筆資料 | 是否不同 |
|---|---|---|---|
| 是 | |||
| 是 | |||
| 否 | |||
| 是 |
在兩筆資料中的值相同,無法區分兩筆資料,因此不具備唯一識別能力,不能作為主鍵。
選項分析
第 13 題2 分
設二元搜尋樹(binary search tree)儲存有 個關鍵值(keys),則搜尋一個關鍵值其最佳及最差之時間複雜度(time complexity)分別為何?
核心觀念
二元搜尋樹(binary search tree, BST)的每個節點至多有左、右子節點;左子樹的鍵值小於節點鍵值,右子樹的鍵值大於節點鍵值。搜尋時,從根節點開始比較,依鍵值大小選擇往左或往右,直到找到目標或走到空節點。
搜尋所需時間取決於搜尋過程經過的節點數。最佳情況下,目標鍵值就在根節點,僅需一次比較,時間複雜度為 。最差情況下,樹退化成單向鏈結串列,搜尋可能必須逐一檢查 個節點,時間複雜度為 。
解題方法
題目未限定 BST 必須平衡,因此不能直接假設樹高為 。
- 最佳情況:目標鍵值位於根節點,只需一次比較,故為 。
- 最差情況:節點依序插入等情形可能形成偏斜樹,樹高可達 ;搜尋可能一路走訪所有節點,故為 。
選項分析
第 14 題2 分
已知一 connected graph 共有 個節點(vertex),而 為 的一個 spanning tree。試問 共有幾個邊(edge)?
核心觀念
生成樹(spanning tree)是包含圖中所有頂點,且本身連通、無環的子圖。對於有 個頂點的樹,邊數固定為 。
解題方法
題目已知 是 的一個生成樹,且共有 個頂點。套用樹的邊數公式:
因此, 共有 個邊。
選項分析
- (A) :錯誤。 生成樹的邊數由頂點數決定,不是頂點數的一半; 個頂點的生成樹有 個邊。
- **(B) :正確。
第 15 題2 分
以下之有向無環圖(Directed Acyclic Graph)中,從節點 至節點 之最長路徑(Longest Path)其長度為何?
(此題原卷文字擷取不全,請參考原卷)
核心觀念
有向圖中,路徑必須沿箭頭方向前進;加權路徑的長度是沿途邊權重的總和。求最長路徑時,可由終點往前計算:
其中 是從節點 到終點 的最長路徑長度,且 。
解題方法
依圖中的箭頭方向與權重,由終點 往前推算:
- 。
- 權重為 ,所以 。
- 可直接到 ,權重為 ;也可經 到 ,長度為 ,所以 。
- 可直接到 ,長度為 ;也可經 到 ,長度為 ,所以 。
- 權重為 ,所以 。
- 可經 到 ,長度為 ;經 的路徑不會到達 ,所以 。
- 可經 到 ,長度為 ;經 到 的長度為 ,所以 。
第 16 題2 分
陣列的元素被儲存在連續的記憶體位址是因為:
核心觀念
陣列(Array)是由多個相同型別的元素組成,通常依序儲存在連續的記憶體位址中。由於元素大小固定,電腦只要知道第一個元素的起始位址,以及索引值,就能直接計算任一元素的位址。
若每個元素占 個位元組、陣列起始位址為 ,以 為起始索引時,第 個元素的位址為:
解題方法
題目問陣列元素為何採連續儲存,關鍵在於連續排列能讓電腦依照「起始位址、索引值、元素大小」直接定位元素,不必逐一尋找或記錄每個元素各自的位址。因此,選項 A 說明了陣列連續儲存所帶來的位址計算便利性。
選項分析
第 17 題2 分
假設輸入堆疊的資料依序是:、、、、。下列哪種資料輸出順序是可能的?
核心觀念
本題考「堆疊」(Stack)的後進先出特性,英文為 LIFO(Last In, First Out):最後放入堆疊的資料,必須最先取出。輸入順序固定為 ,每個數字各輸入、輸出一次,且只能透過堆疊暫存。
解題方法
依照目標輸出順序,模擬「依序輸入數字」及「從堆疊頂端輸出數字」。堆疊頂端若不是目前需要輸出的數字,就不能跳過頂端取出其他資料。
以選項(B) 為例:
- 依序將 推入堆疊,此時堆疊由底至頂為 。
- 取出頂端 ,符合第一個輸出。
- 推入 ,再取出 ;推入 ,再取出 。
- 此時堆疊由底至頂剩下 ,頂端是 ,接著取出 。
因此可得到輸出順序 ,符合(B)。
選項分析
第 18 題2 分
若將十進位數字 改以二進位來表示,結果應會有幾位數字?
核心觀念
二進位是以 為基底的位值記數法。若正整數 的二進位表示有 位,則:
因此,只要找出 介於哪兩個相鄰的 的次方之間,就能判斷它的二進位位數。
解題方法
相鄰的 的次方為:
因為:
所以 的二進位表示有 位。
也可展開驗算:
對應到 ,因此二進位表示為 ,共 位。
選項分析
第 19 題2 分
下列何種走訪方式,可以保持二元搜尋樹(binary search tree)上節點的排序?
核心觀念
二元搜尋樹(binary search tree, BST)的節點排列規則是:對任一節點而言,左子樹中的鍵值小於該節點,右子樹中的鍵值大於該節點。這項規則使得 BST 的中序走訪會依序輸出由小到大的鍵值。
三種常見走訪順序為:
- 前序:根、左子樹、右子樹
- 中序:左子樹、根、右子樹
- 後序:左子樹、右子樹、根
解題方法
依照 BST 的大小規則,先走訪左子樹會先取得較小的鍵值;接著走訪根節點;最後走訪右子樹,取得較大的鍵值。因此,中序走訪的輸出順序是「左、根、右」,可保持節點由小到大的排序。
例如,若根節點為 8,左子節點為 3,右子節點為 10,中序走訪結果為 ,符合遞增順序。
選項分析
第 20 題2 分
以一陣列 實作最大二元堆積(Max Binary Heap),一般方法為以 代表根節點(Root), 代表堆積中的某一個節點及儲存其數值,而 和 分別為 所代表的節點之左子節點(Left Child)及右子節點(Right Child)。
若目前堆積共有九個數字,且其對應的陣列之值 依序為 ,則在插入(Insert)新數值 於堆積時,在堆積中與 進行比對的數字共有多少個?
核心觀念
最大二元堆積(Max Binary Heap)除了符合完全二元樹的結構外,也要求每個父節點的值都大於或等於其子節點。以陣列從 開始儲存時,索引 的父節點索引為 。
插入新值時,先將它放在堆積末端,再與父節點逐一比較;若新值大於父節點,就交換並繼續向上調整。
解題方法
原堆積有 個數字,因此新數值 先放入第 個位置 。接著沿著父節點路徑比較:
- 的父節點是 。比較 與 ,因 ,交換。
- 上移至 ,其父節點是 。比較 與 ,因 ,停止。
插入時與 比對的數字是 、,共 個;堆積調整後, 位於 。
第 21 題2 分
對圖形(graph)進行廣度優先拜訪(breadth-first traversal)時,哪種資料結構是有助益的?
核心觀念
廣度優先拜訪(Breadth-First Search,BFS)會先拜訪起點的鄰接頂點,再依序拜訪距離起點更遠的頂點。為了維持「先發現的頂點先處理」,BFS 使用佇列(queue),遵循先進先出(FIFO)原則。
解題方法
拜訪頂點時,將尚未拜訪的鄰接頂點加入佇列;接著從佇列前端取出頂點,再檢查它的鄰接頂點。如此便能依照距離起點的層次逐層擴展。
例如起點為 ,且 鄰接 ,而 鄰接 :先將 放入佇列,再依序處理 ,之後才處理 。這種逐層、先發現先處理的順序正是佇列所提供的。
選項分析
第 22 題2 分
對一個有九個節點的二元搜尋樹(Binary Search Tree)作前序訪問(Preorder Traversal),並依序輸出訪問節點的數值,其結果如下(次序由左至右):
在此樹中共有多少個節點其左子節點(Left Child)及右子節點(Right Child)皆有數值?
核心觀念
二元搜尋樹(Binary Search Tree, BST)中,任一節點的左子樹節點值小於該節點,右子樹節點值大於該節點。前序走訪(Preorder Traversal)的順序是:
因此,前序序列的第一個數值是根節點;依 BST 的大小關係,後續數值可分成根的左子樹與右子樹,再依序遞迴還原樹形。
解題方法
序列為 。
- 第一個數值 是根節點。
- 根之後,小於 的數值屬於左子樹,大於 的數值屬於右子樹。故左子樹前序序列為 ,右子樹前序序列為 。
- 左子樹以 為根:、 均小於 ,屬於其左子樹;依前序順序插入 BST 時, 是 的左子節點, 是 的右子節點。
- 右子樹以 為根: 均小於 ,而 大於 。
第 23 題2 分
若 ,則下列 C 語言敘述句將產生何種結果?
核心觀念
本題考 C 語言的條件運算子 ?:、邏輯運算子 &&,以及判斷閏年的規則。
閏年判斷條件為:能被 400 整除,或能被 4 整除且不能被 100 整除。題目以巢狀條件運算子依序判斷這些條件,並指定不同的 k 值。
解題方法
條件運算子 條件 ? 表達式1 : 表達式2 會先判斷條件;成立時取表達式1,不成立時取表達式2。題目中的 ?: 由右側開始結合,可讀作:
代入 :
- ,所以 不成立,往後判斷。
- ,但 ,因此 不成立。
第 24 題2 分
下列以 C 語言撰寫的程式中,①、②、③各行何者為函式之宣告(declaration)、定義(definition)或呼叫(call)?
#include<stdio.h>
int isOdd(int a); //①
int main() { isOdd(2); //② return 0; }
int isOdd(int a){ return a%2 == 1; } //③
核心觀念
本題考查 C 語言函式的三種用法:
- 宣告(declaration):告知編譯器函式名稱、回傳型態及參數型態,不提供函式本體。
- 呼叫(call):在程式中使用函式名稱並提供引數,要求執行函式。
- 定義(definition):提供函式的完整內容,也就是函式本體。
解題方法
依序看三行的語法特徵:
int isOdd(int a);以分號結尾,只有函式原型,沒有函式本體,因此①是宣告。isOdd(2);以函式名稱搭配引數呼叫函式,因此②是呼叫。
第 25 題2 分
執行下列 C++ 程式碼後,螢幕印出的數字為何?
int f(int& m, int& n){ int tmp; tmp=m; m=n; n=tmp; }
int main(){ int a=1, b=2, c=3, d=4, e=5, g=6; f(a,b); f(c,d); f(e,g); f(a,c); f(a,g); cout<<a<<endl; return 0; }
核心觀念
本題考 C++ 的參考參數(reference parameter)。函式參數宣告為 int&,表示參數是實際變數的別名;在函式內對參數指定新值,會直接修改呼叫時傳入的變數。
函式 f(m, n) 會交換兩個參數所參照變數的值。區域變數 tmp 暫存原本的 m,再依序將 n 指派給 m、將 tmp 指派給 n。
解題方法
依照 main 中函式呼叫的順序追蹤各變數:
| 步驟 | 執行內容 | ||||||
|---|---|---|---|---|---|---|---|
| 初始 | — | 1 | 2 | 3 | 4 | 5 | 6 |
| 1 | f(a,b) | 2 | 1 | 3 | 4 | 5 | 6 |
| 2 | f(c,d) | 2 | 1 | 4 | 3 | 5 | 6 |
| 3 | f(e,g) | 2 | 1 | 4 | 3 | 6 | 5 |
第 26 題2 分
針對下列結構變數處理,何者語法正確?
struct { char d[10]; }a,b,c;
核心觀念
本題考 C 語言的結構(struct)指派與陣列指派規則。結構變數可以彼此指派;但結構內的陣列成員不能直接以指派運算子複製,結構也不能直接使用加法或減法運算子。
題目宣告的 a、b、c 都是相同結構型態的變數,且各自包含一個 char d[10] 陣列成員。
解題方法
逐一判斷運算子套用的對象:
- 若運算子兩側是相同結構型態的變數,C 語言允許以
=將右側結構的值指派給左側結構。 - 若運算子兩側是陣列,不能直接以
=指派。 - 結構沒有內建的加法或減法定義,不能直接使用
+或-。
選項分析
第 27 題2 分
在下圖的二元搜尋樹(binary search tree)中進行搜尋時,下列哪個元素所需的搜尋時間最長?
(此題原卷文字擷取不全,請參考原卷)
核心觀念
在二元搜尋樹中,搜尋從根節點開始,依照目標值與目前節點的大小比較,往左子樹或右子樹前進。搜尋所需時間與搜尋路徑上的節點數成正比;比較的節點越多,搜尋時間越長。
解題方法
圖中的搜尋路徑如下:
- 搜尋 :,需比較 個節點。
- 搜尋 :直接在根節點找到,需比較 個節點。
- 搜尋 :,需比較 個節點。
- 搜尋 :,需比較 個節點。
在選項列出的元素中,搜尋 經過的節點最多,因此所需搜尋時間最長。
第 28 題2 分
執行下列 C 程式後,產生的輸出為何?
#include<stdio.h>
int main(){ int i;
for(i=0; i<3; i++){
switch(i){
case 0:
break;
case 1:
printf("1 ");
break;
case 2:
printf("2 ");
case 3:
printf("3 ");
}
printf("4");
}
return 0;
}
核心觀念
本題考查 for 迴圈與 switch 敘述的執行流程,重點是:
for(i=0; i<3; i++)讓i依序為 。switch會從符合的case開始執行;遇到break才跳出switch。- 若沒有
break,程式會繼續執行下一個case,稱為穿透(fall-through)。 switch結束後,仍會執行其後的printf("4");。
解題方法
依序代入每次迴圈的 i,追蹤 switch 內的輸出,再加上 switch 後的 4:
i | switch 內的執行 | switch 後的輸出 | 本輪輸出 |
|---|---|---|---|
case 0 立即 break,不輸出 | 4 | 4 | |
case 1 輸出 1 ,再遇到 break | 4 | 1 4 | |
case 2 輸出 2 ;沒有 break,穿透至 case 3 輸出 3 | 4 | 2 3 4 |
第 29 題2 分
某電信頻段,已知其頻寬為 ,最高的頻率為 ,問最低頻率為何?
核心觀念
頻寬是頻帶最高頻率與最低頻率的差值,公式為:
因此,已知最高頻率與頻寬時,最低頻率可由最高頻率減去頻寬求得。
解題方法
題目給定頻寬為 ,最高頻率為 ,代入公式:
又因為 ,所以:
故選項 (C) 正確。
選項分析
- (A) :錯誤。 這是把 加到最高頻率 上,得到比最高頻率更高的值;題目要求的是最低頻率。
第 30 題2 分
下列關於 JavaScript 的敘述,何者錯誤?
核心觀念
本題考查 JavaScript 的性質與用途。JavaScript 是一種程式語言,常用於網頁前端,能操作網頁內容並增加互動功能;它的名稱雖然含有「Java」,但不是 Java 語言的分支,兩者是不同的程式語言。
解題方法
逐項判斷敘述是否符合 JavaScript 的語言特性與常見用途。題目詢問「何者錯誤」,因此找出與 JavaScript 和 Java 關係不符的選項即可。
選項分析
- (A) 一種直譯式程式語言:正確。 JavaScript 通常由執行環境直接執行,傳統上歸類為直譯式語言。現代 JavaScript 引擎也會採用即時編譯等技術,但不影響本選項在考題中的判斷。
- **(B) 為 Java 語言的一個分支:錯誤。
第 31 題2 分
執行下列 C++ 程式碼後,螢幕印出的數字為何?
int main(){ int A[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int(pp)[4]=(int()[4])A[1]; int *p;
p=*(pp+1)+1;
cout<< *p <<endl;
return 0;
}
核心觀念
本題考查二維陣列在記憶體中的排列方式,以及「指向含有 4 個 int 的陣列之指標」如何進行指標運算。
A 是 3 × 4 的二維陣列,元素依列排列:
| 列索引 | 元素 |
|---|---|
A[0] | 1, 2, 3, 4 |
A[1] | 5, 6, 7, 8 |
A[2] | 9, 10, 11, 12 |
pp 的型別是 int (*)[4],表示「指向含有 4 個 int 的陣列之指標」,因此 pp + 1 會移動一整列,也就是 4 個 int 的位置。
解題方法
int(*pp)[4] = (int(*)[4])A[1];
A[1] 指向第二列的第一個元素,也就是 5。轉型後,pp 指向第二列這個含有 4 個 int 的陣列。
接著:
p = *(pp + 1) + 1;
分兩步計算:
pp + 1:前進一列,從第二列移至第三列,也就是A[2]。*(pp + 1):取得第三列。
第 32 題2 分
下列何者不屬於程序式程式語言(procedural programming languages)?
核心觀念
程序式程式語言(procedural programming language)以一連串指令或程序描述程式的執行步驟,常透過變數、指定敘述、條件判斷與迴圈控制流程。BASIC、COBOL、FORTRAN 都是常見的程序式語言。
Smalltalk 則以物件導向為主要典範,程式由物件及物件間的訊息傳遞構成,因此本題官方答案為 D。
解題方法
辨認各選項主要採用的程式設計典範:前三者是典型程序式語言;Smalltalk 的核心是物件與訊息傳遞,屬於物件導向語言。因此選出 Smalltalk。
選項分析
第 33 題2 分
在資訊法律問題的分類中,對於網路傳播內容的管制,屬於下列何者?
核心觀念
本題考查資訊法律問題的分類。網路傳播內容的管制,重點在於規範網路上傳播的資訊內容,例如不當或違法內容的發布與散布,屬於「資訊內容管制」。
本題以命題當年(民國 108 年)相關分類為準;題目考的是分類概念,並未要求適用特定法條。
解題方法
抓住題幹中的「傳播內容」:管制對象是網路上所傳播的資訊本身,因此歸入資訊內容管制。若題幹改問網路上的交易、使用者行為或系統防護,才分別考慮網路交易、網路行為管制或資訊安全。
選項分析
第 34 題2 分
下列關於網頁物件快取伺服器(Cache Server)的運作說明,何者錯誤?
核心觀念
本題考查網頁快取伺服器如何利用 HTTP 的條件式 GET 驗證快取物件是否仍為最新版本。快取伺服器會保存物件及其修改時間,之後可用 If-Modified-Since 詢問源頭伺服器;若物件未修改,伺服器回覆 304 Not Modified,快取便可繼續使用既有內容。
要分清兩種時間標頭:
Date:表示伺服器產生該回應的日期與時間,不代表物件最後修改時間。Last-Modified:表示物件最後修改的日期與時間;快取可用這個時間作為條件式請求的依據。
解題方法
逐一核對選項描述的標頭用途。關鍵是判斷首次下載時記錄的時間,是否應由 Date 提供;若要驗證物件是否修改,應使用代表物件最後修改時間的 Last-Modified,並將該時間放入後續請求的 If-Modified-Since 標頭。
選項分析
第 35 題2 分
有關防火牆(firewall)的敘述,下列何者錯誤?
核心觀念
本題考防火牆的封包過濾功能與網路區域配置。防火牆會依照設定的規則檢查網路流量;可用來判斷封包的來源或目的 IP 位址、通訊協定與連接埠等資訊,並決定允許、阻擋或轉送封包。防火牆也能用來規劃內部網路、外部網路及非軍事化區域(DMZ)之間的存取控制。
解題方法
逐項比對防火牆通常具備的功能。只要某選項否定了防火牆可執行的基本封包過濾能力,即為錯誤敘述。本題中,防火牆能依封包協定進行過濾,因此選項 (B) 的「無法」與實際功能相反。
選項分析
- (A) 正確。 防火牆可依規則將封包轉送至指定的檢查點或安全設備,讓封包接受進一步檢查;實際能力會依防火牆的架構與設定而定。
- **(B) 錯誤。
第 36 題2 分
下列何者不是駭客攻擊網頁的手法?
核心觀念
本題考查網頁應用程式常見攻擊方式,以及網路層攻擊與網站應用層攻擊的差異。判斷關鍵是:攻擊是否直接針對網站的輸入資料、頁面參數或 URL 處理機制。
解題方法
逐一辨認各選項的攻擊層級與作用對象。SQL injection、Hidden-field-tampering 與 URL Obfuscation 都能直接利用網站程式或網頁傳遞資料的弱點;ARP spoofing 則是偽冒區域網路中的 ARP 對應關係,屬於網路層附近的攻擊手法,並非直接攻擊網頁本身,因此選 B。
選項分析
-
(A) 資料庫隱碼攻擊法(SQL injection):錯誤選項。 攻擊者將惡意 SQL 語法放入網站輸入欄位或請求參數;若網站未妥善驗證輸入或使用參數化查詢,可能使資料庫執行非預期指令。這是典型的網頁應用程式攻擊。
-
(B) ARP 偽造法(ARP spoofing):正確答案。
第 37 題2 分
資訊安全的三個主要目標為機密性、完整性與可用性,這些目標可能會遭到安全攻擊,請問下列何種攻擊類型可以降低或完全中斷一個系統的服務?
核心觀念
資訊安全的三個主要目標稱為 CIA 三要素:
- 機密性(Confidentiality):只有獲授權者能存取資訊。
- 完整性(Integrity):資訊未遭未授權竄改,且保持正確。
- 可用性(Availability):授權使用者在需要時能使用系統與服務。
本題考查的是:哪一類攻擊會影響系統的可用性。
解題方法
逐一對照攻擊造成的主要影響:
- 未經授權讀取資訊,主要侵犯機密性。
- 讓合法使用者無法取得服務,主要侵犯可用性。
因此,能降低或完全中斷系統服務的攻擊,應是阻絕服務攻擊。
選項分析
(A) 窺視(snooping)—錯誤 窺視是未經授權查看或取得資料,直接威脅的是機密性;它本身不以降低或中斷服務為目的。
第 38 題2 分
下列哪一個 Windows 工具程式,可以用來檢查封包傳送過程中經過的各路由器及延遲?
核心觀念
本題考查 Windows 網路診斷工具的用途。tracert(trace route)會逐一探測封包前往目的地時經過的路由節點,並顯示各節點的回應時間,可用來觀察封包路徑及途中延遲。
解題方法
題目關鍵在「經過的各路由器及延遲」:要找的是能追蹤封包路徑、並列出沿途節點回應時間的工具,因此選擇 tracert。在 Windows 命令提示字元中可輸入 tracert 目的地,查看封包前往該目的地時逐跳經過的路由器與各跳的往返時間。
選項分析
第 39 題2 分
在無線網路通訊標準中, 的傳輸速率為多少 Mbps?
核心觀念
本題考查 IEEE 802.11 無線區域網路標準的傳輸速率。802.11g 使用 2.4 GHz 頻段,最高理論傳輸速率為 54 Mbps。
解題方法
辨認標準代號並對應其標稱最高速率即可:
- 802.11b:最高 11 Mbps
- 802.11a、802.11g:最高 54 Mbps
因此,802.11g 的傳輸速率為 54 Mbps。
選項分析
第 40 題2 分
下列何種網路應用推出的時間最晚?
核心觀念
本題考各網路應用協定的發展年代,判斷哪一項推出時間最晚。比較時以相關協定首次標準化或正式提出的年代為準。
解題方法
整理四項協定的年代,再比較先後:
- FTP:1971 年提出,早期用於檔案傳輸。
- SMTP:1982 年標準化,負責電子郵件傳送。
- DNS:1983 年提出,用來將網域名稱轉換為 IP 位址。
- HTTP:1991 年提出,支援全球資訊網的文件傳輸。
其中 HTTP 的年代最晚,因此選 A。
選項分析