109 年 國立中央警察大學資訊管理研究所《計算機概論》

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

第 一 題

請回答下列問題:
(一) 請舉例說明物聯網 (Internet of Things) 的五種應用。(8 分)
(二) 物聯網的架構主要分為三層,請分別說明之。(9 分)
(三) 請依據物聯網的三層架構,分別說明物聯網的安全威脅。(8 分)

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

這一題的完整詳解

本題主要考查物聯網 (Internet of Things, IoT) 的基本概念、架構與安全威脅。

核心觀念:物聯網是透過網路將各種實體物件連接起來,使其能夠收集、交換數據並進行互動的技術。其架構通常分為感知層、網路層和應用層,而安全是 IoT 發展的重要考量。

(一) 物聯網的五種應用舉例:
物聯網的應用非常廣泛,以下列舉五種常見的應用:

  1. 智慧家居 (Smart Home):透過連接家中的家電(如智慧燈泡、智慧門鎖、智慧音箱、恆溫器等),使用者可以遠端控制或自動化家居設備,提升生活便利性與舒適度。例如,設定離家模式後,所有燈光自動關閉,門鎖自動上鎖。
  2. 智慧醫療 (Smart Healthcare):可穿戴式裝置(如智慧手環、心率監測器)可以持續收集使用者的生理數據(如心率、睡眠品質、運動量),並將數據傳輸至醫療平台,供醫生遠端監測或進行初步診斷,實現預防性醫療與遠距照護。
  3. 智慧交通 (Smart Transportation):例如,透過安裝在道路或車輛上的感測器,收集交通流量、車輛位置等資訊,實現交通號誌的智慧調控,減少塞車;或提供即時停車位資訊、導航系統最佳路線規劃等。
  4. 工業物聯網 (Industrial Internet of Things, IIoT):在製造業中,感測器被用於監控生產線上的設備狀態、溫度、壓力等參數,以預測設備故障、優化生產流程、提高生產效率與產品質量。例如,預測性維護,在設備損壞前進行維修。
  5. 智慧農業 (Smart Agriculture):利用感測器監測土壤濕度、溫度、光照強度、養分含量等環境數據,並結合氣象預報,自動化控制灌溉系統、施肥系統,精準管理作物生長,提高產量並節省資源。
    【答案】(以上五種應用任選其四,並加以說明即可)

(二) 物聯網的架構三層說明:
物聯網的架構通常被劃分為三個主要層級,分別是感知層、網路層和應用層。

  1. 感知層 (Perception Layer / Sensing Layer):
    • 功能:這是物聯網最底層的架構,負責感知、識別和收集現實世界中的各種資訊。它包含各式各樣的感測器(Sensors)、致動器(Actuators)、條碼/QR Code 掃描器、RFID 標籤及讀取器等硬體設備。
    • 作用:感測器負責偵測環境中的物理參數(如溫度、濕度、光線、壓力、運動等)或識別物體(如條碼、RFID),並將這些類比訊號轉換為數位訊號。致動器則負責根據接收到的指令,對物理世界進行操作(如開關燈、調節溫度、移動機械臂)。
  2. 網路層 (Network Layer / Transport Layer):
    • 功能:這一層負責將感知層收集到的數據傳輸到應用層,並將應用層的指令傳遞到感知層。
🔒

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

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

免費註冊

第 二 題

請回答下列問題:
(一) 請寫出廣度優先搜尋法 (Breadth First Search, BFS) 及深度優先搜尋法 (Depth First Search, DFS) 的演算法。(15 分)
(二) 如下圖,若由頂點 1 開始走訪,則產生的 BFS 擴展樹及 DFS 擴展樹為何?(10 分)

🖼️【此處有附圖,請對照原卷】
(圖示為一個包含節點 1 到 8 的無向圖,節點之間的連接關係如下:
1 連接 2, 4, 5
2 連接 1, 3, 6
3 連接 2, 7
4 連接 1, 5, 8
5 連接 1, 4, 6
6 連接 2, 5, 7
7 連接 3, 6, 8
8 連接 4, 7
注意:圖示中節點 1-8 的排列並非按照圖結構,需依據連接關係理解)

🖼️ 本題含圖表,以下為原卷對應頁面:
原卷第 1 頁原卷第 2 頁

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

這一題的完整詳解

本題主要考查圖論中的兩種基本搜尋演算法:廣度優先搜尋 (BFS) 和深度優先搜尋 (DFS),以及它們在特定圖結構上的應用。

核心觀念:BFS 和 DFS 是用於遍歷或搜尋圖 (或樹) 中節點的兩種重要演算法。BFS 依層級由近至遠搜尋,DFS 則沿著一條路徑盡可能深入搜尋。

