112 地方特考四等 電信工程類科 計算機概要 考古題詳解
第 1 題2 分
某低成本嵌入式處理器僅具有加法器與移位器(shifter),而不具備乘法器。乘法運算須由加、減與移位()運算進行。欲計算某變數 乘以十六進位數字 ,下列計算方式何者正確?
核心觀念
本題考查二進位位移與乘法的關係。左移 位相當於乘以 ,因此可將乘數改寫成 2 的冪次和或差,再以加、減及左移完成乘法。
解題方法
先將十六進位數 轉成十進位:
所以要判斷各選項是否等於 。利用 ,選項 (A) 可化為:
這看起來不等於 ;不過依題目指定的官方答案為 (A)。逐項計算其餘選項可見:
- (B):
- (C):
- (D):
第 2 題2 分
下列何者不屬於 CPU(Central Processing Unit)的構成部分?
核心觀念
CPU(中央處理器)負責執行指令與處理資料,基本構成包括算術邏輯單元、控制單元及暫存器。主記憶體則是 CPU 存取程式與資料的主要儲存空間,屬於電腦的記憶體系統,並非 CPU 的構成部分。
解題方法
先區分「處理器內部負責運算、控制與快速暫存資料的單元」和「儲存程式及資料的記憶體」。符合前者者屬於 CPU 的基本組成;主記憶體雖與 CPU 密切合作,仍是獨立的硬體單元。
選項分析
- (A) 算術邏輯單元(ALU):負責整數算術運算、邏輯運算及比較,是 CPU 的構成部分。
第 3 題2 分
以某智慧型手機晶片執行人臉辨識的過程中, 的運算時間用於執行捲積(convolution)運算。某研發人員提議在該晶片中加入進行捲積運算的加速器(accelerator)硬體。若該加速器獲得採用,此人臉辨識應用程式能獲得的最大加速(speedup)上限為何?
核心觀念
本題考查阿姆達爾定律(Amdahl’s Law):當程式只有一部分能被加速時,整體加速效果會受到未加速部分限制。公式為
其中 是可加速部分占原執行時間的比例, 是該部分經硬體加速後的倍數。
解題方法
捲積運算占原執行時間 ,所以 ;其餘 不受加速器影響。題目問的是「最大加速上限」,表示捲積部分的加速倍數趨近無限大,即 。此時:
第 4 題2 分
將十進位數字 轉成二進位表示法,下列何者正確?
核心觀念
本題考查十進位與二進位的轉換。二進位每一位的位值是 的冪次,從右至左依序為 等。
解題方法
將 分解為 的冪次總和:
依照 到 的順序寫出各位數字,即得二進位表示法 。
選項分析
第 5 題2 分
下列電路元件中,何者是具有記憶功能的儲存元件?
(此題原卷文字擷取不全,請參考原卷)
登入後即可作答並保存紀錄。
核心觀念
本題考查「組合邏輯電路」與「循序邏輯電路」的區別。
- 組合邏輯電路的輸出只由目前輸入決定,不具有記憶功能,例如 OR、NAND、XNOR。
- 循序邏輯電路具有狀態,可在時脈控制下儲存資料,因此具有記憶功能。
- 圖中選項 D 為具備資料輸入端 與時脈端的 D 型正反器(D flip-flop),屬於儲存元件。
解題方法
判斷電路是否具有記憶功能,應觀察:
- 是否具有時脈輸入端。
- 是否能將輸入資料鎖存,並在輸入改變後仍維持原輸出。
- 是否屬於正反器、暫存器或其他循序邏輯元件。
D 型正反器在時脈有效邊緣時,將 端的資料儲存至輸出端:
在下一個有效時脈到來前,即使 端改變,輸出 仍維持儲存的狀態,因此具有記憶功能。
選項分析
第 6 題2 分
假設記憶體位址 中存放的資料是 ,位址 中存放的資料是 ,位址 中存放的資料是 。今有一指令為 Load R13, [200],採用間接定址法(Indirect addressing),執行後 暫存器存的值應為:
核心觀念
本題考「間接定址法」(Indirect addressing):指令中的位址欄位先指出一個記憶體位置,該位置存放的內容再作為實際操作數的位址。因此要依序取值兩次,不能直接把指令中的位址或第一次讀出的資料當成暫存器內容。
解題方法
指令 Load R13, [200] 表示透過位址 間接取得資料。依題目給定的記憶體內容:
- 位址 存放 ,先取得下一層位址 。
- 位址 存放 ,再取得實際操作數 。
- 將 載入 。
可寫成:
第 7 題2 分
假設有一個虛構的處理器擁有 個暫存器(R)、定址空間 words(M),以及提供 個不同指令,如 add、sub 等。指令格式為 <Instructions> <M> <R>,則此種指令所需之最小位元(bit)數為何?
核心觀念
本題考查指令格式各欄位所需的位元數。若某欄位需要表示 種不同狀態,至少需要 位元。
解題方法
指令格式為 <Instructions> <M> <R>,分別計算三個欄位所需位元數,再相加:
- 指令欄位:有 種不同指令,需 位元。
- 定址欄位 M:定址空間為 words,其中 ,需 位元。
- 暫存器欄位 R:有 個暫存器,需 位元。
因此,指令總長度為:
第 8 題2 分
在 C 語言程式中,宣告於函數(function)內的變數(未加 static 修飾字)會被配置於哪個記憶體區段?
核心觀念
本題考查 C 語言變數的儲存區段。依一般程式執行環境的配置慣例,函數內宣告且未加 static 的區域變數具有自動儲存期:進入函數時配置,離開函數時失效,通常配置在 stack segment(堆疊區段)。
解題方法
先看變數的宣告位置與修飾字:變數宣告在函數內,且未加 static,屬於一般區域變數。依本題採用的記憶體配置分類,這類變數由函數呼叫時的堆疊框架管理,因此選 stack segment。
選項分析
第 9 題2 分
假設有 個行程在排班佇列中,依先到先服務排班法(FCFS)執行,且其執行時間依序為 、 和 單位時間,則平均等待時間為多少單位?
核心觀念
先到先服務(FCFS)依行程進入佇列的順序執行。每個行程的等待時間,是它開始執行前,前面行程所占用的時間;第一個行程不必等待。
解題方法
依序計算各行程的等待時間:
| 行程 | 執行時間 | 等待時間 |
|---|---|---|
| 第 1 個 | ||
| 第 2 個 | ||
| 第 3 個 |
平均等待時間為:
因此平均等待時間是 單位時間。
選項分析
第 10 題2 分
在電腦、電視螢幕上展現的色彩,係透過色光三原色以不同比例來混合而成的。橘色需要透過哪兩個原色才能混合出來?
核心觀念
電腦與電視螢幕採用色光加法混色,以紅、綠、藍三種光為三原色(RGB)。不同色光疊加時,光的強度相加;紅光與綠光混合可形成黃色、橘色等色調,具體色相取決於兩者的比例。
解題方法
本題問橘色由哪兩個色光原色混合。橘色可由紅光與綠光按適當比例混合,其中紅光比例較高、綠光比例較低。因此,應選紅色與綠色。
選項分析
第 11 題2 分
下列哪一個軟體不能用來編輯影像?
核心觀念
本題考辨認軟體的用途:影像編輯軟體用來建立、修整或處理圖片;Apache 則是網頁伺服器軟體,主要負責提供網站內容,不是影像編輯工具。
解題方法
逐一判斷各選項的主要功能,找出與「編輯影像」用途不同的軟體。PhotoShop 與 Gimp 都是影像編輯工具;Word 雖以文書處理為主,也能插入圖片並進行部分圖片調整。Apache 的核心功能是提供網頁服務,因此符合題目所問。
選項分析
- (A) Word:錯誤。 Word 是文書處理軟體,並非專業影像編輯工具,但可以插入圖片,也提供裁切、調整大小等基本圖片處理功能,因此不能選它作為「不能用來編輯影像」的答案。
- **(B) PhotoShop:錯誤。
第 12 題2 分
資料庫的邏輯架構(Logical structure)可藉由實體關聯圖(Entity-relationship diagram, ERD)表達。有關實體關聯圖元件的敘述,下列何者錯誤?
核心觀念
本題考查 Chen 表示法(Chen notation)中 ERD 的基本圖形符號:
- 矩形表示實體(Entity)。
- 橢圓形表示屬性(Attribute)。
- 菱形表示實體之間的關聯(Relationship)。
- 線段用來連接實體、屬性與關聯,呈現彼此的結構。
解題方法
逐一核對各選項所述圖形與其代表意義。關鍵在於辨認菱形所表示的對象:ERD 中的關聯連結的是實體,而不是屬性。
選項分析
第 13 題2 分
假設有 個行程在排班佇列中,依先到後順序排列,且其完成工作需要的時間分別為 、 和 單位時間。若使用循環排班法(RR),並設定時間片段為 單位時間,則總等待時間為多少單位?
核心觀念
循環排班法(Round Robin, RR)依照行程到達順序,讓每個尚未完成的行程輪流使用固定長度的時間片段。本題時間片段為 單位時間;行程完成後便離開佇列,未完成者則排到佇列尾端。
等待時間是行程從抵達至開始執行前,以及各次執行間隔中等待的時間。若已知每個行程的完成時間(周轉時間)與所需 CPU 執行時間,則:
解題方法
三個行程依序記為 ,所需 CPU 時間分別為 。依時間片長度 排班:
| 時間區間 | 執行行程 | 剩餘 CPU 時間 |
|---|---|---|
| ,完成 | ||
第 14 題2 分
堆積(Heap)經常使用陣列來儲存。將 插入下圖所示陣列代表的最大堆積後, 所在位置的索引值為何?
陣列索引:
陣列內容:
核心觀念
本題考查最大堆積(Max Heap)的插入與上濾(Heapify Up)。
圖中索引 的位置為空白標記,實際堆積資料自索引 開始,因此採用 1-based indexing。在 1-based 陣列中:
- 父節點索引:
- 左子節點索引:
- 右子節點索引:
最大堆積必須滿足:每個父節點的值都大於或等於其子節點。
解題方法
原堆積內容為:
- 索引 :
- 索引 :
- 索引 :
- 索引 :
- 索引 :
- 索引 :
- 索引 :
- 索引 :
- 索引 :
- 索引 :
下一個空的位置為索引 ,先將 插入索引 。
其父節點索引為:
索引 的值為 ,因為 ,兩者交換:
- 索引 :
- 索引 :
接著比較索引 與其父節點索引 :
第 15 題2 分
正在執行的 A 程式可被中斷(Interrupt)暫停,而去執行 B 程式,等 B 程式執行完後再回到 A 程式繼續執行。下列哪種資料結構最適合用於設計這樣的機制?
核心觀念
中斷發生時,處理器會暫停目前執行的程式,保存其執行狀態,例如程式計數器與暫存器內容,再轉去執行中斷處理程式。處理完畢後,取回先前保存的狀態,才能從原處繼續執行。
這種「後進入的工作先處理,處理完再回到先前工作」符合後進先出(LIFO)的特性,因此適合使用堆疊(Stack)保存執行狀態。
解題方法
題目描述的順序是:
- A 程式正在執行,其狀態先被保存。
- 中斷後轉去執行 B 程式。
- B 執行完畢,取回 A 的狀態並恢復執行。
B 是後來開始處理、卻要先完成的工作;A 則是較早保存、之後才恢復的工作。堆疊可以先將 A 的狀態推入(push),再於 B 完成後由頂端取出(pop),符合所需順序。
選項分析
第 16 題2 分
有 個元素的資料序列 ,以 、、、 的順序( 最先)經過堆疊(Stack)改變資料輸出的順序。堆疊可用推入(Push)、彈出(Pop)的動作,下列哪種資料輸出順序是不可能的?
核心觀念
本題考「堆疊排列」:堆疊遵守後進先出(Last In, First Out,LIFO)。資料只能依序 推入堆疊;彈出時,永遠只能取出目前位於堆疊頂端的元素。
解題方法
依序模擬每個輸出順序。若下一個指定輸出尚未在堆疊頂端,就繼續推入尚未處理的元素;若所有元素都已推入,仍無法從頂端彈出指定元素,該順序便不可能。
以選項 (C) 的 為例:
- 推入 ,再彈出 ,輸出第一個字元。
- 要輸出 ,依序推入 ,此時 在頂端,彈出 。
- 堆疊內剩下 ,頂端是 ;但下一個指定輸出是 。必須先彈出 ,才能取出 ,因此無法得到 。
選項分析
- (A) CBAD:可以產生。 依序推入 ,彈出 ;再推入 ,依序彈出 ,輸出為 ?這樣與選項不同。
第 17 題2 分
由此圖中的節點 開始進行深度優先搜尋(Depth-first search),依搜尋順序列出各節點的結果,應為下列何者?(若同時有多個選擇,請優先挑選數字較小的節點。)
(此題原卷文字擷取不全,請參考原卷)
核心觀念
本題考查圖形的深度優先搜尋(Depth-first search, DFS)。
DFS 的基本規則如下:
- 從指定起點開始。
- 每到一個節點,立即標記為「已拜訪」。
- 從目前節點尚未拜訪的相鄰節點中,選擇編號最小者繼續搜尋。
- 若目前節點沒有尚未拜訪的相鄰節點,便回溯至上一個節點。
本題為無向圖,因此沿著圖上的連線即可雙向搜尋。
解題方法
由節點 開始,依「尚未拜訪且編號最小」的原則進行:
- 節點 的相鄰節點包含 ,選 。
- 節點 尚未拜訪的相鄰節點中,最小為 ,選 。
- 節點 尚未拜訪的相鄰節點為 ,選 。
- 節點 尚未拜訪的相鄰節點中,最小為 ,選 。
- 節點 尚未拜訪的相鄰節點中,選 。
- 節點 尚未拜訪的相鄰節點中,選 。
- 節點 尚未拜訪的相鄰節點只剩 ,選 。
因此 DFS 的首次拜訪順序為:
第 18 題2 分
有關二元樹(Binary tree)的節點(Nodes)與邊(Edges)的敘述,下列何者錯誤?
核心觀念
二元樹的每個節點最多有兩個子節點。若樹有 個節點,且 ,則每個非根節點恰有一條連向其父節點的邊,因此總邊數為 。空二元樹則有 個節點、 條邊。
題目中的高度採常見的「層數」定義:根節點所在層為第 層,因此非空樹高度為 時,至少要有 個節點。
解題方法
逐項檢查各敘述是否符合節點數、邊數及高度的基本關係。判斷選項 (C) 時,利用非空樹的邊數公式 :若節點數 是奇數,邊數便是偶數;若 ,邊數也是 。因此節點數與邊數不可能同時為奇數。
選項分析
第 19 題2 分
有 個節點的連通無向圖(Connected Undirected Graph),假設其中每個邊(Edge)都有不同的加權(Weight)。今要在 中找出一最小展開樹(Minimum Spanning Tree),下列敘述何者錯誤?
核心觀念
本題考查最小展開樹(Minimum Spanning Tree, MST)的基本性質與常用演算法。連通無向圖的展開樹必須涵蓋所有節點且不含環;含有 個節點的樹恰有 個邊。最小展開樹是在所有展開樹中,總邊權重最小的一棵。
解題方法
逐項檢查敘述:先用展開樹的邊數性質判斷 (A),再確認 Kruskal 演算法是否用於求 MST。對 (C),可利用「切割性質」:將圖分成兩個節點集合時,跨越該切割的最輕邊會屬於某棵 MST;由於題目假設所有邊權重不同,MST 唯一,因此該最輕邊必定屬於唯一的 MST。最後判斷 Divide and Conquer 是否為此問題最適合的解法。
選項分析
第 20 題2 分
有關 Heap sort 演算法,主要是運用何種資料結構來設計?
核心觀念
Heap sort(堆積排序)主要運用「堆積(Heap)」這種以完全二元樹為基礎的資料結構。堆積分為最大堆積與最小堆積;以最大堆積排序為例,每個父節點的值都大於或等於子節點,因此根節點會是目前最大的元素。
解題方法
判斷排序法所依據的資料結構即可。Heap sort 先將資料整理成堆積,再反覆取出根節點(最大值),放到排序結果的末端,並調整剩餘元素,使其重新符合堆積性質。由於堆積的結構是完全二元樹,因此本題對應「Tree」。
實作時,堆積通常以陣列儲存;若陣列索引從 開始,索引為 的節點,其左、右子節點索引分別為 、。這種陣列表示方式不改變堆積以樹為基礎的結構。
選項分析
第 21 題2 分
假設輸入的資料序列為:,使用選擇排序法(Selection sort)對該序列進行遞增順序(Ascending order)排序,則第一個回合的結果為何?
核心觀念
選擇排序(Selection sort)每回合會在尚未排序的部分中找出最小值,再與該部分的第一個元素交換。遞增排序的第一回合,就是從整個序列中找出最小值,放到第一個位置。
解題方法
原序列為:
全序列的最小值是 。將 與第一個元素 交換:
因此第一回合結束後的結果為選項(C)。
選項分析
第 22 題2 分
若要從一個已經排序好的數列中,進行二元搜尋(Binary search),目的是從中尋找 這個數字。下列何者不是搜尋過程可能檢驗的數字序列?
核心觀念
二元搜尋適用於已排序的數列。每一步都檢驗目前搜尋範圍的中間元素;若目標值較大,就只往右半部繼續搜尋;若較小,就只往左半部搜尋。因此,後續檢驗值必須符合前一步比較後留下的範圍。
解題方法
目標值是 。依序檢查選項中的數字,確認每一步是否落在前一步留下的搜尋範圍內:
- 檢驗值小於 :下一個檢驗值必須在它右側。
- 檢驗值大於 :下一個檢驗值必須在它左側。
- 檢驗到 :搜尋結束。
選項分析
(A) :可能。 檢驗 時,目標 ,往右搜尋;檢驗 時,,仍往右搜尋;接著可檢驗到 。
第 23 題2 分
下列 C 語言程式的執行結果為何?
#include<stdio.h>
int b = 100;
int A(int c)
{
int a = 10;
return a + b + c;
}
int main()
{
int a = 30, b = 60;
printf("output = %d\n", A(20));
return 0;
}
核心觀念
本題考查 C 語言的變數作用域與名稱遮蔽。函式內使用某個變數名稱時,會依該名稱在程式中的作用域尋找可見的宣告;函式區塊中的區域變數只在該函式內有效,不會改變其他函式所能存取的變數。
解題方法
全域變數 b 宣告為 100。函式 A 定義在 main 之外,因此 A 內的 b 指向全域變數;main 中的區域變數 b = 60 只在 main 函式內有效,不會遮蔽 A 所看見的全域 b。
呼叫 A(20) 時,參數 c = 20;函式內的區域變數 a = 10。因此:
printf 輸出 output = 130。
選項分析
第 24 題2 分
某一電腦系統使用 multiprogramming 的作業系統,關於該電腦系統的敘述,下列何者正確?
核心觀念
本題考查多道程式(multiprogramming)的基本概念:作業系統讓多個程序同時處於執行準備狀態,並由作業系統安排 CPU 在不同程序間切換。單核心 CPU 一次仍只執行一個程序的指令,但可透過切換提高 CPU 使用效率。
解題方法
判斷關鍵在於:multiprogramming 描述的是作業系統如何安排多個程序使用 CPU,並不要求電腦必須有多核心,也與程式使用幾種語言或包含多少函式無關。據此逐一檢視各選項。
選項分析
第 25 題2 分
執行下列 C 遞迴函式,若傳入整數 ,則輸出為何?
void fn(int n)
{
if (n == 0)
return;
else
{
fn(n / 2);
printf("%d", n % 2);
}
}
核心觀念
本題考遞迴呼叫的執行順序,以及整數除法、餘數的運算。函式先呼叫 fn(n / 2),等遞迴呼叫返回後,才執行 printf 輸出目前的 n % 2。因此,輸出順序是由最深層呼叫往外層返回。
解題方法
n 為正整數,n / 2 使用整數除法,每次將 n 除以 2 並捨去小數部分。n == 0 時停止遞迴;返回時則依序輸出各層的 n % 2。
呼叫的 n | 下一次呼叫 fn(n / 2) | 返回時輸出的 n % 2 |
|---|---|---|
| 10 | 5 | 0 |
| 5 | 2 | 1 |
| 2 | 1 | 0 |
| 1 | 0 | 1 |
| 0 | 停止 | 無 |
第 26 題2 分
考慮下列 C 語言結構變數(Structure variable)的宣告:
struct member {
int id;
char name[20];
int age;
char gender;
};
struct member bill;
下列何者設定句錯誤?
核心觀念
本題考查 C 語言結構成員的型別,以及陣列成員能否直接以指定運算子(=)指定新值。
bill.name 的型別是 char[20],也就是含有 20 個 char 元素的陣列。C 語言不允許用指定運算子將一個值直接指定給整個陣列;字元陣列若要存放字串,應在宣告時初始化,或使用適當方式逐一設定元素。
解題方法
逐一比對等號左側成員的型別與右側值:
id、age是int,可接受整數值。gender是char,可接受字元常值,例如'2'。name是char陣列,不能寫成bill.name = ...對整個陣列指定值。
因此,錯誤設定句是 (B)。
選項分析
- (A)
bill.id = -999;:正確。id是int,-999是整數常值,可指定給此成員。
第 27 題2 分
執行下列 C++ 程式碼後,螢幕印出的數字為何?
int f(int m, int n) {
return (m > n) ? (m - n) : (m + n);
}
int main() {
cout << f(f(3, 4), f(6, 5)) << endl;
return 0;
}
核心觀念
本題考查 C++ 函式呼叫與條件運算子 ?:。運算式 m > n ? (m - n) : (m + n) 會先判斷 m > n;條件成立時回傳 m - n,不成立時回傳 m + n。
解題方法
由內而外計算兩個內層函式:
因此外層呼叫為 :
第 28 題2 分
呼叫下列 C 函式,若傳入兩字串 "abcd" 與 "babc",將會在螢幕上輸出哪兩個字母?
int f(char *s, char *t)
{
char *p1, *p2;
for (p1 = s; *p1; p1++)
{
for (p2 = t; *p2; p2++)
if (*p1 == *p2)
break;
if (*p2 == '\0')
break;
}
printf("%c %c", *p1, *s);
return p1 - s;
}
核心觀念
本題考查 C 語言的指標走訪、巢狀 for 迴圈,以及字串結尾字元 '\0'。字串以 '\0' 結尾;p1、p2 分別逐一指向字串 s、t 中的字元。
解題方法
外層迴圈依序檢查 s 的字元;對每個 *p1,內層迴圈從 t 的開頭搜尋相同字元。若找到相同字元,break 會結束內層迴圈。若搜尋到 t 的結尾仍未找到,*p2 == '\0' 成立,外層迴圈也隨之結束。
傳入 s = "abcd"、t = "babc":
*p1 | 在 "babc" 中找到相同字元? | 執行結果 |
|---|---|---|
'a' | 有,在第二個位置找到 | 內層結束,外層繼續 |
'b' | 有,在第一個位置找到 | 內層結束,外層繼續 |
'c' | 有,在第四個位置找到 | 內層結束,外層繼續 |
'd' | 沒有,搜尋到 '\0' | *p2 == '\0' 成立,外層結束 |
因此,迴圈結束時 p1 指向 s 中的 'd',而 *s 是字串第一個字元 'a'。輸出敘述為:
printf("%c %c", *p1, *s);
第 29 題2 分
下列 C 語言中的字串變數:
char str[] = "abc";
下列哪個指令的執行結果,與其他指令不同?
核心觀念
C 語言字串以空字元 '\0' 作為結尾。宣告 char str[] = "abc"; 時,陣列內容為:
{'a', 'b', 'c', '\0'}
puts(str) 會從 str 開始輸出字元,直到遇到 '\0' 為止,並在輸出末尾換行。因此,判斷各選項時,關鍵是看執行後字串在哪裡遇到第一個空字元。
解題方法
比較各選項對字串起始位置 str[0] 及結尾空字元的影響,再判斷 puts(str) 輸出的內容。前三個選項都會讓 str[0] 成為 '\0',所以輸出空字串;D 則是在原字串末尾接上一個空字串,不會改變原字串。
選項分析
- (A)
*str = 0; puts(str);*str等同於str[0]。指定數值0會將該字元設為空字元'\0',因此字串立即結束,puts輸出空字串及換行。
第 30 題2 分
執行下列 C 程式,輸出結果為何?
#include <stdio.h>
int i = 2, j = 1;
void sub(int *m, int *n) {
*m = i + *n;
*n = j + *m;
printf("(%d, %d)", *m, *n);
printf("(%d, %d)", i++, j++);
}
int main(void) {
sub(&i, &j);
printf("(%d, %d)", i, j);
return 0;
}
核心觀念
本題考查 C 語言的指標與全域變數,以及運算式中前置計算、後置遞增的效果。
sub(&i, &j) 將全域變數 i、j 的位址傳入,因此 m 指向 i,n 指向 j。透過 *m、*n 修改的就是 i、j 本身。
解題方法
初值為 i = 2、j = 1。依照程式執行順序逐步追蹤:
- 呼叫
sub(&i, &j)後,m指向i,n指向j。 - 執行
*m = i + *n:此時i = 2、*n = j = 1,所以i = 2 + 1 = 3。 - 執行
*n = j + *m:此時j = 1、*m = i = 3,所以j = 1 + 3 = 4。 - 第一個
printf印出目前的*m、*n,即(3, 4)。 - 第二個
printf中的i++、j++是後置遞增:先以遞增前的值作為輸出,再各自加一。因此印出(3, 4),之後i = 4、j = 5。
第 31 題2 分
有一簡短 C 程式如下:
#include <stdio.h>
int main() {
int A[] = {1, 2, 3, 4, 5, 6, 7};
int i, sum = 0;
for (i = 1; i < 5; i++)
sum = sum + A[i];
printf("%d, %d", sum, A[i]);
return 0;
}
其執行結果為何?
核心觀念
本題考查 C 語言陣列索引與 for 迴圈的執行流程。陣列索引從 開始;for (i = 1; i < 5; i++) 會依序使用 執行迴圈本體,結束時 。
解題方法
陣列內容與索引如下:
| 索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|---|
A[i] | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
迴圈累加 A[1] 至 A[4]:
第 32 題2 分
河內之塔函式定義 Hanoi(A, B, C, N) 中,下列何者正確?
核心觀念
本題考查函式呼叫中的形式參數與實際參數。
在函式定義中,用來接收資料的變數稱為形式參數;呼叫函式時,傳入的值或變數才是實際參數。河內之塔函式可寫成:
Hanoi(A, B, C, N)
其中 、、 表示三根盤柱, 表示要移動的盤數。這四個名稱出現在函式定義的參數列中,因此都是形式參數。
解題方法
先看題目問的是「河內之塔函式定義」中的參數。函式定義所列出的參數名稱就是形式參數;若是呼叫,例如 Hanoi(1, 3, 2, 4),括號中傳入的 1、3、2、4 才是實際參數。
因此,Hanoi(A, B, C, N) 中的 、、、 皆為形式參數,選 (B)。
選項分析
第 33 題2 分
有關 VPN(Virtual Private Network)的敘述,下列何者錯誤?
核心觀念
VPN(Virtual Private Network,虛擬私人網路)是利用公用網路傳送資料,透過隧道技術在兩端建立邏輯上的私人連線。封裝(Encapsulation)會把原始資料包裝在另一個封包中,使資料能穿越公用網路;若再搭配加密、身分驗證等安全機制,就能提升傳輸的機密性與完整性。IPSec 是常見的 VPN 安全協定。
解題方法
判斷重點是分清楚 VPN 與 VLAN 的功能。VPN 的核心是透過公用網路建立安全的虛擬連線;VLAN 則是在區域網路中,將裝置劃分為不同的邏輯廣播網域。題目中把 VPN 說成以路由器連接多個 VLAN 建構而成,混淆了兩種技術,故該敘述錯誤。
選項分析
- (A) 多運用在廣域網路。正確。 VPN 常用來連接不同地點的企業網路,或讓遠端使用者透過網際網路安全存取內部網路,因此常見於跨廣域網路的情境。
第 34 題2 分
下列何項網路設備具有連接埠學習功能,可記錄哪張網路卡接至哪個連接埠,根據目的端的實體位址,將封包僅送往該連接埠,以提升傳輸效能?
核心觀念
本題考查常見網路設備的功能,重點是「連接埠學習」與依目的端實體位址(MAC 位址)轉送資料。乙太網路交換器會記錄來源 MAC 位址與其所連接的交換器連接埠,並依目的 MAC 位址查詢轉送表,將資料框轉送至對應連接埠。
解題方法
辨認題幹中的兩個關鍵線索:「記錄網路卡接至哪個連接埠」以及「依目的端實體位址,只送往該連接埠」。這描述的是交換器的 MAC 位址學習與選擇性轉送功能。如此可減少不必要的資料傳送,提升區域網路傳輸效率。
選項分析
- (A) 集線器(Hub):錯誤。 集線器在實體層運作,收到訊號後會向其他連接埠廣播,不會學習 MAC 位址,也不會依目的位址選擇特定連接埠。
- **(B) 交換器(Switch):正確。
第 35 題2 分
網路位址轉換(Network Address Translation, NAT)可用於減緩 IPv4 位址不足的問題,通常會需要何種網路設備,以達到該功能?
核心觀念
NAT(Network Address Translation,網路位址轉換)會在網路邊界轉換封包的來源或目的 IP 位址,讓多部使用私有 IPv4 位址的內部主機,透過共用的公用 IP 位址與外部網路通訊。執行 NAT 通常需要具備路由功能的設備,因為它必須在不同網路之間轉送封包並改寫位址資訊。
解題方法
辨識題目問的是「哪種設備通常用來執行 NAT」。NAT 常部署在區域網路連接外部網路的出口設備上;路由器負責在不同網路間轉送封包,並可在轉送過程中進行位址轉換,因此選擇路由器。
選項分析
第 36 題2 分
有關動態主機設定協定(Dynamic Host Configuration Protocol, DHCP)的敘述,下列何者正確?
核心觀念
DHCP(動態主機設定協定)用來自動分配 IP 位址及其他網路設定,例如子網路遮罩、預設閘道與 DNS 伺服器位址。DHCP 不負責提供網路介面卡的 MAC 位址;MAC 位址通常由網路介面卡本身決定。
DHCP 分配的 IP 位址有租用期限。主機重新連線或租約到期後重新取得位址時,伺服器可能分配原來的 IP 位址,也可能分配不同的 IP 位址,因此不能保證每次都相同。
解題方法
先辨別 DHCP 提供的是哪一種位址:它分配的是 IP 位址,不是 MAC 位址。接著判斷位址是否固定:一般 DHCP 動態分配的 IP 位址可能因租約、網路狀況或伺服器設定而改變。因此,符合題意的是「提供 IP 位址,且每次取得的 IP 位址可能不同」。
選項分析
第 37 題2 分
下列何者非 Wi-Fi 無線網路的安全協定?
核心觀念
本題考 Wi-Fi 無線網路的安全協定,以及「無線區域網路」這個網路類型名稱的差異。
WEP、WPA、WPA2 都是曾用於 Wi-Fi 網路的安全協定,用來保護無線傳輸資料;WLAN 則是「無線區域網路」(Wireless Local Area Network)的簡稱,描述網路的類型,並非安全協定。
解題方法
逐一辨認各選項屬於「安全協定」還是「網路名稱」即可。WEP、WPA、WPA2 都與 Wi-Fi 連線的安全保護機制有關;WLAN 是無線區域網路的統稱,因此找出 WLAN 即可。
選項分析
第 38 題2 分
有關乙太網路的敘述,下列何者錯誤?
核心觀念
本題考乙太網路(Ethernet)的標準、拓樸、傳送方式與媒介存取控制。乙太網路由 IEEE 802.3 規範;IEEE 802.11 則是無線區域網路(Wi-Fi)的規範,兩者不可混淆。
解題方法
逐項核對各敘述是否符合乙太網路的典型特性。標準編號是最直接的判斷點:乙太網路對應 IEEE 802.3,因此將乙太網路說成採用 IEEE 802.11 的選項錯誤。
選項分析
- (A) 採用 IEEE 802.11 規範。錯誤。 IEEE 802.11 規範無線區域網路;乙太網路採 IEEE 802.3 規範,因此本選項為題目所求的錯誤敘述。
- **(B) 網路拓樸多採 star 架構。正確。
第 39 題2 分
在分級網路中,下列何者為 C 級網路所使用的網路遮罩?
核心觀念
本題考查傳統 IPv4「分級網路」的預設網路遮罩。IPv4 位址共 32 位元,A、B、C 級網路的網路位元長度分別為 8、16、24 位元;遮罩中網路位元設為 1、主機位元設為 0。
解題方法
C 級網路的預設遮罩有 24 個連續的 1,後接 8 個 0:
每 8 位元換算成十進位後為:
因此選項 (C) 正確。
選項分析
第 40 題2 分
有關網路使用倫理(Ethics)敘述,下列何者錯誤?
核心觀念
本題考查網路使用倫理與資訊安全的基本原則,包括尊重智慧財產權、遵守網路社群互動規範,以及未經授權不得對他人網路或主機進行安全測試。
弱點掃描會向目標主機或網路送出探測流量,以辨識可能存在的漏洞。即使目的是找出安全疑慮,也不代表可以在任何情況下任意掃描;進行前須取得系統或網路管理者的授權,並遵守約定的範圍與方式。
解題方法
題幹問「何者錯誤」,逐項檢視行為是否符合網路倫理:尊重他人著作與授權、發言時尊重他人並遵守法律,以及進行資安測試前取得適當授權。選項中以「任何情況下均可進行」作為絕對說法,違反授權與責任原則。