108 港務人員升資考試員級晉高員級 技術類(選試輪機管理與安全)-臺灣港務公司 電子計算機概論 考古題詳解

108 年・港務人員升資考試・員級晉高員級・技術類(選試輪機管理與安全)-臺灣港務公司
試題代碼 電子計算機概論

第 一 題15 分

高階電腦程式語言的型態有哪些?請寫出型態名稱並舉例詳細說明。

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

這一題的完整詳解

核心觀念

本題考查計算機科學中高階程式語言(High-Level Programming Languages)的分類與程式設計典範(Programming Paradigms)。 高階語言的設計初衷是隱藏底層硬體細節,提供貼近人類自然語言與數學思維的語法結構。依據「解決問題的思維模型」、「指令下達與狀態控制方式」,高階程式語言主要劃分為四大程式設計典範(型態):

  1. 命令式/程序導向型(Imperative / Procedural)
  2. 物件導向型(Object-Oriented)
  3. 函數導向型(Functional)
  4. 邏輯導向/宣告型(Logic / Declarative)

此外,在計算機結構與編譯原理的角度中,高階語言亦常依「執行與轉換機制」劃分為編譯型(Compiled)、直譯型(Interpreted)​與混合型(Hybrid / Intermediate Bytecode)。本題以閱卷標準最高、最完整的「程式設計典範」為主架構,並輔以「執行轉換型態」進行周全論述。


解題方法

本題為經典申論題型,切入點為以典範(Paradigm)為骨幹、以實例(Examples)為血肉:

  1. 定義明確:每一類語言型態皆須清楚交代其核心精神(如:強調流程控制、狀態封裝、數學函數映射或邏輯推論)。
  2. 中英對照:寫出精確的專業名詞(如 Procedural, Object-Oriented, Functional, Logic),展現專業度。
  3. 具體舉例與機制說明:除了列舉語言名稱(如 C、Java、Haskell、Prolog)外,針對每種型態以一段簡短的運作特徵或程式碼邏輯說明「它如何表達運算」,直接命中題目「舉例詳細說明」的要求。

選項分析

本題為申論問答題,無提供既定選項。

  • 作答範疇辨析:題目所稱「高階電腦程式語言的型態」,切忌誤答為變數的「基本資料型態」(如:Integer, Floating-point, Boolean, Char)或「抽象資料型態(ADT)」。此處的「型態」係指程式語言本體之分類架構(Types/Paradigms of High-Level Programming Languages)。

解題技巧

  1. 審題關鍵字防陷阱:看到「語言的型態」,優先對應四大程式設計典範(Paradigm)。若版面充裕,可另立小節補述「轉譯與執行型態」,構成多維度作答,使閱卷委員無從扣分。
  2. 四大典範記憶口訣:「程、物、函、邏」(程序、物件、函數、邏輯)。
  3. 對比思維強化申論深度:
  • 命令式強調 How to do(一步一步說明如何改變記憶體狀態)。
  • 宣告式/邏輯式/函數式強調 What to do / What is true(描述目標與規則,計算交由系統引導)。

【答案】

高階電腦程式語言依據「程式設計典範(Programming Paradigms)」與「問題解決導向」,主要可劃分為下列四大主要型態:

一、 程序導向/命令式語言(Procedural / Imperative Programming Languages)

  1. 型態特徵:
  • 以演算法的執行步驟為核心,強調「如何達成(How to do)」。
  • 程式由一系列依序執行的指令組成,透過賦值運算(Assignment)不斷改變系統的狀態與變數值。
  • 大量運用結構化控制流程,如循序(Sequence)、條件判斷(Selection, 如 if-else)、迴圈重複(Iteration, 如 for, while)以及模組化的程序/函式(Procedure / Function)。
  1. 代表語言與實例說明:
  • 代表語言:C、Pascal、Fortran、BASIC。
  • 實例說明:以 C 語言計算 11 到 NN 的總和為例:
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i; // 顯式透過迴圈與變數更新改變記憶體狀態
}

程式設計者必須精確掌控迴圈計數器 ii 與累加變數 sumsum 的狀態變化與每一步驟流程。


