110 高普考高考三級 電子工程 計算機概論 考古題詳解

110 年・高普考・高考三級・電子工程
試題代碼 計算機概論

第 一 題20 分

在無線通訊網路中,常用來傳輸訊號的電磁波(electromagnetic waves)有哪些種類?依據各分類,詳述其特性,如頻譜範圍、應用場景及優缺點等。

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

這一題的完整詳解

核心觀念

無線通訊利用電磁波在空間中傳遞訊號。電磁波依頻率排列成電磁頻譜,頻率愈高,波長愈短,兩者關係為:

λ=cf\lambda=\frac{c}{f}

其中 λ\lambda 為波長、ff 為頻率、cc 為真空中的光速,約為 3×108 m/s3\times10^8\ \text{m/s}。頻率與波長會影響傳播距離、穿透能力、天線尺寸及可用頻寬。

電磁波的頻譜分類界線在不同領域可能略有差異;無線通訊常見分類及應用如下。

解題方法

依頻率由低至高說明各類電磁波,並從頻譜範圍、傳播特性、常見用途及優缺點比較。答題時應掌握分類與應用的對應關係,並指出頻率愈高通常可用頻寬較大,但傳播距離與障礙物穿透能力往往較受限制。

各類電磁波及特性

分類約略頻譜範圍傳播特性與常見應用優缺點
無線電波約 3 kHz3\ \text{kHz} 至 300 MHz300\ \text{MHz};包含甚低頻、低頻、中頻、高頻及甚高頻等頻段低頻訊號可沿地表傳播,部分頻段可藉電離層反射達成遠距通訊;常見於長波/短波廣播、AM 廣播、海事與航空通訊,以及部分專用無線系統傳播距離可遠、繞射能力較佳;但低頻可用頻寬通常較小,天線尺寸可能較大,也容易受電磁雜訊或頻率配置限制
微波約 300 MHz300\ \text{MHz} 至 300 GHz300\ \text{GHz};常見通訊頻段包括 UHF、SHF 與 EHF多採視線傳播,常用於行動通訊、Wi‑Fi、藍牙、衛星通訊、微波中繼及雷達。行動網路與 Wi‑Fi 使用的頻段依標準及地區而異可提供較大頻寬、天線可較小且適合定向傳輸;但高頻訊號較易受建物、地形遮蔽,傳播距離受視線與雨衰影響,常需較密集的基地台或中繼站
紅外線約 300 GHz300\ \text{GHz} 至 400 THz400\ \text{THz},波長約 1 mm1\ \text{mm} 至 750 nm750\ \text{nm}常用於電視遙控器、近距離設備間傳輸及紅外線感測。
🔒

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

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

免費註冊

第 二 題20 分

什麼是一次(one-pass)及二次組譯器(two-pass assembler)?並試述其優缺點。

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

這一題的完整詳解

核心觀念

組譯器(assembler)將組合語言轉換成機器碼。組譯時,指令與資料的實際位址須先確定;但程式常會引用尚未定址的標號,因此組譯器需要處理標號定義與參照的先後關係。

一次與二次組譯器的差異,在於組譯器掃描原始程式的次數,以及如何處理尚未確定的標號位址。

解題方法

**一次組譯器(one-pass assembler)**只由前往後掃描原始程式一次,邊讀取邊分配位址、翻譯指令並產生目的碼。遇到已定義的標號,可直接填入其位址;若遇到尚未定義、但在後續才定義的標號(前向參照),則當下無法得知其位址。組譯器可先記錄該標號及待修正的目的碼位置,待標號定義後再回填;若採用的設計不支援回填,便會限制前向參照,或要求額外處理。

**二次組譯器(two-pass assembler)**將工作分成兩次掃描:

  1. 第一遍:建立符號表。 掃描原始程式並配置各指令與資料的位址,將標號及其位址記入符號表。
  2. 第二遍:產生目的碼。 再次掃描原始程式,查詢符號表,將標號參照轉換為實際位址,完成目的碼。

兩種方式的優缺點可從掃描次數、前向參照處理、實作複雜度與效率比較:

🔒

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

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

免費註冊

第 三 題20 分

試述作業系統中的最短工作優先排程演算法(shortest-job-first scheduling algorithm)。它有什麼特性?在現實中為何不適合用於中央處理器排程(CPU scheduling)?

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

這一題的完整詳解

核心觀念

最短工作優先排程(Shortest-Job-First,SJF)是一種非搶先式 CPU 排程方法:每當 CPU 空閒時,從已在就緒佇列中的行程挑選「下一段 CPU 執行時間」最短者執行。SJF 的搶先式版本稱為最短剩餘時間優先(Shortest-Remaining-Time-First,SRTF);新行程到達時,若其 CPU burst 短於目前行程的剩餘時間,就可搶占 CPU。

