115 身心障礙特考五等 電腦打字 計算機大意 考古題詳解
第 1 題2 分
現代處理器運作速度大於 DRAM,為了緩解處理器與記憶體之間效能瓶頸,硬體設計上利用程式執行時的「局部性原理」,所使用的硬體機制為何?
核心觀念
本題考查「局部性原理」與處理器、主記憶體之間的效能改善機制。
現代處理器的運算速度通常高於 DRAM。若處理器每次存取資料都必須直接等待 DRAM,將產生處理器等待記憶體的效能瓶頸。硬體設計因此在處理器與主記憶體之間配置速度較快、容量較小的快取記憶體(Cache Memory),利用程式執行時的局部性原理,提升資料存取速度。
局部性原理主要包括:
- 時間局部性(Temporal Locality):最近使用過的資料或指令,短時間內再次使用的機率較高。
- 空間局部性(Spatial Locality):與最近使用位置相鄰的資料或指令,很快也會被使用。
快取記憶體會將處理器近期使用的資料與指令暫存其中。處理器再次存取時,若在快取中找到資料,即為「快取命中(Cache Hit)」;若找不到,才需向較慢的主記憶體讀取,稱為「快取失誤(Cache Miss)」。
解題方法
題幹的關鍵線索是:
- 處理器速度大於 DRAM
- 存在處理器與記憶體之間的效能瓶頸
- 利用程式執行時的局部性原理
- 詢問所使用的硬體機制
能直接利用時間局部性與空間局部性,將常用資料及指令預先保存在處理器附近高速儲存區的硬體機制,就是快取記憶體。
其基本存取流程如下:
由於快取命中時不必等待 DRAM,平均記憶體存取時間可降低。簡化表示為:
因此,題幹所描述的硬體機制為快取記憶體。
選項分析
(A) 虛擬記憶體(Virtual Memory)錯誤
第 2 題2 分
在一個 3 對 8 解碼器(3-to-8 Decoder)電路中,若輸入端(Input)為二進位的 ,則輸出端(Output)的狀態為何?
核心觀念
3 對 8 解碼器(3-to-8 Decoder)具有 3 個輸入端與 8 個輸出端。其功能是將 3 位元二進位輸入解碼成 8 條輸出線中的其中一條。
3 位元輸入可表示:
因此輸出線通常依輸入值 至 分別對應第 0 條至第 7 條線。採用一般「高電位有效」(active-high)的定義時,輸入所代表的那一條輸出線為高電位,其餘輸出線為低電位。
解題方法
題目給定輸入為:
將二進位轉換為十進位:
因此,解碼器會選取第 6 條輸出線,使第 6 條線呈現高電位:
其餘輸出線皆為低電位:
選項分析
- (A) 與第 3 條線相同:錯誤。 輸入 所代表的數值是 6,不是 3。第 3 條線對應的輸入應為 。
第 3 題2 分
在作業系統排程中,針對「優先權排程」(Priority Scheduling)可能導致低優先權行程長期無法取得 CPU 的「飢餓」問題,下列何種技術最能有效改善此現象?
核心觀念
本題考查作業系統的「優先權排程」(Priority Scheduling)與「飢餓」(Starvation)。
在優先權排程中,CPU 通常優先配置給優先權較高的行程。若高優先權行程持續抵達,低優先權行程可能長時間停留在就緒佇列中,始終無法獲得 CPU,此現象稱為飢餓。
解決飢餓的典型方法是 Aging 機制:行程在就緒佇列中等待的時間越久,其優先權便逐步提高,使長期等待的低優先權行程最終能夠取得 CPU。
解題方法
判斷本題的關鍵,在於確認各選項是否能直接處理「低優先權行程長期等待」的問題。
Aging 的基本概念可表示為:
當低優先權行程等待時間足夠長時,其優先權可能提升至高於新到達的行程,排程器便會選擇執行該行程,因而避免永久等待。
因此,最能直接改善優先權排程飢餓問題的技術是 Aging 機制。
選項分析
(A) 使用「銀行家演算法」(Banker's Algorithm)進行預防:錯誤
銀行家演算法主要用於死結避免(Deadlock Avoidance),在行程提出資源要求時,系統會檢查核准該要求後是否仍處於安全狀態。
它處理的是:
- 多個行程競爭有限資源;
- 資源配置是否可能導致死結;
- 系統是否存在安全序列。
本題的飢餓問題則是低優先權行程長期無法取得 CPU,兩者成因與解決方式不同。銀行家演算法並不會因行程等待時間增加而提高其 CPU 排程優先權,因此無法直接解決本題問題。
(B) 實施「Aging 機制」改變待命行程的優先權:正確
第 4 題2 分
作業系統將 CPU 運作區分為「使用者模式」(User Mode)與「核心模式」(Kernel Mode),其最核心的目的是:
核心觀念
本題考查作業系統的「雙模式運作」(Dual-Mode Operation),也就是將 CPU 執行環境區分為:
- 使用者模式(User Mode):一般應用程式執行的模式,權限受到限制。
- 核心模式(Kernel Mode):作業系統核心執行的模式,具有較高權限,可執行特權指令並管理硬體資源。
其最核心的目的,是建立「權限隔離與硬體保護機制」,避免一般應用程式任意存取硬體、修改核心資料或干擾其他程式。
解題方法
判斷本題時,應抓住「使用者模式與核心模式為何要分開」這個核心。
一般程式若能直接執行硬體控制、記憶體管理或中斷控制等特權操作,可能造成:
- 破壞作業系統核心
- 讀取或竄改其他程式的資料
- 直接控制磁碟、網路卡等硬體
- 使整個系統當機或產生資安問題
因此,作業系統限制一般程式只能在使用者模式執行。當程式需要檔案存取、輸入輸出或其他受保護服務時,必須透過**系統呼叫(System Call)**請求作業系統代為處理,CPU 再由使用者模式切換至核心模式。
其基本流程可表示為:
這種設計的主要功能就是防止一般程式直接控制硬體,故選 (C)。
選項分析
(A) 加速系統開機:錯誤
使用者模式與核心模式的區分,重點在於權限管理、硬體保護與系統安全,並非用來縮短開機時間。
第 5 題2 分
本題數字均為十進位表示。
在記憶體中,一個 的三維陣列 中,若採用「以列為主」(Row-major Order)儲存,每個元素占用 4 個位元組(Byte),且 的起始位址為 1000,則 的記憶體起始位址為何?
核心觀念
本題考查三維陣列採用「以列為主」(Row-major Order)儲存時,各維度的排列順序、元素位移量,以及位址計算。
陣列 的索引範圍為:
- 第一維:
- 第二维:
- 第三維:
採用 Row-major Order 時,最右邊的索引變化最快,因此儲存順序為:
每個元素占用 Bytes, 的起始位址為 。
解題方法
三維陣列 的 Row-major 位移量公式為:
其中:
- 第一維每增加 ,需跨過一個 的區塊
- 第二维每增加 ,需跨過 個元素
- 第三維每增加 ,只需移動 個元素
代入 :
因此,該元素相對於 往後第 個元素。
換算成位元組位移量:
所以記憶體起始位址為:
第 6 題2 分
設計一個 Web Browser 的回溯機制時,若要同時支援「上一頁」與「下一頁」功能(即在回退後仍能前進),最有效率的實作方式是使用:
核心觀念
本題考查 Stack(堆疊)的「後進先出」(LIFO, Last In First Out)特性,以及 Web Browser 瀏覽歷史的回溯與前進機制。
瀏覽器必須同時記錄兩種歷史:
- 後退歷史:目前頁面之前曾瀏覽的頁面。
- 前進歷史:按下「上一頁」後,仍可返回的頁面。
因此,最適合使用兩個 Stack:
- Back Stack:儲存可回到的上一頁。
- Forward Stack:儲存可前往的下一頁。
兩個 Stack 都能以常數時間 完成頂端資料的新增與取出,符合瀏覽器回溯操作的需求。
解題方法
可用三種操作說明其運作方式。
假設瀏覽順序為:
此時:
- Back Stack:
- 目前頁面:
- Forward Stack:空
按下「上一頁」
執行以下步驟:
- 將目前頁面 推入 Forward Stack。
- 從 Back Stack 取出頂端頁面 ,作為目前頁面。
結果為:
- Back Stack:
- 目前頁面:
- Forward Stack:
按下「下一頁」
執行以下步驟:
- 將目前頁面 推入 Back Stack。
- 從 Forward Stack 取出頂端頁面 ,作為目前頁面。
結果為:
- Back Stack:
- 目前頁面:
- Forward Stack:空
瀏覽新頁面時
若目前位於 ,再輸入新網址前往 :
- 將 推入 Back Stack。
- 將 設為目前頁面。
- 清空 Forward Stack。
原因是使用者建立新的瀏覽分支後,原本的「下一頁」歷史已不再適用。
此設計可使上一頁與下一頁操作都直接針對 Stack 頂端進行,時間複雜度為:
整體空間複雜度則與瀏覽歷史數量 成正比:
選項分析
(A) 單一個大型 Stack
第 7 題2 分
已知某二元樹(Binary Tree)的拜訪序列如下:
前序(Pre-order):
中序(In-order):
試問該二元樹正確的後序(Post-order)拜訪序列為何?
核心觀念
本題考查二元樹三種拜訪順序:
- 前序(Pre-order):根節點 → 左子樹 → 右子樹
- 中序(In-order):左子樹 → 根節點 → 右子樹
- 後序(Post-order):左子樹 → 右子樹 → 根節點
解題關鍵是利用前序序列找出每個子樹的根節點,再利用中序序列判斷該根節點的左、右子樹範圍,最後依後序規則排列。
解題方法
已知:
前序:
中序:
一、找出整棵樹的根節點
前序的第一個節點一定是整棵樹的根,因此根節點為 。
在中序序列中, 將節點分成:
- 左子樹:
- 右子樹:
因此樹的結構可先表示為:
二、建立左子樹
左子樹在前序中的節點為:
前序第一個節點 是左子樹的根。
在中序的左子樹 中:
- 左側沒有節點
- 右側為
因此 沒有左子樹,右子樹根為 。
對 而言,中序排列為:
所以 沒有左子樹,右子樹為節點 。
左子樹的後序順序為:
三、建立右子樹
右子樹在前序中的節點為:
前序第一個節點 是右子樹的根。
在中序的右子樹 中:
- 左側為
- 右側為
因此:
- 的左子樹包含
- 的右子樹為
的左子樹
左子樹的前序節點為:
根節點為 。在中序 中, 左側為 ,因此 的左子樹為節點 。
其後序順序為:
的右子樹
只有節點 ,因此後序順序為:
第 8 題2 分
在一棵「二元搜尋樹」(Binary Search Tree)中,左子樹的所有節點值必小於根節點,右子樹的所有節點值必大於根節點。若依序插入數值 50、30、70、20(不進行再平衡運算),則 20 會位於何處?
核心觀念
本題考查二元搜尋樹(Binary Search Tree, BST)的節點插入規則:
- 左子樹所有節點值均小於根節點。
- 右子樹所有節點值均大於根節點。
- 插入新節點時,從根節點開始逐一比較,較小者往左走,較大者往右走。
- 題目明確說「不進行再平衡運算」,因此只依照原本的插入位置放置節點。
解題方法
依序插入 :
-
插入 成為根節點。
-
插入 比較 與 :
因此 放在 的左子節點。
- 插入 比較 與 :
因此 放在 的右子節點。
- 插入 先與根節點 比較:
所以往 的左子樹走,再與左子節點 比較:
因此 放在 的左子節點。
樹的結構如下:
50
/ \
30 70
/
20
選項分析
第 9 題2 分
關於「最小生成樹」(Minimum Spanning Tree, MST),下列敘述何者正確?
核心觀念
最小生成樹(Minimum Spanning Tree, MST)是針對「連通、無向、帶權重圖」所定義的概念。
若圖 共有 個頂點,生成樹必須符合:
- 包含圖中的全部頂點。
- 圖形保持連通。
- 不包含任何環路。
- 恰有 條邊。
在所有可能的生成樹中,總權重最小者稱為最小生成樹,其總權重為:
MST 最小化的是「所選樹邊的權重總和」,不是整張圖所有邊的權重總和。
解題方法
判斷本題可直接掌握 MST 的完整定義:
MST 是「包含圖中所有頂點,且總權重最小的樹」。
因此,只要選項同時具備「所有頂點」與「總權重最小的樹」兩項條件,即符合 MST 定義。
選項分析
(A) 包含圖中所有權重中總和最小的圖
錯誤。
MST 並不是選出一個「總權重最小的圖」,而是在原圖中選取部分邊,形成一棵包含所有頂點的樹。
此外,MST 計算的是被選取邊的權重總和:
並非將圖中所有邊的權重全部相加。原圖通常包含許多不會被納入 MST 的邊。
(B) 包含圖中所有頂點且總權重最小的樹
正確。
這正是最小生成樹的定義。MST 必須涵蓋原圖全部頂點,並在所有可能的生成樹中,使邊的總權重最小。
第 10 題2 分
若要從 100 萬筆「未排序」的資料中找尋一個特定數值,最壞情況下大約需要比較幾次?
核心觀念
本題考的是「未排序資料的搜尋」與線性搜尋(Linear Search)的最壞情況分析。
當資料未排序時,無法直接利用資料大小關係排除大量項目,因此通常必須從第一筆開始,逐筆與目標值比較。若資料共有 筆,線性搜尋的最壞情況比較次數為:
最壞情況包括:
- 目標值位於最後一筆;
- 目標值不存在於資料中,必須檢查完全部資料。
解題方法
題目給定未排序資料共 萬筆:
在未排序的情況下,搜尋特定數值時,無法使用二分搜尋法直接縮小範圍,只能逐筆比較。最壞情況必須比較所有資料:
因此最壞情況下大約需要比較 萬次,選擇 (D)。
選項分析
-
(A) 1 次:錯誤。 次比較只可能是最佳情況,例如目標值剛好位於第一筆。題目問的是「最壞情況」,不能以最佳情況作答。
-
(B) 20 次:錯誤。 次通常與二分搜尋法的概念有關,因為:
第 11 題2 分
在物件導向中,類別(Class)與物件(Object)的關係與記憶體空間占用情形,最適合用下列哪一個敘述來形容?
核心觀念
本題考查物件導向中的兩個基本概念:
- Class(類別):描述物件的共同資料與行為,可視為建立物件的「設計圖」或「樣板」。
- Object(物件):類別所建立出的具體實例(instance),具有實際的屬性值,通常會在執行時配置記憶體空間。
例如:
Class:汽車
Object:小明的汽車、公司的汽車
類別本身是規格描述;物件則是依照該規格建立的實體。因此,考試中的基本判斷是:
Class 如設計圖,Object 如依設計圖建造出的實體;物件會占用實際執行記憶體。
解題方法
逐一檢查各選項是否同時符合下列兩點:
- 是否正確比喻 Class 與 Object 的關係。
- 是否正確描述 Class 與記憶體空間的關係。
最符合「設計圖與實體」概念的比喻,就是「建築設計圖與實際建好的房子」。設計圖描述房屋的結構,但真正建造出的房子才是具體實體,對應到物件建立後的記憶體配置。
選項分析
(A) 建築設計圖與實際建好的房子,Class 不會占用記憶體
正確。
- 建築設計圖可比喻為 Class。
- 實際建好的房子可比喻為 Object。
- 設計圖是建立房子的規格與依據;房子則是具體產物。
- 依照本題採用的物件導向基本模型,Class 本身不代表某一個具體物件的資料配置,實際建立出的 Object 才占用記憶體。
因此本選項完整符合題意。
(B) 人的身體與所包含的眼睛(眼睛固著於身體),Class 會占用記憶體
錯誤。
「身體包含眼睛」主要是在比喻物件之間的整體與部分關係,且眼睛固著於身體,較接近物件導向中的 Composition(組合),不是 Class 與 Object 的基本關係。
第 12 題2 分
在 SQL 查詢語法中,若要從「考生」資料表中篩選出「成績大於 60 分」且「按成績由高到低」排列,應如何撰寫?
核心觀念
本題考查 SQL 查詢中的兩個子句:
WHERE:設定篩選條件,只保留符合條件的資料列。ORDER BY:指定查詢結果的排序方式。ASC:升冪,由小到大,為預設值。DESC:降冪,由大到小。
題目要求:
- 從「考生」資料表查詢資料。
- 篩選「成績大於 60 分」。
- 按「成績由高到低」排列。
因此必須使用:
SELECT *
FROM 考生
WHERE 成績 > 60
ORDER BY 成績 DESC;
解題方法
依 SQL 查詢的基本結構判斷:
各部分功能如下:
SELECT *:選取所有欄位。FROM 考生:資料來源為「考生」資料表。WHERE 成績 > 60:只保留成績大於 60 分的考生。ORDER BY 成績 DESC:依成績欄位採降冪排列,也就是由高到低。
所以正確語法為:
SELECT * FROM 考生 WHERE 成績 > 60 ORDER BY 成績 DESC
選項分析
(A) SELECT * FROM 考生 WHERE 成績 > 60 ORDER BY 成績 DESC
正確。
WHERE 成績 > 60正確完成「成績大於 60 分」的篩選。ORDER BY 成績 DESC正確完成「按成績由高到低」的排序。- 語法順序也符合 SQL 查詢結構。
(B) SELECT * FROM 考生 WHERE 成績 > 60 GROUP BY 成績 ASC
錯誤。
第 13 題2 分
在網路拓樸(Topology)中,若有一台中央集線器(Hub)或交換器(Switch)連接所有電腦,當中央設備故障時整個網路即癱瘓,這種架構稱為:
核心觀念
本題考查網路拓樸的基本特徵。若所有電腦都各自連接到同一台中央設備,例如集線器(Hub)或交換器(Switch),則此網路採用星狀拓樸(Star Topology)。
星狀拓樸的結構可表示如下:
各電腦彼此通常不直接連線,而是透過中央設備傳送資料。因此,中央設備是整個網路的關鍵節點;一旦中央設備故障,所有連線均會中斷,整個網路便可能癱瘓。
解題方法
題幹提供兩項關鍵線索:
- 有一台中央集線器或交換器。
- 所有電腦都連接到該中央設備。
「所有節點連接至同一個中央節點」正是星狀拓樸的定義。中央設備故障導致整體網路失效,也符合星狀拓樸的典型缺點,因此可直接判定答案為星狀拓樸。
選項分析
(A) 匯流排拓樸(Bus Topology)錯誤
匯流排拓樸是所有電腦共同連接到一條主要傳輸幹線,資料會沿著這條幹線傳送。
其主要特徵是:
- 沒有中央集線器作為所有電腦的共同連接中心。
- 主要傳輸幹線若故障,可能造成整個網路中斷。
- 常見於早期乙太網路架構。
題幹強調的是「中央設備」故障,而不是共同傳輸幹線故障,因此不是匯流排拓樸。
(B) 環狀拓樸(Ring Topology)錯誤
環狀拓樸將各電腦依序連接,形成封閉環狀路徑,每台電腦通常與左右相鄰節點相連。
其主要特徵是:
第 14 題2 分
近年來出現利用「生成式 AI」(Generative AI)偽造(Deepfake)他人聲音與長相,並透過視訊通話進行詐騙,這種攻擊手段主要屬於下列哪一種範疇?
核心觀念
本題考查常見網路攻擊類型的定義與辨識。題幹描述攻擊者利用生成式 AI 偽造他人的聲音、臉部影像或身分,再透過視訊通話誘騙被害人相信其為特定人物,核心在於「欺騙人」與「冒用身分」,因此屬於社交工程與身分偽裝攻擊。
- 社交工程(Social Engineering):利用心理操弄、信任關係或錯誤資訊,使被害人洩漏資料、提供金錢或執行特定操作。
- 身分偽裝(Impersonation):冒用他人的姓名、聲音、外貌、帳號或其他身分特徵,使被害人誤認攻擊者為該名人士。
- Deepfake:利用人工智慧產生或修改高度逼真的影像、聲音或影片。Deepfake 本身是偽造技術,實際攻擊分類須依其使用目的判斷;本題的用途是冒用身分並進行詐騙。
解題方法
判斷此類題目可先觀察攻擊的「主要作用對象」:
- 若攻擊重點是癱瘓網站或網路服務,屬於 DoS 或 DDoS。
- 若攻擊重點是加密檔案、索取贖金,屬於勒索軟體。
- 若攻擊重點是利用假身分、假訊息或心理操弄,使人受騙,屬於社交工程與身分偽裝。
本題中,生成式 AI 被用來偽造聲音與長相,並透過視訊通話欺騙被害人。攻擊的直接目標不是系統可用性,也不是檔案加密,而是使人誤信攻擊者身分,進而遭受詐騙。因此答案為 (B)。
選項分析
(A) 阻斷服務(DoS)—錯誤
DoS(Denial of Service)是攻擊者透過大量請求、消耗系統資源或利用系統弱點,使伺服器、網站或網路服務無法正常提供服務。
其主要特徵是:
- 破壞服務的可用性;
- 使合法使用者無法連線或使用系統;
- 通常不以偽造他人身分、誘騙被害人為主要手段。
題幹重點是 Deepfake 冒用身分進行詐騙,沒有描述服務遭到癱瘓,因此不是 DoS。
(B) 社交工程與身分偽裝(Social Engineering / Impersonation)—正確
攻擊者利用 AI 偽造他人的聲音與長相,使被害人誤認視訊通話中的對象是真正的親友、主管、政府人員或其他可信任人士,再藉此要求匯款、提供帳密或透露機密資訊。
這同時具備:
第 15 題2 分
在非對稱加密架構中,若 A 要傳送一份「既要確保內容機密,又要確保身分不可否認」的郵件給 B,請問 A 應該依序使用哪些金鑰處理?
核心觀念
本題考查非對稱加密中「機密性」與「身分不可否認性」所對應的金鑰使用方式:
- 確保內容機密:使用收件者 B 的公鑰加密,只有 B 能用自己的私鑰解密。
- 確保身分不可否認:使用寄件者 A 的私鑰進行數位簽章,B 可用 A 的公鑰驗證確實由 A 發出。
題目中的「用私鑰加密」是傳統考試常見的簡化說法,實務上通常稱為「以私鑰產生數位簽章」,並搭配雜湊函數驗證訊息完整性與來源。
解題方法
A 必須同時完成兩件事:
- 先以 A 的私鑰處理郵件內容,形成數位簽章,以證明郵件確實由 A 發出,並提供不可否認性。
- 再以 B 的公鑰加密處理後的內容,確保只有 B 能讀取郵件內容。
流程可表示為:
B 收到後,依相反順序處理:
因此,A 應先使用自己的私鑰,再使用 B 的公鑰,答案為 (A)。
選項分析
(A) 用 A 的私鑰加密,再用 B 的公鑰加密——正確
- A 的私鑰:建立數位簽章,讓 B 可用 A 的公鑰驗證寄件者身分。
- B 的公鑰:加密郵件內容,只有 B 能用 B 的私鑰解密。
- 同時滿足「身分不可否認」與「內容機密」兩項要求。
第 16 題2 分
下列哪一組電腦發展技術依時間先後順序(由早到晚)排列正確?
核心觀念
本題考查電腦硬體技術的發展順序,判斷依據是各項電子元件成為電腦主要核心技術的先後:
- 真空管(Vacuum Tube):早期電腦使用的主要電子元件。
- 電晶體(Transistor):取代體積大、耗電高且可靠性較低的真空管。
- 積體電路(Integrated Circuit, IC):將多個電子元件整合在單一晶片上。
- 微處理器(Microprocessor):將中央處理器的主要功能整合至單一晶片中。
因此,標準的發展順序為:
解題方法
本題採「電腦世代與核心元件」的時間序列判斷法:
- 第一代電腦:以真空管為主要元件。
- 第二代電腦:以電晶體取代真空管。
- 第三代電腦:使用積體電路。
- 第四代電腦:以微處理器為重要發展基礎。
依世代先後排列,即可得到:
所以正確選項為 (B)。
選項分析
(A) 電晶體 → 真空管 → 積體電路 → 微處理器
錯誤。真空管的出現早於電晶體,電晶體是後來用來取代真空管的技術。此選項將電晶體與真空管的先後順序顛倒。
正確順序應為:
第 17 題2 分
十六進位數值 等於多少十進位數值?
核心觀念
本題考查十六進位與十進位之間的轉換。
十六進位使用 16 個符號:
- ~ 分別代表 ~
- ~ 分別代表 ~
十六進位各位數的權重由右至左依序為 ……。
解題方法
十六進位數 中:
- ,位於 位
- ,位於 位
因此:
所以十六進位數 等於十進位數 。
選項分析
- (A) 175:正確。 。
第 18 題2 分
在 IEEE 754 單倍精度(32 位元)浮點數表示法中,指數(Exponent)欄位是採用下列何種表示方式?
核心觀念
IEEE 754 單倍精度浮點數共有 32 位元,格式如下:
其中,Exponent 欄位不是直接儲存實際指數 ,而是採用「偏移量表示法」(Bias Representation),將實際指數加上固定偏移值後儲存。
單倍精度的偏移值為:
對於一般化數值(normalized number),實際指數 與 Exponent 欄位儲存值 的關係為:
解讀時則反算為:
例如,實際指數 時:
因此 Exponent 欄位會儲存十進位 ,而不是直接以二補數儲存 。
解題方法
判斷 IEEE 754 的指數表示方式,可直接掌握兩個重點:
- 指數可能為正數,也可能為負數。
- Exponent 欄位本身採用無號欄位儲存,實際正負由 Bias 解讀。
單倍精度使用 8 位元 Exponent 欄位,Bias 為 。因此:
- 實際指數 時,儲存值為 。
- 實際指數 時,儲存值為 。
- 實際指數 時,儲存值為 。
藉由加上固定偏移量,便能在不使用符號位元的情況下表示正、負指數,這就是偏移量表示法。
選項分析
(A) 二補數表示(Two’s Complement)錯誤
二補數是整數常見的有號表示法,利用最高位元表示數值正負,並以補數規則表示負數。
IEEE 754 單倍精度的 Exponent 欄位不是以二補數直接表示實際指數,而是儲存:
因此本選項不符合 IEEE 754 的指數欄位設計。
(B) 一補數表示(One’s Complement)錯誤
第 19 題2 分
是利用二補數表示的數值,其對應的十進位數值為何?
核心觀念
本題考查 8 位元二補數(Two’s Complement) 的十進位轉換。
在 8 位元二補數中:
- 最高位為 :表示非負數,直接按照二進位換算。
- 最高位為 :表示負數,數值可用下列兩種方法求得:
- 對所有位元取反,再加 ,所得結果為負數的絕對值。
- 最高位權重視為 ,其餘位元依一般二進位權重計算。
題目給定 ,最高位為 ,因此這是負數。
解題方法一:取反加一
原數:
先逐位取反:
再加 :
將 轉換為十進位:
原二補數表示的是負數,因此:
解題方法二:直接使用位元權重
8 位元二補數的最高位權重為 ,其餘位元權重不變:
因此答案為 。
選項分析
- (A) :錯誤。 題目位元的低 7 位為 ,其正值為:
第 20 題2 分
若採用 8 位元二補數表示法,下列哪一組加法會超出表示範圍?
核心觀念
8 位元二補數(Two’s Complement)可表示的整數範圍為:
判斷二補數加法是否溢位,重點如下:
- 正數加正數,結果超過 ,發生溢位。
- 負數加負數,結果小於 ,發生溢位。
- 正數加負數,結果必定落在可表示範圍內,不會發生溢位。
8 位元二補數的最高位(最左邊一位)為符號位:
- 表示非負數
- 表示負數
解題方法
逐一判斷各選項的符號,再將二補數轉換為十進位計算,確認結果是否超出 至 的範圍。
選項分析
(A)
兩數最高位皆為 ,表示正數。
相加得:
,超出 8 位元二補數的正數表示範圍,因此發生溢位。
以二進位相加:
結果最高位為 ,若直接解讀為二補數, 代表負數;但原本是兩個正數相加,結果不可能正確變成負數,這正是正數加正數溢位的典型現象。
因此,(A) 正確。
(B)
兩數最高位皆為 ,表示負數。
的二補數值:
- 反相:
- 加 :
所以:
的二補數值:
- 反相:
- 加 :
所以:
相加得:
落在 至 的範圍內,不會溢位。
二進位結果為:
第 21 題2 分
印表機列印速度常用下列何種單位?
核心觀念
本題考查印表機列印速度的常用衡量單位。
印表機的列印速度通常以「每分鐘可列印多少頁」表示,英文為 pages per minute,縮寫為 ppm。
其定義為:
因此,ppm 數值越高,代表印表機每分鐘能完成的列印頁數越多,列印速度通常越快。
解題方法
判斷各選項的英文縮寫所代表的物理量,再與「印表機列印速度」的測量對象比對:
- 印表機列印速度:看每分鐘列印幾頁,使用 ppm。
- 印表機解析度:看每英吋可呈現多少點,使用 dpi。
- 資料傳輸速度:看每秒傳送多少位元,使用 bps。
- 打字或操作速度:常以每分鐘操作次數等方式表示,使用 apm。
所以本題應選擇表示「每分鐘頁數」的 ppm。
選項分析
(A) dpi
dpi 是 dots per inch 的縮寫,中文為「每英吋點數」,主要用來表示印表機或螢幕的解析度。
例如:
第 22 題2 分
若一張圖片的每一像素使用 10 位元表示顏色,最多可表示多少種顏色?
核心觀念
本題考查影像的「色彩深度」(Color Depth)。若每一像素使用 位元表示顏色,則每一位元有 、 兩種狀態,因此最多可表示的顏色種類為:
本題每一像素使用 位元,因此 。
解題方法
將 位元代入公式:
亦可利用:
所以一張圖片的每一像素最多可表示 種顏色。
選項分析
-
(A) 256:錯誤。 ,代表每一像素使用 位元,而非題目所述的 位元。
-
(B) 512:錯誤。 ,代表每一像素使用 位元。
第 23 題2 分
字元序列 "aaaababbaccdede" 以其出現頻率建立霍夫曼編碼,不計編碼表與樹的儲存成本,最少需多少 bits 來表示?
核心觀念
本題考查霍夫曼編碼(Huffman Coding)。霍夫曼編碼的原則是:
- 統計每個字元的出現頻率。
- 每次選取目前頻率最小的兩個節點合併。
- 持續合併至形成完整二元樹。
- 字元的編碼長度等於其在霍夫曼樹中的深度。
- 所需總位元數為:
本題不計編碼表與霍夫曼樹的儲存成本,只計算實際字元序列的編碼位元數。
解題方法
字元序列為:
統計各字元頻率:
| 字元 | 頻率 |
|---|---|
| a | 6 |
| b | 3 |
| c | 2 |
| d | 2 |
| e | 2 |
頻率總和為:
依霍夫曼演算法,逐步合併最小頻率:
剩餘頻率為:
接著:
剩餘頻率為:
再合併:
最後:
因此,霍夫曼合併過程的成本總和為:
這也就是所有字元編碼長度加權後的最少總位元數。
以編碼長度直接驗算
第 24 題2 分
設 與 為單一位元(二進位 bit)變數,下列何種布林函式可判斷 (亦即當 時輸出 1,否則輸出 0)?
核心觀念
與 都是單一位元,因此各自只有 、 兩種值。判斷 時,逐一比較四種組合:
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
因此, 唯一成立的情況是:
布林代數中:
- 表示 的反相,亦即「」。
- 表示「 且 」。
所以判斷單一位元 的布林函式為:
解題方法
單一位元的大小關係只有一種情況會使 成立:
將這個條件轉換為布林條件:
- :以 表示。
- :以 表示。
- 兩個條件必須同時成立:使用 AND,也就是相乘。
因此:
故正確選項為 (C)。
選項分析
(A)
此式表示:
- ,或
- 。
這是 XOR(互斥或):
第 25 題2 分
作業系統使多個程式「看起來同時執行」時,通常是透過下列何種機制達成?
核心觀念
本題考查作業系統的「多工」與「分時作業」觀念。
單一 CPU 核心在同一瞬間通常只能執行一個執行緒。作業系統會將 CPU 的執行時間切割成許多短時間片(time slice),讓不同程式依序取得 CPU 使用權,並透過快速的工作切換(context switching),使使用者感覺多個程式正在同時執行。
此種以時間片分配 CPU 使用時間的機制,即為 CPU 分時作業(Time Sharing)。
解題方法
題幹的關鍵字是「多個程式看起來同時執行」。判斷重點在於:哪一個機制負責分配 CPU 執行時間,讓多個程式輪流執行?
作業系統的基本流程如下:
- 將 CPU 時間切分為多個時間片。
- 程式 A 執行一小段時間後,由排程器暫停程式 A。
- 保存程式 A 的執行狀態。
- 切換至程式 B 執行。
- 依序讓其他程式取得 CPU。
- 由於切換速度很快,使用者便感覺多個程式同時執行。
因此,正確答案為 CPU 分時作業。
選項分析
(A) CPU 分時作業(Time Sharing)—正確
CPU 分時作業將處理器時間分成許多短時間片,再由作業系統排程器分配給不同程式。程式之間透過快速切換取得 CPU 使用權,形成多工執行的效果。
在單核心 CPU 中,這種方式是「快速輪流執行」,並非真正的同一瞬間平行執行;在多核心 CPU 中,則可搭配平行處理,使不同核心同時執行不同工作。
(B) 快取記憶體(Cache Memory)—錯誤
第 26 題2 分
CPU 時脈頻率為 3.2 GHz,所代表的意義為下列何者?
核心觀念
本題考查 CPU「時脈頻率」(clock frequency)的定義與單位換算。
時脈頻率表示 CPU 內部時脈訊號每秒振盪、產生多少個週期,單位為赫茲(Hz):
因此:
這代表 CPU 每秒約產生 個時脈週期。
解題方法
看到「時脈頻率」時,直接將頻率單位 GHz 轉換為 Hz:
所以:
而 Hz 的意義就是「每秒的週期數」,故正確敘述為每秒約產生 個時脈週期。
選項分析
(A) CPU 總共擁有 32 個運算核心
錯誤。CPU 核心數是處理器的硬體核心數量,例如 4 核心、8 核心,與時脈頻率是不同規格。題目中的 是頻率數值,不代表核心數;而且選項寫成 32 個核心,也沒有由 推導出來的依據。
(B) 每秒資料傳輸速率為 3.2 GB
第 27 題2 分
若對堆疊(Stack)執行下列的動作:push 1、pop、push 2、push 3、pop、pop,其輸出依序為何?
核心觀念
本題考查堆疊(Stack)的後進先出(Last In, First Out, LIFO)特性:
push:將資料放入堆疊頂端。pop:取出並輸出堆疊頂端的資料。- 每次
pop後,該資料即離開堆疊。
因此,最晚放入堆疊的資料會最先被取出。
解題方法
依序執行各項操作:
| 操作 | 堆疊內容(由底至頂) | 輸出 |
|---|---|---|
push 1 | 1 | — |
pop | 空 | 1 |
push 2 | 2 | — |
push 3 | 2、3 | — |
pop | 2 | 3 |
pop | 空 | 2 |
依序記錄三次 pop 的輸出:
合併為:
選項分析
第 28 題2 分
堆積(Heap)屬於哪種類型的二元樹?
核心觀念
堆積(Heap)是一種以二元樹表示的優先佇列資料結構,必須同時符合兩項條件:
- 結構條件:必須是完全二元樹(Complete Binary Tree)。
- 順序條件:必須符合堆積順序(Heap Order)。
- 最大堆(Max Heap):父節點值大於或等於子節點值。
- 最小堆(Min Heap):父節點值小於或等於子節點值。
因此,題目詢問「堆積屬於哪種類型的二元樹」,關鍵在於辨認堆積的結構條件。
解題方法
完全二元樹的定義是:
- 除了最後一層之外,其餘各層都必須填滿;
- 最後一層的節點必須由左至右排列,中間不可留空。
二元堆積正是以此結構建立,通常也能使用陣列儲存。若以陣列索引從 開始:
- 父節點索引為
- 左子節點索引為
- 右子節點索引為
這種規則能有效運作的前提,就是堆積具有完全二元樹的結構。
因此,堆積必定是完全二元樹;但僅具備完全二元樹結構,還不足以成為堆積,仍須符合最大堆或最小堆的順序條件。
選項分析
(A) 完全二元樹(Complete Binary Tree)— 正確
堆積的結構必須是完全二元樹,並且再加上堆積順序條件。因此,這是本題的正確答案。
例如下列樹形符合完全二元樹結構:
90
/ \
70 80
/ \ /
40 50 60
若每個父節點的值都大於子節點,則它同時是最大堆。
(B) 完滿二元樹(Full Binary Tree)— 錯誤
完滿二元樹的定義是:每個節點不是沒有子節點,就是恰好有兩個子節點;不允許只有一個子節點的節點。
完全二元樹可以出現只有一個子節點的節點,例如:
第 29 題2 分
下列何種資料結構最常用來實作堆積(Heap)?
核心觀念
本題考「堆積(Heap)」的資料結構表示方式。
堆積是一種以**完全二元樹(Complete Binary Tree)**為基礎的樹狀資料結構,並且符合堆積性質:
- 最大堆積(Max-Heap):每個父節點的值大於或等於子節點。
- 最小堆積(Min-Heap):每個父節點的值小於或等於子節點。
由於完全二元樹的節點排列緊密、沒有過多空缺,非常適合使用陣列依序儲存,因此堆積最常以**陣列(Array)**實作。
解題方法
判斷本題的關鍵在於掌握完全二元樹與陣列索引之間的對應關係。
若採用從 開始的陣列索引,對於位於第 個位置的節點:
- 父節點位置為
- 左子節點位置為
- 右子節點位置為
若採用從 開始的陣列索引:
- 左子節點位置為
- 右子節點位置為
- 父節點位置為
這種儲存方式不需要額外記錄左、右指標,只要透過索引計算即可找到父子節點。因此,插入、刪除及調整堆積時,皆能有效率地進行。
選項分析
(A) 陣列(Array)— 正確
陣列最常用來實作堆積,原因包括:
- 堆積本質上是完全二元樹,節點排列連續。
- 陣列可以依照層序排列儲存所有節點。
- 父子節點的位置可利用索引公式直接計算。
- 不需要額外配置指標欄位,節省記憶體空間。
第 30 題2 分
對於一棵二元搜尋樹(Binary Search Tree),下列何種拜訪方式可得到節點鍵值為遞增排序結果?
核心觀念
二元搜尋樹(Binary Search Tree, BST)具有以下性質:
- 左子樹中所有節點的鍵值小於根節點鍵值。
- 右子樹中所有節點的鍵值大於根節點鍵值。
- 對每一個子樹皆成立相同規則。
「中序拜訪」(Inorder Traversal)的順序是:
由於 BST 的左子樹鍵值均小於根節點,右子樹鍵值均大於根節點,因此中序拜訪會依序輸出由小到大的節點鍵值。
解題方法
以 BST 的根節點為例:
- 先拜訪左子樹,取得所有較小的鍵值。
- 再拜訪根節點。
- 最後拜訪右子樹,取得所有較大的鍵值。
此順序可表示為:
對每一層子樹重複此程序後,整棵樹的節點鍵值便會形成遞增排序結果。
例如:
8
/ \
3 10
/ \ \
1 6 14
進行中序拜訪:
結果即為遞增排序。
選項分析
(A) 層序拜訪(Level-order Traversal)錯誤
層序拜訪是依照樹的層級,由上而下、由左而右處理節點,順序為:
它重視的是節點所在的深度,不保證鍵值大小順序。
以上述範例而言,層序拜訪結果為:
並非遞增排序。
(B) 前序拜訪(Preorder Traversal)錯誤
第 31 題2 分
在關聯式資料庫(Relational Database)設計中,關於主鍵(Primary Key)與外來鍵(Foreign Key)的敘述,下列何者錯誤?
核心觀念
本題考查關聯式資料庫中的主鍵(Primary Key)與外來鍵(Foreign Key):
-
主鍵:用來唯一識別資料表中的每一筆資料。
-
不可重複。
-
不可為
NULL。 -
可由單一欄位或多個欄位組成;由多個欄位組成時稱為複合主鍵(Composite Primary Key)。
-
外來鍵:資料表中的欄位,其值參照另一資料表的主鍵或候選鍵,用來建立資料表之間的關聯。
-
可以重複。
-
在未設定
NOT NULL的情況下,通常可以為NULL。 -
不要求唯一;是否唯一須視資料表設計及額外限制而定。
解題方法
判斷各選項是否符合主鍵、外來鍵的基本定義:
- 看到「主鍵」時,檢查是否涉及唯一性、非空性、單一欄位限制。
- 看到「外來鍵」時,檢查是否誤把主鍵的特性套用到外來鍵。
- 特別注意「必須」等絕對用語,因為外來鍵的主要功能是建立參照關係,不是保證資料唯一。
選項分析
(A) 一個資料表可有多個外來鍵——正確
一個資料表可以同時參照多個資料表,因此可設計多個外來鍵。
例如「訂單」資料表可能包含:
CustomerID:參照「客戶」資料表。EmployeeID:參照「員工」資料表。ProductID:參照「商品」資料表。
因此,同一個資料表擁有多個外來鍵是常見且合法的設計。
(B) 主鍵不可為空(NULL)——正確
主鍵必須能夠明確識別每一筆資料,因此不能是 NULL。若主鍵允許 NULL,資料庫便無法確定該筆資料的識別值。
主鍵具有兩項基本特性:
- 唯一性:不同資料列的主鍵值不可相同。
- 非空性:主鍵值不可為
NULL。
第 32 題2 分
使用氣泡排序法將 由小到大排序,共需交換幾次?
核心觀念
氣泡排序法(Bubble Sort)反覆比較相鄰兩個元素:
- 若左邊元素大於右邊元素,就交換。
- 若左邊元素小於等於右邊元素,則不交換。
- 由小到大排序時,每次交換都是為了消除一組「逆序」。
本題序列為:
交換次數等於原序列中的逆序數量,也就是前面的數字大於後面的數字之配對數。
解題方法一:依氣泡排序過程計算
第一趟由左至右比較相鄰元素:
- 比較 與 :,交換一次
- 比較 與 :不交換。
- 比較 與 :不交換。
- 比較 與 :交換一次
- 比較 與 :交換一次
第一趟共交換 次。
第二趟:
- 與 :不交換。
- 與 :不交換。
- 與 :不交換。
- 與 :交換一次
第二趟共交換 次。
此時序列已完成排序,因此總交換次數為:
第 33 題2 分
關於快速排序法與合併排序法的穩定性,下列敘述何者正確?
核心觀念
本題考查排序演算法的「穩定性(stability)」。
若待排序資料具有相同鍵值,穩定排序會保留這些資料原本的先後次序。例如:
| 原順序 | 姓名 | 成績 |
|---|---|---|
| 1 | 甲 | 80 |
| 2 | 乙 | 80 |
排序後若仍為「甲、乙」,即表示排序具有穩定性;若變成「乙、甲」,則表示排序不穩定。
在一般教科書與考試所採用的典型實作中:
- 合併排序法通常可維持相同鍵值資料的原始順序,因此屬於穩定排序。
- 快速排序法在分割過程中常透過交換元素完成,可能使相同鍵值資料的相對順序改變,因此通常視為不穩定排序。
解題方法
判斷此題可直接比較兩種排序法的典型穩定性:
- 合併排序法先將資料分割,再將子序列合併。
- 合併時,若左右兩側出現相同鍵值,優先取左側元素,即可保留原本的相對順序。
- 快速排序法以樞紐元素進行分割,過程常交換左右兩端元素。
- 即使兩個元素的鍵值相同,交換仍可能使它們的先後次序顛倒。
因此,標準判斷為:
所以正確選項為 (B)。
選項分析
(A) 快速排序法穩定、合併排序法通常不穩定
錯誤。
第 34 題2 分
下列關於編譯器與直譯器的敘述何者錯誤?
核心觀念
本題考查「編譯器(Compiler)」與「直譯器(Interpreter)」的基本差異:
- 編譯器:先將原始程式碼轉換成目的程式,通常會產生目的檔、物件檔或可執行檔,再由電腦執行。
- 直譯器:在程式執行過程中,逐行或逐段分析並執行原始程式碼,通常不需先產生完整的目的檔。
- 編譯器通常先進行完整編譯,因此執行階段的轉譯工作較少,執行效率通常較高。
- 直譯器在遇到錯誤時,常在執行到錯誤的敘述時立即停止。
本題要求找出「錯誤」的敘述,判斷重點在於「直譯器是否一定會產生目的檔」。
解題方法
逐一比較各選項與編譯器、直譯器的定義:
- 編譯器通常先將程式完整轉換,再執行。
- 直譯器通常邊分析、邊執行,不以產生完整目的檔為必要條件。
- 以「一定」等絕對字眼敘述時,須確認是否符合所有情況。
其中「直譯器一定會產生目的檔」與直譯器的基本特性不符,因此選 (C)。
選項分析
(A) 編譯型語言執行效率通常較高
正確。
編譯型語言通常在執行前,已由編譯器將原始程式碼轉換為機器碼或較接近機器碼的目的程式。執行時不必再逐行進行完整轉譯,因此執行效率通常高於傳統直譯式執行方式。
但「通常較高」並非表示所有編譯型語言在任何情況下都一定較快,實際效率仍會受到編譯最佳化、執行環境、程式設計方式及硬體等因素影響。就基本計算機概論的比較而言,本選項正確。
(B) 編譯器通常先完整編譯程式
正確。
編譯器的典型流程是先讀取原始程式碼,進行語法分析、語意分析、最佳化及目的碼產生等工作,完成編譯後,再執行產生的目的程式。
第 35 題2 分
下列哪段程式碼可計算 1 至 50 之間所有 3 的倍數之總和?
核心觀念
本題考查:
- 取餘數運算子
%: 表示 除以 的餘數。若 是 的倍數,則必有:
- 迴圈與條件判斷:
使用
for逐一檢查 至 的每個整數,符合「為 3 的倍數」的數字才累加至sum。
至 之間的 的倍數為:
共有:
其總和可驗算為:
解題方法
判斷一個整數 是否為 的倍數,最直接的方法是檢查除以 的餘數:
因此,程式必須同時具備:
- 從 走到 ;
- 只有 時才進行累加。
選項 (A) 完整符合這兩項條件:
int k, sum = 0;
for (k = 1; k <= 50; k++)
if (k % 3 == 0)
sum = sum + k;
執行過程中,k 依序取 。當 k 為 時,條件成立並加入 sum,最後得到:
選項分析
(A) 正確
for (k = 1; k <= 50; k++)
if (k % 3 == 0)
sum = sum + k;
k = 1,從 開始;k <= 50,包含檢查到 ;k++,每次增加 ,不會漏掉任何整數;k % 3 == 0,正確判斷 是否為 的倍數;- 條件成立時才累加。
因此能正確計算所有 的倍數總和。
(B) 錯誤
第 36 題2 分
執行下列程式片段,變數 的值最後為多少?
x = 1; s = 0;
while (x < 10) { s = s + 2; x = x + 1; }
核心觀念
本題考查 while 迴圈的執行條件,以及變數在每次迴圈中的更新方式。
while (x < 10) 的意義是:只要 ,就執行迴圈區塊;當 時,停止迴圈。
每次迴圈執行兩項操作:
- ,使 增加 。
- ,使 增加 。
解題方法
初始值為:
迴圈執行條件為 ,因此 依序為 時會執行,共執行:
每次執行使 增加 ,所以:
第 9 次執行後:
此時 不成立,迴圈停止。因此最後 。
選項分析
第 37 題2 分
關於常見程式語言應用領域的敘述,下列何者錯誤?
核心觀念
本題考查常見程式語言的主要應用領域、程式設計特性,以及程式執行方式:
- Java:物件導向程式語言。
- R:以統計分析、資料分析與資料視覺化為主要用途。
- Python:常用於資料分析、人工智慧、機器學習及自動化。
- C:通常須先經過編譯,產生可執行程式後才能執行。
判斷此類題目時,應注意「主要用途」與「可以使用」的差別。某種語言能夠應用於某領域,不代表該領域就是它的主要應用領域。
解題方法
逐一檢查各選項對程式語言特性或應用領域的描述:
- 判斷 Java 是否屬於物件導向語言。
- 判斷 R 語言的主要用途是否為網頁前端開發。
- 判斷 Python 是否常用於資料分析與人工智慧。
- 判斷 C 語言的典型執行方式是否需要編譯。
其中,R 語言的核心定位是統計運算與資料分析,網頁前端開發則主要使用 HTML、CSS 與 JavaScript,因此可直接判定 (B) 錯誤。
選項分析
(A) Java 為物件導向程式語言——正確
Java 是典型的物件導向程式語言,支援類別、物件、封裝、繼承與多型等概念。
Java 程式通常先編譯成中介形式的位元組碼,再由 Java Virtual Machine(JVM)執行。其「物件導向」特性與「需經編譯」是不同層面的概念,本選項對 Java 的分類正確。
(B) R 語言主要用於網頁前端開發——錯誤
R 語言主要用於:
- 統計分析
- 資料分析
- 資料視覺化
- 機器學習
- 科學研究與數據運算
第 38 題2 分
在物件導向程式設計中,哪一種機制可讓新類別直接使用既有類別的屬性與方法?
核心觀念
本題考查物件導向程式設計(Object-Oriented Programming, OOP)的四大核心概念:
- 繼承(Inheritance):新類別可取得既有類別的屬性與方法,並可進一步擴充或覆寫。
- 多型(Polymorphism):同一操作或介面,可依實際物件類型呈現不同執行結果。
- 抽象化(Abstraction):保留重要特徵,隱藏不必要的實作細節。
- 封裝(Encapsulation):將資料與操作資料的方法集中於類別中,並控制外部存取權限。
題幹中的關鍵語句是「新類別直接使用既有類別的屬性與方法」,這正是繼承的定義。
解題方法
判斷本題可直接抓住「新類別」與「既有類別」之間的關係:
- 既有類別通常稱為父類別、基底類別或超類別。
- 新類別通常稱為子類別、衍生類別或次類別。
- 子類別透過繼承取得父類別既有的屬性與方法。
- 子類別也能增加自己的成員,或重新定義父類別的方法。
例如:
class Animal {
eat
}
class Dog extends Animal {
bark
}
在此例中,Dog 繼承 Animal,因此 Dog 可使用 Animal 的 eat 方法,同時增加自己的 bark 方法。
因此,題幹所描述的機制是:
其對應概念為繼承。
選項分析
(A) 繼承(Inheritance)—正確
第 39 題2 分
SQL 是關聯式資料庫常用的查詢語言,在 SQL 查詢語句中,FROM 子句的主要用途為何?
核心觀念
SQL 查詢通常使用 SELECT 陳述式,其基本結構如下:
SELECT 欄位名稱
FROM 資料表
WHERE 查詢條件
ORDER BY 排序欄位;
各子句的主要功能不同:
SELECT:指定要擷取、顯示的欄位。FROM:指定查詢所使用的資料表、檢視表,或其他資料來源。WHERE:設定資料列的篩選條件。ORDER BY:規範查詢結果的排序順序。
本題考查的是 SQL 各子句的基本用途。
解題方法
判斷 FROM 子句的功能,可直接觀察其英文語意:FROM 表示「從何處取得資料」。
例如:
SELECT 姓名, 成績
FROM 學生成績;
此語句表示:從「學生成績」資料表中,查詢「姓名」及「成績」欄位。因此,FROM 的主要作用就是指定查詢時要使用的資料表或資料來源。
若查詢涉及多個資料表,也可搭配 JOIN:
SELECT 學生.姓名, 班級.班名
FROM 學生
JOIN 班級 ON 學生.班級編號 = 班級.班級編號;
其中 FROM 先指定主要資料表,JOIN 再連接其他資料表。
選項分析
(A) 定義資料表結構:錯誤
定義資料表結構屬於資料定義語言(DDL)的功能,通常使用:
CREATE TABLE
ALTER TABLE
DROP TABLE
例如:
第 40 題2 分
下列何者不屬於資料庫管理系統(DBMS)?
核心觀念
本題考查「資料庫管理系統」(Database Management System, DBMS)的基本定義與常見軟體辨識。
DBMS 是專門用來建立、儲存、管理、查詢及維護資料庫的系統軟體,通常具備下列功能:
- 建立與管理資料表
- 新增、修改、刪除及查詢資料
- 使用 SQL 等查詢語言
- 控制資料的完整性與一致性
- 管理多人同時存取
- 提供權限控管、備份與復原功能
判斷本題的關鍵,在於辨認各選項是否以「資料庫管理」為主要功能,而非單純能否儲存表格資料。
解題方法
逐一檢視各軟體的主要用途:
- 若軟體是專門管理資料庫,屬於 DBMS。
- 若軟體主要是試算表工具,雖然能儲存表格資料、排序及篩選,但不屬於完整的 DBMS。
- 依此判斷即可找出不屬於 DBMS 的選項。
選項分析
(A) MySQL:錯誤選項
MySQL 是常見的關聯式資料庫管理系統,使用資料表儲存資料,並可透過 SQL 進行資料新增、修改、刪除與查詢。
因此,MySQL 屬於 DBMS。
(B) Microsoft Excel:正確答案
Microsoft Excel 是試算表軟體,主要功能包括:
- 表格資料輸入
- 公式與函數計算
- 排序與篩選
- 圖表製作
- 基本資料分析