二、 物件導向語言(Object-Oriented Programming Languages, OOP)

  1. 型態特徵:
🔒

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

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

免費註冊

第 二 題15 分

電腦系統所使用的浮點數表示法(floating-point notation),如 IEEE 754 標準,每個浮點數的存放格式可以分為三個部分,請問這三個部分為何?請詳細敘述每個部分的設計原理。

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

這一題的完整詳解

核心觀念

本題旨在測驗電腦系統架構中數值表示法的基礎核心——IEEE 754 浮點數標準(Floating-Point Standard)​的欄位結構與底層硬體設計邏輯。

在電腦中,為了兼顧數值的「動態範圍(Dynamic Range)」與「有效位數(Precision)」,浮點數採用類似科學記號的二進位形式儲存。一個正規化(Normalized)的 IEEE 754 浮點數,其對應的實數值公式為:

V=(−1)S×(1.M)2×2E−BiasV = (-1)^S \times (1.M)_2 \times 2^{E - \text{Bias}}

依據此公式,IEEE 754 將浮點數的記憶體存放格式精確劃分為三個欄位:

  1. 符號位元(Sign bit, SS)
  2. 指數部分(Exponent, EE)
  3. 尾數/假數部分(Mantissa / Significand / Fraction, MM)

解題方法

回答本題應先明確列出三個部分的名稱與常見規格(如 32-bit 單精確度、64-bit 雙精確度)的位元配置,再從「數值表示需求」與「硬體運算效率」的角度,深入剖析每一部分的設計原理。

1. 符號位元(Sign Bit, SS)

  • 位元配置:單精確度佔 11 位元;雙精確度亦佔 11 位元。
  • 設計原理:
  • 極性判定:以最高有效位元(MSB)直接代表正負號。當 S=0S = 0 代表正數;S=1S = 1 代表負數,對應運算式中的 (−1)S(-1)^S。
  • 簡化乘除運算:將符號與純數值大小完全解耦(Decoupled)。硬體進行浮點數乘法或除法時,可直接將兩數的符號位元進行互斥或(XOR)運算,即可決定結果的符號,無需先進行補數還原。

2. 指數部分(Exponent, EE)

  • 位元配置:單精確度佔 88 位元;雙精確度佔 1111 位元。
  • 設計原理:
  • 動態範圍定位:指數欄位代表 22 的冪次,決定小數點在二進位數中的移動位置,控制數值所能涵蓋的數量級範圍。
  • 採用偏差表示法(Biased Notation / Excess-KK):
  • 指數欄位不採用「2 的補數」,而是加上固定偏差值 Bias=2k−1−1\text{Bias} = 2^{k-1} - 1(單精確度 k=8,Bias=127k=8, \text{Bias}=127;雙精確度 k=11,Bias=1023k=11, \text{Bias}=1023)。
  • 硬體快速比大小:將原本有正有負的指數(例如 −126∼+127-126 \sim +127),平移為純無號整數(Unsigned Integer,例如 1∼2541 \sim 254)。這使得兩浮點數在進行排序或比大小時,處理器可直接將其當作整數進行由高位到低位的字元字典序比較,大幅簡化電路複雜度。
  • 保留特殊邊界值:將全 00 與全 11 保留作為特殊用途(如全 00 用於表示 ±0\pm 0 或非正規化數;全 11 用於表示無限大 ±∞\pm\infty 或非數值 NaN\text{NaN})。

3. 尾數/假數部分(Mantissa / Significand / Fraction, MM)

  • 位元配置:單精確度佔 2323 位元;雙精確度佔 5252 位元。
  • 設計原理:
  • 決定精確度:記錄有效數字(Significant digits),位元數愈多,浮點數的分辨率與精確度愈高。
🔒

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

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

免費註冊

第 三 題15 分

在電腦網路中,傳輸媒介(transmission media)是作為傳輸資料訊號時的通道,將訊號從發送設備傳遞到接收設備。若依其傳送方式,傳輸媒介可分為那幾類?每一項分類舉兩個例子說明。

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