(一) BFS 與 DFS 演算法:

1. 廣度優先搜尋法 (Breadth First Search, BFS)

  • 核心思想:BFS 從起始節點開始,先訪問所有與起始節點直接相鄰的節點(即同一層級的節點),然後再逐層向外擴展,依次訪問下一層級的所有節點。它利用一個佇列 (Queue) 來管理待訪問的節點。

  • 演算法步驟:

    1. 初始化一個空的佇列 Q。
    2. 將起始節點 start_node 加入佇列 Q。
    3. 標記 start_node 為已訪問。
    4. 當佇列 Q 不為空時,執行以下步驟:
      a. 從佇列 Q 的前端取出一個節點 u (dequeue)。
      b. 處理節點 u(例如,將其加入 BFS 遍歷序列,或用於建立擴展樹)。
      c. 對於節點 u 的每一個未訪問過的鄰居節點 v:
      i. 標記 v 為已訪問。
      ii. 將 v 加入佇列 Q (enqueue)。
      iii.(若要建立 BFS 擴展樹,記錄 u 是 v 的父節點)。
  • 時間複雜度:O(V+E)O(V+E),其中 VV 是圖的節點數,EE 是圖的邊數。每個節點和每條邊都會被訪問常數次。

  • 空間複雜度:O(V)O(V),用於儲存佇列和標記已訪問的節點。

2. 深度優先搜尋法 (Depth First Search, DFS)

  • 核心思想:DFS 從起始節點開始,沿著一條路徑盡可能深入地訪問節點,直到無法繼續深入為止,然後回溯到上一個節點,尋找另一條未訪問的路徑繼續深入。它通常利用遞迴 (Recursion) 或一個堆疊 (Stack) 來實現。

  • 演算法步驟 (遞迴實現):

    1. 定義一個遞迴函數 DFS(node, visited):
      a. 標記 node 為已訪問。
      b. 處理節點 node(例如,將其加入 DFS 遍歷序列,或用於建立擴展樹)。
      c. 對於節點 node 的每一個未訪問過的鄰居節點 v:
      i. (若要建立 DFS 擴展樹,記錄 node 是 v 的父節點)。
      ii. 遞迴呼叫 DFS(v, visited)。

    2. 初始化一個標記所有節點為未訪問的陣列 visited。

    3. 對起始節點 start_node 呼叫 DFS(start_node, visited)。

  • 演算法步驟 (迭代實現,使用堆疊):

    1. 初始化一個空的堆疊 S。
    2. 將起始節點 start_node 推入堆疊 S。
    3. 當堆疊 S 不為空時,執行以下步驟:
      a. 從堆疊 S 的頂端彈出一個節點 u (pop)。
      b. 如果 u 尚未被訪問:
      i. 標記 u 為已訪問。
      ii. 處理節點 u。
      iii.(若要建立 DFS 擴展樹,記錄某個節點是 u 的父節點,這在迭代實現中較複雜,通常需要額外結構)。
      iv. 將 u 的每一個未訪問過的鄰居節點 v 推入堆疊 S (push)。注意鄰居的加入順序會影響遍歷結果。
  • 時間複雜度:O(V+E)O(V+E),與 BFS 相同。

  • 空間複雜度:O(V)O(V),用於儲存堆疊(或遞迴呼叫堆疊)和標記已訪問的節點。

【答案】(BFS 及 DFS 的演算法描述,包含核心思想、主要資料結構、步驟,以及時間/空間複雜度)

(二) BFS 與 DFS 擴展樹的產生:

給定的圖節點與連接關係:

  • 1: {2, 4, 5}
  • 2: {1, 3, 6}
  • 3: {2, 7}
  • 4: {1, 5, 8}
  • 5: {1, 4, 6}
  • 6: {2, 5, 7}
  • 7: {3, 6, 8}
  • 8: {4, 7}

起始節點為 1。

1. BFS 擴展樹 (BFS Spanning Tree)

