國立中山大學 112 年 《計算機概論與程式設計》

📄 試題原卷 免費註冊後即可對照原始考卷 PDF免費註冊

第 1 題3 分

What is printed by the following C/C++ program?

char a[] = "ABCDE", b[] = "74623";
printf("%d\n", (a[4]-a[1])+(b[4]-b[1]));

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查:

  • 字元陣列與字串索引
  • 字元常數在算術運算中的整數提升
  • 字元編碼值相減
  • C/C++ 陣列索引從 00 開始

字串內容及索引如下:

陣列索引 0索引 1索引 2索引 3索引 4
a[] = "ABCDE"ABCDE
b[] = "74623"74623

因此:

  • a[4] 是 E
  • a[1] 是 B
  • b[4] 是 3
  • b[1] 是 4

解題方法與逐步追蹤

在一般題目採用的 ASCII 編碼中:

’E’−’B’=69−66=3\texttt{'E'}-\texttt{'B'}=69-66=3

數字字元在 ASCII 中依序排列,因此:

’3’−’4’=51−52=−1\texttt{'3'}-\texttt{'4'}=51-52=-1

代入原式:

(a[4]−a[1])+(b[4]−b[1])=(’E’−’B’)+(’3’−’4’)(a[4]-a[1])+(b[4]-b[1]) =(\texttt{'E'}-\texttt{'B'})+(\texttt{'3'}-\texttt{'4'}) =3+(−1)=2=3+(-1)=2

printf("%d\n", ...) 使用 %d 將整數結果輸出,因此畫面印出:

2
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 2 題3 分

How many bits are used in the IPv6 address?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

IPv6(Internet Protocol version 6)的位址長度固定為 128 bits。IPv6 位址通常以十六進位表示,分成 8 組,每組包含 4 個十六進位數字:

IPv6 位址=8 組×16 bits/組=128 bits\text{IPv6 位址} = 8 \text{ 組} \times 16 \text{ bits/組} = 128 \text{ bits}

例如:

2001:0db8:0000:0000:0000:ff00:0042:8329

每個十六進位數字代表 44 bits,因此:

8 組×4 個十六進位數字×4 bits=128 bits8 \text{ 組} \times 4 \text{ 個十六進位數字} \times 4 \text{ bits} = 128 \text{ bits}

解題方法

看到題目詢問 IPv6 address 使用多少 bits,直接套用 IPv6 位址長度的基本定義:

IPv6 位址長度=128 bits\boxed{\text{IPv6 位址長度} = 128\text{ bits}}

因此選擇 (D) 128。

選項分析

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 3 題3 分

Which one is NOT an operating system?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查「作業系統(Operating System, OS)」的基本辨識。

作業系統是管理電腦硬體與軟體資源的系統軟體,主要功能包括:

  • 管理處理器與行程(process)
  • 管理記憶體
  • 管理檔案與儲存裝置
  • 管理輸入、輸出設備
  • 提供使用者與應用程式操作電腦的介面

判斷選項時,應確認該名稱本身是否代表一套作業系統,而不是公司名稱、資料庫產品或其他應用軟體。

解題方法

逐一辨識各選項的產品性質:

  1. Solaris:作業系統。
  2. Android:行動裝置作業系統。
  3. Linux:作業系統核心,通常也泛指以 Linux 為核心的作業系統。
  4. Windows:作業系統。
  5. Oracle:主要是公司名稱及資料庫管理系統品牌,不是一般所稱的作業系統。

因此,不屬於作業系統的是 Oracle。

選項分析

(A) Solaris

Solaris 是由 Sun Microsystems 開發、後由 Oracle 維護的 UNIX 系列作業系統,常用於伺服器與企業級電腦環境。

因此 Solaris 是作業系統,本選項錯誤。

(B) Android

Android 是以 Linux 核心為基礎所發展的行動裝置作業系統,主要用於智慧型手機、平板電腦及其他嵌入式裝置。

它負責管理行動裝置的硬體資源,並提供應用程式執行環境,因此 Android 是作業系統,本選項錯誤。

(C) Linux

嚴格而言,Linux 原本是作業系統核心(kernel),負責處理行程、記憶體、硬體驅動程式等核心管理工作。實務與一般考試中,「Linux」通常也用來泛指以 Linux 核心搭配 GNU 工具及其他系統元件所形成的完整作業系統,例如 Ubuntu、Fedora、Debian。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 4 題3 分

Which one is NOT the extension name of a video file?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

副檔名(file extension)通常用來表示檔案的格式或主要用途。本題考查常見多媒體檔案副檔名的辨識:

  • 影片檔:通常儲存影像,並可能同時包含聲音。
  • 音訊檔:主要儲存聲音資料,不包含影片畫面。

在各選項中,MOV、MP4、MPG、AVI 都是常見的影片檔副檔名;WAV 則是常見的音訊檔副檔名。

解題方法

逐一判斷各副檔名所代表的檔案類型:

  1. 若副檔名主要代表影片檔格式,則符合「video file」。
  2. 若副檔名主要代表聲音檔格式,則不符合題意。
  3. 找出唯一的音訊檔副檔名。

因此,答案為 WAV。

選項分析

  • (A) MOV

MOV 是 Apple QuickTime 常用的多媒體檔案格式,主要用於儲存影片,也可以包含音訊。因此屬於常見的影片檔副檔名,本選項不是答案。

  • (B) MP4

MP4 是 MPEG-4 Part 14 所定義的多媒體容器格式,常用來儲存影片、音訊、字幕等資料。日常使用中,.mp4 通常指影片檔,因此本選項不是答案。

  • (C) WAV

WAV 是 Waveform Audio File Format 的縮寫,主要用來儲存數位音訊,常見內容為未壓縮的 PCM 音訊資料。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 5 題3 分

Which one is NOT a step of the genetic algorithm?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查遺傳演算法(Genetic Algorithm, GA)的基本流程,以及「特徵擷取」(feature extraction)在機器學習流程中的角色。

遺傳演算法是一種模仿生物演化的最佳化方法,將每個候選解視為一個個體(individual),多個個體組成族群(population)。演算法透過適應度評估、選擇、交配與突變,使族群逐代演化,尋找較佳解。

典型流程包括:

  1. Population initialization:族群初始化
  2. Fitness evaluation:適應度評估
  3. Selection:選擇
  4. Crossover:交配
  5. Mutation:突變
  6. 產生新世代並重複上述流程,直到滿足停止條件

其中,特徵擷取通常是資料前處理或機器學習模型建立流程的一部分,不是遺傳演算法本身的標準步驟。

解題方法

判斷各選項是否為遺傳演算法步驟即可。

若某操作直接涉及「族群、適應度、交配、突變或演化」,通常屬於遺傳演算法的核心程序;若是將原始資料轉換成較具代表性的特徵,則屬於資料前處理或特徵工程。

因此,四個選項屬於遺傳演算法流程,只有一個屬於資料處理概念而非標準 GA 步驟。

選項分析

(A) crossover:交配

交配是遺傳演算法的核心操作之一。

演算法會從父代個體中選取兩個或多個候選解,交換其部分基因或編碼內容,產生子代。例如染色體為:

P1=110010,P2=001101P_1 = 110010,\qquad P_2 = 001101

在某個交配點切割後,可產生:

C1=110101,C2=001010C_1 = 110101,\qquad C_2 = 001010

交配的目的在於組合不同個體的優良基因,探索新的候選解。因此 A 是遺傳演算法的步驟,不是本題答案。

(B) population initialization:族群初始化

遺傳演算法開始時,必須先建立初始族群。

初始族群通常由若干個隨機產生的候選解組成。例如每個個體以二進位字串表示,族群可能為:

{101001, 011110, 110100, 000111}\{101001,\ 011110,\ 110100,\ 000111\}

沒有初始族群,就無法進行適應度評估、選擇、交配與突變。因此 B 是遺傳演算法的必要步驟,不是本題答案。

(C) mutation:突變

突變是遺傳演算法的核心操作之一。

突變會以低機率改變個體中的部分基因,以維持族群多樣性,避免演算法過早陷入局部最佳解。例如:

101001⟶101101101001 \longrightarrow 101101

此例中某一個基因位置由 00 變為 11。突變有助於探索新的解空間,因此 C 是遺傳演算法的步驟,不是本題答案。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 6 題3 分

What is printed by the following C/C++ program?

int a[10], y=2;
a[1]=1; a[2]=3; a[3]=5;
printf("%d\n", (a[--y]++));

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查三個觀念:

  1. 前置遞減運算子 --y
  • 先將 y 減少 11,再使用遞減後的值。
  1. 陣列索引
  • a[--y] 會使用 --y 的結果作為陣列索引。
  1. 後置遞增運算子 a[--y]++
  • 先取得該陣列元素原本的值作為整個運算式的結果,再將該元素加 11。

題目中的初始值為:

y=2,a[1]=1,a[2]=3,a[3]=5y=2,\quad a[1]=1,\quad a[2]=3,\quad a[3]=5

解題方法與逐步追蹤

原始程式碼為:

int a[10], y=2;
a[1]=1; a[2]=3; a[3]=5;
printf("%d\n", (a[--y]++));

針對運算式:

a[--y]++

依序分析如下。

第一步:執行 --y

--y 是前置遞減,因此先修改 y:

y=2−1=1y=2-1=1

同時,--y 的值為 11。

第二步:決定陣列元素

因此:

a[--y] → a[1]

已知:

a[1]=1a[1]=1

第三步:執行後置遞增 a[1]++

後置遞增的規則是:

  • 整個運算式先取原值;
  • 該變數再增加 11。

所以:

a[1]++

的運算結果為原本的 11,執行後陣列內容變成:

a[1]=2a[1]=2

第四步:執行 printf

printf 印出的是後置遞增運算式的原值:

輸出=1\text{輸出}=1

完整追蹤如下:

步驟動作y被存取的元素運算結果
1執行 --y11—11
2形成 a[--y]11a[1]11
3執行 a[1]++11a[1] 變為 2211
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 7 題3 分

Which one is NOT a name of platform or software for artificial intelligence?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查對人工智慧(Artificial Intelligence, AI)平台或軟體的基本辨識。判斷重點在於:該軟體是否以人工智慧模型、生成式 AI 或 AI 相關功能作為主要用途。

本題官方答案為 A。在民國 112 年的命題脈絡下,Adobe Illustrator 被視為向量繪圖與平面設計軟體,而其餘選項皆是當時常見的人工智慧或生成式人工智慧平台、模型服務。

解題方法

逐一判斷各選項的主要功能:

  • 若主要用途是文字生成、圖像生成或人工智慧模型服務,屬於 AI 平台或軟體。
  • 若主要用途是傳統繪圖、排版或設計工具,且本身不是以 AI 為核心,則不屬於本題所指的 AI 平台或軟體。

因此,找出主要定位不是人工智慧平台或軟體的選項即可。

選項分析

(A) Adobe Illustrator

Adobe Illustrator 是 Adobe 公司開發的向量繪圖軟體,主要用於:

  • 製作商標、圖示與插畫
  • 編輯向量圖形
  • 進行平面設計與排版
  • 繪製可任意縮放而不失真的圖像

在本題的分類標準中,Illustrator 的核心定位是「向量繪圖與設計軟體」,不是以人工智慧模型或生成式 AI 為主要功能,因此為本題所求的錯誤選項。

需注意的是,Adobe 後續持續將 AI 功能整合至 Creative Cloud 產品中,但不影響本題依其主要軟體定位判斷的結果。

(B) ChatGPT

ChatGPT 是以大型語言模型為基礎的生成式人工智慧對話系統,能夠:

  • 理解自然語言
  • 生成文字
  • 回答問題
  • 協助摘要、翻譯與程式設計

因此 ChatGPT 屬於人工智慧軟體,並非本題答案。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 8 題3 分

Which one is a secure protocol?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查常見網路應用層協定的功能,以及「是否具備加密與安全傳輸機制」的基本判斷。

所謂 secure protocol,通常是指協定本身能透過加密、身分驗證與完整性保護,降低以下風險:

  • 帳號密碼被竊取
  • 傳輸內容遭竊聽
  • 資料遭竄改
  • 通訊雙方身分無法確認

在題目列出的協定中,SSH(Secure Shell)本身即是為安全遠端連線而設計的協定,提供加密傳輸、身分驗證與資料完整性保護,因此官方答案為 E。

解題方法

判斷這類題目時,先辨識各協定的主要功能,再確認其「基本版本」是否內建安全機制:

  • 電子郵件收信:POP3、IMAP
  • 檔案傳輸:FTP
  • 目錄服務:LDAP
  • 安全遠端登入與管理:SSH

其中只有 SSH 的名稱與設計目的直接包含安全遠端通訊,且其標準功能包括:

  1. 加密(Encryption):防止傳輸內容被竊聽。
  2. 身分驗證(Authentication):可使用密碼、公鑰等方式確認使用者身分。
  3. 完整性保護(Integrity):防止資料在傳輸途中遭到竄改。
  4. 安全通道(Secure Channel):在不安全的網路上建立受保護的連線。