這一題的完整詳解

核心觀念

本題測驗電腦網路中實體層(Physical Layer)傳輸媒介(Transmission Media)​的基本分類與物理特性。 在資料通訊中,訊號傳輸媒介是發送端與接收端之間的實體通道,依電磁波訊號在傳送時是否受物理導體導引與侷限,學理上分為兩大類:

  1. 導向傳輸媒介(Guided Media / 有線媒介):訊號受固態實體邊界約束並沿著實體導線傳遞。
  2. 無導向傳輸媒介(Unguided Media / 無線媒介):訊號藉由電磁波形式在自由空間(大氣層或真空)中朝特定方向或向四面八方輻射傳播。

解題方法

本題為標準的觀念申論題,作答時切入策略如下:

  1. 明確定義分類:先以學術標準名詞定義「導向傳輸媒介」與「無導向傳輸媒介」,說明兩者在傳播機制上的根本差異(導引於固體介質 vs. 散播於自由空間)。
  2. 條列並深入實例:依題意各列舉兩個最具代表性的傳輸媒介,說明時須涵蓋「物理結構/頻率特性」、「優缺點(頻寬、衰減、抗雜訊)」及「主要應用場景」,展現完整的專業知識深度。

選項分析

本題為非選擇題(問答題),無選擇題選項。依閱卷評分要點,分析本題答題的得分關鍵與指標如下:

  • 分類層次完整性:考生若僅回答「有線」與「無線」,僅能取得基本分;若能寫出「導向傳輸媒介(Guided Media)」與「無導向傳輸媒介(Unguided Media)」並說明其物理限制條件,方能達到高分門檻。
  • 舉例的精確度:舉例時切忌將「技術或通訊協定名稱」(如 Wi-Fi、4G/5G、乙太網路)直接混淆為「傳輸媒介」。必須指明具體的物理媒介(如雙絞線、光纖、無線電波、微波),再以技術實例輔助說明其應用。

解題技巧

  1. 答題架構化:採用「分類定義 →\rightarrow 實例介紹(結構/特性/應用)」的層次作答,版面整齊、條理分明。
  2. 避免名詞代換陷阱:許多考生容易將「同軸電纜」與「雙絞線」混為一談,或在無線領域直接寫「藍牙、Wi-Fi」當作媒介名稱,應正名為「特高頻無線電波」或「微波」。
  3. 關鍵字精準命中:答題時帶入「抗電磁干擾(EMI)」、「傳輸衰減」、「訊號頻寬」等網路專業術語,能顯著提升閱卷印象。

【答案】

在電腦網路架構中,傳輸媒介依其訊號傳送與導引方式,主要分為導向傳輸媒介與無導向傳輸媒介兩大類:

🔒

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

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

免費註冊

第 四 題15 分

若一棵二元搜尋樹(binary search tree)共有 10 個節點,使用前序走訪(preorder traversal)得到的結果為 15, 9, 8, 3, 10, 13, 12, 20, 16, 1715,\ 9,\ 8,\ 3,\ 10,\ 13,\ 12,\ 20,\ 16,\ 17,則此二元搜尋樹為何?請畫出此樹。

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

這一題的完整詳解

核心觀念

  1. 二元搜尋樹(Binary Search Tree, BST)之定義: 對樹中任一節點 xx:
  • 其左子樹(Left Subtree)中所有節點的值,均小於 xx 的值。
  • 其右子樹(Right Subtree)中所有節點的值,均大於 xx 的值。
  • 左右子樹各自亦為二元搜尋樹(假設各節點鍵值皆相異)。
  1. 前序走訪(Preorder Traversal)順序: 走訪順序為:「根節點 →\to 左子樹 →\to 右子樹」(V-L-R)。因此,任何前序子數列的第一個元素必為該子樹的根節點(Root)。

  2. 中序走訪(Inorder Traversal)與 BST 的關係: 二元搜尋樹依中序走訪(左子樹 →\to 根節點 →\to 右子樹,L-V-R)之結果,必為嚴格遞增排序數列。


解題方法

