114 高普考普通考試 電子工程 計算機概要 考古題詳解
第 1 題2 分
十六進制數字 ,等同於哪一個十進制數字?
核心觀念
十六進位的基底是 ,位值由右至左依序為 。十六進位中的 至 分別代表十進位的 至 ,因此 。
解題方法
將各位數依位值展開,再換算成十進位:
所以 等於十進位 。
選項分析
第 2 題2 分
假設有一台電腦的記憶體容量為 512 MB(Megabytes),每一筆資料會用 16 bytes 的單位來儲存資料,至少需要多少位元數(bits)來定位記憶體中的任何一筆資料?
核心觀念
本題考查記憶體定址所需的位元數。若記憶體共有 個可定位的資料單位,定址欄位至少需要 位元,且必須滿足:
因此,所需位元數為 。題目以每筆資料 bytes 為一個定址單位,故應先計算記憶體中有幾筆資料。
解題方法
依一般容量換算,,因此:
每筆資料占 bytes,故資料筆數為:
第 3 題2 分
關於算術/邏輯指令(Arithmetic/Logic Instructions)的敘述,下列何者正確?
核心觀念
算術/邏輯指令(Arithmetic/Logic Instructions)用來對資料執行算術或邏輯運算。算術運算包括加、減等;邏輯運算則包括 AND、OR、XOR 等布林運算。資料傳送、記憶體存取與程式流程控制,通常分別由資料傳送指令、載入/儲存指令及分支指令負責。
解題方法
判斷各選項描述的功能是否屬於算術/邏輯運算即可。AND、OR、XOR 都是對位元進行布林邏輯運算,因此符合算術/邏輯指令的定義。
選項分析
第 4 題2 分
某特殊用途處理器以 12 bits 暫存器儲存資料,並以二補數(two's complement)編碼來儲存有號數。則該處理器能以一個暫存器儲存的整數值範圍為何?
核心觀念
本題考二補數表示法中, 位元有號整數的表示範圍。 位元二補數的範圍為:
其中最高位元代表正負號與權重,因此負數端比正數端多一個值。
解題方法
暫存器寬度為 bits,代入 :
因此,一個暫存器可儲存的整數範圍是 至 。
選項分析
第 5 題2 分
藝術家阿花非常喜歡紫色,在所有的紫色中,他最喜歡的色碼為 ,這轉成十六進位表示法後為:
核心觀念
本題考查十進位數轉換為十六進位,以及 RGB 色碼的排列方式。色碼 依序代表紅色、綠色、藍色(RGB),每個數值各自轉為兩位十六進位數,再依原順序連接。
解題方法
將各分量轉為十六進位:
- ,其中十進位 以十六進位字元 表示,因此 。
- ,因此 。
- ,因此 。
依 RGB 順序串接:
故色碼為 A422FF。
選項分析
第 6 題2 分
將 和 進行 OR 運算後的結果為何?
核心觀念
位元 OR(或)運算逐位進行:只要兩個對應位元中至少有一個是 ,結果就是 ;兩者都是 時,結果才是 。
| 輸入位元 | OR 結果 |
|---|---|
解題方法
將兩個 8 位元數字上下對齊,逐欄進行 OR:
逐位結果為:
第 7 題2 分
有關作業系統,下列敘述何者正確?
核心觀念
本題考查作業系統中的「作業(Job)」、「程序(Process)」與「程式(Program)」之間的差異,以及作業與程序可能經過的狀態。
- 程式是儲存在磁碟中的指令與資料,屬於靜態內容。
- 作業是使用者提交給電腦系統、等待處理的一項工作。作業尚未執行時,可能在保留(Hold)等狀態等待資源或排程;作業也可能在轉成程序之前就被取消或終止。
- 程序是程式執行中的實體,具有執行狀態、資源與相關控制資訊。程序狀態不只就緒與執行中,還可能包括等待或阻塞、終止等狀態。
解題方法
先區分選項描述的是作業、程序還是程式,再檢查它所說的狀態是否符合常見作業系統模型。若選項把不同概念混為一談,或把狀態限制得過於狹窄,即可排除。
選項分析
(A) 錯誤。「非活躍(Inactive)」不是程序必定等待到作業系統重新啟動才離開的通用狀態。程序可因完成、被中止或其他作業系統管理事件而離開系統;
第 8 題2 分
關於排程器(Scheduler)的主要功能,下列敘述何者正確?
核心觀念
排程器(Scheduler)是作業系統的一項功能,負責依據排程政策,決定哪些程序可以進入或取得處理器執行機會。作業系統常見的排程層次包括:
- 長期排程器:決定哪些工作或程序加入系統的執行序列。
- 短期排程器:從就緒佇列中選擇下一個取得 CPU 的程序。
- 中期排程器:暫停或恢復程序,以調節記憶體與系統負載。
本題著重在排程器「選擇程序進入執行序列」的功能。
解題方法
先辨認各選項描述的是哪一類作業系統工作。排程器處理的是程序的選擇與執行次序;記憶體管理、硬體中斷處理及程式編譯則屬於其他功能。依此即可判斷正確選項。
選項分析
第 9 題2 分
遞歸神經網路(Recurrent Neural Network; RNN)是一種具有記憶功能的網路,常被應用於處理時間序列或自然語言處理問題,下列何者不屬於 RNN 的重要架構?
核心觀念
本題考查循環神經網路(RNN)的架構,以及它與卷積神經網路(CNN)常見運算的區別。RNN 透過循環連結將前一時間步的隱藏狀態傳遞至下一時間步,因此適合處理具有時間順序的資料。
LSTM 與 GRU 是常見的 RNN 變體,利用門控機制調節資訊的保留、更新或輸出。最大池化則是常見於 CNN 的下採樣運算,不是 RNN 的重要架構。
解題方法
先辨認各選項所屬的概念:LSTM、GRU 與 Gate 都和 RNN 的循環狀態及資訊控制有關;最大池化主要用於特徵圖下採樣。找出與 RNN 架構分類不相符的選項,即可作答。
選項分析
- (A) 最大池化(Maximum Pooling)—正確答案。 最大池化通常將局部區域中的最大值保留下來,以縮小 CNN 特徵圖的空間尺寸、降低計算量。它是池化運算,不是 RNN 的重要架構。
第 10 題2 分
在關聯式資料庫設計中,下列何種關聯式運算可用來選取關聯中的特定屬性(Column)?
核心觀念
關聯式代數中,選取資料表的**特定屬性(欄、Column)稱為「投影(PROJECT)」;選取符合條件的資料列(Row)**則稱為「選擇(SELECT)」。兩者的區別在於:投影處理欄,選擇處理列。
解題方法
題目問的是從關聯中挑出特定屬性,也就是保留指定欄位。這正是投影運算的功能,可表示為 ,其中 為關聯, 表示投影。因此應選 PROJECT。
選項分析
- (A) SELECT:錯誤。 關聯式代數中的選擇運算用來依條件篩選資料列,例如挑出符合某條件的紀錄,不是選取特定欄位。須注意,SQL 的
SELECT子句可以指定欄位;
第 11 題2 分
若有一個遞增排序(由小到大)的整數陣列 ,並欲尋找值為 的元素,若想降低平均搜尋時間,可使用下列何種搜尋演算法?
核心觀念
本題考查已排序陣列的搜尋方法。因為陣列由小到大排列,搜尋時可以利用元素之間的順序,縮小可能範圍。
二元搜尋每次比較搜尋值 與目前範圍的中間元素,接著排除不可能包含 的一半範圍。若陣列有 個元素,搜尋時間複雜度為 ;線性搜尋則為 。
解題方法
題目指定陣列已遞增排序,並詢問降低平均搜尋時間的演算法。二元搜尋可利用排序性逐步折半搜尋範圍,因此平均及最壞情況下都只需約 次比較,答案為 (B) 二元搜尋。
例如在 16 個元素中搜尋,二元搜尋每次將範圍約減半,最多約需 次比較;線性搜尋則可能需要檢查全部 16 個元素。
選項分析
第 12 題2 分
關於堆疊(Stack)和佇列(Queue)的敘述,下列何者錯誤?
核心觀念
本題考查堆疊(Stack)與佇列(Queue)的存取順序。
- 堆疊採後進先出(LIFO):最後放入的資料會最先取出,操作端通常稱為堆疊頂端。
- 佇列採先進先出(FIFO):先放入的資料會先取出,通常從隊尾加入、從隊首取出。
解題方法
判斷各選項描述的資料結構是否符合定義。日常例子中,依序排隊等候服務的人,通常由先到者先接受服務,符合佇列的 FIFO;若是堆疊,則最後加入的人會先離開,與一般排隊規則不同。
選項分析
第 13 題2 分
關於環狀佇列(circular queue)的敘述,下列何者正確?
核心觀念
環狀佇列(circular queue)常以固定大小的陣列實作,將陣列尾端與開頭視為相連。當前端或後端指標到達陣列最後一格時,會繞回索引 ,以便重複利用已釋出的空間。
佇列的前端指標(front)標示取出資料的位置,後端指標(rear)標示加入資料的位置。判斷佇列是否為空或已滿,須依採用的指標定義與實作慣例而定;本題採用的判別方式是:前端與後端指向同一位置且佇列不為空時,表示佇列已滿。
解題方法
抓住題幹所採用的滿佇列判別條件:當 front 與 rear 相等時,必須再看佇列是否為空。若佇列不為空,兩指標相等便代表可用空間已用盡,因此選項 (C) 正確。
實作上也常見「保留一個空格」來區分空佇列與滿佇列:空佇列時兩指標相等;滿佇列時則由 rear 的下一個位置繞回後恰好等於 front。這種慣例下,滿佇列的兩指標不會直接相等。
第 14 題2 分
若有 22 個節點形成一棵完整二元樹(Complete Binary Tree),第 4 階層(Level 4)有幾個是樹葉節點(Leaf Node)?(假設樹根為第 1 階層,往下之子節點層數遞增。)
核心觀念
完全二元樹的節點由上而下、由左而右排列;除最後一層外,各層皆滿。若最後一層未滿,節點仍從最左側開始排列。
第 層最多有 個節點。因此,前 層共有
個節點。
解題方法
前 4 層最多可容納 個節點。由於全樹有 22 個節點,第 4 層必定已滿;前 4 層共有 15 個節點,剩下 個節點位於第 5 層。
第 4 層共有 個節點。每個第 4 層節點若有子節點,子節點會出現在第 5 層。因為第 5 層的 7 個節點從左至右排列,會依序成為第 4 層前 4 個節點的子節點:前 3 個節點各有 2 個子節點,第 4 個節點有 1 個子節點。
第 15 題2 分
關於樹(Tree)的定義,下列敘述何者正確?
核心觀念
本題考查樹(Tree)的基本定義。樹是一種階層式的非線性資料結構,節點之間具有分層或上下層關係,且不含環路。樹常用來表示組織架構、檔案目錄與家族關係等。
解題方法
判斷各選項是否符合樹的基本特性:樹可以包含多個節點,具有階層關係,且不含環。因此,符合上述定義的選項為 (C)。
選項分析
第 16 題2 分
對於圖的定義,所謂簡圖(Simple Graph),下列敘述何者正確?
核心觀念
本題考圖論中簡圖(Simple Graph)的定義,以及相鄰矩陣(Adjacency Matrix)的對角線性質。
簡圖不允許自我迴圈,也不允許同一對節點之間有重複邊。因此,節點不會與自身相鄰;以相鄰矩陣表示時,主對角線上的元素皆為 。對無向簡圖而言,相鄰矩陣還會是對稱矩陣。
解題方法
先由簡圖的定義確認是否允許自我迴圈,再判斷相鄰矩陣的主對角線。若頂點集合為 ,相鄰矩陣記為 ,其中 表示 與 間的邊數。簡圖沒有自我迴圈,因此對所有 :
選項分析
(A) 正確。 簡圖不允許自我迴圈,所以相鄰矩陣主對角線上的值均為 。
第 17 題2 分
有關選擇排序法(selection sort)進行由小到大的數字排序,每一次操作會如何進行?
核心觀念
選擇排序法(selection sort)會將數列分成「已排序」與「未排序」兩部分。每一回合都從未排序部分找出最小值,將它移到未排序部分的最前面;重複此步驟,直到整個數列完成由小到大的排序。
解題方法
由小到大排序時,選擇排序每回合都要選出未排序數列中的最小值,並放到目前未排序區段的第一個位置。例如數列為 :
- 未排序數列是 ,最小值為 ,移到最前面,成為 。
- 排除已排序的 ,在 中找出最小值 ,移到未排序區段最前面,成為 。
因此,選擇排序的核心動作是「找出未排序部分的最小值並移到其最前面」。
選項分析
第 18 題2 分
網路搜尋引擎(Search Engine)能快速從大量網頁資料中找到相關資訊,主要是透過下列何種方式達成?
核心觀念
本題考搜尋引擎的基本運作方式:搜尋引擎會先整理網頁內容,建立索引結構,將詞彙與包含該詞彙的網頁位置對應起來。使用者查詢時,搜尋引擎便能查找索引,快速找出相關網頁,而不必每次重新逐頁檢查所有內容。
解題方法
判斷關鍵在於「快速從大量網頁資料中找到相關資訊」。逐一比對或線性掃描都需反覆檢查大量資料,效率較低;預先建立索引則能縮小查找範圍,快速定位候選網頁。因此,符合搜尋引擎快速查詢原理的是事先建立索引結構。
選項分析
第 19 題2 分
在網頁程式設計中,網站伺服器為加速辨識使用者身分而儲存一些資料,在用戶端(Client Side)上,此稱為:
核心觀念
本題考查網站如何在用戶端保存資料,以便後續請求時辨識使用者或維持登入狀態。**Cookie(網站 Cookie)**是網站伺服器傳送給瀏覽器的一小段資料,由瀏覽器儲存在用戶端;之後瀏覽器向同一網站送出請求時,會依設定將 Cookie 一併傳回伺服器。
解題方法
題幹的關鍵線索是「儲存一些資料」與「在用戶端(Client Side)上」。符合這種用戶端資料儲存方式的就是 Cookie。伺服器可利用 Cookie 中的識別資訊辨認先前的瀏覽器,進而維持登入狀態或記錄偏好設定。
選項分析
- (A) Cookie:正確。 Cookie 由瀏覽器儲存在用戶端,伺服器可藉由瀏覽器後續傳回的 Cookie 辨識使用者或維持工作階段。
第 20 題2 分
根據以下 C 程式,下列敘述何者正確?
void AddTogether(int x, int y){
printf("Sum:%d\n", x+y);
}
int main(){
int a=100, b=100;
AddTogether(a, b);
return 0;
}
核心觀念
本題考 C 語言函式的形式參數(formal parameters)與引數(arguments,也常稱實際參數 actual parameters):
- 函式定義中的變數名稱是形式參數,用來接收呼叫函式時傳入的值。
- 函式呼叫中提供的值或變數是引數,也常稱實際參數。
解題方法
先區分函式定義與函式呼叫:
void AddTogether(int x, int y) // 函式定義:x、y 是形式參數
呼叫函式時:
AddTogether(a, b); // 函式呼叫:a、b 是引數
main 中的 a、b 是區域變數,呼叫時其值分別傳入形式參數 x、y。
選項分析
第 21 題2 分
下列何者為本 Python 程式之輸出?
my_string = "taiwan number One"
print(my_string[0].upper() + my_string[1:])
核心觀念
本題考查 Python 字串的索引、切片,以及 upper 方法:
my_string[0]取出字串中索引為0的第一個字元。my_string[1:]從索引1開始,取到字串結尾。upper將字串中的英文字母轉為大寫。+將兩個字串串接起來。
解題方法
原字串為 "taiwan number One"。
my_string[0] 取出第一個字元 "t",呼叫 .upper 後變成 "T";my_string[1:] 則保留從第二個字元開始的內容 "aiwan number One"。
串接結果為:
只有第一個字元被轉成大寫;其餘部分不會因為這段程式而改變大小寫。
第 22 題2 分
下列何者屬於邏輯式設計方式的語言?
核心觀念
本題考程式語言的程式設計典範。邏輯式設計(logic programming)以事實與規則描述問題,再由推論機制尋找符合條件的答案;程式設計者著重「要滿足哪些條件」,而非逐步指定每個執行動作。
解題方法
辨認各語言所屬的典範即可。PROLOG 是典型的邏輯式程式語言,使用者可定義事實與規則,並透過查詢讓系統進行邏輯推論,因此選 (B)。
選項分析
第 23 題2 分
C 語言字串陣列宣告如下:
char *names[]={"ABCD","EFG","XYZ"};
則下列程式執行後輸出的內容為何?
printf("%c", *names[2]);
核心觀念
char *names[] 宣告的是「字元指標陣列」:names 的每個元素都是指向字元的指標。初始化後:
names[0]指向字串"ABCD"的首字元。names[1]指向字串"EFG"的首字元。names[2]指向字串"XYZ"的首字元。
* 是取值運算子,會取得指標所指向的字元;printf("%c", ...) 則以字元形式輸出該值。
解題方法
先看陣列索引,再看指標解參照:
names[2]取得第三個元素,也就是指向字串"XYZ"的指標。*names[2]取得該指標所指向的第一個字元,即'X'。%c將'X'輸出為字元。
因此,程式輸出 X。
第 24 題2 分
下列程式碼的執行成果為多少?
def f(x, y):
return x+y, x-y, x+2*y
data=f(123, 456)
print(data[1])
核心觀念
Python 函式可以用逗號分隔多個值作為回傳值;這些值會組成一個 tuple(元組)。Tuple 的索引從 開始,因此索引 代表第二個元素。
解題方法
函式 f(x, y) 依序回傳三個值:
代入 f(123, 456):
因此 data 是 (579, -333, 1035)。data[1] 取出索引為 的第二個元素,故 print(data[1]) 輸出 -333。
第 25 題2 分
執行以下程式碼,當 ,執行 while 迴圈完成後的排序結果為?
s=[3,2,1,5,0,4,6,9,8,7]
def Sort(data):
for i in range(1, len(data)):
key=data[i]
j=i-1
while j >=0 and key<data[j]:
data[j+1]=data[j]
j -=1
data[j+1]=key
return data
print(Sort(s))
核心觀念
本題考插入排序(Insertion Sort)。外層迴圈每次取出目前位置的 key,再由左向右已排序的區段中,將所有大於 key 的元素往右移,最後把 key 放入空出的位置。
解題方法
題目特別指定 ,因此只追蹤外層迴圈執行到 時的 while 迴圈。Python 串列索引從 開始,初始資料為:
[3, 2, 1, 5, 0, 4, 6, 9, 8, 7]
先執行 :key=2,與左側的 3 比較,將 3 右移後放入 2,資料變成:
[2, 3, 1, 5, 0, 4, 6, 9, 8, 7]
接著執行 :key=1,初始 。
- 比較
1 < 3,成立:將3右移, 減為 。 - 比較
1 < 2,成立:將2右移, 減為 。 - 此時 不成立,
while結束;將key=1放到data[j+1],也就是索引 。
完成 的迴圈後,資料為:
[1, 2, 3, 5, 0, 4, 6, 9, 8, 7]
第 26 題2 分
C 程式執行結果中,變數 和 的值為何?
int i=3, num=7;
do {
num -= i--;
} while(i !=1);
核心觀念
本題考 C 語言後置遞減運算子 i--,以及 do...while 迴圈的執行順序。
i-- 會先使用變數目前的值,再將變數減 。do...while 則是先執行迴圈本體,再判斷條件;條件為真時才進入下一輪。
解題方法
初始值為 、。每輪執行 num -= i--; 時,先以遞減前的 更新 num,再將 減 ,最後檢查 i != 1。
| 輪次 | 遞減前的 | num 更新 | 遞減後的 | 條件 i != 1 |
|---|---|---|---|---|
| 第 1 輪 | 3 | 2 | 真,繼續 | |
| 第 2 輪 | 2 | 1 | 假,結束 |
迴圈結束時,、。
選項分析
第 27 題2 分
C 語言的函數如下,則 的回傳值為何?
int g(int s, int n)
{
if(n<=1)
return s;
return g(s+n, n-1);
}
核心觀念
本題考遞迴函數的呼叫方式與參數更新。每次呼叫 g(s, n) 時,若 ,便改以 g(s+n, n-1) 繼續呼叫;當 時停止遞迴,並回傳當時的 。
解題方法
從 g(10, 10) 開始,逐次代入新的參數:
到達 時符合停止條件 n<=1,因此回傳 。
也可將累加過程寫成:
第 28 題2 分
有向圖的鄰接矩陣(adjacency matrix)為何者?從左到右、從上到下分別代表 1、2、3、4 節點。
核心觀念
有向圖的鄰接矩陣以列表示起點、欄表示終點。若節點 有一條邊指向節點 ,矩陣第 列、第 欄記為 ;沒有邊則記為 。
本題有 個節點,因此鄰接矩陣是 ,共有 個位元。題目指定位元「從左到右、從上到下」排列,表示依序填入第 1 列至第 4 列。
解題方法
將選項 D 的位元串依每列 4 位分組:
因此,選項 D 表示的有向邊為:
- 第 1 列 :
- 第 2 列 :
- 第 3 列 :、
- 第 4 列 :
依此矩陣讀取,每列列出該節點指向的節點,即得選項 D 所表示的鄰接關係。
第 29 題2 分
下列何個關鍵字在 JAVA 程式中,可用於呼叫同一個類別內的其他建構函數(Constructor)?
核心觀念
Java 可用 this 表示目前這個物件,也可在建構函數中用 this(...) 呼叫同一個類別的另一個建構函數。這種寫法稱為建構函數鏈結,常用來集中初始化邏輯、避免重複程式碼。
解題方法
辨認題目問的是「同一個類別內」的建構函數呼叫。Java 使用 this(引數) 指定同類別中的另一個建構函數;若要呼叫父類別的建構函數,則使用 super(引數)。
例如:
class Phone {
Phone {
this("一般型"); // 呼叫同類別的另一個建構函數
}
Phone(String model) {
// 初始化 model
}
}
this(...) 必須是建構函數中的第一個敘述,因此不能先執行其他敘述再呼叫它。
選項分析
第 30 題2 分
撰寫程式的過程中,將抽象性(abstraction)函式介面(interface)的實作細節部分隱藏起來,此方法是由程式語言本身來提供的。這是屬於物件導向程式設計中的何種方法?
核心觀念
本題考查物件導向程式設計的基本概念。**封裝(encapsulation)**是將資料與操作資料的方法組織在一起,並透過介面提供必要的操作方式,同時隱藏內部實作細節。使用者只需知道如何呼叫介面,不必了解其內部如何完成工作。
解題方法
題幹的關鍵描述是「將實作細節部分隱藏起來」。這正是封裝的核心:將物件內部的資料或實作藏在介面後方,藉由介面控制外部如何使用它。因此,依官方答案,應選擇封裝。
選項分析
- (A) 宣告(declaration):宣告是說明變數、函式或類別等名稱及其型別、介面等資訊,不等同於隱藏實作細節。
第 31 題2 分
在 TCP/IP 協定架構中,關於傳輸層(Transport Layer)協定的分類,下列何者非屬於傳輸層協定?
核心觀念
本題考查 TCP/IP 架構中傳輸層與網際網路層的協定分類。傳輸層負責端點間的資料傳送與多工,常見協定包括 TCP、UDP、SCTP;ICMP 則屬於網際網路層,用來傳遞控制與錯誤訊息。
解題方法
逐一辨認選項的協定功能與所屬層級。題目詢問「非屬於傳輸層協定」,找出屬於其他層的協定即可。
選項分析
- (A) ICMP:正確答案。 ICMP 是網際網路控制訊息協定,通常歸於 TCP/IP 架構的網際網路層,常用於回報錯誤或提供網路診斷訊息,例如
ping使用的回應訊息。它不是傳輸層協定。
第 32 題2 分
集線器(Hub)和交換機(Switch)主要的差異是:
核心觀念
本題考查集線器(Hub)與交換機(Switch)在區域網路中的資料轉送方式。集線器運作於實體層,收到資料後會將訊號送往其他連接埠;交換機通常運作於資料連結層,會依據學習到的 MAC 位址表,將乙太網路訊框轉送至目的設備所在的連接埠。
解題方法
比較兩者如何處理收到的資料即可:Hub 不辨識目的設備,會將訊號送到其他連接埠;Switch 則查詢目的 MAC 位址,通常只轉送到對應連接埠。若交換機尚未學到目的位址,或目的 MAC 是廣播位址,仍可能泛洪至多個連接埠;但這不改變兩者的主要差異。
選項分析
第 33 題2 分
「今天是星期一或星期二」在命題邏輯中的表示方式為何?
核心觀念
本題考命題邏輯中的連接詞。「或」以析取符號 表示;「且」以合取符號 表示。
令 表示「今天是星期一」, 表示「今天是星期二」,則「今天是星期一或星期二」表示為 。
解題方法
先將句子拆成兩個命題:
- :「今天是星期一」
- :「今天是星期二」
兩者以「或」連接,因此使用析取符號 ,寫成 。
選項分析
第 34 題2 分
有關 URL(Uniform Resource Locator)的敘述,下列何者正確?
核心觀念
本題考 URL 的定義及用途。URL 是「統一資源定位符」(Uniform Resource Locator),用來指出網路資源的位置與取得方式,例如網頁所在的主機及路徑。它是識別、定位資源的字串,不是網路傳輸協定,也不是 IP 位址本身。
解題方法
先辨認各選項描述的功能:複製主機間資料屬於檔案傳輸協定的用途;電子郵件安全則涉及郵件安全協定;IP 位址是網路位址資訊。URL 的核心用途是定位網路上的資源,因此選擇最符合「網頁唯一識別符號」的敘述。
選項分析
第 35 題2 分
當你在 YouTube 上觀看影片時,主要使用下列何種網際網路技術?
核心觀念
本題考查影音內容在網際網路上的傳送方式。**串流技術(Streaming)**會將影音資料分段傳送,接收端可在下載後續資料的同時播放,不必先取得完整影片檔案。
解題方法
題目問觀看 YouTube 影片時主要使用哪種網際網路技術。判斷重點是:影片能否在資料持續傳送時開始播放。影音播放的這項特性就是串流,因此選擇串流技術。
選項分析
- (A) 雲端硬碟(Cloud Storage)錯誤。 雲端儲存用來保存與管理遠端檔案;YouTube 可能使用雲端或其他伺服器儲存影片,但儲存方式不是本題問的觀看傳送技術。
- **(B) 串流技術(Streaming)正確。
第 36 題2 分
有關「多個電腦系統同時發送請求淹沒目標伺服器」屬於下列何種攻擊手法?
核心觀念
本題考查阻斷服務攻擊的來源數量與攻擊方式。**分散式阻斷服務(DDoS)**是指多個電腦系統同時向目標伺服器發送大量請求,使其耗盡頻寬、連線或運算資源,導致正常使用者無法取得服務。
解題方法
抓住題幹的關鍵語句:「多個電腦系統同時發送請求」。多個來源共同對單一目標發動流量攻擊,符合「分散式」阻斷服務的特徵,因此選擇 DDoS。
DoS 與 DDoS 都以妨礙服務可用性為目的;主要差別在於,DoS 通常描述由單一來源發動,DDoS 則由多個分散來源共同發動。
選項分析
第 37 題2 分
小花想要發送一封重要文件,並確保接收者能夠驗證文件的來源,他應該使用何種技術?
核心觀念
本題考查加密技術的用途,以及如何確認文件的來源真實性。數位簽章使用寄件者的私密金鑰產生簽章,接收者再以寄件者的公開金鑰驗證;驗證成功可確認簽章是由對應私密金鑰產生,並檢查文件內容是否遭到竄改。
解題方法
先辨認題目要保障的安全目的:接收者要「驗證文件的來源」,也就是確認文件確由寄件者發出,這屬於來源認證。在選項中,能直接提供來源驗證與完整性檢查的技術是數位簽章。
數位簽章通常先對文件計算雜湊值,再由寄件者用自己的私密金鑰簽署該雜湊值。接收者使用寄件者的公開金鑰驗證簽章,並比對文件重新計算出的雜湊值。若驗證通過且雜湊值一致,即可確認簽章有效且文件內容未被變更。
選項分析
- (A) 對稱式加密(Symmetric Encryption)錯誤。 寄件者與接收者共用同一把密鑰,主要用途是保護內容機密性。因為雙方都持有密鑰,單靠對稱式加密無法讓接收者確認究竟是誰產生了文件。
第 38 題2 分
有關「數據最小化原則」(Data Minimization Principle)的核心理念,下列何者正確?
核心觀念
數據最小化原則(Data Minimization Principle)要求資料處理者只收集與特定目的相稱且必要的資料,並將資料的使用範圍及保存期間限制在達成目的所需的程度。核心在於降低不必要的資料處理與暴露風險,不是單純追求儲存成本或檔案大小最小化。
解題方法
抓住「必要」二字,逐一比對選項是否涵蓋資料收集、處理範圍與保存時間。能同時表達這些限制的選項,才符合原則的核心精神。
選項分析
第 39 題2 分
臺灣聯大教育聯盟現在要開發一套學生系統來記載聯盟中的學生資料,假設資料庫設計師給了一個如附圖的初稿,我們是否能根據這樣的設計查詢到學生是屬於哪個大學的學生?
(原卷附有資料庫設計圖;文字層未包含圖示內容。)
核心觀念
本題考查資料庫的實體識別、主鍵唯一性,以及由學生資料反查所屬大學的可行性。
圖中資料結構大致為:
University:以Name表示大學Department:以Name表示系所Student:以sid表示學生- 大學與系所、系所與學生之間透過
has關係連結
關鍵問題在於:Department.Name 是否能唯一對應到某一所大學。若不同大學可以有相同名稱的系所,僅由系所名稱便無法判斷學生屬於哪所大學。
解題方法
由學生反查大學的路徑為:
若某系所名稱只在一所大學出現,例如只有甲大學設有「特殊系」,則查到該系所後,可唯一推知學生屬於甲大學。
但若多所大學都有相同名稱的系所,例如甲、乙、丙大學都有「資訊工程學系」,而資料設計中沒有另外加入:
- 大學代碼;
- 系所代碼;
- 或由「大學代碼+系所名稱」組成的複合鍵,
則僅憑「資訊工程學系」無法唯一判斷學生屬於哪所大學。
因此,只有系所名稱具有唯一性,也就是其他大學沒有的特殊系所,才能依此設計反查出學生所屬大學。
選項分析
第 40 題2 分
class A
{
friend class B;
private:
static int data;
public:
A(){data++;}
};
class B
{
public:
void f(A var){
A.data+=1;
cout << A.data;
}
};
int A::data=1;
針對以上類別定義,且在 main() 中執行以下指令,則將產生的輸出為何?
A v1, v2, v3;
B v4;
v4.f(v1);
核心觀念
本題考 C++ 的 static 靜態資料成員、建構子,以及 friend 友元類別的存取權限。
A::data 是 A 類別的靜態資料成員,所有 A 物件共用同一份資料。B 被宣告為 A 的友元類別,因此 B 的成員函式可以存取 A 的私有成員 data。
解題方法
先追蹤所有 A 物件建構時,靜態變數 data 的變化:
- 類別外的定義
int A::data=1;將data初值設為 。 - 宣告
A v1, v2, v3;依序建構三個A物件。每次建構子執行data++,所以數值依序為 、、。 - 呼叫
v4.f(v1);時,參數A var會以v1複製建構。題目未自行定義複製建構子,因此使用編譯器產生的複製建構子;它不會執行A,所以不會再讓data加一。