110 高普考高考三級 電子工程 計算機概論 考古題詳解
第 一 題20 分
在無線通訊網路中,常用來傳輸訊號的電磁波(electromagnetic waves)有哪些種類?依據各分類,詳述其特性,如頻譜範圍、應用場景及優缺點等。
登入後即可作答並保存紀錄。
核心觀念
無線通訊利用電磁波在空間中傳遞訊號。電磁波依頻率排列成電磁頻譜,頻率愈高,波長愈短,兩者關係為:
其中 為波長、 為頻率、 為真空中的光速,約為 。頻率與波長會影響傳播距離、穿透能力、天線尺寸及可用頻寬。
電磁波的頻譜分類界線在不同領域可能略有差異;無線通訊常見分類及應用如下。
解題方法
依頻率由低至高說明各類電磁波,並從頻譜範圍、傳播特性、常見用途及優缺點比較。答題時應掌握分類與應用的對應關係,並指出頻率愈高通常可用頻寬較大,但傳播距離與障礙物穿透能力往往較受限制。
各類電磁波及特性
| 分類 | 約略頻譜範圍 | 傳播特性與常見應用 | 優缺點 |
|---|---|---|---|
| 無線電波 | 約 至 ;包含甚低頻、低頻、中頻、高頻及甚高頻等頻段 | 低頻訊號可沿地表傳播,部分頻段可藉電離層反射達成遠距通訊;常見於長波/短波廣播、AM 廣播、海事與航空通訊,以及部分專用無線系統 | 傳播距離可遠、繞射能力較佳;但低頻可用頻寬通常較小,天線尺寸可能較大,也容易受電磁雜訊或頻率配置限制 |
| 微波 | 約 至 ;常見通訊頻段包括 UHF、SHF 與 EHF | 多採視線傳播,常用於行動通訊、Wi‑Fi、藍牙、衛星通訊、微波中繼及雷達。行動網路與 Wi‑Fi 使用的頻段依標準及地區而異 | 可提供較大頻寬、天線可較小且適合定向傳輸;但高頻訊號較易受建物、地形遮蔽,傳播距離受視線與雨衰影響,常需較密集的基地台或中繼站 |
| 紅外線 | 約 至 ,波長約 至 | 常用於電視遙控器、近距離設備間傳輸及紅外線感測。 |
第 二 題20 分
什麼是一次(one-pass)及二次組譯器(two-pass assembler)?並試述其優缺點。
登入後即可作答並保存紀錄。
核心觀念
組譯器(assembler)將組合語言轉換成機器碼。組譯時,指令與資料的實際位址須先確定;但程式常會引用尚未定址的標號,因此組譯器需要處理標號定義與參照的先後關係。
一次與二次組譯器的差異,在於組譯器掃描原始程式的次數,以及如何處理尚未確定的標號位址。
解題方法
**一次組譯器(one-pass assembler)**只由前往後掃描原始程式一次,邊讀取邊分配位址、翻譯指令並產生目的碼。遇到已定義的標號,可直接填入其位址;若遇到尚未定義、但在後續才定義的標號(前向參照),則當下無法得知其位址。組譯器可先記錄該標號及待修正的目的碼位置,待標號定義後再回填;若採用的設計不支援回填,便會限制前向參照,或要求額外處理。
**二次組譯器(two-pass assembler)**將工作分成兩次掃描:
- 第一遍:建立符號表。 掃描原始程式並配置各指令與資料的位址,將標號及其位址記入符號表。
- 第二遍:產生目的碼。 再次掃描原始程式,查詢符號表,將標號參照轉換為實際位址,完成目的碼。
兩種方式的優缺點可從掃描次數、前向參照處理、實作複雜度與效率比較:
第 三 題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 長度。假設就緒佇列中的行程各需執行 單位時間,SJF 將短 burst 排在長 burst 前面。這能降低短行程等待長行程執行完畢的時間,因此在 CPU burst 長度已知的前提下,可得到最短的平均等待時間。
例如,三個行程同時到達,CPU burst 分別為 、、。
第 四 題20 分
如圖所示,一電腦系統有甲、乙、丙、丁、戊五個元件,其錯誤率分別為 、、、 及 。如果要確認此系統是否正常運作,須逐一檢測元件的正確性:只要其中有任何三個元件正確,則此系統可正常運作;若有任三個元件損壞,則此系統不能正常運作。假使想要以最少的檢測元件個數就能判定系統正常與否,則應該最先挑選那一個元件來檢測?詳述其理由。
🖼️【此處有附圖,請對照原卷】
登入後即可作答並保存紀錄。
核心觀念
這題考的是在逐一檢查元件時,利用「已確認正常的元件達三個」或「已確認損壞的元件達三個」作為停止條件,安排檢測順序以降低平均檢測數。
以下依一般解題假設:各元件是否損壞彼此獨立,並以期望檢測數最少為目標。各元件的正確率為:甲 、乙 、丙 、丁 、戊 。
解題方法
若檢測到三個元件,系統已能判定正常或故障;因此檢測數 最多為 。對固定的檢測順序:
- 前三個結果若全正常或全損壞,檢測三個即可停止;否則必須繼續。
- 前四個結果若是「二正常、二損壞」,仍須檢測第五個;其他情況可在四個以內判定。
因此,
把丙、丁、戊排在前三個,前三個結果未形成三個同類的機率為:
第 五 題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,將它插入前方已排序的區段中。
程式執行到第 次時,numbers[0] 到 numbers[index - 1] 已依遞增順序排列。position 從 index 開始向左移動;只要左側元素大於 key,就將該元素右移一格。找到插入位置後,再把 key 放入該位置。
解題方法
初始陣列為:
外層迴圈從 index = 1 執行到 index = 5。每一輪完成插入後,程式都會印出整個陣列。
第 1 輪:index = 1
key = 20,position = 1。
因為 numbers[0] = 60 > 20,將 60 右移,position 減為 。將 key 放入 numbers[0]:
第 2 輪:index = 2
key = 55,position = 2。
numbers[1] = 60 > 55,將 60 右移,position 減為 。此時 numbers[0] = 20 不大於 55,停止移動,將 55 放入 numbers[1]:
第 3 輪:index = 3
key = 30,position = 3。