BFS 演算法從起始節點開始,逐層訪問。我們需要記錄每個節點是從哪個節點訪問而來的,以構成樹。

  • 初始化:

    • 佇列 Q = [1]
    • 已訪問 Visited = {1}
    • BFS 擴展樹邊集 Edges = {}
  • 步驟:

    1. Dequeue 1。處理 1。
      • 1 的鄰居:2, 4, 5。
      • 將 2, 4, 5 加入佇列。Q = [2, 4, 5]。
      • 標記 2, 4, 5 為已訪問。Visited = {1, 2, 4, 5}。
      • 加入邊 (1, 2), (1, 4), (1, 5) 到 Edges。
    2. Dequeue 2。處理 2。
      • 2 的鄰居:1, 3, 6。1 已訪問。
      • 未訪問鄰居:3, 6。
      • 將 3, 6 加入佇列。Q = [4, 5, 3, 6]。
      • 標記 3, 6 為已訪問。Visited = {1, 2, 4, 5, 3, 6}。
      • 加入邊 (2, 3), (2, 6) 到 Edges。
    3. Dequeue 4。處理 4。
      • 4 的鄰居:1, 5, 8。1, 5 已訪問。
      • 未訪問鄰居:8。
      • 將 8 加入佇列。Q = [5, 3, 6, 8]。
      • 標記 8 為已訪問。Visited = {1, 2, 4, 5, 3, 6, 8}。
      • 加入邊 (4, 8) 到 Edges。
    4. Dequeue 5。處理 5。
      • 5 的鄰居:1, 4, 6。1, 4, 6 已訪問。
      • 無未訪問鄰居。Q = [3, 6, 8]。
    5. Dequeue 3。處理 3。
      • 3 的鄰居:2, 7。2 已訪問。
      • 未訪問鄰居:7。
      • 將 7 加入佇列。Q = [6, 8, 7]。
      • 標記 7 為已訪問。Visited = {1, 2, 4, 5, 3, 6, 8, 7}。
      • 加入邊 (3, 7) 到 Edges。
    6. Dequeue 6。處理 6。
      • 6 的鄰居:2, 5, 7。2, 5, 7 已訪問。
      • 無未訪問鄰居。Q = [8, 7]。
    7. Dequeue 8。處理 8。
      • 8 的鄰居:4, 7。4, 7 已訪問。
      • 無未訪問鄰居。Q = [7]。
    8. Dequeue 7。處理 7。
      • 7 的鄰居:3, 6, 8。3, 6, 8 已訪問。
      • 無未訪問鄰居。Q = []。
    9. 佇列為空,結束。
  • BFS 擴展樹的邊:{(1, 2), (1, 4), (1, 5), (2, 3), (2, 6), (4, 8), (3, 7)}。

    • 節點 1 是根。
    • 節點 2 的父節點是 1。
    • 節點 4 的父節點是 1。
    • 節點 5 的父節點是 1。
    • 節點 3 的父節點是 2。
    • 節點 6 的父節點是 2。
    • 節點 8 的父節點是 4。
    • 節點 7 的父節點是 3。

2. DFS 擴展樹 (DFS Spanning Tree)

🔒

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

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

免費註冊

第 三 題

請回答下列問題:
(一) 試寫出 OSI 7-layer model 的七層架構,並詳細說明各層之功能。(8 分)
(二) 試說明通訊介面 (Interface) 與通訊協定 (Protocol) 的主要差異為何?(9 分)
(三) 試說明何謂網路插槽 (Network Socket)? 網路插槽是一種通訊介面或是通訊協定?請說明理由。(8 分)

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

這一題的完整詳解

本題主要考查網路通訊模型 OSI 七層架構、通訊介面與通訊協定的概念,以及網路插槽 (Socket) 的定義與性質。

核心觀念:OSI 模型是網路通訊的理論框架,將複雜的通訊過程分層處理。介面是連接不同實體或層級的點,協定則是定義溝通規則的規範。Socket 是應用層與傳輸層之間溝通的端點。