因此本題選擇 SSH。

選項分析

(A) POP3

POP3(Post Office Protocol version 3)主要用於讓郵件軟體從郵件伺服器下載電子郵件。

傳統 POP3 通常使用 TCP port 110,基本協定本身並未提供完整的加密保護。若直接使用帳號密碼登入,密碼及郵件內容可能遭網路竊聽。

雖然可以使用:

  • POP3S:通常指透過 TLS 保護的 POP3
  • POP3 with STARTTLS:先建立一般連線,再升級為加密連線

但這些是額外的安全機制,不代表原始 POP3 本身就是 secure protocol。因此本選項錯誤。

(B) IMAP

IMAP(Internet Message Access Protocol)主要用於在郵件伺服器上管理與讀取電子郵件,支援資料夾、已讀狀態與多裝置同步。

傳統 IMAP 通常使用 TCP port 143,原始協定並未內建完整的加密傳輸。若未啟用 TLS,帳號資訊與郵件內容可能被竊聽。

常見的安全形式包括:

  • IMAPS:通常指透過 TLS 保護的 IMAP
  • IMAP with STARTTLS:將原本的連線升級為加密連線

安全性來自 TLS 等額外機制,而不是基本 IMAP 協定本身。因此本選項錯誤。

(C) FTP

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 9 題3 分

What is printed by the following C/C++ program?

int a[] = {1,-2,2,-1,3,-1,2};
int sum = 0, m = 0;
for (int i=0; i<7; i++) {
 sum += a[i];
 if (sum < 0) sum = 0;
 if (sum > m) m = sum;
}
cout << m;

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查:

  • 陣列元素的逐項走訪。
  • for 迴圈執行 77 次。
  • 累加變數 sum 的更新。
  • 當累加結果為負數時,透過 if (sum < 0) sum = 0; 將目前累加值重設為 00。
  • 變數 m 記錄迄今出現過的最大 sum。

此程式的核心形式接近最大子陣列和演算法(Kadane’s algorithm):

sum←sum+a[i]\text{sum} \leftarrow \text{sum}+a[i]

若:

sum<0\text{sum}<0

則重設:

sum←0\text{sum}\leftarrow 0

接著更新目前最大值:

m←max⁡(m,sum)m\leftarrow \max(m,\text{sum})

解題方法與逐步追蹤

初始值為:

sum=0,m=0\text{sum}=0,\qquad m=0

依序處理陣列:

a={1,−2,2,−1,3,−1,2}a=\{1,-2,2,-1,3,-1,2\}
iia[i]a[i]加總後 sum是否重設更新後 m
010+1=10+1=1否max⁡(0,1)=1\max(0,1)=1
1−2-21−2=−11-2=-1是,設為 00max⁡(1,0)=1\max(1,0)=1
220+2=20+2=2否max⁡(1,2)=2\max(1,2)=2
3−1-12−1=12-1=1否max⁡(2,1)=2\max(2,1)=2
431+3=41+3=4否max⁡(2,4)=4\max(2,4)=4
5−1-14−1=34-1=3否max⁡(4,3)=4\max(4,3)=4
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 10 題3 分

Which one statement is NOT correct for an AVL tree?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

AVL tree 是一種具有高度平衡條件的二元搜尋樹(Binary Search Tree, BST)。

對於每一個節點,其平衡因子定義為:

Balance Factor=h(left subtree)−h(right subtree)\text{Balance Factor} = h(\text{left subtree})-h(\text{right subtree})

AVL tree 要求每個節點的平衡因子只能是 −1-1、00 或 11,也就是:

∣h(left subtree)−h(right subtree)∣≤1\left|h(\text{left subtree})-h(\text{right subtree})\right|\leq 1

AVL tree 的重要性質包括:

  • 具有二元搜尋樹的排序性質。
  • 插入或刪除後,必要時透過旋轉恢復平衡。
  • 樹高為 O(log⁡n)O(\log n)。
  • 插入時若發生旋轉,該旋轉子樹的高度會恢復為插入前的高度。

本題的關鍵陷阱是:AVL tree 限制的是「每一個節點左右子樹的高度差」,不是限制「任意兩個葉節點的層數差」。

解題方法

逐一檢查各選項是否符合 AVL tree 的定義與插入機制。

特別注意選項 (A) 所說的「任意兩個葉節點的 level difference 至多為 11」,並不是 AVL tree 的正式定義。AVL tree 允許不同葉節點位於相差超過一層的位置,只要每個節點的左右子樹高度差不超過 11 即可。

選項分析

(A) The level difference of every two leaf nodes is at most 1.

此敘述不正確。

AVL tree 的平衡條件是針對每個節點分別檢查:

∣hL−hR∣≤1\left|h_L-h_R\right|\leq 1

其中 hLh_L 與 hRh_R 分別是該節點左右子樹的高度。它並未要求所有葉節點的深度或層數最多只差 11。

例如,某些 AVL tree 可以同時存在位於較淺層的葉節點,以及位於深兩層以上的葉節點;只要沿途每個節點的左右子樹高度差仍不超過 11,便仍是合法的 AVL tree。

因此,「任意兩個葉節點的層數差至多為 11」是過度嚴格的條件,不是 AVL tree 的必要性質。

(B) When a new element is inserted, the inserted position is always at a leaf node.

此敘述正確。

AVL tree 首先是一棵二元搜尋樹。插入新元素時,會依照鍵值大小從根節點往下尋找:

  • 若新值小於目前節點,往左子樹走。
  • 若新值大於目前節點,往右子樹走。
  • 直到遇到空的位置,將新節點插入該處。
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 11 題3 分

Which one statement is NOT correct for the Internet protocol suite?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查 Internet protocol suite(TCP/IP 協定組合)的分層架構,以及各網路協定所屬的層級:

層級主要功能代表協定
Application Layer(應用層)提供網路應用服務HTTP、SSH、DNS、FTP
Transport Layer(傳輸層)端點到端點的資料傳輸、可靠性與流量控制TCP、UDP
Internet Layer(網際網路層)封包尋址與跨網路傳送IPv4、IPv6、ICMP
Link Layer(鏈結層)區域網路中的框架傳輸與實體傳送Ethernet、Wi-Fi

判斷協定層級時,應依其「主要功能」分類,而不是依它使用的連接埠或承載協定分類。

解題方法

逐一將各協定對應到 TCP/IP 四層架構:

  1. TCP、UDP 負責端點間的傳輸,屬於 Transport Layer。
  2. IPv4 負責邏輯位址與封包路由,屬於 Internet Layer。
  3. SSH、HTTP 都是直接提供給使用者或應用程式使用的網路服務,屬於 Application Layer。
  4. 找出將應用層協定誤列為傳輸層的敘述,即可得到錯誤選項。

選項分析

(A) TCP is in the Transport Layer.

正確。TCP(Transmission Control Protocol,傳輸控制協定)屬於傳輸層,主要提供:

  • 連接導向的資料傳輸
  • 可靠傳輸
  • 封包遺失重傳
  • 資料排序
  • 流量控制與壅塞控制

因此 TCP 位於 Transport Layer。

(B) UDP is in the Transport Layer.

正確。UDP(User Datagram Protocol,使用者資料包協定)同樣屬於傳輸層。UDP 不建立連線,也不保證資料一定送達或依序抵達,但具有標頭較小、傳輸速度快的特性。

因此 UDP 位於 Transport Layer。

(C) IPv4 is in the Internet Layer.

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 12 題3 分

Which one statement is NOT correct for TCP and UDP?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查 TCP(Transmission Control Protocol)與 UDP(User Datagram Protocol)的基本特性,重點包括:

  • 是否需要建立連線
  • 傳輸可靠性與遺失封包重傳
  • 資料是否依序抵達
  • 傳輸速度與額外控制成本
  • 是否支援廣播(broadcast)

TCP 與 UDP 的比較如下:

特性TCPUDP
連線形式Connection-orientedConnectionless
可靠性具確認、重傳、流量控制等機制不保證可靠傳輸
資料順序保證依序交付不保證依序交付
廣播一般不支援廣播支援 IPv4 廣播
傳輸負擔較高較低
常見用途網頁、檔案傳輸、電子郵件DNS、影音串流、即時遊戲

解題方法

本題要求找出「NOT correct」,因此逐項將敘述與 TCP、UDP 的標準定義比對即可。

判斷關鍵是:

  1. UDP 不建立連線,因此控制成本較低,通常比 TCP 快。
  2. UDP 不保證資料可靠抵達,但可以使用廣播與多播。
  3. TCP 具有確認與重傳機制,並提供依序且可靠的資料串流。

其中「UDP does not support broadcasting」與 UDP 的標準功能相反,因此選擇(C)。

選項分析

(A) TCP is comparatively slower than UDP.

正確。

TCP 在傳輸前必須建立連線,並且在傳輸過程中處理:

  • 三向交握(three-way handshake)
  • 序號(sequence number)
  • 確認回覆(acknowledgment)
  • 遺失封包重傳
  • 流量控制
  • 壅塞控制
  • 依序重組資料

這些機制增加了額外負擔,因此在一般情況下,TCP 的傳輸速度與即時反應性比 UDP 慢。UDP 僅加入簡單的標頭與檢查碼,不需建立連線,傳輸延遲通常較低。

(B) UDP is a connectionless protocol.

正確。

UDP 是無連線協定。傳送端不必先與接收端建立連線,即可直接將資料封裝成 Datagram 傳送。

UDP 不會執行 TCP 的三向交握,也不保證:

  • 封包一定抵達
  • 封包只抵達一次
  • 封包依照傳送順序抵達
  • 接收端一定具有足夠的處理能力

因此,UDP 常用於 DNS 查詢、即時影音與線上遊戲等重視低延遲的應用。

(C) UDP does not support broadcasting.

錯誤,為本題答案。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 13 題3 分

The time complexity of a certain algorithm is calculated by T(n)=cn+T((1−y)n)T(n)=cn+T((1-y)n), where nn represents the number of input elements, cc and yy are positive constants, 0<y<10<y<1. What is the time complexity?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查遞迴演算法的時間複雜度,核心是分析遞迴式

T(n)=cn+T((1−y)n)T(n)=cn+T((1-y)n)

其中:

  • cncn:目前這一層處理 nn 個元素所需的時間。
  • T((1−y)n)T((1-y)n):只有一個遞迴子問題,且子問題規模縮小為原本的 (1−y)(1-y) 倍。
  • c>0c>0,0<y<10<y<1,因此 0<1−y<10<1-y<1。

關鍵在於:每一層雖然都需要線性時間,但問題規模會以固定比例縮小,所以各層成本形成等比級數,而不是累積成 nlog⁡nn\log n。


解題方法:遞迴樹與等比級數

令

q=1−yq=1-y

因為 0<y<10<y<1,所以 0<q<10<q<1。遞迴式可展開為:

T(n)=cn+T(qn)=cn+cqn+T(q2n)=cn+cqn+cq2n+T(q3n)=⋯\begin{aligned} T(n) &=cn+T(qn)\\ &=cn+cqn+T(q^2n)\\ &=cn+cqn+cq^2n+T(q^3n)\\ &=\cdots \end{aligned}

因此各層的非遞迴成本為:

cn,cqn,cq2n,cq3n,…cn,\quad cqn,\quad cq^2n,\quad cq^3n,\ldots

總成本為等比級數:

cn(1+q+q2+⋯ )cn(1+q+q^2+\cdots)

由於 0<q<10<q<1,無窮等比級數總和為:

1+q+q2+⋯=11−q1+q+q^2+\cdots=\frac{1}{1-q}

而 q=1−yq=1-y,所以:

1−q=1−(1−y)=y1-q=1-(1-y)=y

故總時間為:

T(n)=cn⋅1yT(n)=cn\cdot \frac{1}{y}

其中 cc 與 yy 都是固定常數,因此:

T(n)=Θ(n)T(n)=\Theta(n)

遞迴深度則由

qkn=1q^k n=1

得到:

k=log⁡1/qn=Θ(log⁡n)k=\log_{1/q}n=\Theta(\log n)

但每層的成本不是固定的,而是 n,qn,q2n,…n,qn,q^2n,\ldots,其總和為線性級數,因此總時間仍為 Θ(n)\Theta(n)。


選項分析

(A) Θ(n)\Theta(n):正確

每層處理成本形成:

cn+c(1−y)n+c(1−y)2n+⋯cn+c(1-y)n+c(1-y)^2n+\cdots

這是公比為 1−y1-y 的收斂等比級數,總和與 nn 成正比。因此:

T(n)=Θ(n)T(n)=\Theta(n)

(B) Θ(nlog⁡n)\Theta(n\log n):錯誤

nlog⁡nn\log n 通常出現在:

  • 遞迴層數為 Θ(log⁡n)\Theta(\log n);
  • 且每一層的總成本都維持在 Θ(n)\Theta(n)。