SJF 的主要特性如下:

  • 平均等待時間最短:若所有行程的下一段 CPU burst 長度已知,SJF 可使該批行程的平均等待時間達到最小。
  • 短工作優先:CPU burst 短的行程較快取得 CPU;長工作可能因短工作持續到達而長時間等待,產生飢餓問題。
  • 需要預知 CPU burst 長度:排程器必須知道或預測行程下一段 CPU burst,才能比較工作長短。

解題方法

回答這題可從「如何選擇行程」、「演算法的排程效果」及「實際執行的限制」三方面說明。

SJF 的選擇依據是 CPU burst 長度。假設就緒佇列中的行程各需執行 tit_i 單位時間,SJF 將短 burst 排在長 burst 前面。這能降低短行程等待長行程執行完畢的時間,因此在 CPU burst 長度已知的前提下,可得到最短的平均等待時間。

例如,三個行程同時到達,CPU burst 分別為 P1=6P_1=6、P2=2P_2=2、P3=4P_3=4。

🔒

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

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

免費註冊

第 四 題20 分

如圖所示,一電腦系統有甲、乙、丙、丁、戊五個元件,其錯誤率分別為 0.40.4、0.50.5、0.60.6、0.70.7 及 0.80.8。如果要確認此系統是否正常運作,須逐一檢測元件的正確性:只要其中有任何三個元件正確,則此系統可正常運作;若有任三個元件損壞,則此系統不能正常運作。假使想要以最少的檢測元件個數就能判定系統正常與否,則應該最先挑選那一個元件來檢測?詳述其理由。

🖼️【此處有附圖,請對照原卷】

🖼️ 本題原卷含圖表。基於試題來源之版權考量,本站不轉載原卷影像; 題目文字已完整轉錄,圖表請自行參閱考選部公告之試題原檔。

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

這一題的完整詳解

核心觀念

這題考的是在逐一檢查元件時,利用「已確認正常的元件達三個」或「已確認損壞的元件達三個」作為停止條件,安排檢測順序以降低平均檢測數。

以下依一般解題假設:各元件是否損壞彼此獨立,並以期望檢測數最少為目標。各元件的正確率為:甲 0.60.6、乙 0.50.5、丙 0.40.4、丁 0.30.3、戊 0.20.2。

解題方法

若檢測到三個元件,系統已能判定正常或故障;因此檢測數 TT 最多為 55。對固定的檢測順序:

  • 前三個結果若全正常或全損壞,檢測三個即可停止;否則必須繼續。
  • 前四個結果若是「二正常、二損壞」,仍須檢測第五個;其他情況可在四個以內判定。

因此,

E[T]=3+P(前三個結果各有正常與損壞)+P(前四個結果恰為二正常、二損壞)E[T]=3+P(\text{前三個結果各有正常與損壞})+ P(\text{前四個結果恰為二正常、二損壞})

把丙、丁、戊排在前三個,前三個結果未形成三個同類的機率為:

🔒

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

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

免費註冊

第 五 題20 分

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

public class Test { public static void main(String[] args) { int[] numbers = {60, 20, 55, 30, 40, 20};

    for (int index = 1; index < numbers.length; index++)
    {
        int key = numbers[index];
        int position = index;

        while (position > 0 && numbers[position - 1] > key)
        {
            numbers[position] = numbers[position - 1];
            position--;
        }

        numbers[position] = key;

        for (int count = 0; count < numbers.length; count++)
            System.out.print(numbers[count] + " ");

        System.out.println();
    }
}

}

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

這一題的完整詳解

核心觀念

本題考查 插入排序(Insertion Sort)。每次外層迴圈取出一個 key,將它插入前方已排序的區段中。

程式執行到第 indexindex 次時,numbers[0] 到 numbers[index - 1] 已依遞增順序排列。position 從 index 開始向左移動;只要左側元素大於 key,就將該元素右移一格。找到插入位置後,再把 key 放入該位置。

解題方法

初始陣列為:

[60, 20, 55, 30, 40, 20][60,\ 20,\ 55,\ 30,\ 40,\ 20]

外層迴圈從 index = 1 執行到 index = 5。每一輪完成插入後,程式都會印出整個陣列。

第 1 輪:index = 1

key = 20,position = 1。

因為 numbers[0] = 60 > 20,將 60 右移,position 減為 00。將 key 放入 numbers[0]:

[20, 60, 55, 30, 40, 20][20,\ 60,\ 55,\ 30,\ 40,\ 20]

第 2 輪:index = 2

key = 55,position = 2。

numbers[1] = 60 > 55,將 60 右移,position 減為 11。此時 numbers[0] = 20 不大於 55,停止移動,將 55 放入 numbers[1]:

[20, 55, 60, 30, 40, 20][20,\ 55,\ 60,\ 30,\ 40,\ 20]

第 3 輪:index = 3

key = 30,position = 3。

🔒

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

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

免費註冊

其他考古題

110 年高普考高考三級・其他類科的《計算機概論》