(一) OSI 7-layer model 的七層架構及其功能:
OSI (Open Systems Interconnection) 模型是一個將網路通訊功能劃分為七個邏輯層次的理論模型,旨在促進不同廠商的系統之間的互連互通。

  1. 第七層:應用層 (Application Layer)

    • 功能:提供應用程式與網路之間的介面,處理使用者感知的網路服務。它讓使用者能夠存取網路資源,例如檔案傳輸、電子郵件、網頁瀏覽等。
    • 代表協定:HTTP, FTP, SMTP, DNS, Telnet。
  2. 第六層:表現層 (Presentation Layer)

    • 功能:負責數據的格式轉換、加密與解密、壓縮與解壓縮。它確保不同應用層之間能夠理解彼此傳送的數據格式。
    • 代表協定:SSL/TLS (用於加密), JPEG, ASCII。
  3. 第五層:會議層 (Session Layer)

    • 功能:負責建立、管理和終止應用程式之間的通訊會話 (Session)。它處理對話的同步、管理傳輸流量,並確保兩端點之間的對話能夠持續進行。
    • 代表協定:NetBIOS, RPC。
  4. 第四層:傳輸層 (Transport Layer)

    • 功能:提供端對端 (End-to-End) 的資料傳輸服務,負責將上層的數據分割成數據段 (Segments),並進行可靠或不可靠的傳輸。它處理流量控制、錯誤控制和流程控制。
    • 代表協定:TCP (Transmission Control Protocol, 可靠傳輸), UDP (User Datagram Protocol, 不可靠但快速傳輸)。
  5. 第三層:網路層 (Network Layer)

    • 功能:負責在不同網路之間進行數據的路由 (Routing) 和定址 (Addressing)。它決定數據封包 (Packets) 的最佳路徑,並處理邏輯位址(如 IP 位址)。
    • 代表協定:IP (Internet Protocol), ICMP (Internet Control Message Protocol), OSPF。
  6. 第二層:資料鏈結層 (Data Link Layer)

    • 功能:負責在相鄰節點之間(同一網路內)進行可靠的數據傳輸。它處理實體位址(如 MAC 位址),進行錯誤偵測和糾正,並控制數據幀 (Frames) 的傳輸。
    • 代表協定:Ethernet, PPP (Point-to-Point Protocol), Wi-Fi (IEEE 802.11)。
  7. 第一層:實體層 (Physical Layer)

    • 功能:定義了傳輸媒介的物理特性,如電壓、線纜標準、連接器類型。負責將數據比特流 (Bits) 轉換為電信號、光信號或無線電波,並在物理媒介上進行傳輸。
    • 代表標準:RS-232, Ethernet (實體部分), USB。

【答案】(七層名稱及其功能說明)

(二) 通訊介面 (Interface) 與通訊協定 (Protocol) 的主要差異:

特徵通訊介面 (Interface)通訊協定 (Protocol)
定義是連接兩個系統、裝置或軟體組件的「點」或「邊界」。它定義了如何連接,但通常不定義具體的溝通內容。是兩或多個實體之間,在通訊時必須遵守的一套「規則」和「標準」。它定義了通訊的格式、時序、錯誤處理等。
🔒

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

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

免費註冊

第 四 題

請回答下列問題:
(一) 在程式語言種類中,有程序性語言 (Procedural Language) 與物件導向語言 (Object-Oriented Language)。試比較兩類不同語言在撰寫程式觀念上的差異。(15 分)
(二) 試分辨 Python、C、C++、Visual Basic、Java 各屬於上述哪一類語言?(10 分)

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

這一題的完整詳解

本題主要考查程式語言的分類,特別是程序性語言與物件導向語言的概念,以及常見程式語言的分類。

核心觀念:程序性語言著重於「如何做」(How to do),將程式分解為一系列的步驟和函數;物件導向語言著重於「誰來做」(Who does it),將程式組織成具有狀態 (資料) 和行為 (方法) 的物件。

(一) 程序性語言與物件導向語言在撰寫程式觀念上的差異:

特徵程序性語言 (Procedural Language)物件導向語言 (Object-Oriented Language, OOP)
核心概念程序 (Procedure) / 函數 (Function):將程式分解為一系列可執行指令的序列,以函數的形式組織。物件 (Object):將資料 (屬性/欄位) 和操作資料的方法 (行為/函數) 封裝在一個單元中。
程式組織以「動作」為中心,強調「如何一步一步完成任務」。程式碼通常是頂層的函數呼叫其他函數。以「資料」和「物件」為中心,強調「物件之間的互動」。程式碼由物件的創建、訊息傳遞和方法呼叫組成。
資料與行為資料和操作資料的函數是分開的。資料通常是全域的或傳遞給函數。資料 (屬性) 和操作資料的行為 (方法) 是緊密耦合在一起,封裝在物件內部。
程式設計方法由上而下 (Top-down):將複雜問題分解成更小的子問題,直至基本操作。由下而上 (Bottom-up):先定義基本物件,然後將其組合起來構建更複雜的系統。
重點演算法 (Algorithm) 的實現。資料模型 (Data Model) 和 物件互動。
封裝 (Encapsulation)較弱。資料通常容易被外部函數修改。強。資料被保護在物件內部,只能透過物件提供的方法存取,提高安全性與模組化。
繼承 (Inheritance)不支援。支援。允許一個類別繼承另一個類別的屬性和方法,促進程式碼重用。
多型 (Polymorphism)不支援(或支援有限)。支援。允許不同物件對相同的訊息做出不同的響應,提高程式的靈活性。
可維護性與重用性相對較低,修改一個函數可能影響多處。
🔒

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

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

免費註冊

其他考古題

109 年中央警察大學的其他科目

中央警察大學《計算機概論》其他年度

其他學校的資管系考古題