例如合併排序:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 14 題3 分

Which of the following is the decimal representation of (F3A5)16(F3A5)_{16}?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查十六進位制轉換為十進位制。

十六進位制使用 00~99 與 AA~FF 表示數值,其中:

A=10, B=11, C=12, D=13, E=14, F=15A=10,\ B=11,\ C=12,\ D=13,\ E=14,\ F=15

十六進位數 (F3A5)16(F3A5)_{16} 各位數的權重依序為:

163, 162, 161, 16016^3,\ 16^2,\ 16^1,\ 16^0

因此必須將每一位數字乘上對應權重後加總。


解題方法

將十六進位數逐位展開:

(F3A5)16=F×163+3×162+A×161+5×160(F3A5)_{16} =F\times16^3+3\times16^2+A\times16^1+5\times16^0

代入 F=15F=15、A=10A=10:

=15×163+3×162+10×16+5=15\times16^3+3\times16^2+10\times16+5

計算各項:

163=4096,162=25616^3=4096,\qquad 16^2=256

所以:

(F3A5)16=15×4096+3×256+10×16+5=61440+768+160+5=62373\begin{aligned} (F3A5)_{16} &=15\times4096+3\times256+10\times16+5\\ &=61440+768+160+5\\ &=62373 \end{aligned}

因此:

(F3A5)16=(62373)10(F3A5)_{16}=(62373)_{10}

選項分析

  • (A) 153105:錯誤

此數值遠大於正確結果 6237362373,不符合 (F3A5)16(F3A5)_{16} 的位值展開。最高位 FF 僅代表 15×163=6144015\times16^3=61440,加上其餘位數後不會達到 153105153105。

  • (B) 62373:正確

由位值展開:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 15 題3 分

Which of the following statements for a 64-bit processor is incorrect?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查 64-bit 與 32-bit processor 在以下方面的差異:

  1. 位址線寬度與可定址記憶體空間
  2. 理論最大記憶體容量
  3. 處理器效能
  4. 指令集與相容性

「64-bit」主要表示處理器的資料處理、暫存器與記憶體位址能力可使用 64 位元表示,但不代表所有工作都一定比 32-bit processor 快。


解題方法

判斷各選項是否正確時,分別檢查:

  • 位址數量:2n2^n
  • 每個位址若對應 11 byte,則可定址空間為 2n2^n bytes
  • 64-bit 與 32-bit 的理論位址空間比例
  • 「一定更快」與「理論上能力較大」的差異
  • 指令集是否代表完全相同,及考試中的簡化定義

32-bit processor 的理論位址空間為:

232 bytes=4 GB2^{32}\text{ bytes}=4\text{ GB}

64-bit processor 的理論位址空間為:

264 bytes2^{64}\text{ bytes}

換算成十進位容量:

264=18,446,744,073,709,551,6162^{64}=18,446,744,073,709,551,616

約為 18.418.4 exabytes,因此常近似表示為 1818 exabytes。

兩者理論位址空間的比例為:

264232=264−32=232\frac{2^{64}}{2^{32}}=2^{64-32}=2^{32}

選項分析

(A) It can support 18 exabytes of potential addressable memory space.

正確。

64-bit processor 的理論位址空間為:

264 bytes≈18.4 exabytes2^{64}\text{ bytes}\approx 18.4\text{ exabytes}

因此題目以約數表示為 18 exabytes。這裡的重點是「potential addressable memory space」,指理論上可定址的最大空間,不代表實際電腦一定安裝了 18 exabytes 的 RAM。


(B) The memory size of it is larger than that of a 32-bit processor.

依考試的基本定義,正確。

32-bit processor 的理論位址空間是 2322^{32} bytes,64-bit processor 則是 2642^{64} bytes:

264>2322^{64}>2^{32}

因此 64-bit processor 的理論可定址記憶體空間較大。

嚴格而言,實際可安裝的記憶體仍會受到主機板、作業系統、處理器設計與硬體位址線數量限制;本選項是在比較理論可定址空間。


(C) The maximum memory size is 2322^{32} times of that of a 32-bit processor.

正確。

64-bit 與 32-bit processor 的理論位址空間比值為:

264232=232\frac{2^{64}}{2^{32}}=2^{32}
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 16 題3 分

Which of the following items is a part of central processing unit (CPU)?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查電腦基本組成,以及中央處理器(Central Processing Unit, CPU)的內部結構。

CPU 是電腦中負責「解讀指令、控制運算流程、執行資料處理」的核心元件,主要包含:

  • 控制單元(Control Unit, CU):解讀指令,並發出控制訊號,協調各部件工作。
  • 算術邏輯單元(Arithmetic Logic Unit, ALU):執行加減乘除、比較、邏輯運算等。
  • 暫存器(Registers):CPU 內部用來暫存指令、資料與運算結果的高速儲存單元。

因此,控制單元是 CPU 的一部分。

解題方法

判斷各選項是否屬於 CPU 的方法,是先區分「CPU 內部組成」與「電腦周邊或其他處理器」。

CPU 的典型結構可概括為:

CPU=Control Unit+ALU+Registers\text{CPU}=\text{Control Unit}+\text{ALU}+\text{Registers}

逐一比對選項後,只有 Control unit 符合 CPU 的內部組成。

選項分析

(A) Hard disk

Hard disk(硬碟)屬於輔助儲存設備,用來長期儲存作業系統、程式與檔案。它不是 CPU 的內部單元。

硬碟中的資料必須先載入主記憶體,CPU 才能進一步處理,因此本選項錯誤。

(B) Input unit

Input unit(輸入單元)負責將使用者或外部設備提供的資料輸入電腦,例如鍵盤、滑鼠、掃描器等。

輸入單元屬於電腦的輸入設備,負責提供資料給電腦,不是 CPU 的組成部分,因此錯誤。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 17 題3 分

Which radix rr is correct for (B7)16=(267)r(B7)_{16}=(267)_r?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查「進位制表示法」與「位值展開」。

在 rr 進位中,數字 (267)r(267)_r 代表:

(267)r=2r2+6r+7(267)_r=2r^2+6r+7

十六進位數 (B7)16(B7)_{16} 中,BB 代表十進位的 1111,因此:

(B7)16=11×16+7=183(B7)_{16}=11\times 16+7=183

此外,(267)r(267)_r 中出現最大數字 77,所以進位必須滿足:

r>7r>7

也就是 r≥8r\ge 8。

解題方法

先將十六進位數轉成十進位:

(B7)16=11×16+7=176+7=183(B7)_{16}=11\times16+7=176+7=183

再將 rr 進位數展開:

(267)r=2r2+6r+7(267)_r=2r^2+6r+7

由題意兩者相等:

2r2+6r+7=1832r^2+6r+7=183

整理得:

2r2+6r−176=02r^2+6r-176=0

兩邊同除以 22:

r2+3r−88=0r^2+3r-88=0

因式分解:

(r+11)(r−8)=0(r+11)(r-8)=0

因此:

r=−11或r=8r=-11 \quad\text{或}\quad r=8

進位必須是正整數,且必須大於最大使用數字 77,所以 r=−11r=-11 不符合進位定義,只有:

r=8r=8

快速驗算:

(267)8=2×82+6×8+7=128+48+7=183(267)_8=2\times8^2+6\times8+7 =128+48+7 =183

而:

(B7)16=183(B7)_{16}=183

兩者確實相等。

選項分析

  • (A) r=10r=10:錯誤
(267)10=267(267)_{10}=267

但:

(B7)16=183(B7)_{16}=183
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 18 題3 分

What can be used to keep the state information on an end user's computer?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查網頁應用程式如何在「使用者端電腦」保存狀態資訊。

HTTP 通訊本身具有「無狀態」(stateless)特性:使用者每次向伺服器提出請求時,伺服器通常不會自動知道這些請求是否來自同一位使用者。因此,網站需要額外機制辨識使用者並保存相關狀態,例如:

  • 登入狀態
  • 購物車內容
  • 使用者偏好設定
  • 瀏覽紀錄
  • Session ID

其中,**Cookies(網站 Cookie)**是由網站傳送給瀏覽器,並儲存在使用者端電腦中的小型資料。瀏覽器之後向同一網站提出請求時,會依規則將 Cookie 一併送回伺服器,使網站能夠辨識使用者或讀取先前保存的狀態。


解題方法

判斷本題的關鍵在於題幹中的兩個條件:

  1. keep the state information:保存狀態資訊。
  2. on an end user's computer:保存位置在終端使用者的電腦上。

逐一比對選項:

  • 能在使用者端保存網站狀態的機制,符合 Cookies。
  • 只負責驗證身分、呈現格式或儲存伺服器資料的選項,不符合題意。

因此,依官方公布答案,正確選項為 Cookies。


選項分析

(A) Password

Password 是用來驗證使用者身分的認證資訊,例如登入網站時輸入帳號與密碼。

密碼本身不是專門用來保存網站連線狀態的機制。網站通常不會將使用者密碼直接儲存在瀏覽器中,伺服器也不會依靠密碼判斷每一次請求是否屬於同一個已登入工作階段。

實際的登入流程通常是:

  1. 使用者輸入帳號與密碼。
  2. 伺服器驗證密碼。
  3. 驗證成功後建立 Session。
  4. 伺服器將 Session ID 放入 Cookie。
  5. 瀏覽器後續請求自動帶上 Cookie,伺服器藉此辨識登入狀態。

因此,Password 是「驗證身分」的資料,不是主要用來在終端使用者電腦保存網站狀態的機制,本選項錯誤。

(B) CSS

CSS(Cascading Style Sheets,階層式樣式表)用來控制網頁的外觀與版面,例如:

  • 文字顏色
  • 字型大小
  • 邊界與間距
  • 元件位置
  • 響應式版面

CSS 的功能是「呈現樣式」,不是儲存使用者狀態。它不負責記錄登入資訊、購物車資料或 Session ID,因此本選項錯誤。

(C) Database

Database(資料庫)可以儲存大量且結構化的資料,例如:

  • 使用者帳號
  • 訂單資料
  • 商品資訊
  • 交易紀錄
  • 伺服器端的 Session 狀態

但一般網頁架構中,資料庫主要位於網站伺服器端,而不是終端使用者的電腦。題目特別強調「on an end user's computer」,因此資料庫不符合題目所要求的儲存位置。

資料庫確實可以保存狀態資訊,但屬於伺服器端儲存;Cookies 才是典型的使用者端儲存機制。本選項錯誤。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 19 題3 分

What is to ensure unauthorized access to data content?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查資訊安全的三要素 CIA Triad:

  • Confidentiality(機密性):確保資料內容只能由經授權的使用者或系統存取,防止未授權的讀取、洩漏。
  • Integrity(完整性):確保資料未被未授權地竄改、刪除或破壞。
  • Availability(可用性):確保授權使用者在需要時能取得資料或使用服務。
  • Authentication(身分驗證):確認使用者或系統「是誰」,例如密碼、憑證、生物辨識或多因素驗證。

題幹中的關鍵是:

ensure unauthorized access to data content

其意義是「防止未經授權者存取資料內容」,直接對應到機密性(Confidentiality)。

解題方法

判斷資訊安全題時,可先確認題目要防範的安全問題:

題目描述對應觀念
防止未授權閱讀、洩漏資料Confidentiality
確認使用者身分Authentication
防止資料遭竄改Integrity
確保服務不中斷、資料可取得Availability

本題討論的是「未授權存取資料內容」,重點在於保護資料不被不應存取的人看到,因此答案為 Confidentiality。

選項分析

(A) Confidentiality:正確

Confidentiality 是機密性,目的在防止未授權的資料揭露與存取。例如:

  • 未登入的使用者不得讀取病患資料。
  • 非公司員工不得查看內部文件。
  • 網路傳輸使用加密,避免竊聽者取得資料內容。
  • 使用存取控制與權限管理,限制資料讀取對象。

因此,確保未授權者無法存取資料內容,正是 Confidentiality 的功能。

(B) Authentication:錯誤

Authentication 是身分驗證,用來確認「使用者是否確實是其宣稱的身分」,例如以帳號密碼登入。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 20 題3 分

How many operations can be defined when a machine equips a control bus of sixteen wires?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

控制匯流排(control bus)由多條控制線組成,每條線通常具有 00 與 11 兩種狀態。若控制匯流排共有 nn 條線,則可形成的不同控制訊號組合數為:

2n2^n

本題的控制匯流排有 16 條線,因此每條線皆可獨立表示二進位狀態,總組合數為 2162^{16}。

解題方法

將 16 條控制線視為一組 16 位元的二進位編碼:

b15b14⋯b1b0⏟16 bits\underbrace{b_{15}b_{14}\cdots b_1b_0}_{16\text{ bits}}

每一位有 2 種狀態,因此總狀態數為:

2×2×⋯×2=216=65,5362 \times 2 \times \cdots \times 2 =2^{16} =65,536

