108 年 國立中央大學網路學習科技研究所《計算機概論》
第 1 題2 分
隨身碟內部使用什麼記憶體來儲存資料?
(A) 虛擬記憶體
(B) 快閃記憶體
(C) 動態記憶體
(D) 靜態記憶體
登入後即可作答並保存紀錄。
本題考查儲存裝置的記憶體種類。隨身碟(USB Flash Drive)主要利用非揮發性記憶體來儲存資料,即使在斷電後資料也不會消失。
選項分析:
(A) 虛擬記憶體 (Virtual Memory) 是利用硬碟空間模擬主記憶體,用於擴充記憶體容量,並非隨身碟的儲存介質。
第 2 題2 分
關於 ROM 的敘述,下列何者不正確?
(A) 是唯讀記憶體
(B) 無法寫入資料
(C) 是輔助記憶體之一
(D) 當電源關掉後,存在記憶體中的資料不會消失
登入後即可作答並保存紀錄。
核心觀念
ROM(Read-Only Memory,唯讀記憶體)具有以下特性:
- 主要供電腦讀取資料,正常使用時不能任意寫入。
- 屬於非揮發性記憶體(non-volatile memory),電源關閉後資料仍可保存。
- ROM 通常屬於主記憶體的一部分,用來儲存開機程式、韌體等固定資料。
- 輔助記憶體通常指硬碟、SSD、USB 隨身碟、光碟等外部儲存設備。
解題方法
逐一檢查各選項是否符合 ROM 的定義與分類。題目問「不正確」,只要找出將 ROM 分類錯誤,或違反其基本特性的敘述即可。
選項分析
-
(A) 是唯讀記憶體
正確。ROM 的全名就是 Read-Only Memory,中文為唯讀記憶體,主要功能是提供資料讀取。
-
(B) 無法寫入資料
第 3 題2 分
下列何者不是 CPU 中常見的暫存器?
(A) 累加器
(B) 程式計數器
(C) 指令暫存器
(D) 唯讀記憶體
登入後即可作答並保存紀錄。
本題考查 CPU 內部暫存器的種類。暫存器 (Register) 是 CPU 內部用於暫時存放指令、資料或位址的高速儲存單元。
選項分析:
(A) 累加器 (Accumulator):用於儲存算術邏輯單元 (ALU) 的運算結果,是 CPU 中非常常見的暫存器。
(B) 程式計數器 (Program Counter, PC):用於儲存下一條要執行的指令在記憶體中的位址,是 CPU 執行指令序列的關鍵。
第 4 題2 分
將軟體程式嵌入在硬體裝置中,通常儲存於 PROM 或 EPROM 中,稱之為?
(A) 軟體
(B) 硬體
(C) 韌體
(D) 軟電路
登入後即可作答並保存紀錄。
本題考查軟體、硬體與韌體的定義。
選項分析:
(A) 軟體 (Software):指電腦系統中與硬體相對的程式、資料及其文件等的總稱。軟體是透過程式語言編寫的,可以被修改和更新。
(B) 硬體 (Hardware):指電腦系統中所有能看得見、摸得著的物理裝置,例如 CPU、記憶體、主機板、顯示器等。
第 5 題2 分
若一 CPU 有 14 條位址線,則可定址出之實體記憶空間為?
(A) 32KB
(B) 24KB
(C) 16KB
(D) 14KB
登入後即可作答並保存紀錄。
本題考查 CPU 位址線與可定址記憶體空間的關係。
CPU 的位址線數量決定了它可以直接定址的記憶體空間大小。如果 CPU 有 條位址線,則它可以產生 個不同的位址。每個位址對應一個記憶體單元(通常是位元組,Byte)。
此題中,CPU 有 14 條位址線,所以 。
可定址的記憶體空間大小為 個位址。
計算 :
(約等於 1KB)
所以,CPU 可以定址出 16384 個位元組 (Bytes) 的記憶體空間。
通常,記憶體大小的單位是 KB (KiloBytes),其中 1KB = 1024 Bytes。
第 6 題2 分
將經常使用的程式或資料放在連續空間,可提升硬碟讀寫效率的是下列那一個動作?
(A) 磁碟清理
(B) 磁碟掃描
(C) 磁碟掃毒
(D) 磁碟重組
登入後即可作答並保存紀錄。
本題考查硬碟效能優化的概念。硬碟讀寫效率會受到檔案儲存位置的影響。當檔案被分散儲存在硬碟的不同區域時,讀取該檔案需要磁頭進行多次尋道和旋轉,從而降低讀寫速度。
選項分析:
(A) 磁碟清理 (Disk Cleanup):移除電腦上不必要的檔案,例如暫存檔、回收站中的檔案等,主要目的是釋放磁碟空間,對於檔案的連續性沒有直接影響。
第 7 題2 分
磁碟盤上頭由多個同心圓組成,而由圓心以放射狀的方式分割出磁碟的最小儲存單位稱為?
(A) 磁區
(B) 磁頭
(C) 磁軌
(D) 磁柱
登入後即可作答並保存紀錄。
本題考查硬碟儲存結構的基本概念。
硬碟盤面 (Platter) 的結構包含:
- 磁軌 (Track):由圓心向外放射狀延伸的同心圓,是磁碟上的一圈記錄區域。
- 磁區 (Sector):磁軌被分割成許多扇形的小塊,每個扇形就是一個磁區。磁區是磁碟上讀寫的最小單位。
- 磁頭 (Head):用於讀取或寫入磁軌上的資料。每個盤面通常有兩個磁頭,分別對應盤面的上方和下方。
- 磁柱 (Cylinder):位於相同半徑上的所有磁軌,在所有盤面上構成一個虛擬的圓柱體。
第 8 題2 分
將二進位數值 轉換為八進位數值,其結果為?
(A)
(B)
(C)
(D)
登入後即可作答並保存紀錄。
本題考查二進位數轉換為八進位數。
八進位數 (Octal) 的基數為 8,即 。這意味著每 3 位二進位數可以對應 1 位八進位數。
轉換步驟:
- 從二進位數的最右邊開始,將其每 3 位一組進行分組。如果最左邊的組不足 3 位,則在前面補 0。
分組:
補 0: (補足 3 位,此處僅為說明,實際轉換時直接看)
正確分組應從右邊開始:
分組:
補 0: - 將每一組 3 位二進位數轉換為對應的八進位數:
第 9 題2 分
將二進位數值 轉換為三進位數值,其結果為?
(A)
(B)
(C)
(D)
登入後即可作答並保存紀錄。
本題考查二進位數轉換為三進位數。
三進位數 (Ternary) 的基數為 3。由於 3 不是 2 的整數次方,因此無法像二進位轉八進位或十六進位那樣進行直接分組轉換。需要先將二進位數轉換為十進位數,然後再將十進位數轉換為三進位數。
步驟 1:將二進位數 轉換為十進位數。
步驟 2:將十進位數 轉換為三進位數。
我們使用除以 3 取餘數的方法:
餘
餘
餘
餘
餘
從下往上讀取餘數,得到三進位數為 。
因此,二進位數 轉換為三進位數是 。
第 10 題2 分
將十進位數值 轉換為二進位數值,其結果為?
(A)
(B)
(C)
(D)
登入後即可作答並保存紀錄。
本題考查十進位小數轉換為二進位小數。
轉換方法是將整數部分和小數部分分開轉換。
整數部分: 轉換為二進位。
餘
餘
餘
餘
從下往上讀取餘數,得到 。
小數部分: 轉換為二進位。
我們使用乘以 2 取整數部分的方法:
(取整數部分 1)
第 11 題2 分
將十進位數值 轉換為十六進位數值,其結果為?
(A)
(B)
(C)
(D)
登入後即可作答並保存紀錄。
本題考查十進位數轉換為十六進位數。
十六進位數 (Hexadecimal) 的基數為 16。轉換方法與轉換為八進位類似,但以 16 為基數。
整數部分: 轉換為十六進位。
餘 (十六進位的 F)
餘
餘
從下往上讀取餘數,得到 。
第 12 題2 分
若某電腦系統以 8 位元表示一個整數,且負數採用 2 的補數方式表示,則 -127 應表示為下列何者?
(A)
(B)
(C)
(D)
登入後即可作答並保存紀錄。
本題考查 2 的補數 (Two's Complement) 表示法。
2 的補數是用來表示帶符號整數的常用方法,特別是負數。對於一個 位元系統:
- 正數:直接以二進位表示,最高位為 0。
- 負數:
a. 先將其絕對值轉換為 位元的二進位數。
b. 對該二進位數進行位元反轉 (0 變 1,1 變 0),得到「1 的補數」。
c. 將 1 的補數加 1,得到「2 的補數」。
本題為 8 位元系統,要表示 -127。
步驟 1:取絕對值 。
步驟 2:將 轉換為 8 位元的二進位數。
由於是 8 位元系統,最高位是符號位。 是正數,其 8 位元表示為 。
第 13 題2 分
邏輯運算式 可簡化成下列何者?
(A)
(B)
(C)
(D)
登入後即可作答並保存紀錄。
核心觀念
本題考查布林代數的「吸收律」:
其中:
- 代表 OR(或)
- 相乘代表 AND(且)
- 代表 NOT (反相)
吸收律的基本形式為:
解題方法
將原式提出公因式 :
在布林代數中,,因此:
所以:
選項分析
- (A) :錯誤。
原式可化簡為 ,不會多出獨立的 。例如 時,原式為 ,但 ,兩者不相等。
第 14 題2 分
邏輯運算式 可簡化成下列何者?
(A)
(B)
(C)
(D)
登入後即可作答並保存紀錄。
核心觀念
本題考查布林代數中的:
- 表示 OR(或運算)
- 乘法或相鄰括號表示 AND(且運算)
- 表示 NOT (反相)
- 共識定理(Consensus Theorem):
其中 是前兩項的共識項,可以省略。
解題方法
原式為:
直接套用共識定理,令:
則:
因此可化簡為選項 (A)。
也可以用代數展開驗證。先考慮前兩項:
由於 ,得:
其中 即為 與 的共識項,因此:
所以:
再乘上 :
利用吸收律:
因此:
可見 確實不會改變結果,原式等於:
選項分析
第 15 題2 分
一邏輯函數為 , 則此函數可簡化為?
(A)
(B)
(C)
(D)
登入後即可作答並保存紀錄。
本題考查布林代數 (Boolean Algebra) 的簡化。
給定的邏輯函數為 。
首先,我們對括號內的表達式 進行德摩根定律 (De Morgan's Law) 的運算。
德摩根定律指出:
應用德摩根定律到 :
現在將這個結果代回原函數 :
第 16 題2 分
下列邏輯運算式何者不正確?
(A)
(B)
(C)
(D)
登入後即可作答並保存紀錄。
核心觀念
本題考查布林代數的基本定律:
- AND 運算以 表示,具有冪等律:
- OR 運算以 表示,具有冪等律:
- 單位元律:
- 布林代數中的 AND 與 OR 皆具有交換律:
等式若要成立,必須對所有可能的布林變數值 都成立。
解題方法
逐一套用布林代數定律,檢查各選項是否符合基本公式。
選項分析
(A)
依據 AND 的冪等律:
因此正確結果應為 ,不是固定的 。例如令 :
所以此選項不正確。
(B)
依據 OR 的冪等律:
第 17 題2 分
關於運算式 不同表示法的描述,下列何者正確?
(A) 其前序表示法為
(B) 其前序表示法為
(C) 其後序表示法為
(D) 其後序表示法為
登入後即可作答並保存紀錄。
核心觀念
本題考查資料結構中的**算術運算式表示法(Arithmetic Expression Notations)與運算式樹(Expression Tree)**的轉換。常見表示法有三種:
- 中序表示法(Infix Notation):運算子置於兩運算元中間,通常需要依賴運算子優先權與括號,例如:。
- 前序表示法(Prefix / Polish Notation):運算子置於兩運算元之前,例如:。
- 後序表示法(Postfix / Reverse Polish Notation, RPN):運算子置於兩運算元之後,例如:。
前序與後序表示法的優點在於不需括號即可唯一決定運算順序,其對應至運算式樹的前序走訪(Pre-order Traversal:根 左 右)與後序走訪(Post-order Traversal:左 右 根)。
解題方法
給定中序運算式:
依運算子優先順序(括號最優先,其次為乘除,最後為加減,同優先權由左至右結合):
- 先計算括號內的減法:
- 接著進行乘法運算:
- 最後進行加法運算:
1. 轉換為後序表示法(Postfix)
- 步驟 1:處理括號內部
- 步驟 2:處理乘法
- 步驟 3:處理加法
因此,正確的後序表示法為:
2. 轉換為前序表示法(Prefix)
- 步驟 1:處理括號內部
- 步驟 2:處理乘法
第 18 題2 分
關於二元樹 (Binary Tree) 的描述下列何者正確?
(A) 為一種樹狀結構, 其根節點 (Root) 的分支度固定為 2
(B) 為一種樹狀結構, 其中任一節點的分支度均為 2
(C) 為一種樹狀結構, 其中任一節點的分支度均不大於 2
(D) 為一種樹狀結構, 其中任一節點均可同時儲存兩種不同資料型態
登入後即可作答並保存紀錄。
本題考查二元樹 (Binary Tree) 的定義和特性。
二元樹是一種樹狀結構,其中每個節點最多有兩個子節點,通常稱為左子節點 (left child) 和右子節點 (right child)。
選項分析:
(A) 為一種樹狀結構, 其根節點 (Root) 的分支度固定為 2
二元樹的根節點最多可以有兩個子節點,但也可以只有一個或沒有子節點。因此,根節點的分支度(子節點的數量)不一定固定為 2。例如,只有一個節點的樹,根節點的分支度為 0。
不正確。
第 19 題2 分
下列有關網際網路的敘述,何者不正確?
(A) IP 是 Internet Protocol 的簡稱
(B) 一個 Domain Name 可能對應到不同的 IP 位址
(C) 一部電腦可以有很多個 IP 位址
(D) e-mail 是用 TCP 來傳送資料
登入後即可作答並保存紀錄。
核心觀念
本題考查網際網路中的三個基本概念:
- IP(Internet Protocol):負責在網路間傳遞封包與進行邏輯位址識別。
- Domain Name 與 IP 位址的對應:由 DNS 負責名稱解析,一個網域名稱可以對應一個或多個 IP 位址。
- 電腦與 IP 位址的關係:一部電腦可因多張網路介面卡、虛擬網路介面或多重位址設定,而擁有多個 IP 位址。
- 電子郵件的傳輸協定:電子郵件應用程式通常透過 TCP 傳送資料。
解題方法
逐一判斷各選項是否符合 TCP/IP 網路的基本定義。若四個選項均符合標準網路知識,則表示題目本身沒有唯一的錯誤選項。
選項分析
-
(A) 正確
IP 是 Internet Protocol 的縮寫,中文通常稱為網際網路協定,負責封包的位址識別與跨網路傳遞。
-
(B) 正確
一個 Domain Name 可以透過 DNS 對應到不同的 IP 位址。
第 20 題2 分
下列有關網路傳遞層 (Transport Layer) 的敘述,何者不正確?
(A) TCP 使用 IP
(B) UDP 不使用 IP
(C) TCP 為可靠、連接導向的通信協定
(D) UDP 為不可靠、非連接的通信協定
登入後即可作答並保存紀錄。
本題考查傳輸層協定 TCP 和 UDP 的特性。
選項分析:
(A) TCP 使用 IP
TCP (Transmission Control Protocol) 和 IP (Internet Protocol) 是網際網路的基礎協定。TCP 運行在 IP 之上,IP 負責封包的路由和定址,而 TCP 負責提供可靠的、面向連接的資料傳輸。所以,TCP 使用 IP 是正確的。
第 21 題2 分
下列何種網路設備可以讓使用不同通訊協定的網路相互傳送與接收訊息?
(A) 交換器 (Switch)
(B) 橋接器 (Bridge)
(C) 路由器 (Router)
(D) 閘道器 (Gateway)
登入後即可作答並保存紀錄。
本題考查網路設備的功能,特別是它們在不同通訊協定網路之間的互連能力。
選項分析:
(A) 交換器 (Switch):主要工作在資料鏈結層 (Data Link Layer),根據 MAC 位址來轉發資料幀。它主要用於在同一個網路 (LAN) 內連接多個設備,實現設備間的直接通訊,但它不能連接不同通訊協定的網路。
(B) 橋接器 (Bridge):也工作在資料鏈結層,用於連接兩個或多個相同的網路(例如,連接兩個乙太網路 LAN),過濾和轉發資料幀。它主要用於擴展 LAN 的範圍,但不能連接不同協定的網路。
(C) 路由器 (Router):工作在網路層 (Network Layer),根據 IP 位址來轉發封包。路由器是連接不同網路(包括不同子網、不同協定)的關鍵設備。它可以實現不同網路之間的路由,並允許不同通訊協定的網路進行通訊(例如,透過網路位址轉換 NAT)。
(D) 閘道器 (Gateway):閘道器是一個更廣泛的概念,它能夠連接不同通訊協定的網路,並進行協定轉換。例如,一個連接網際網路 (IP 協定) 和內部網路 (可能使用其他協定) 的設備,可以被視為一個閘道器。在某些情況下,路由器也可以扮演閘道器的角色。然而,閘道器更強調協定轉換的能力,使其能夠連接具有根本性差異的網路。
題目問「讓使用不同通訊協定的網路相互傳送與接收訊息」。
路由器 (Router) 的核心功能就是連接不同的網路,並根據 IP 位址進行路由。它能夠處理不同子網之間的通訊,並在一定程度上支援不同協定的互連。
閘道器 (Gateway) 的定義則更側重於「不同通訊協定」之間的轉換。例如,一個能連接 TCP/IP 網路和 AppleTalk 網路的設備,就是一個閘道器。
第 22 題2 分
E-mail Server 傳送郵件時, 通常使用哪一種通訊協定?
(A) FTP
(B) POP3
(C) SMTP
(D) TELNET
登入後即可作答並保存紀錄。
本題考查電子郵件 (e-mail) 相關的網路協定。
選項分析:
(A) FTP (File Transfer Protocol):用於在網路中傳輸檔案的協定。
(B) POP3 (Post Office Protocol version 3):用於從郵件伺服器下載郵件到用戶端電腦的協定。
第 23 題2 分
下列哪一種通訊媒體具有體積小、通訊量大、不易受干擾等特性?
(A) 雙絞線
(B) 同軸電纜
(C) 光纖
(D) 微波
登入後即可作答並保存紀錄。
本題考查不同通訊媒體的特性。
選項分析:
(A) 雙絞線 (Twisted Pair):最常見的網路線,例如 Cat5, Cat6。體積相對較小,但易受電磁干擾,通訊量(頻寬)相對有限。
(B) 同軸電纜 (Coaxial Cable):比雙絞線粗,抗干擾能力較好,通訊量也較大,但不如光纖。過去常用於有線電視和早期網路。
(C) 光纖 (Optical Fiber):由玻璃纖維製成,透過光脈衝傳輸訊號。具有以下優點:
第 24 題2 分
下列哪一種不是電腦網路的架構?
(A) 樹狀架構
(B) 星狀架構
(C) 匯流排架構
(D) 關聯式架構
登入後即可作答並保存紀錄。
本題考查電腦網路的常見拓撲結構 (Topology)。
選項分析:
(A) 樹狀架構 (Tree Topology):一種分層的結構,結合了匯流排和星狀架構的特點。它有多個匯流排或星狀網路連接在一起,形成一個樹狀結構。
(B) 星狀架構 (Star Topology):所有設備都連接到一個中央集線器或交換器。
(C) 匯流排架構 (Bus Topology):所有設備都連接到一條共用的傳輸線(匯流排)。
第 25 題2 分
透過架設下列何種伺服器可以達成增快瀏覽網頁的反應速度?
(A) FTP Server
(B) Web Server
(C) Proxy Server
(D) DNS Server
登入後即可作答並保存紀錄。
本題考查如何提升網頁瀏覽速度,以及相關伺服器的功能。
選項分析:
(A) FTP Server (File Transfer Protocol Server):主要用於檔案的儲存和下載,與網頁瀏覽速度無直接關聯。
(B) Web Server (WWW Server):負責儲存網頁檔案,並在用戶端請求時將網頁內容傳送給瀏覽器。架設 Web Server 本身是提供網頁的基礎,但要「增快反應速度」,還需要其他輔助手段。
(C) Proxy Server (代理伺服器):代理伺服器扮演著用戶端和網際網路之間的「中間人」。
第 26 題2 分
根據國際標準組織 (ISO) 所訂定的 OSI 通訊協定分為七層,下列何者不屬於這七層之一?
(A) 交換層 (Exchange Layer)
(B) 網路層 (Network Layer)
(C) 應用層 (Application Layer)
(D) 資料鏈結層 (Data Link Layer)
登入後即可作答並保存紀錄。
本題考查 OSI (Open Systems Interconnection) 七層模型。
OSI 模型將網路通訊劃分為七個邏輯層次,從上到下分別是:
- 應用層 (Application Layer):提供網路服務給應用程式,例如 HTTP, FTP, SMTP。
- 表示層 (Presentation Layer):處理資料格式的轉換、加密和壓縮。
- 會談層 (Session Layer):建立、管理和終止應用程式之間的會談。
- 傳輸層 (Transport Layer):提供端對端的可靠或不可靠的資料傳輸,例如 TCP, UDP。
- 網路層 (Network Layer):負責封包在不同網路之間的路由,例如 IP。
第 27 題2 分
資訊安全中的三個重要面向不包含下列何者?
(A) 獨立性 (Independence)
(B) 完整性 (Integrity)
(C) 保密性 (Confidentiality)
(D) 可用性 (Availability)
登入後即可作答並保存紀錄。
本題考查資訊安全的三大面向,也稱為 CIA 三要素。
資訊安全的目標通常涵蓋以下三個核心原則:
- 保密性 (Confidentiality):確保資訊僅能被授權的個人或系統存取,防止未經授權的存取和洩漏。
- 完整性 (Integrity):確保資訊在儲存、處理或傳輸過程中,未被未經授權地修改、破壞或產生,保持其準確性和一致性。
第 28 題2 分
下列敘述何者正確?
(A) 電腦蠕蟲會主動散播自己
(B) 特洛伊木馬程式會主動散播自己
(C) 電腦蠕蟲會感染其它檔案
(D) 特洛伊木馬程式會感染其它檔案
登入後即可作答並保存紀錄。
本題考查電腦惡意軟體(Malware)的種類和特性,特別是蠕蟲 (Worm) 和特洛伊木馬 (Trojan Horse)。
選項分析:
(A) 電腦蠕蟲會主動散播自己
電腦蠕蟲 (Computer Worm) 的主要特徵是它能夠自我複製並透過網路(例如,利用系統漏洞)主動傳播到其他電腦,而不需要用戶的互動。這是蠕蟲最關鍵的行為。因此,此敘述正確。
(B) 特洛伊木馬程式會主動散播自己
特洛伊木馬程式 (Trojan Horse) 的特點是它偽裝成有用的軟體,誘騙用戶執行。一旦執行,它會在用戶不知情的情況下執行惡意行為。
第 29 題2 分
在網路安全的議題中,解決身份辨認的問題是利用下列哪一種技術?
(A) 數位簽章
(B) 線上加密
(C) 數位識別碼
(D) 電子錢包
登入後即可作答並保存紀錄。
本題考查網路安全中的身份認證 (Authentication) 技術。身份辨認是指確認一個實體(用戶、設備等)是否為其聲稱的身份。
選項分析:
(A) 數位簽章 (Digital Signature):主要用於數位資料的完整性驗證和來源認證,證明訊息來自特定的發送者,並且在傳輸過程中沒有被篡對。它與身份認證有關,但不是解決身份辨認問題的核心技術。
(B) 線上加密 (Online Encryption):加密是保護資料機密性的技術,防止未授權者讀取。雖然加密在安全通訊中很重要,但它本身並不解決身份辨認的問題。
(C) 數位識別碼 (Digital Identity / Digital Identifier):這個詞語比較籠統,但通常指的是用於數位環境中識別一個實體的資訊。在網路安全中,身份認證通常是透過以下方式實現:
* 基於知識 (Something you know):例如密碼、PIN 碼。
第 30 題2 分
在非同步傳輸中, 最常用來偵測所接收的資料是否有誤的是下列哪一種偵錯技術?
(A) 同位元檢測法
(B) 循環式冗餘檢測法
(C) 區塊和檢測法
(D) 對稱加密檢測法
登入後即可作答並保存紀錄。
本題考查資料傳輸中的錯誤檢測技術,特別是在非同步傳輸 (Asynchronous Transmission) 中。
選項分析:
(A) 同位元檢測法 (Parity Check):這是一種簡單的錯誤檢測方法,通過計算資料位元中 1 的個數來判斷奇偶性,並附加一個同位元位。它只能檢測出傳輸中奇數個位元錯誤,對於偶數個位元錯誤無效,檢測能力較弱。
(B) 循環式冗餘檢測法 (Cyclic Redundancy Check, CRC):這是一種更強大的錯誤檢測方法,基於多項式除法。CRC 能夠檢測出大部分常見的錯誤模式,包括單一位元錯誤、突發錯誤(連續多個位元錯誤)等。它在許多通訊協定和儲存設備中廣泛使用,因其高效和強大的檢測能力而成為首選。
第 31 題2 分
在資料處理上最小的物件單位是下列何者?
(A) 記錄
(B) 資料庫
(C) 欄位
(D) 檔案
登入後即可作答並保存紀錄。
本題考查資料結構和資料庫中的基本單位。
選項分析:
(A) 記錄 (Record):通常由多個欄位組成,代表一個完整的實體資訊。例如,一個學生的記錄可能包含學號、姓名、系所等欄位。
(B) 資料庫 (Database):是數據的集合,通常包含多個相關的表格(檔案)。
第 32 題2 分
一般的作業系統中不包含下列何者?
(A) 分派器
(B) 資源分配器
(C) 排班器
(D) 檔案伺服器
登入後即可作答並保存紀錄。
本題考查作業系統 (Operating System, OS) 的核心功能和組成部分。
選項分析:
(A) 分派器 (Dispatcher):作業系統的核心組件之一,負責將 CPU 分配給就緒狀態的行程 (Process)。它負責從就緒佇列中選擇一個行程,並將 CPU 控制權轉交給該行程。這屬於 CPU 排程的一部分。
(B) 資源分配器 (Resource Allocator):作業系統的核心職責之一就是管理和分配系統資源,包括 CPU、記憶體、I/O 設備等。資源分配器是實現這一職責的組件。
第 33 題2 分
可同時插上 2 顆 CPU 的電腦, 搭配可使用的作業系統, 此系統稱之為?
(A) 多工作業系統
(B) 多人作業系統
(C) 多處理器系統
(D) 分散式處理系統
登入後即可作答並保存紀錄。
本題考查電腦系統的架構和作業系統的類型。
選項分析:
(A) 多工作業系統 (Multitasking Operating System):指作業系統能夠同時執行多個程式(任務)。這與 CPU 的數量無關,一個單 CPU 的系統也可以是多工作業系統。
(B) 多人作業系統 (Multi-user Operating System):指作業系統能夠讓多個用戶同時登入並使用系統資源。這也與 CPU 的數量無關,但通常需要多個 CPU 來提供更好的效能。
第 34 題2 分
下列哪一種影像格式屬於破壞性的壓縮格式?
(A) JPG
(B) TIF
(C) GIF
(D) PNG
登入後即可作答並保存紀錄。
本題考查常見影像格式的壓縮方式。壓縮格式分為破壞性壓縮 (Lossy Compression) 和無損壓縮 (Lossless Compression)。
選項分析:
(A) JPG (JPEG, Joint Photographic Experts Group):是一種廣泛使用的破壞性壓縮格式,特別適合儲存照片和寫實圖像。它透過丟棄人眼不易察覺的圖像細節來減小檔案大小,但會導致圖像品質下降。
(B) TIF (TIFF, Tagged Image File Format):通常是無損壓縮或未壓縮格式,用於高品質的圖像儲存,例如印刷或專業攝影。
第 35 題2 分
第一代電腦的主要元件為下列何者?
(A) 積體電路
(B) 超大型積體電路
(C) 電晶體
(D) 真空管
登入後即可作答並保存紀錄。
本題考查電腦發展史上的主要電子元件。電腦的發展通常以其核心元件來劃分代別。
- 第一代電腦 (約 1940s-1950s):主要元件是真空管 (Vacuum Tubes)。這些電腦體積龐大、耗電量大、發熱量高,且容易故障。著名的第一代電腦包括 ENIAC 和 UNIVAC。
- 第二代電腦 (約 1950s-1960s):主要元件是電晶體 (Transistors)。電晶體取代了真空管,使得電腦體積變小、功耗降低、速度提升且更可靠。
第 36 題2 分
使用傳值呼叫 (call by value) 傳遞參數之特點為下列何者?
(A) 主程式參數值不因副程式參數改變而變動
(B) 副程式可直接更改主程式參數
(C) 主程式與副程式參數佔用相同位址
(D) 主程式是將傳遞參數之位址傳至副程式
登入後即可作答並保存紀錄。
本題考查函數呼叫時的參數傳遞方式,特別是傳值呼叫 (Call by Value)。
-
傳值呼叫 (Call by Value):
當函數被呼叫時,將主程式中傳遞的參數值複製一份,然後傳遞給副程式的參數。副程式對其參數進行的任何修改,都只會影響到複製的副本,而不會影響到主程式中的原始參數。- 特點:
- 主程式的原始參數值不會被副程式修改。
- 副程式的參數是原始值的副本,對副本的修改不會影響原始值。
- 主程式與副程式的參數通常佔用不同的記憶體位址(因為是複製)。
- 傳遞的是參數的值,而不是位址。
- 特點:
-
傳址呼叫 (Call by Reference):
當函數被呼叫時,傳遞的是主程式中參數的記憶體位址。副程式透過這個位址直接存取和修改主程式中的原始參數。- 特點:
第 37 題2 分
通常採用下列何種資料結構來達成遞迴呼叫?
(A) 串列 (List)
(B) 堆疊 (Stack)
(C) 佇列 (Queue)
(D) 樹 (Tree)
登入後即可作答並保存紀錄。
本題考查遞迴呼叫 (Recursive Call) 的實現機制,以及其背後的資料結構。
遞迴函數的執行需要一種機制來儲存每一次遞迴呼叫時的函數狀態(包括參數、局部變數、返回位址等),以便在函數返回後能夠恢復到之前的狀態。這種機制通常由作業系統或編譯器使用堆疊 (Stack) 來實現。
當一個函數被呼叫時,會在堆疊上建立一個「堆疊幀」(Stack Frame),其中包含了該函數的參數、局部變數、返回位址等資訊。當函數再次遞迴呼叫自己時,會為新的呼叫建立另一個堆疊幀,並將其壓入堆疊頂部。當函數返回時,對應的堆疊幀會從堆疊中彈出,並恢復到上一層的執行環境。
第 38 題2 分
下列何種機制使得 Java 程式語言能夠完成跨平台運作?
(A) 物件導向
(B) 虛擬機器
(C) 多執行緒
(D) 例外處理
登入後即可作答並保存紀錄。
本題考查 Java 程式語言的跨平台運作機制。
Java 的跨平台能力(Write Once, Run Anywhere)是其最顯著的特性之一。這種能力主要歸功於 Java 虛擬機器 (Java Virtual Machine, JVM)。
選項分析:
(A) 物件導向 (Object-Oriented):物件導向是 Java 的一種程式設計範式,它提供了封裝、繼承、多型等特性,有助於程式的組織和重用,但與跨平台運作沒有直接關係。
(B) 虛擬機器 (Virtual Machine):Java 編譯後生成的不是直接的機器碼,而是中間位元組碼 (Bytecode)。
第 39 題2 分
下列 Java 程式片段中,不正確的二維陣列宣告共有幾個?
甲. int a[][];
乙. int [a][];
丙. int []a[];
丁. int [][]a;
戊. int a[3][4];
(A) 1
(B) 2
(C) 3
(D) 4
登入後即可作答並保存紀錄。
本題考查 Java 中二維陣列的宣告語法。
Java 宣告陣列有幾種方式,對於二維陣列,常見的宣告方式有:
type[][] arrayName;type arrayName[][];type[] arrayName[];
這三種方式都表示宣告一個二維陣列(或稱為陣列的陣列)。
在宣告時,可以指定維度的大小,也可以不指定,稍後再進行初始化。
讓我們逐一分析題目中的宣告:
甲. int a[][];
這是宣告一個名為 a 的二維整數陣列。語法正確。
乙. int [a][];
這個語法是錯誤的。陣列的維度大小或變數名稱不能放在方括號內,除非是在初始化時指定大小。這裡 [a] 顯然是錯誤的。
丙. int []a[];
這是宣告一個名為 a 的二維整數陣列。語法正確。這與 int a[][] 是等效的。
丁. int [][]a;
這是宣告一個名為 a 的二維整數陣列。語法正確。這與 int a[][] 和 int []a[] 是等效的。
第 40 題2 分
上一題的 Java 程式片段中, 正確的二維陣列宣告共有幾個?
甲. int a[][];
乙. int [a][];
丙. int []a[];
丁. int [][]a;
戊. int a[3][4];
(A) 1
(B) 2
(C) 3
(D) 4
登入後即可作答並保存紀錄。
本題是上一題的延續,要求判斷正確的二維陣列宣告數量。
根據上一題的分析:
甲. int a[][]; - 正確。宣告一個名為 a 的二維整數陣列。
乙. int [a][]; - 錯誤。陣列宣告語法不正確。
丙. int []a[]; - 正確。
第 41 題2 分
下列 Java 程式片段中, 不正確的浮點數指定方式為?
甲. float x = 3.14;
乙. float x = 3.14f;
丙. float x = 3.14F;
(A) 甲
(B) 乙
(C) 丙
(D) 都不正確
登入後即可作答並保存紀錄。
本題考查 Java 中浮點數 (float 和 double) 的預設類型和字面量表示。
在 Java 中,預設的浮點數類型是 double。
double類型用於表示雙精度浮點數。float類型用於表示單精度浮點數。
當我們寫一個浮點數字面量(例如 3.14)時,Java 編譯器預設它為 double 類型。
如果我們要將一個 double 字面量賦值給一個 float 變數,需要進行顯式的類型轉換,或者在數字後面加上 f 或 F 來指示它是 float 類型。
選項分析:
甲. float x = 3.14;
這裡,3.14 被 Java 編譯器視為一個 double 字面量。
第 42 題2 分
下列 C 語言程式片段為何種排序法?
for (int i=0; i<n; i++)
{
int j=i;
for (int k=i+1; k<n; k++)
if (a[k] < a[j]) j=k;
int temp = a[i]; a[i]=a[j]; a[j]=temp;
}
(A) 氣泡排序法 (Bubble Sort)
(B) 插入排序法 (Insertion Sort)
(C) 合併排序法 (Merge Sort)
(D) 選擇排序法 (Selection Sort)
登入後即可作答並保存紀錄。
本題考查對常見排序演算法的理解。
觀察給定的 C 語言程式碼片段:
外層迴圈 for (int i=0; i<n; i++):這個迴圈遍歷陣列,通常用於確定已排序部分的邊界或當前要處理的元素位置。
內層迴圈 for (int k=i+1; k<n; k++):這個迴圈從 i+1 開始,遍歷陣列的剩餘部分。
關鍵部分:
if (a[k] < a[j]) j=k;
這段程式碼在內層迴圈中,尋找從 i+1 到 n-1 範圍內,值最小的元素的索引,並將其索引記錄在變數 j 中。
初始時 j=i,所以 j 會被更新為當前未排序部分(從 i 開始)中最小元素的索引。
交換部分:
int temp = a[i]; a[i]=a[j]; a[j]=temp;
這段程式碼將當前未排序部分的最小值(位於索引 j 處)與未排序部分的起始元素(位於索引 i 處)進行交換。
第 43 題2 分
下列 C 語言程式片段執行後, x 變數的值為何?
int x = 15;
if (x > 5) x=x+5;
if (x > 10) x=x+10;
if (x >= 30) x=x+30;
(A) 15
(B) 20
(C) 30
(D) 60
登入後即可作答並保存紀錄。
本題考查 C 語言中條件語句 if 的執行流程。
程式從 int x = 15; 開始執行,變數 x 被初始化為 15。
接下來,程式依序執行三個 if 語句:
if (x > 5)
此時x的值是 15。
條件15 > 5為真 (True)。
執行x = x + 5;,所以x的值變為 。
第 44 題2 分
下列 Java 程式執行後, 輸出的結果為何?
public class Test {
public static void main(String[] args) {
boolean b1 = true;
// boolean b2; // 這裡 b2 沒有被初始化
if (!b2) // 這行會導致編譯錯誤,因為 b2 沒有初始化
System.out.print("X ");
System.out.print("Y");
}
}
(A) X
(B) Y
(C) XY
(D) 沒有任何輸出
登入後即可作答並保存紀錄。
本題考查 Java 的布林變數初始化和條件語句的執行。
程式碼中有一個布林變數 b2 被宣告,但沒有進行初始化:
// boolean b2; (這行被註解掉了,但如果沒有註解,它就是宣告)
boolean b2; (如果這行沒有被註解,它就是宣告)
在 Java 中,成員變數(類別變數或實例變數)如果沒有顯式初始化,會被賦予預設值。對於布林類型,預設值是 false。
但是,這裡的 b2 是在 main 方法內部宣告的局部變數。Java 對局部變數的要求是必須在使用前進行初始化。
程式碼中的這一行:
if (!b2)
這裡嘗試使用 b2 的值,但 b2 沒有被初始化。
Java 編譯器在遇到未初始化的局部變數時,會產生編譯錯誤。
因此,這段程式碼無法成功編譯執行。
如果編譯失敗,就不會有任何輸出。
讓我們假設題目中的 boolean b2; 是被宣告且未初始化的。
如果我們假設 b2 應該被初始化為 false (例如,題目本意是 boolean b2 = false;):
boolean b1 = true;
第 45 題2 分
下列 Java 程式執行後, 輸出的結果為何?
public class Test {
public static void main(String[] args) {
boolean b1 = true;
boolean b2 = false;
if ((b2 = true) && bl) // 注意這裡的 b2 = true 是賦值操作
System.out.print("X ");
System.out.print("Y");
}
}
(A) X
(B) Y
(C) XY
(D) 沒有任何輸出
登入後即可作答並保存紀錄。
核心觀念
本題考查三個 Java 基本觀念:
=是賦值運算子,不是相等比較。&&是短路 AND(short-circuit AND):- 左運算元為
false時,不計算右運算元。 - 左運算元為
true時,才計算右運算元。
- 左運算元為
if條件成立時執行其控制的敘述;if後方沒有大括號時,只控制緊接著的第一行敘述。
題目中的 bl 視為字體或排版錯誤,應為前面宣告的 b1。
解題方法
初始值為:
boolean b1 = true;
boolean b2 = false;
判斷條件為:
if ((b2 = true) && b1)
依序計算:
第一步:執行 (b2 = true)
這是賦值操作,會將 true 指派給 b2:
b2 = true;
而賦值運算式本身的值也是 true,因此:
(b2 = true) // 結果為 true
第二步:計算 true && b1
由於左側為 true,&& 會繼續計算右側:
true && b1
又因為:
b1 = true
所以整個條件為:
true && true == true
因此執行:
System.out.print("X ");
目前輸出為:
X
第 46 題2 分
下列 java 程式執行後, x 變數的值為何?
public class Test {
public static void main(String[] args) {
int x;
x = 19 % 4;
}
}
(A) 3
(B) 4
(C) 4.75
(D) 5
登入後即可作答並保存紀錄。
本題考查 Java 中的整數取模運算 (Modulo Operator)。
程式碼分析:
int x;
宣告一個整數變數x。x = 19 % 4;
這裡執行取模運算。%是取模運算符,它計算兩個數相除後的餘數。
計算 :
所以, 的商是 4,餘數是 3。
第 47 題2 分
下列 Java 程式執行後, 輸出的結果為何?
public class Test {
public static void main(String[] args) {
int x=0, y=12;
do { } while (x++<y);
system.out.println(x);
}
}
(A) 0
(B) 12
(C) 13
(D) 編譯錯誤
登入後即可作答並保存紀錄。
本題考查 Java 的 do-while 迴圈結構和後置遞增運算符 (++) 的行為。
程式碼分析:
-
int x=0, y=12;
初始化變數x為 0,y為 12。 -
do { } while (x++<y);
這是一個 do-while 迴圈。do { }:迴圈體是空的,意味著迴圈體內的語句不會被執行。while (x++<y);:這是迴圈的條件判斷部分。x++是後置遞增運算符。它會在表達式中使用x的當前值,然後再將x的值加 1。- 迴圈會持續執行,直到
while後面的條件為假 (false)。
迴圈的執行過程:
- 第一次迭代:
- 迴圈體
{}是空的,不做任何事。 - 條件判斷:
x++ < y。 - 此時
x是 0,y是 12。 - 表達式
x++ < y實際上是0 < 12,結果為true。 - 在表達式計算完成後,
x的值變為 1 (因為x++)。
- 迴圈體
第 48 題2 分
下列 Java 程式執行後, 輸出的結果為何?
public class Test {
public static void main(String[] args) {
for (int i = 0; i <= 10; i++){
if (i > 6) break;
}
System.out.println(i); // 這行會導致編譯錯誤
}
}
(A) 6
(B) 7
(C) 10
(D) 編譯錯誤
登入後即可作答並保存紀錄。
本題考查 Java 的 for 迴圈、break 語句以及變數的作用域 (Scope)。
程式碼分析:
-
for (int i = 0; i <= 10; i++)
這是一個for迴圈,變數i從 0 開始,每次遞增 1,直到i大於 10 為止。
i的可能取值為 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10。 -
if (i > 6) break;
在迴圈的每次迭代中,會檢查i的值。- 當
i的值是 0, 1, 2, 3, 4, 5, 6 時,條件i > 6為假,break語句不會執行,迴圈繼續。 - 當
i的值變成 7 時,條件7 > 6為真。 - 執行
break;語句。break語句會立即終止其所在的迴圈。
- 當
第 49 題2 分
下列 Java 程式執行後, x 變數的值為何?
public class Test {
public static void main(String[] args) {
int x = 66, y = 66;
y = ++x;
y--;
x = --y;
x = y--;
}
}
(A) 63
(B) 64
(C) 65
(D) 66
登入後即可作答並保存紀錄。
本題考查 Java 中的前置遞增/遞減運算符 (++x, --x) 和後置遞增/遞減運算符 (x++, x--) 在賦值語句中的行為。
程式碼分析:
-
int x = 66, y = 66;
初始化x和y的值均為 66。 -
y = ++x;++x是前置遞增運算符。它會先將x的值加 1,然後將x的新值賦值給y。x的值變為 。y被賦值為x的新值,即 67。- 此時:
x = 67,y = 67。
-
y--;y--是後置遞減運算符。它會先使用y的當前值,然後再將y的值減 1。y的值變為 。
第 50 題2 分
接續上題, y 變數的值為何?
public class Test {
public static void main(String[] args) {
int x = 66, y = 66;
y = ++x;
y--;
x = --y;
x = y--;
}
}
(A) 63
(B) 64
(C) 65
(D) 66
登入後即可作答並保存紀錄。
本題是上一題的延續,要求計算 y 變數的最終值。
我們沿用上一題的分析過程:
-
int x = 66, y = 66;
x = 66,y = 66。 -
y = ++x;
x變為 67。
y被賦值為 67。
此時:x = 67,y = 67。 -
y--;
y的值減 1,變為 66。
此時:x = 67,y = 66。