給定前序走訪數列,還原二元搜尋樹主要有兩種等價且嚴謹的推導途徑:

方法一:前序數列鍵值分割法(推薦,最直觀快速)

利用「第一個元素為根節點」及「BST 左小右大」的性質,逐層遞迴分割數列:

  1. 決定整棵樹的根節點: 前序走訪為 [15,9,8,3,10,13,12,20,16,17][15, 9, 8, 3, 10, 13, 12, 20, 16, 17],第一個元素是 1515。
  • 樹根為 1515。
  • 比 1515 小的連續元素屬於左子樹前序數列:[9,8,3,10,13,12][9, 8, 3, 10, 13, 12]。
  • 比 1515 大的連續元素屬於右子樹前序數列:[20,16,17][20, 16, 17]。
  1. 遞迴建構左子樹(鍵值小於 1515 的集合):
  • 子數列 [9,8,3,10,13,12][9, 8, 3, 10, 13, 12] 的首個元素為 99,故 1515 的左子節點為 99。
  • 比 99 小的元素屬於 99 的左子樹:[8,3][8, 3]。
  • 首個元素為 88,故 99 的左子節點為 88。
  • 比 88 小的元素屬於 88 的左子樹:[3][3],故 88 的左子節點為 33(葉節點)。
  • 88 無右子節點。
  • 比 99 大的元素屬於 99 的右子樹:[10,13,12][10, 13, 12]。
  • 首個元素為 1010,故 99 的右子節點為 1010。
  • 比 1010 小的元素不存在,故 1010 無左子節點。
  • 比 1010 大的元素屬於 1010 的右子樹:[13,12][13, 12]。
  • 首個元素為 1313,故 1010 的右子節點為 1313。
  • 比 1313 小的元素屬於 1313 的左子樹:[12][12],故 1313 的左子節點為 1212(葉節點)。
  • 1313 無右子節點。
🔒

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

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

免費註冊

第 五 題20 分

一個完整的資料庫管理系統(DataBase Management System, DBMS)應該具備哪些特點?請詳盡說明。

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

這一題的完整詳解

核心觀念

本題測驗「資料庫管理系統(Database Management System, DBMS)」的核心定義、系統架構及其相較於傳統檔案處理系統(File-Processing System)所展現的關鍵優勢。 主要涵蓋觀念包括:

  1. ANSI/SPARC 三層綱要架構:外部層(External Schema)、概念層(Conceptual Schema)、內部層(Internal Schema)與「實體/邏輯資料獨立性」。
  2. 交易管理與 ACID 特性:不可分割性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、耐用性(Durability)。
  3. 系統控制機制:並行控制(Concurrency Control)、資料完整性限制(Data Integrity)、安全性防護(Security & Authorization)、日誌與故障回復(WAL、Backup & Recovery)。

解題方法

本題為標準的資訊類公職/升資考試申論題,切入點應採「結構化系統性分類」,避免零散列舉。最佳作答邏輯為「由資料結構 →\rightarrow 運作控制 →\rightarrow 系統維護」層層推進:

  1. 資料架構層:著重資料獨立性、減少重複性與資料完整性限制。
  2. 作業控制層:著重多使用者共享、交易 ACID 支援與並行存取控制。
  3. 系統安全與維護層:著重權限安全管制、備份與災難回復機制、標準化查詢語言(SQL)。 每一項特點均需寫出「特點名稱」、「英文專有名詞」、「技術內涵」與「解決之實務問題」,方能奪得申論題滿分。

選項分析