在本題採用的基本計算機組織模型中,每一種控制訊號組合可對應一種機器操作,因此可定義的操作數為:

65,536\boxed{65,536}

選項分析

  • (A) 16:錯誤。
    16 是控制線的數量,不是控制線能表示的組合數。每條線具有兩種狀態,必須計算所有二進位組合,不能直接以 1616 作答。
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 21 題3 分

What is the protocol for email services?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查網路應用層協定與其主要用途。電子郵件服務常使用下列協定:

  • SMTP(Simple Mail Transfer Protocol):負責寄送電子郵件,以及郵件伺服器之間的轉送。
  • POP3(Post Office Protocol version 3):負責從郵件伺服器下載郵件至使用者端。
  • IMAP(Internet Message Access Protocol):負責讓使用者從郵件伺服器讀取、管理郵件。

在本題選項中,唯一直接對應電子郵件傳送服務的協定是 SMTP。

解題方法

判斷網路協定的主要服務對象即可:

  1. 電子郵件的「寄出」與「伺服器間轉送」使用 SMTP。
  2. 電子郵件的「收取」通常使用 POP3 或 IMAP。
  3. 題目選項沒有 POP3 或 IMAP,因此依官方答案選擇 SMTP。

SMTP 通常使用 TCP 連線,常見連接埠包括:

  • TCP 25:郵件伺服器之間的傳送
  • TCP 587:使用者提交郵件
  • TCP 465:常見於加密的 SMTP 連線

因此,本題所問的 email services,在提供的選項中應選 SMTP。

選項分析

(A) HTTP

HTTP(HyperText Transfer Protocol)是全球資訊網使用的協定,主要負責瀏覽器與網站伺服器之間傳輸網頁、文字、圖片等資料。

例如使用瀏覽器開啟網頁時,通常會使用 HTTP 或 HTTPS。它不是電子郵件傳送協定,因此錯誤。

(B) SMTP

SMTP(Simple Mail Transfer Protocol)是電子郵件傳送協定,主要負責:

  • 使用者將郵件寄送至郵件伺服器
  • 郵件伺服器之間轉送郵件
  • 將郵件送往收件者所屬的郵件伺服器
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 22 題3 分

Which method can be used for the starvation when the operation system has limited resource for processes?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考的是作業系統中的:

  • Process Scheduling(行程排程)
  • Starvation(飢餓)
  • Priority Scheduling(優先權排程)

當系統資源有限時,多個行程必須競爭 CPU、記憶體、I/O 裝置或其他資源。若某個行程長期無法取得所需資源,便稱為 starvation。

在排程問題中,常以優先權決定行程取得 CPU 或資源的先後順序。為避免低優先權行程長期等候,可搭配:

  • Aging(老化機制):等待時間越長,優先權逐漸提高。
  • 動態調整優先權。
  • 設定最長等待時間。
  • 讓低優先權行程獲得週期性服務。

因此,本題依官方答案,選擇 Priority scheduling。


解題方法

先判斷題目所問的「method」是否屬於作業系統中的行程排程方法。

題目提到:

starvation
operating system
limited resource for processes

這些關鍵字代表問題核心是「如何安排多個行程使用有限資源」,因此應從 CPU scheduling 或 resource scheduling 的方法中尋找答案。

Priority scheduling 會依行程優先權安排執行順序。若低優先權行程長期得不到資源,就會發生飢餓;因此實務上會搭配 Aging,使等待過久的行程逐漸提高優先權。

例如:

行程初始優先權等待時間增加後
P1P_111
P2P_255
P3P_32逐漸提高

若系統永遠優先執行高優先權行程,P1P_1 可能一直無法執行。加入 Aging 後,可將其有效優先權表示為:

Effective Priority=Initial Priority+Waiting-Time Bonus\text{Effective Priority} = \text{Initial Priority} + \text{Waiting-Time Bonus}

等待越久,優先權越高,便能降低飢餓現象。


選項分析

(A) Sorting

Sorting 是排序方法,例如按照優先權、抵達時間或執行時間排列行程。

排序本身只是資料整理程序,並不是解決行程飢餓的排程策略。即使把行程排序,仍可能使低優先權行程長期排在後面,因此無法直接避免 starvation。

所以 (A) 錯誤。


(B) Searching

Searching 是搜尋資料的程序,例如在線性資料結構或樹狀結構中尋找某個項目。

搜尋可用於尋找可執行行程或可用資源,但它不是作業系統用來分配有限資源、避免行程長期等候的主要排程方法。

所以 (B) 錯誤。


(C) Priority scheduling

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 23 題3 分

What is the subject of health informatics?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

Health informatics(健康資訊學/醫療資訊學)是結合醫療、資訊科學、資料科學與管理方法,透過資訊系統、資料分析與數位工具,改善健康照護、臨床決策、醫學研究及醫療服務品質的跨領域學科。

其研究範圍相當廣泛,包含:

  • 協助醫療人員工作的資訊工具
  • 遠距健康照護與遠距醫療
  • 臨床決策支援系統
  • 人工智慧與機器學習在醫療上的應用
  • 臨床研究資訊學
  • 電子病歷、醫療資料交換、健康資料管理與病人安全等

因此,本題不是在詢問某一項特定技術,而是在辨認 health informatics 的涵蓋範圍。

解題方法

本題採用「範圍判斷法」:

  1. 先確認 health informatics 是一個跨領域的總稱。
  2. 檢查各選項是否屬於健康資訊學的研究或應用範圍。
  3. 若 A 至 D 均屬於其範圍,則選擇涵蓋全部內容的選項 E。

Health informatics 的核心不只是電腦工具本身,也包括如何蒐集、儲存、交換、分析及應用健康資料,以支援臨床照護與醫學研究。A 至 D 分別代表不同的應用面向,合在一起構成 health informatics 的重要內容。

選項分析

(A) Tools to support practitioners

此選項正確,但內容不完整。

Health informatics 會發展或應用各種協助醫療專業人員的工具,例如:

  • 電子病歷系統
  • 臨床決策支援系統
  • 醫療影像資訊系統
  • 藥物交互作用警示系統
  • 檢驗資料管理系統
  • 病人資料查詢與分析工具

這些工具能協助醫師、護理師及其他醫療人員取得正確資訊、降低人為錯誤並提升照護效率。

但 health informatics 不只是在製作「支援醫療人員的工具」,還包括遠距醫療、人工智慧及臨床研究資料應用。因此若只選 A,無法完整涵蓋題目所問的 subject。

(B) Telehealth and telemedicine

此選項正確,但內容不完整。

Telehealth(遠距健康照護)的範圍較廣,包含遠距衛教、健康管理、公共衛生服務及非直接診療活動;telemedicine(遠距醫療)則通常特別指利用資訊與通訊技術進行診斷、治療或臨床諮詢。

例如:

  • 遠距門診
  • 遠距會診
  • 遠距監測慢性病患者
  • 透過穿戴式裝置傳送生理數據
  • 偏遠地區醫療服務

這些都需要健康資料的傳輸、儲存、分析、隱私保護與資訊安全,因此屬於 health informatics 的重要應用。

但遠距醫療只是其中一個領域,不能代表 health informatics 的全部,所以單獨選 B 不完整。

(C) Decision support, artificial intelligence and machine learning in healthcare

此選項正確,但內容不完整。

Decision support(決策支援)是利用病人的臨床資料、醫學知識與規則,協助醫療人員做出判斷,例如:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 24 題3 分

Which operation can be taken to flip all of the bits in a binary string with a mask of all 1's binary string of equal length?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考的是位元運算(bitwise operation)中,如何利用遮罩(mask)將二進位字串的每一個位元反轉。

對任一位元 b∈{0,1}b \in \{0,1\},若與遮罩位元 11 進行 XOR:

b⊕1={1,b=00,b=1b \oplus 1 = \begin{cases} 1, & b=0\\ 0, & b=1 \end{cases}

因此,XOR 與 11 會將該位元反轉:

  • 0⊕1=10 \oplus 1=1
  • 1⊕1=01 \oplus 1=0

當遮罩是與原二進位字串等長、且每一位皆為 11 的字串時,所有位元都會被反轉。


解題方法

設原二進位字串為:

X=xn−1xn−2⋯x1x0X=x_{n-1}x_{n-2}\cdots x_1x_0

遮罩為全 11 的字串:

M=111⋯111M=111\cdots111

逐位進行 XOR:

X⊕MX \oplus M

由於 MM 的每一位都是 11,因此:

xi⊕1=xi‾x_i \oplus 1=\overline{x_i}

所以結果為:

X⊕111⋯111=X‾X \oplus 111\cdots111=\overline{X}

例如:

10110010⊕11111111=0100110110110010 \oplus 11111111=01001101

原字串中的每一位 00 變成 11,每一位 11 變成 00,完成全部位元的翻轉。


選項分析

(A) AND

AND 與 11 的運算規則為:

b∧1=bb \land 1=b

因此:

  • 0∧1=00 \land 1=0
  • 1∧1=11 \land 1=1

以全 11 遮罩進行 AND,只會保留原本的位元,不會翻轉。

例如:

10110010∧11111111=1011001010110010 \land 11111111=10110010

因此此選項錯誤。


(B) OR

OR 與 11 的運算規則為:

b∨1=1b \lor 1=1

因此:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 25 題3 分

HTTPS is in which network layer?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查 OSI 七層網路模型中,各網路協定所屬的層級。

OSI 七層由下而上為:

  1. Physical layer:實體層
  2. Data link layer:資料鏈結層
  3. Network layer:網路層
  4. Transport layer:傳輸層
  5. Session layer:會議層
  6. Presentation layer:表示層
  7. Application layer:應用層

HTTPS 是 HyperText Transfer Protocol Secure 的縮寫,中文為「安全超文字傳輸協定」。它是在 HTTP 的基礎上,透過 TLS 加密與驗證來保護網頁資料傳輸。

HTTP/HTTPS 提供的是網頁應用程式所使用的服務,例如:

  • 瀏覽網頁
  • 傳送表單資料
  • 下載檔案
  • 使用 REST API
  • 傳送 HTTP request 與 response

因此,依照一般 OSI 分層的考試分類,HTTPS 屬於 Application layer(應用層)。


解題方法

判斷網路協定所屬層級時,可先確認它主要負責的功能:

  • 若負責電訊號、光訊號或無線訊號,屬於實體層。
  • 若負責同一區域網路中的框架傳輸與 MAC 位址,屬於資料鏈結層。
  • 若負責跨網路傳遞封包與 IP 位址,屬於網路層。
  • 若負責端點之間的可靠傳輸與連線管理,屬於傳輸層。
  • 若直接提供網頁、電子郵件、檔案傳輸等應用服務,屬於應用層。

HTTPS 直接處理的是「網頁應用層資料」,所以判定為:

HTTPS⇒Application layer\text{HTTPS} \Rightarrow \text{Application layer}

故選擇 (D)。


HTTPS 的協定結構

HTTPS 可概念化表示為:

HTTPS=HTTP+TLS\text{HTTPS} = \text{HTTP} + \text{TLS}

其典型傳輸關係如下:

HTTP→TLS→TCP→IP→Ethernet/Wi-Fi\text{HTTP} \rightarrow \text{TLS} \rightarrow \text{TCP} \rightarrow \text{IP} \rightarrow \text{Ethernet/Wi-Fi}

各部分功能如下:

  • HTTP:定義網頁要求與回應的格式,屬於應用層。
  • TLS:提供加密、身分驗證與資料完整性保護。
  • TCP:提供可靠、具順序性的資料傳輸,屬於傳輸層。
  • IP:負責封包尋址與跨網路傳送,屬於網路層。
  • Ethernet/Wi-Fi:負責區域網路中的資料傳送,涉及資料鏈結層與實體層。
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 26 題3 分

When executing a function call in a program, which data structure will be taken to store the status of the global variables and recover them back once the execution of the function is complete?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查「函式呼叫(function call)」與「堆疊(stack)」的關係。

程式執行函式時,系統通常會建立一個函式的啟動紀錄(activation record),也稱為堆疊框架(stack frame),存放:

  • 返回位址(return address)
  • 傳入參數
  • 區域變數
  • 暫存器內容
  • 函式執行所需的其他狀態資訊

這些資料會依照「後進先出(Last In, First Out, LIFO)」的順序管理。函式執行完畢後,移除該函式的 stack frame,程式即可恢復呼叫前的執行狀態。

因此,依照本題的命題意旨,應選擇 Stack。


解題方法

判斷函式呼叫使用哪一種資料結構時,可觀察函式呼叫的特性:

  1. 呼叫函式時,必須保存目前程式的執行狀態。
  2. 被呼叫的函式執行完畢後,必須回到原本的執行位置。
  3. 若函式內又呼叫另一個函式,必須先保存外層函式的狀態。
  4. 函式返回時,最後被保存的狀態會最先恢復。

這種「最後進入、最先離開」的行為正是 LIFO,因此使用 Stack 最符合函式呼叫的需求。

簡化範例

int square(int x) {
 int result = x * x;
 return result;
}

int main {
 int a = 3;
 int b = square(a);
}

執行追蹤

執行 square(a) 前:

Stack:
┌──────────────┐
│ main frame │
│ a = 3 │
└──────────────┘

呼叫 square(3) 後,建立新的 stack frame:

Stack:
┌──────────────┐
│ square frame │
│ x = 3 │
│ result = 9 │
└──────────────┘
┌──────────────┐
│ main frame │
│ a = 3 │
└──────────────┘

square 執行完畢後,移除 square frame,並將返回值 99 傳回 main:

Stack:
┌──────────────┐
│ main frame │
│ a = 3 │
│ b = 9 │
└──────────────┘

此機制使程式能夠正確記住函式返回位置,並恢復呼叫者的執行狀態。


選項分析

(A) Heap

Heap(堆積區)主要用於配置動態記憶體,例如 C 語言中的 malloc、C++ 中的 new,或由程式執行期間建立的物件。

Heap 的配置與釋放不具有函式呼叫所需的 LIFO 特性,因此不是管理函式呼叫狀態的主要資料結構。

故此選項錯誤。

(B) Linking list

題目中的 Linking list 通常是指 Linked List(鏈結串列)。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 27 題3 分

In order to ensure the access control of medical equipment to avoid unauthorized operations, which information security principle should be considered?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查資訊安全的基本原則,以及「避免未經授權操作」所涉及的身分確認機制。

**Authentication(身分驗證)**是確認使用者或操作者「是否為其所聲稱的身分」,例如:

  • 帳號與密碼
  • 醫護人員識別卡
  • 指紋、臉部辨識
  • 一次性密碼或多因素驗證

醫療設備在允許操作前,先驗證操作者身分,可防止未經身分確認的人員直接使用設備。因此依官方公布答案,本題選 (D) Authentication。

需注意,嚴格的資訊安全術語中,確認「某人是否有權限執行特定操作」屬於 Authorization(授權)。本題選項沒有 Authorization,因此依命題意旨,將「避免 unauthorized operations」聚焦在操作前的身分驗證,答案為 D。

解題方法

題幹的關鍵字是:

ensure the access control
avoid unauthorized operations

判斷步驟如下:

  1. 題目要求限制醫療設備的操作對象。
  2. 使用者在操作設備前,必須先證明自己的身分。
  3. 證明「你是誰」屬於 Authentication。
  4. 確認「你能做什麼」則屬於 Authorization;但此選項未列入。
  5. 依官方答案與選項內容,選擇 (D) Authentication。

選項分析

(A) Confidentiality

**Confidentiality(機密性)**是防止未授權者讀取或取得資訊,重點在於「資料不被不該知道的人看到」。

例如:

  • 病患病歷不得被無關人員查閱
  • 醫療影像須限制非授權人員存取
  • 傳輸中的醫療資料應加密

本題重點是避免未經允許的人員「操作醫療設備」,不是防止資料外洩,因此不是 Confidentiality。

(B) Integrity

**Integrity(完整性)**是確保資料或系統內容未遭未授權修改、刪除或竄改。

例如:

  • 防止篡改病患檢驗數據
  • 防止修改醫療設備的設定值
  • 確保處方內容在傳輸過程中未被改變

本題雖然醫療設備也需要維持系統完整性,但題幹直接強調的是操作人員的存取控制與身分確認,不是資料是否被修改,因此不是 Integrity。

(C) Availability

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 28 題3 分

What is the output of the following C program?

int i = 8, j = 7, *s = &i, t = &j;
printf("%d\n", 6
(*s/*t)+5);

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查三個 C 語言觀念:

  1. 指標的宣告與取值。
  2. 解參照運算子 * 的作用。
  3. int 整數除法與運算子優先順序。

程式中的宣告為:

int i = 8, j = 7, *s = &i, *t = &j;

其意義如下:

  • i 的值為 88
  • j 的值為 77
  • s 儲存 i 的位址,因此 *s 的值為 88
  • t 儲存 j 的位址,因此 *t 的值為 77

解題方法

原式為:

6*(*s/*t)+5

其中:

*s / *t

會被解讀為:

(*s) / (*t)

代入指標所指向的數值:

∗s=8,∗t=7*s = 8,\qquad *t = 7

因此:

6×(8/7)+56 \times (8 / 7) + 5

由於 s 與 t 所指向的資料型態都是 int,所以 8/78/7 是整數除法,只保留商:

8/7=18 / 7 = 1

繼續計算:

6×1+5=116 \times 1 + 5 = 11

因此 printf 輸出:

11

逐步追蹤(Trace)

步驟運算內容結果
1*s88
2*t77
3*s / *t8/7=18/7=1
46 * 166
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 29 題3 分

What is the output of the following C program?

int M = 10;
int N = 0;
for (int i = 1; i < M; i++) {
 for (int j = 0; j < i; j++) {
  N++;
 }
}
printf("%d\n", N);

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查:

  • for 迴圈的執行條件與次數
  • 巢狀迴圈的總執行次數
  • 累加變數 N 的更新結果
  • 等差級數求和

外層迴圈:

for (int i = 1; i < M; i++)

因為 M=10M=10,所以 ii 依序為:

1,2,3,4,5,6,7,8,91,2,3,4,5,6,7,8,9

當 i=10i=10 時,條件 i<Mi<M 不成立,迴圈結束。

內層迴圈:

for (int j = 0; j < i; j++)

當外層變數為 ii 時,jj 從 00 執行到 i−1i-1,因此內層迴圈恰好執行 ii 次。


解題方法與逐步追蹤

初始值為:

N = 0;

每執行一次內層迴圈,便執行:

N++;

因此各次外層迴圈對 NN 的增加量如下:

外層 ii內層 jj 的範圍內層執行次數NN 累計值
10011
20,10,123
30,1,20,1,236
400 至 33410
500 至 44515
600 至 55621
700 至 66728
800 至 77836
900 至 88945

所以:

N=1+2+3+4+5+6+7+8+9N=1+2+3+4+5+6+7+8+9

利用等差級數公式:

1+2+⋯+9=9(9+1)2=9×102=451+2+\cdots+9=\frac{9(9+1)}{2} =\frac{9\times 10}{2} =45

因此程式輸出:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 30 題3 分

What is the output of the following C program?

If a=3.0a=3.0, b=5.0b=5.0, and c=2.0c=2.0, then what is printed by printf("%.3f", sqrt(a+b*c));

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查三個重點:

  1. C 語言運算子的優先順序。
  2. sqrt 平方根函式的計算。
  3. printf("%.3f", ...) 的浮點數格式化與四捨五入。

程式片段為:

printf("%.3f", sqrt(a+b*c));

其中:

  • a=3.0a=3.0
  • b=5.0b=5.0
  • c=2.0c=2.0

sqrt(x) 會回傳 xx 的平方根;%.3f 表示以浮點數格式輸出,並保留小數點後 3 位。


解題方法

1. 先判斷運算順序

在 C 語言中,乘法 * 的優先順序高於加法 +,因此:

a+b∗c=a+(b×c)a+b*c=a+(b\times c)

代入數值:

a+b∗c=3.0+(5.0×2.0)a+b*c=3.0+(5.0\times 2.0) =3.0+10.0=13.0=3.0+10.0=13.0

2. 計算平方根

因此函式實際計算的是:

13.0≈3.605551275\sqrt{13.0}\approx 3.605551275

3. 依格式輸出

格式字串:

"%.3f"

表示:

  • f:以浮點數格式輸出。
  • .3:保留小數點後 3 位。
  • 第 4 位小數為 55,因此第 3 位小數進位。
3.605551275⟶3.6063.605551275\longrightarrow 3.606

所以螢幕上印出:

3.606

逐步追蹤(Trace)

步驟計算或處理結果
1b×cb\times c5.0×2.0=10.05.0\times2.0=10.0
2a+b×ca+b\times c3.0+10.0=13.03.0+10.0=13.0
3sqrt(13.0)約 3.6055512753.605551275
4%.3f 格式化3.606

選項分析

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 31 題3 分

For a Generative Adversarial Network (GAN) to produce images of chest x-ray, which of the following statement is TRUE?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

生成對抗網路(Generative Adversarial Network, GAN)由兩個主要模型組成:

  1. Generator(生成器)
  • 接收隨機向量 zz。
  • 將 zz 轉換成一張看似真實的影像。
  • 目標是產生足以混淆判別器的資料。
  1. Discriminator(判別器)
  • 接收真實影像或生成器產生的影像。
  • 判斷輸入影像是「真實資料」還是「生成資料」。
  • 其基本任務不是醫學影像的疾病分類。

GAN 的訓練目標可概括為:

min⁡Gmax⁡DV(D,G)=Ex∼pdata[log⁡D(x)]+Ez∼pz[log⁡(1−D(G(z)))]\min_G \max_D V(D,G) = \mathbb{E}_{x\sim p_{\text{data}}}[\log D(x)] + \mathbb{E}_{z\sim p_z}[\log(1-D(G(z)))]

其中:

  • GG:生成器
  • DD:判別器
  • xx:真實胸部 X 光影像
  • zz:隨機輸入向量
  • G(z)G(z):生成的胸部 X 光影像
  • D(x)D(x):判別器判定影像為真實影像的機率

本題問的是:GAN 用於產生胸部 X 光影像時,哪一項敘述正確。


解題方法

判斷每個選項是否符合標準 GAN 的功能分工:

  • 產生新影像:屬於 Generator 的功能。
  • 判斷真實影像或生成影像:屬於 Discriminator 的基本功能。
  • 判斷正常或異常:屬於醫學影像分類器的功能,並非標準 GAN 判別器的直接任務。

因此,只要找出描述生成器能夠產生新影像的選項即可。


選項分析

(A) The generator can produce unseen images of chest x-ray.

正確。

生成器從訓練資料學習胸部 X 光影像的分布,再利用隨機向量 zz 產生新的影像:

z⟶G(z)z \longrightarrow G(z)

生成影像不是訓練資料的逐張複製,而是根據所學到的影像特徵與分布,產生訓練集中未曾直接出現的影像。因此,Generator 可以產生新的胸部 X 光影像。

這也是 GAN 最核心的功能。


(B) The discriminator can be used to enhance the detection rate of certain anomaly chest x-ray.

錯誤。

標準 GAN 的判別器主要判斷:

影像是真實資料,還是生成資料\text{影像是真實資料,還是生成資料}

它的輸出通常代表影像屬於真實資料的機率,而不是判斷某種疾病或異常。

在醫學影像研究中,GAN 確實可能被延伸用於:

  • 產生少見疾病影像,增加訓練資料量;
  • 協助資料增強;
  • 改善其他分類模型的訓練效果。
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 32 題3 分

How does a ransomware cause damages to the infected computing devices?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

Ransomware(勒索軟體)是一種以勒索為目的的惡意軟體。感染裝置後,通常會將使用者的重要檔案以加密演算法轉換成無法直接讀取的形式,並要求受害者支付贖金以取得解密金鑰。

其主要破壞機制可表示為:

可讀資料→加密無法正常讀取的密文\text{可讀資料} \xrightarrow{\text{加密}} \text{無法正常讀取的密文}

因此,受害者雖然可能仍看得到檔案名稱與檔案存在,但沒有正確的解密金鑰,就難以使用檔案內容。這會造成資料無法存取、業務中斷與經濟損失。

解題方法

判斷本題的關鍵,在於辨認 ransomware 最具代表性的攻擊行為。

「ransom」意指贖金,勒索軟體通常透過鎖定電腦或加密檔案,使資料持有人失去資料使用權,再要求支付贖金。因此核心機轉是:

Encrypt data\boxed{\text{Encrypt data}}

故本題選擇 (D)。

選項分析

(A) Delete data

刪除資料確實可能造成損害,但「刪除資料」不是 ransomware 最典型、最核心的作用方式。勒索軟體通常需要保留檔案,將檔案加密後以此要求贖金;若直接刪除檔案,受害者可能沒有支付贖金以取回資料的誘因。

因此此選項不是本題所要考的主要機制,錯誤。

(B) Exploit computing power

此選項是「濫用計算資源」,例如挖礦型惡意軟體會偷偷使用受害裝置的處理器與電力進行 cryptocurrency mining。

這不是 ransomware 的主要特徵。勒索軟體的重點在於限制資料存取並索取贖金,而非竊取處理器運算能力,因此錯誤。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 33 題3 分

Given a table as follows:

T.XT.YT.Z
233
796
933

What is the output of the following SQL statement?

Select X from T where T.Y = T.Z

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查 SQL 查詢的基本語法,重點包括:

  • SELECT X:選取資料表 T 的 X 欄位。
  • FROM T:指定資料來源為資料表 T。
  • WHERE T.Y = T.Z:只保留同一筆資料中,Y 欄位值等於 Z 欄位值的資料列。

完整語句為:

SELECT X
FROM T
WHERE T.Y = T.Z;

其中,T.Y = T.Z 是「逐列比較」,不是比較整個欄位,也不是比較不同資料列之間的值。


解題方法與逐步追蹤

逐一檢查每一列的 Y 與 Z:

T.XT.YT.ZT.Y = T.Z?是否輸出 X
233是2
796否不輸出
933是9

因此,符合 WHERE T.Y = T.Z 的資料列為:

  • 第一列:3=33 = 3,輸出 X = 2
  • 第二列:9≠69 \ne 6,不輸出
  • 第三列:3=33 = 3,輸出 X = 9

所以查詢結果為:

2, 92,\ 9

選項分析

  • (A) 2, 9:正確

第一列與第三列的 T.Y、T.Z 數值相等,因此分別輸出 T.X 的值 22 與 99。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 34 題3 分

Which one of the following statements about malware is wrong?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查 malware(惡意軟體)的感染途徑與散播方式。惡意軟體包括病毒、蠕蟲、木馬程式、勒索軟體、間諜軟體等,其感染不以「連接網路」為必要條件,也不只透過單一媒介傳播。

常見感染途徑包括:

  • 可攜式儲存裝置,例如 USB。
  • 電子郵件與附件。
  • 無線網路或區域網路。
  • 社交工程誘騙。
  • 含有惡意程式碼的文件。
  • 惡意網站、惡意廣告與遭入侵的網頁。

解題方法

題目問的是「哪一項敘述錯誤」,因此逐一判斷各選項是否符合惡意軟體的實際感染機制。

其中,含有「safe from malware infection」的絕對性敘述必須特別注意。瀏覽網站並不代表完全不會感染惡意軟體,因此該敘述違反資訊安全常識。

選項分析

(A) A computer might be infected without connecting to a network.

正確。

電腦即使未連接網路,仍可能透過 USB 隨身碟、外接硬碟、光碟、記憶卡或其他受感染的檔案而感染惡意軟體。例如,使用者將含有病毒的 USB 插入離線電腦,惡意程式便可能透過檔案執行、捷徑欺騙或自動處理機制進入系統。

因此,網路不是感染惡意軟體的必要條件。

(B) Malware can spread through wireless networks.

正確。

無線網路本質上仍是網路,只是傳輸媒介由有線改為無線。惡意軟體可以透過無線區域網路、Wi-Fi 或行動網路散播,例如:

  • 利用未修補的作業系統或應用程式漏洞。
  • 攻擊同一無線網路中的其他裝置。
  • 透過惡意熱點攔截或誘導使用者下載檔案。
  • 利用弱密碼或錯誤的網路設定入侵裝置。

因此,無線連線並不會使電腦天然免疫於惡意軟體。

(C) Malware can spread through social engineering techniques.

正確。

Social engineering(社交工程)是利用人的心理與行為弱點,使使用者自行洩漏資訊、點擊連結或執行惡意檔案。常見形式包括:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 35 題3 分

What is the potential technique for the privacy protection on medical data?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查醫療資料隱私保護(medical data privacy protection)的常見技術。醫療資料包含病歷、基因資訊、影像、檢驗結果及用藥紀錄等敏感資訊,隱私保護的目標是在「保留資料可用性」的同時,降低個人身分被辨識、資料內容被推知或查詢行為被洩漏的風險。

題目列出的四種方法,均屬於隱私保護的重要技術:

  • Differential privacy(差分隱私)
  • K-anonymity(kk-匿名)
  • Secure computation(安全計算)
  • Private information retrieval(私密資訊檢索)

因此正確答案為「以上皆是」。


解題方法

判斷這類題目的關鍵,是檢查各選項是否能在醫療資料的「發布、分析、計算或查詢」過程中降低隱私洩漏。

四個選項分別對應不同的保護情境:

技術主要保護對象核心作法
Differential privacy統計結果與分析輸出在輸出中加入經過控制的隨機雜訊
K-anonymity資料發布後的個體身分使每筆資料至少與其他 k−1k-1 筆資料具有相同準識別資訊
Secure computation多方共同計算時的原始資料不直接揭露原始資料,仍能計算共同結果
Private information retrieval使用者的查詢內容讓資料庫無法得知使用者查詢哪一筆資料

四者雖然保護的階段不同,但都可用於醫療資料隱私保護,故選擇 (E)。


選項分析

(A) Differential privacy:正確

差分隱私的核心概念,是讓資料集中「加入或移除某一位個人的資料」時,統計分析結果的機率分布仍然非常接近。如此一來,攻擊者即使取得分析結果,也難以推斷特定個人是否存在於資料集中。

其正式定義通常表示為:對任意兩個只差一筆資料的資料集 DD 與 D′D',以及任意輸出集合 SS,機制 MM 滿足

Pr⁡[M(D)∈S]≤eεPr⁡[M(D′)∈S]+δ\Pr[M(D)\in S] \leq e^{\varepsilon}\Pr[M(D')\in S]+\delta

其中:

  • ε\varepsilon 越小,代表隱私保護越強,但資料準確度通常會下降。
  • δ\delta 表示允許極小機率發生額外隱私洩漏。
  • MM 是加入隨機性的資料分析機制。

例如醫院要公布某疾病患者人數,可以加入適量隨機雜訊,使整體統計仍具參考價值,但無法由數字精確推回某一名患者的資料。

因此 Differential privacy 是醫療資料的隱私保護技術。


(B) K-anonymity:正確

kk-匿名是資料發布時常用的匿名化方法。對於每一筆資料,透過準識別資訊(quasi-identifiers)進行概括化或抑制,使該筆資料至少與其他 k−1k-1 筆資料無法區分。

例如資料表包含:

  • 年齡
  • 郵遞區號
  • 性別
  • 疾病診斷

若經過處理後,每一組「年齡區間、地區、性別」至少對應 kk 筆資料,則攻擊者無法僅利用這些欄位辨認出某一個人。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 36 題3 分

Given a prefix expression as +−ab∗c/de+-ab*c/de, where a=6a=6, b=7b=7, c=9c=9, d=9d=9, and e=3e=3. Which of the following answer is correct?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查「前置式」(prefix expression,也稱 Polish notation)的解析與計算。

前置式的規則是:

  • 運算子寫在運算元之前。
  • 每個二元運算子必須接兩個運算元或子運算式。
  • 不需要依賴一般中置式的括號或運算子優先順序,而是依照運算子的結構配對。

題目中的前置式為:

+−ab∗c/de+-ab*c/de

依序切分為:

+−ab∗c/de+ \quad - \quad a \quad b \quad * \quad c \quad / \quad d \quad e

其結構為:

+(− a b, ∗ c(/ d e))+\left(-\ a\ b,\ *\ c\left(/ \ d\ e\right)\right)

因此等價的中置式為:

(a−b)+(c×de)(a-b)+\left(c\times\frac{d}{e}\right)

解題方法

由最內層的運算開始計算。

已知:

a=6,b=7,c=9,d=9,e=3a=6,\quad b=7,\quad c=9,\quad d=9,\quad e=3

第一個子運算式為:

a−b=6−7=−1a-b=6-7=-1

第二個子運算式中,先計算除法:

de=93=3\frac{d}{e}=\frac{9}{3}=3

再計算乘法:

c×de=9×3=27c\times\frac{d}{e}=9\times3=27

最後計算最外層的加法:

(a−b)+(c×de)=(−1)+27=26(a-b)+\left(c\times\frac{d}{e}\right) =(-1)+27=26

因此:

26\boxed{26}

逐步追蹤(Trace)

將前置式由內向外化簡:

+−ab∗c/de+-ab*c/de

代入變數:

+−(6)(7)∗(9)/(9)(3)+-(6)(7)*(9)/(9)(3)

先處理 −ab-ab:

+(−1)∗9/9 3+(-1)*9/9\ 3

再處理 /de/de:

+(−1)∗9∗3+(-1)*9*3

接著計算乘法:

+(−1)27+(-1)27

最後計算加法:

2626

也可用語法樹表示:

+/\−∗/\/\a b c /d e\begin{array}{c} +\\ /\quad\backslash\\ -\quad *\\ /\backslash\quad /\backslash\\ a\ b\ c\ /\\ \quad\quad d\ e \end{array}

其對應算式為:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 37 題3 分

Consider the following code in C program:

#include <stdio.h>
void swap(int a, int b, int c);
int main() {
 int i = 3, j = 5, k = 7;
 swap(i,j,k);
 printf("i=%d, j=%d, k=%d\n", i, j, k);
 return 0;
}

void swap(int a, int b, int c) {
 int temp = a;
 a = c;
 c = b;
 b = temp;
}

Which of the following output is correct?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查 C 語言函式呼叫的「傳值呼叫」(pass by value)。

在 C 語言中,將變數作為一般參數傳入函式時,函式收到的是原變數值的副本,而非原變數本身。因此:

  • a 是 i 的副本
  • b 是 j 的副本
  • c 是 k 的副本

函式內對 a、b、c 的修改,只會改變函式內的區域變數,不會改變 main 中的 i、j、k。


解題方法:逐步追蹤

在 main 中,初始值為:

i=3,j=5,k=7i=3,\quad j=5,\quad k=7

呼叫:

swap(i, j, k);

由於 C 語言採傳值呼叫,進入 swap 後:

a = 3;
b = 5;
c = 7;

函式內容逐步執行如下:

int temp = a;

此時:

temp = 3;
a = 3;
b = 5;
c = 7;

接著:

a = c;

此時:

a = 7;
b = 5;
c = 7;
temp = 3;

接著:

c = b;

此時:

a = 7;
b = 5;
c = 5;
temp = 3;

最後:

b = temp;

此時:

a = 7;
b = 3;
c = 5;

函式結束後,a、b、c 都是區域副本,會被釋放;main 中的原始變數仍然保持:

i = 3;
j = 5;
k = 7;

因此執行:

printf("i=%d, j=%d, k=%d\n", i, j, k);

輸出為:

i=3, j=5, k=7

選項分析

(A) i = 3, j = 5, k = 7

正確。swap 只修改參數副本,沒有修改 main 中的原始變數,因此輸出維持初始值。

(B) i = 5, j = 5, k = 3

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 38 題3 分

Consider the following code in C program:

#include <stdio.h>
int max(int a, int b){
 if (a>b) return ++a;
 return b--;
}

int main() {
 int i = 3, j = 7;
 int h = max(i,j)+j++;
 printf("h=%d\n", h);
 return 0;
}

Which of the following output is correct?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查:

  1. 函式的傳值呼叫(pass by value)
  2. 後置遞增 j++
  3. 後置遞減 b--
  4. 運算式中函式回傳值與變數目前值的判讀

函式宣告如下:

int max(int a, int b) {
 if (a > b) return ++a;
 return b--;
}

a、b 是函式內部的區域變數,接收 i、j 的「數值副本」,不會直接改變 main 中的 i、j。


解題方法與逐步追蹤

初始狀態為:

i=3,j=7i=3,\qquad j=7

計算:

int h = max(i, j) + j++;

第一步:計算 max(i, j)

呼叫函式時:

max(3, 7)

因此函式內部:

a = 3
b = 7

判斷:

if (a > b)

即:

3>73>7

條件不成立,因此執行:

return b--;

b-- 是後置遞減,規則是:

  • 先回傳原值 77
  • 再將函式內部的 b 減為 66

所以:

max(i,j)=7\texttt{max(i,j)}=7

函式內部的 b 改變不會影響 main 的 j。

第二步:計算 j++

j++ 是後置遞增,規則是:

  • 先取出原值 77
  • 再將 j 增加為 88

因此:

j++=7\texttt{j++}=7

第三步:相加

h=7+7=14h=7+7=14

因此程式意圖產生的數值為:

h=14

題目選項以數值表示,故選:

(B) 14\boxed{\text{(B) }14}

選項分析

(A) 7

錯誤。若只取 max(i,j) 的回傳值,會得到 77;但完整運算式還要加上 j++ 的原值 77:

7+7=147+7=14

因此不是 77。

(B) 14

正確。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 39 題3 分

Consider the following code in C program:

#include <stdio.h>
int guess(int a, int b){
 if (a>b) return ++a * --b;
 return --b * --a;
}

int main() {
 int i = 3, j = 9;
 int h = guess(i,j) + (--j);
 printf("h=%d\n", h);
 return 0;
}

Which of the following output is correct?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查:

  • C 語言函式的「傳值呼叫」。
  • 前置遞增與前置遞減運算子:++a、--a。
  • if...else 條件判斷。
  • 函式回傳值與主程式變數的變化。
  • 運算式的逐步追蹤。

函式 guess(int a, int b) 接收的是 i、j 的複本,因此函式內修改 a、b,不會改變 main 中的 i、j。


解題方法與逐步追蹤

主程式初始狀態為:

i=3,j=9i=3,\qquad j=9

執行:

int h = guess(i,j) + (--j);

先分析函式呼叫 guess(i,j)。

1. 進入 guess(i,j)

由於 C 語言採用傳值呼叫:

a = 3;
b = 9;

判斷條件:

if (a > b)

代入後:

3>93>9

結果為假,因此執行:

return --b * --a;

前置遞減會先減 1,再使用新值:

--b // b 由 9 變成 8,值為 8
--a // a 由 3 變成 2,值為 2

因此函式回傳:

guess(3,9)=8×2=16\text{guess}(3,9)=8\times 2=16

此時函式內的 a、b 已結束生命週期,但不影響 main 中的 i、j。

2. 計算 --j

回到 main:

j = 9;

執行:

--j

因此:

j:9→8j:9\rightarrow 8

且此運算式的值為 88。

3. 計算 h

h=guess(i,j)+(−−j)h=\text{guess}(i,j)+(--j) h=16+8=24h=16+8=24

所以輸出內容為:

h=24

選項只列出數值,因此正確選項為 (A) 24。


選項分析

  • (A) 24:正確
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 40 題3 分

Which one of the following network protocols is NOT at the application layer of the TCP/IP protocol stack?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

TCP/IP 協定堆疊通常分為四層:

  1. 應用層(Application Layer):提供網路應用服務,例如網頁、檔案傳輸、電子郵件、名稱解析與主機設定。
  2. 傳輸層(Transport Layer):提供端對端傳輸,例如 TCP、UDP。
  3. 網際網路層(Internet Layer):負責邏輯定址、封包路由與網路控制,例如 IP、ICMP。
  4. 網路存取層(Network Access Layer):負責實際在網路媒介上傳送資料,例如 Ethernet、Wi-Fi。

本題要求找出「不是 TCP/IP 協定堆疊應用層」的協定。判斷重點在於各協定的主要功能與所屬層級。


解題方法

逐一辨識各協定:

  • HTTPS:提供安全的網頁服務,屬於應用層。
  • DHCP:自動分配 IP 位址等網路設定,屬於應用層。
  • FTP:提供檔案傳輸服務,屬於應用層。
  • SMTP:提供電子郵件寄送服務,屬於應用層。
  • ICMP:用於 IP 網路的錯誤回報與診斷控制,屬於網際網路層。

因此,唯一不屬於應用層的是 ICMP。


選項分析

(A) HTTPS

HTTPS 是 Hypertext Transfer Protocol Secure,也就是加入 TLS 加密與身分驗證機制的 HTTP,主要用於安全地傳送網頁資料。

HTTP/HTTPS 負責瀏覽器與網站伺服器之間的應用層資料交換,因此 HTTPS 屬於應用層。

本選項錯誤。


(B) DHCP

DHCP 是 Dynamic Host Configuration Protocol,用於自動提供主機的網路設定,例如:

  • IP 位址
  • 子網路遮罩
  • 預設閘道
  • DNS 伺服器位址

DHCP 本身提供的是網路設定服務,屬於應用層協定。雖然 DHCP 使用 UDP 作為傳輸層協定,常見連接埠為 UDP 67 與 UDP 68,但使用 UDP 不會使 DHCP 變成傳輸層協定。

本選項錯誤。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 41 題3 分

Which one of the following statements about DHCP is wrong?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

DHCP(Dynamic Host Configuration Protocol,動態主機組態設定協定)用於自動提供主機的網路組態資訊,主要包括:

  • IP 位址
  • 子網路遮罩
  • 預設閘道
  • DNS 伺服器位址
  • 租約期限(lease time)

DHCP 採用用戶端/伺服器架構。新接入網路的主機通常尚未取得 IP 位址,也不知道 DHCP 伺服器的位置,因此會先以廣播方式尋找 DHCP 伺服器。

本題的關鍵在於:一個網路是否只能配置一台 DHCP 伺服器。DHCP 並未規定每個網路只能有一台 DHCP 伺服器;同一網路可以存在多台 DHCP 伺服器,以提供備援、負載分擔或不同的位址配置範圍。

解題方法

判斷各選項是否符合 DHCP 的基本功能與運作流程:

  1. 檢查 DHCP 的全名與功能。
  2. 檢查 DHCP 是否能集中管理主機組態。
  3. 檢查 DHCP 是否能自動分配 IP 位址。
  4. 檢查新主機尋找 DHCP 伺服器時使用的封包與傳送方式。
  5. 判斷 DHCP 伺服器的數量是否受到「只能一台」的限制。

其中,第 5 點違反 DHCP 的實際部署方式,因此選 A。

選項分析

(A) One network can only have one DHCP server.

錯誤。

同一個網路可以配置多台 DHCP 伺服器。例如:

  • 兩台 DHCP 伺服器互相備援
  • 多台伺服器分擔 DHCP 請求
  • 不同伺服器負責不同的 IP 位址範圍
  • 透過 DHCP failover 機制提高可用性

當用戶端送出 DHCPDISCOVER 廣播後,可能收到多台 DHCP 伺服器的 DHCPOFFER,再依規則選擇其中一個回覆。因此「一個網路只能有一台 DHCP 伺服器」並非 DHCP 的規定。

此外,實際網路設計中常利用 DHCP Relay Agent,讓不同網段的 DHCP 用戶端共用一台或多台集中式 DHCP 伺服器,更顯示 DHCP 伺服器數量不受「每網路只能一台」限制。

(B) A DHCP server can function as a centralized repository for host configuration information.

正確。

DHCP 伺服器可以集中保存與管理主機的網路組態資訊,例如:

  • IP 位址配置範圍
  • 子網路遮罩
  • 預設閘道
  • DNS 伺服器
  • 租約時間
  • 特定主機的固定 IP 位址

因此,網路管理者不必逐台主機手動設定,主機也能從 DHCP 伺服器取得一致的組態。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 42 題3 分

Which one of the following statements about I/O is wrong?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查作業系統的輸入/輸出(Input/Output, I/O)管理,重點包括:

  • 作業系統在使用者程式與硬體之間的橋接角色。
  • I/O 指令與系統呼叫(system call)的權限限制。
  • 緩衝區(buffer)的用途。
  • 裝置控制器(device controller)在硬體與作業系統間的作用。

在具備保護機制的現代作業系統中,使用者程式通常不能直接操作硬體裝置,而必須透過作業系統提供的介面請求 I/O。

解題方法

判斷本題的關鍵是檢查各敘述是否符合「使用者程式、作業系統、硬體裝置」三者之間的標準關係:

User Program⟶System Call⟶Operating System⟶Device Controller⟶I/O Device\text{User Program} \longrightarrow \text{System Call} \longrightarrow \text{Operating System} \longrightarrow \text{Device Controller} \longrightarrow \text{I/O Device}

其中,直接執行硬體 I/O 指令通常屬於特權操作(privileged operation),只有作業系統核心(kernel)能執行。因此,宣稱使用者程式可以不經作業系統直接發出 I/O 指令的敘述,即違反現代作業系統的保護原則。

選項分析

(A) A computer mainly has two jobs: I/O and processing.

正確。

電腦系統的基本工作可概括為:

  1. 處理資料,例如執行算術、邏輯與控制指令。
  2. 進行輸入/輸出,例如從鍵盤、磁碟、網路接收資料,或將結果輸出至螢幕、印表機與檔案。

雖然實際電腦還涉及記憶體管理、程序管理等工作,但這些多半是為了支援資料處理與 I/O。此敘述是對電腦基本功能的概括說法,並未表示電腦只有兩個硬體元件,因此正確。

(B) An operating system bridges the gap between the hardware and user applications.

正確。

作業系統提供硬體抽象化與資源管理功能,將複雜的硬體操作包裝成使用者程式容易使用的介面。

例如,應用程式執行檔案讀取時,不必自行控制磁碟馬達、磁頭位置或硬碟控制暫存器,只需呼叫作業系統提供的檔案 I/O 介面。作業系統再負責:

  • 檢查權限。
  • 將邏輯檔案位置轉換為實際儲存位置。
  • 指揮裝置控制器執行操作。
  • 處理中斷與錯誤。
  • 將資料交給應用程式。

因此,作業系統確實扮演硬體與使用者應用程式之間的橋樑。

(C) A buffer is a memory area that stores data being transferred.

正確。

緩衝區是用來暫存傳輸中資料的記憶體區域。例如,鍵盤輸入速度與處理器讀取速度不同時,輸入資料可先放在緩衝區,待處理器依序讀取。

緩衝區主要可用來:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 43 題3 分

What is the evaluation result of the postfix expression 8 2 6 ∗ + 2 9 3 / + ∗8\ 2\ 6\ *\ +\ 2\ 9\ 3\ /\ +\ *?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查後置表示法(postfix expression,又稱逆波蘭表示法)與堆疊(stack)的運算機制。

後置表示法的規則如下:

  • 遇到運算元:直接推入堆疊。
  • 遇到二元運算子:取出堆疊頂端的兩個運算元。
  • 先取出的元素為右運算元,後取出的元素為左運算元。
  • 計算結果再推回堆疊。
  • 所有符號處理完畢後,堆疊唯一剩下的值即為答案。

本題的運算子為乘法、加法與除法,依照後置表示法的出現順序執行,不需另外判斷一般中置表示法中的運算子優先順序。


解題方法:使用堆疊逐步追蹤

原式為:

8 2 6 ∗ + 2 9 3 / + ∗8\ 2\ 6\ *\ +\ 2\ 9\ 3\ /\ +\ *

逐項處理如下:

讀入符號動作堆疊內容
88推入 88[8][8]
22推入 22[8,2][8,2]
66推入 66[8,2,6][8,2,6]
∗*6×2=126\times 2=12,推回 1212[8,12][8,12]
++8+12=208+12=20,推回 2020[20][20]
22推入 22[20,2][20,2]
99推入 99[20,2,9][20,2,9]
33推入 33[20,2,9,3][20,2,9,3]
//9÷3=39\div 3=3,推回 33[20,2,3][20,2,3]
++2+3=52+3=5,推回 55[20,5][20,5]
∗*20×5=10020\times 5=100,推回 100100[100][100]

因此:

8 2 6 ∗ + 2 9 3 / + ∗=(8+2×6)×(2+9÷3)8\ 2\ 6\ *\ +\ 2\ 9\ 3\ /\ +\ * = (8+2\times 6)\times(2+9\div 3) =(8+12)×(2+3)= (8+12)\times(2+3) =20×5=100=20\times 5=100

關鍵程式碼概念

以一般堆疊演算法表示如下:

for each token in expression:
 if token is an operand:
 push(token)
 else:
 right = pop
 left = pop
 result = left operator right
 push(result)

answer = pop
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 44 題3 分

What is the prefix representation of (A−B/C)∗(D+E)−F(A-B/C)*(D+E)-F?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查算術運算式的「前置表示法」(prefix notation,又稱 Polish notation)。

前置表示法的規則是:

  1. 運算子寫在運算元之前。
  2. 每個運算子後面,依序接上左子運算式與右子運算式。
  3. 運算優先順序由運算式的樹狀結構決定,不必再依賴括號。

原式為:

(A−B/C)∗(D+E)−F(A-B/C)*(D+E)-F

運算優先順序為:

  • 括號內先計算
  • 乘法與除法優先於減法與加法
  • 同一層級由左至右

解題方法:依運算樹轉換

先將原式分解成最外層結構:

((A−B/C)∗(D+E))−F\bigl((A-B/C)*(D+E)\bigr)-F

最外層運算子是減法,因此前置表示法必定以 - 開頭:

− ((A−B/C)∗(D+E)) F-\ \bigl((A-B/C)*(D+E)\bigr)\ F

接著處理減法的左運算元:

(A−B/C)∗(D+E)(A-B/C)*(D+E)

其最外層運算子是乘法,因此表示為:

∗ (A−B/C) (D+E)*\ (A-B/C)\ (D+E)

再分別處理兩個子運算式。

左子運算式:

A−B/CA-B/C

因為除法優先於減法,其結構是:

A−(B/C)A-(B/C)

所以前置表示法為:

− A (/ B C)-\ A\ (/ \ B \ C)

即:

-/ABC

右子運算式:

D+ED+E

前置表示法為:

+DE

將各部分依照樹狀結構組合:

- * - A / B C + D E F

去除空格後:

-*- /ABC+DEF

依題目選項的排版,這相當於:

−∗−/ABC+DEF\boxed{-*-/ABC+DEF}

也就是選項 (C)。


運算樹表示

 -
 / \
 * F
 / \
 - +
 / \ / \
 A / D E
 / \
 B C

以前置走訪順序「根、左、右」讀取:

- * - A / B C + D E F

因此得到:

-*- /ABC+DEF

選項分析

(A) -*-/+ABCDEF

此選項的 + 出現在 / 的運算元位置附近,會使運算樹結構不符合原式。原式中的加法只負責連接 DD 與 EE,其前置片段應為:

+DE
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 45 題3 分

What is the postfix representation of (A+B∗C)/(D+E)−F(A+B*C)/(D+E)-F?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查中序表示法(infix)轉後序表示法(postfix),也稱為逆波蘭表示法。

  • 中序:運算子位於兩個運算元之間,例如 A+BA+B。
  • 後序:運算子放在兩個運算元之後,例如 AB+AB+。
  • 括號會優先決定運算順序。
  • 乘除法優先於加減法。
  • 相同優先級的運算通常由左至右計算。

原式為:

A+B∗CD+E−F\frac{A+B*C}{D+E}-F

其實際運算結構是:

(A+(B∗C)D+E)−F\left(\frac{A+(B*C)}{D+E}\right)-F

解題方法

可將原式分成三個部分處理:

1. 處理分子 A+B∗CA+B*C

因為乘法 ∗* 優先於加法 ++,先計算 B∗CB*C,再與 AA 相加:

A+B∗C→ABC∗+A+B*C \rightarrow ABC*+

2. 處理分母 D+ED+E

只有加法,因此直接寫成:

D+E→DE+D+E \rightarrow DE+

3. 處理除法與最後的減法

分子與分母相除:

A+B∗CD+E→ABC∗+DE+/\frac{A+B*C}{D+E} \rightarrow ABC*+DE+/

最後再減去 FF:

A+B∗CD+E−F→ABC∗+DE+/F−\frac{A+B*C}{D+E}-F \rightarrow ABC*+DE+/F-

因此後序表示法為:

ABC∗+DE+/F−\boxed{ABC*+DE+/F-}

堆疊轉換追蹤

依序掃描中序式,遇到運算元直接輸出,運算子暫存於堆疊:

掃描內容輸出運算子堆疊
AAAA—
++AA++
BBABAB++
∗*ABAB+,∗+,*
CCABCABC+,∗+,*
遇到右括號或較低優先級運算ABC∗ABC*++
彈出 ++ABC∗+ABC*+—
DDABC∗+DABC*+D—
++ABC∗+DABC*+D++
EEABC∗+DEABC*+DE++
分母結束,彈出 ++ABC∗+DE+ABC*+DE+—
//ABC∗+DE+ABC*+DE+//
🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 46 題3 分

The ACID (Atomic, Consistency, Isolation, and Durability) properties are essential for a DBMS transaction. Which one of the following statements is wrong?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查資料庫管理系統(DBMS)交易(transaction)的 ACID 特性:

  • Atomicity(原子性):交易中的所有操作視為不可分割的整體,全部成功或全部失敗。
  • Consistency(一致性):交易完成前後,資料庫都必須符合既定的完整性限制與規則。
  • Isolation(隔離性):多個交易同時執行時,彼此不應產生不當干擾;未提交的異動通常不應被其他交易看見。
  • Durability(持久性):交易一旦提交,即使發生系統錯誤或電力中斷,結果仍應保留。

題目問「哪一個敘述是錯誤的」,因此必須判斷各敘述本身是否正確,而不是尋找 ACID 中唯一一個特性。

解題方法

逐一將選項對照 ACID 定義:

  1. 是否描述交易的「全部成功或全部失敗」?
  2. 是否描述並行交易之間的互不干擾?
  3. 是否描述未提交資料的可見性?
  4. 是否描述錯誤或故障後資料仍維持有效與可靠?
  5. 「All of the above」是否真的表示前面所有敘述都錯誤?

A 至 D 都能對應到 ACID 的基本概念,因此「All of the above」並不成立,錯誤的是 E。

選項分析

(A) All changes to data are performed as if they are a single operation.

此敘述符合 Atomicity(原子性)。

例如轉帳交易包含:

  1. 從帳戶甲扣款;
  2. 將款項存入帳戶乙。

這兩個動作必須被視為一個不可分割的交易。若扣款成功但存款失敗,DBMS 必須回復扣款,使整筆交易如同完全沒有發生。因此 A 正確。

(B) If two operations are concurrently running on two different accounts, then the value of both accounts should not get affected.

此敘述主要描述 Isolation(隔離性)。

若兩個交易同時操作彼此獨立的帳戶,某一交易的執行不應造成另一交易的資料遭到不當覆寫、讀取到中間狀態或產生錯誤結果。DBMS 會透過鎖定(locking)、時間戳記或多版本並行控制(MVCC)等機制,降低並行執行造成的干擾。

因此,在題目採用的基礎教材語境下,B 可視為正確。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 47 題3 分

Which of the following actions is an attempt to compromise a computer system?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查常見的電腦系統攻擊行為,以及「attempt to compromise a computer system」的意義。

Compromise computer system 是指試圖破壞、入侵、取得未授權存取權,或削弱系統的機密性、完整性與可用性。常見手段包括:

  • 透過網路偵察尋找弱點。
  • 利用程式漏洞執行未授權操作。
  • 欺騙使用者交出帳密或敏感資訊。
  • 猜測、破解使用者密碼。

本題各選項雖然攻擊層面不同,但都可作為入侵電腦系統的手段,故官方答案為 (E)。

解題方法

判斷每個選項是否具有「未經授權取得系統資訊、存取權限,或利用弱點進行攻擊」的性質:

  1. 若是掃描系統以尋找可利用弱點,屬於攻擊前的偵察行為。
  2. 若是利用程式設計錯誤突破記憶體限制,可能造成未授權程式執行。
  3. 若是利用社交工程欺騙使用者,屬於取得帳密或敏感資料的攻擊。
  4. 若是反覆猜測密碼以取得登入權限,屬於直接的帳號入侵行為。

四個選項皆符合「試圖危害或入侵電腦系統」的廣義定義,因此選擇 All of the above。

選項分析

(A) Port scan:正確

Port scan(埠號掃描)是針對目標主機的多個網路埠進行探測,以確認哪些埠處於開啟狀態,以及背後可能運作哪些網路服務。

例如:

  • TCP 80:常見於 HTTP 網頁服務。
  • TCP 443:常見於 HTTPS 網頁服務。
  • TCP 22:常見於 SSH 遠端登入服務。

攻擊者可根據掃描結果判斷目標系統的服務版本與可能弱點,進一步選擇攻擊方式。因此,Port scan 至少屬於入侵前的偵察與弱點探測行為,具有企圖危害系統的性質。

(B) Buffer overflow:正確

Buffer overflow(緩衝區溢位)是程式寫入資料時超過緩衝區所配置的記憶體範圍,造成資料覆寫鄰近記憶體內容。

當程式未正確檢查輸入長度時,攻擊者可能覆寫:

  • 函式返回位址。
  • 函式指標。
  • 控制流程資料。
  • 重要變數或權限相關資料。

若攻擊成功,可能導致程式崩潰、任意程式碼執行,甚至取得系統管理員權限。因此 Buffer overflow 是典型的漏洞利用攻擊,屬於企圖 compromise 電腦系統的行為。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 48 題3 分

In relational databases, which one of the following can uniquely identify a record?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考 relational database 中各種 key 的定義與功能,尤其是「能否唯一識別資料表中的一筆 record」。

  • Primary key(主鍵):資料表中被指定用來唯一識別每筆 record 的欄位或欄位組合。主鍵值不可重複,通常也不可為 NULL。
  • Foreign key(外鍵):用來參照另一資料表的 primary key,以建立資料表之間的關聯;外鍵本身不必唯一。
  • Candidate key(候選鍵):所有「可以唯一識別 record,且具最小性」的欄位或欄位組合。候選鍵中會選出一組作為 primary key。
  • Joint key:不是關聯式資料庫中最標準、最常用的正式術語;若題意指由多個欄位共同組成的鍵,通常稱為 composite key 或 compound key。

解題方法

判斷各選項是否能唯一識別一筆 record:

  1. 主鍵的核心功能就是唯一識別 record,因此 Primary key 符合題意。
  2. 外鍵主要用於建立資料表間的參照關係,不要求唯一,因此不能保證唯一識別。
  3. 候選鍵在嚴格的資料庫理論中確實也能唯一識別 record,但本題官方答案指定以「被選定作為正式唯一識別欄位」的 primary key 為答案。
  4. Joint key 並非標準且明確的 key 類型;即使理解成複合鍵,也不一定必然具備唯一性。
  5. 既然 foreign key 等選項不一定能唯一識別,All of the above 不成立。

選項分析

(A) Primary key:正確

Primary key 是資料表中用來唯一識別每一筆 record 的 key。

例如學生資料表:

StudentIDNameDepartment
S001王小明資工系
S002李小華化學系

其中 StudentID 被指定為 primary key,且每一筆資料的 StudentID 不可重複,因此可以唯一找出某一位學生。

(B) Foreign key:錯誤

Foreign key 用來參照另一個資料表中的 primary key。例如選課表中的 StudentID 可以參照學生表的 StudentID。

同一位學生可能修習多門課,因此選課表中可能出現多筆相同的 StudentID:

StudentIDCourseID
S001CS101
S001CS102

因此 foreign key 通常可以重複,不能單獨唯一識別一筆 record。

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 49 題3 分

Which one of the following statements about ICMP is wrong?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

ICMP(Internet Control Message Protocol,網際網路控制訊息協定)是 IP 網路中的控制與錯誤回報協定,主要功能包括:

  • 回報封包傳送或處理失敗的原因。
  • 協助診斷網路連線狀態。
  • 提供主機或路由器之間的控制訊息。
  • 透過 IP 封包承載 ICMP 訊息。

在 OSI 模型中,ICMP 通常歸類於網路層(Network Layer,第 3 層),不屬於資料鏈結層(Data Link Layer,第 2 層)。


解題方法

本題問的是「錯誤的敘述」,判斷重點有兩個:

  1. ICMP 的全名與主要用途是否正確。
  2. ICMP 在 OSI 模型中的分層位置是否正確。

逐項比對後,只有選項(D)將 ICMP 誤列為資料鏈結層協定,因此答案為(D)。


選項分析

(A)正確

ICMP 可定義錯誤訊息,當主機或路由器無法正常處理資料傳輸時,通知來源主機。

常見情況包括:

  • 目的地主機或網路無法到達。
  • 封包存活時間(TTL)歸零。
  • 封包需要分割但設定禁止分割。
  • 目的端口或服務無法處理封包。

例如,路由器收到 IP 封包後,若找不到前往目的地的路由,便可回傳 ICMP Destination Unreachable 訊息給來源端。

因此本選項描述正確。


(B)正確

ICMP 的全名是:

Internet Control Message Protocol

中文為「網際網路控制訊息協定」。

因此本選項正確。


(C)正確

ICMP 可用來檢查主機是否可達,最典型的工具是 ping。

ping 通常會:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

第 50 題3 分

Which one of the following statements about end-to-end communication protocols is wrong?

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

本題考查傳輸層(Transport Layer)的端對端通信協定,重點比較 UDP、TCP 與 Socket 的功能:

  • UDP(User Datagram Protocol):無連線、不可靠、無法保證資料送達順序與完整性。
  • TCP(Transmission Control Protocol):具連線導向,透過連線建立、確認回覆、序號、重傳與流量控制,提供可靠的資料傳輸。
  • Socket:應用程式與傳輸層通信的介面,通常以 IP 位址、Port、傳輸協定等資訊識別通信端點。

「端對端通信」主要指位於不同主機上的應用程式程序,透過傳輸層協定進行資料交換。

解題方法

判斷各選項是否符合 UDP、TCP 與 Socket 的基本特性即可:

  1. UDP 是否能提供端對端通信?
  2. TCP 是否屬於連線導向?
  3. UDP 是否能建立可靠連線?
  4. Socket 是否用於應用程式間的端對端通信?
  5. 不可靠的連線是否可能遺失資料?

其中只要找出與 UDP「無連線、不可靠」特性相違背的敘述,即為錯誤選項。

選項分析

(A) UDP offers end-to-end communication.

UDP 提供端對端通信,正確。

UDP 位於傳輸層,能讓來源主機上的應用程式程序,將資料傳送到目的主機上的指定程序。UDP 使用 Port number 識別應用程式,因此能提供程序到程序的端對端資料傳送。

UDP 雖然能進行端對端通信,但不代表它能保證資料可靠抵達。

(B) TCP offers connection-oriented connections.

TCP 提供連線導向的通信,正確。

TCP 傳送資料前,通常會先透過三向交握(three-way handshake)建立連線:

  1. 用戶端傳送 SYN
  2. 伺服器回覆 SYN-ACK
  3. 用戶端回覆 ACK

連線建立後,TCP 會使用序號、確認回覆、重傳機制與流量控制,確保資料能按照正確順序傳送。

(C) UDP builds up reliable connections.

UDP 建立可靠連線,錯誤,故為本題答案。

UDP 是無連線(connectionless)且不可靠(unreliable)的傳輸協定。它不會在傳送資料前建立 TCP 式的連線,也不提供以下可靠性機制:

🔒

後續完整解題步驟與【答案】

免費註冊,享 3 天全站完整詳解閱覽。

免費註冊

其他考古題

112 年國立中山大學的其他科目

國立中山大學《計算機概論與程式設計》其他年度

其他學校的《計算機概論與程式設計》