本題為申論問答題,非選擇題。在此針對考生於申論作答時常犯之「概念偏頗或遺漏向度」進行剖析與校正:

  1. 混淆「資料庫(DB)」與「資料庫管理系統(DBMS)」:
  • 錯誤盲點:僅回答「可以儲存大量資料、提供表格查詢」。
  • 評析校正:資料庫僅是資料的集合;DBMS 是負責定義、建置、操作與控制資料庫的「系統軟體」。作答焦點必須落在該軟體提供的「管理機制」(如交易引擎、快鎖機制、日誌系統),而非單純的資料儲存。
  1. 僅列出基本操作功能,遺漏系統級控制:
  • 錯誤盲點:只寫 CRUD(新增、讀取、更新、刪除)與查詢。
  • 評析校正:檔案系統亦能進行讀寫操作;DBMS 之所以完整,核心在於具備「ACID 交易保證」、「多使用者並行無衝突存取」與「系統當機後的資料自動回復」。
  1. 忽略資料獨立性的兩大層次:
  • 錯誤盲點:僅抽象提及「資料具備獨立性」。
  • 評析校正:必須具體區分為「實體資料獨立性」與「邏輯資料獨立性」,並點出三層綱要架構中各層變更時不影響上層應用程式的特性。

解題技巧

  1. 口訣記憶法:以「獨、複、整、共、交、安、回、語」八字訣快速提綱挈領:
  • 獨:資料獨立性(Physical & Logical Data Independence)
  • 複:最小化資料重複性(Minimal Data Redundancy)
  • 整:資料完整性約束(Data Integrity)
  • 共:多使用者資料共享(Data Sharing & Multi-User Support)
  • 交:交易管理與並行控制(Transaction & Concurrency Control, ACID)
  • 安:資料安全性與授權控制(Security & Authorization)
  • 回:備份與故障回復(Backup & Crash Recovery)
  • 語:標準化資料語言(Standard Data Languages, SQL)
  1. 格式排版竅門:採用「黑體大標 →\rightarrow 英文專有名詞 →\rightarrow 兩行核心定義 →\rightarrow 實務機制範例」之結構排版,層次分明,利於閱卷委員在短時間內掌握得分關鍵字。

【答案】

一個完整的資料庫管理系統(DBMS)應具備以下核心特點:

一、 高度資料獨立性(Data Independence)

依據 ANSI/SPARC 三層架構(Three-Schema Architecture),DBMS 將資料的定義與應用程式解耦,包含兩大層次:

  1. 實體資料獨立性(Physical Data Independence):當內部層(Internal Schema)的實體儲存結構、索引方式(如 B+ Tree、Hash Index)或硬體儲存位置改變時,不需修改概念層綱要及應用程式。
🔒

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

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

免費註冊

第 六 題20 分

詳細解釋下列 Java 語言程式的執行過程,並寫出程式的輸出。

public class testA { public static void main (String[] args) { int[] nums = {1, 1, 0, 0, 0, 0, 0}; int count = 0;

    for (int idx = 2; idx < nums.length; idx++)
        nums[idx] = nums[idx - 1] + nums[idx - 2];

    while (count < nums.length - 1)
    {
        if ((nums[count] + nums[count + 1]) % 2 == 0)
            nums[count]++;
        else
            nums[count + 1]--;

        count++;
    }

    for (int idx = 0; idx < nums.length; idx++)
        System.out.println(nums[idx]);
}

}

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

這一題的完整詳解

核心觀念

本題為典型的 Java 程式追蹤(Code Tracing)考題,評量考生對基礎語法、演算法與記憶體中陣列狀態變化的掌握度。核心觀念包含:

  1. 一維陣列(One-Dimensional Array)之宣告、初始化與索引存取:Java 陣列索引由 00 起算,陣列長度可透過屬性 nums.length 取得。
  2. 費氏數列(Fibonacci Sequence)之迭代生成:利用前兩項之和求出下一項之遞迴關係式 nums[i]=nums[i−1]+nums[i−2]nums[i] = nums[i-1] + nums[i-2]。
  3. 條件分支與算術運算子:
  • 模除運算子 % 用於奇偶性判斷:N(mod2)==0N \pmod 2 == 0 表示 NN 為偶數。
  • 遞增運算子 ++ 與遞減運算子 -- 改變陣列元素值。
  1. 迴圈控制與邊界控制:while 迴圈終止條件為 count < nums.length - 1,確保以相鄰兩元素 nums[count] 與 nums[count + 1] 運算時不會發生陣列索引越界例外(ArrayIndexOutOfBoundsException)。

解題方法

本程式的執行流程分為三大階段,解題切入點為依序追蹤各階段陣列元素與變數數值的動態變化:

階段一:陣列初始化與費氏數列填充(第一個 for 迴圈)

  • 初始宣告:陣列 nums 長度為 77(即 nums.length = 7),初始內容為 {1, 1, 0, 0, 0, 0, 0}。
  • 迴圈條件:for (int idx = 2; idx < nums.length; idx++),idx 從 22 遞增至 66:
  • idx=2\text{idx} = 2:nums[2]=nums[1]+nums[0]=1+1=2nums[2] = nums[1] + nums[0] = 1 + 1 = 2
  • idx=3\text{idx} = 3:nums[3]=nums[2]+nums[1]=2+1=3nums[3] = nums[2] + nums[1] = 2 + 1 = 3
  • idx=4\text{idx} = 4:nums[4]=nums[3]+nums[2]=3+2=5nums[4] = nums[3] + nums[2] = 3 + 2 = 5
  • idx=5\text{idx} = 5:nums[5]=nums[4]+nums[3]=5+3=8nums[5] = nums[4] + nums[3] = 5 + 3 = 8
  • idx=6\text{idx} = 6:nums[6]=nums[5]+nums[4]=8+5=13nums[6] = nums[5] + nums[4] = 8 + 5 = 13
  • 此階段結束後,陣列 nums 數值為:{1, 1, 2, 3, 5, 8, 13}。

階段二:相鄰元素之奇偶判斷與更新(while 迴圈)

  • 迴圈條件:while (count < nums.length - 1),因 nums.length - 1 = 6,故 count 值依序為 0,1,2,3,4,50, 1, 2, 3, 4, 5 共執行 66 次。
  • 每次判斷相鄰兩數之和 (nums[count]+nums[count+1])(nums[count] + nums[count+1]) 是否為偶數:
  • 若為偶數:執行 nums[count]++(當前元素加 11)。
  • 若為奇數:執行 nums[count+1]--(下一元素減 11)。
  • 逐步推導過程如下:
  1. 第 1 次迭代(count=0count = 0):
  • 檢查:nums[0]+nums[1]=1+1=2nums[0] + nums[1] = 1 + 1 = 2(偶數)。
  • 執行:nums[0]++   ⟹  nums[0]=1+1=2\implies nums[0] = 1 + 1 = 2。
  • 陣列更新為:{2, 1, 2, 3, 5, 8, 13},countcount 遞增為 11。
  1. 第 2 次迭代(count=1count = 1):
  • 檢查:nums[1]+nums[2]=1+2=3nums[1] + nums[2] = 1 + 2 = 3(奇數)。
  • 執行:nums[2]--   ⟹  nums[2]=2−1=1\implies nums[2] = 2 - 1 = 1。
  • 陣列更新為:{2, 1, 1, 3, 5, 8, 13},countcount 遞增為 22。
  1. 第 3 次迭代(count=2count = 2):
  • 檢查:nums[2]+nums[3]=1+3=4nums[2] + nums[3] = 1 + 3 = 4(偶數)。
  • 執行:nums[2]++   ⟹  nums[2]=1+1=2\implies nums[2] = 1 + 1 = 2。
  • 陣列更新為:{2, 1, 2, 3, 5, 8, 13},countcount 遞增為 33。
  1. 第 4 次迭代(count=3count = 3):
  • 檢查:nums[3]+nums[4]=3+5=8nums[3] + nums[4] = 3 + 5 = 8(偶數)。
  • 執行:nums[3]++   ⟹  nums[3]=3+1=4\implies nums[3] = 3 + 1 = 4。
  • 陣列更新為:{2, 1, 2, 4, 5, 8, 13},countcount 遞增為 44。
  1. 第 5 次迭代(count=4count = 4):
  • 檢查:nums[4]+nums[5]=5+8=13nums[4] + nums[5] = 5 + 8 = 13(奇數)。
  • 執行:nums[5]--   ⟹  nums[5]=8−1=7\implies nums[5] = 8 - 1 = 7。
🔒

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

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

免費註冊

其他考古題