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

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

第 一 題20 分

(一) 使用筆電透過家裡或 hot spot 的 WiFi 上網,如果碰到卡卡的不太順的時候,檢查相關的軟硬體或設定均沒問題,那可能會有其他什麼原因?請列舉兩個常見的可能原因,說明為何會造成網路卡卡的,那又分別該如何解決這些因素。(10 分)

(二) IEEE 802.11 的標準,RTS/CTS 主要解決了什麼問題?為什麼它可以解決這個問題?請說明之。(10 分)

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

這一題的完整詳解

(一)Wi-Fi 上網不順的常見原因與處理方式

核心觀念

筆電到無線基地台之間的 Wi-Fi 連線正常,不代表整段上網路徑都沒有壅塞。網路傳輸可能受無線電干擾、周遭使用者競爭頻寬,或外部網路壅塞影響。本小題要從「無線區域網路」與「基地台以外的網路」兩個方向找原因。

解題方法

題目已說明相關軟硬體或設定均無問題,因此可列舉下列兩個常見原因,並分別說明成因與改善方式:

  1. 無線電干擾或無線網路壅塞 附近的 Wi-Fi 網路若使用相同或重疊的頻道,裝置便須競爭共享的無線傳輸時間;微波爐、藍牙裝置等也可能在相近頻段造成干擾。結果是傳輸重試增加、可用頻寬下降,使用者感覺延遲變高或網路卡頓。 **處理方式:**將基地台移到較開放、接近使用位置的地方,避開大型障礙物與干擾源;使用 Wi-Fi 分析工具選擇較不壅塞的頻道,並視設備與環境改用較不擁擠的頻段。

  2. 尖峰時段的網路壅塞 即使 Wi-Fi 連線正常,家中其他裝置同時串流、下載,或網際網路服務供應商(ISP)在尖峰時段的線路負載過高,都會使可分配給單一裝置的頻寬降低,或使封包排隊、延遲增加。 **處理方式:**暫停或錯開其他裝置的大量下載與串流;若是 ISP 線路尖峰壅塞,可向 ISP 查詢線路狀況,並評估升級方案或更換服務。

解題技巧

題目限定「軟硬體或設定均沒問題」,作答時應把重點放在外部環境與網路負載,並且每個原因都要配對說明「為何變慢」及「如何改善」。只寫「訊號不好」或「網路壅塞」而未交代機制與對策,說明不完整。

(二)IEEE 802.11 的 RTS/CTS

核心觀念

🔒

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

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

免費註冊

第 二 題20 分

(一) 請問下列的 C 語言函式 xxxSort() 是在執行那種排序演算法?請說明理由。(10 分)

void xxxSort(int arr[], int n) { int i, j, key; for (i = 1; i < n; i++) { key = arr[i]; j = i - 1; while (j >= 0 && arr[j] > key) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = key; } }

(二) 費氏數列的定義為:

F(0)=0, F(1)=1F(0)=0,\ F(1)=1

F(n)=F(n−1)+F(n−2), n≥2F(n)=F(n-1)+F(n-2),\ n\geq 2

假設我們要寫一個程序來算出 F(n)F(n),可以用遞迴(recursive)方式,也可用迭代(iterative)方式來寫程式。請問這兩種方式的優缺點為何?(10 分)

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

這一題的完整詳解

(一)排序演算法

核心觀念

此題考查排序演算法的程式碼辨識。插入排序(Insertion Sort)的作法是:從左至右逐一取出尚未排序的元素,將它插入左側已排序區段的正確位置。

解題方法

在程式中,i 從 1 開始,每回合取出 arr[i] 存入 key,並以 j = i - 1 往左檢查已排序區段:

  1. 當 arr[j] > key 時,將 arr[j] 向右移至 arr[j + 1]。
  2. j 每次減 1,直到到達陣列左端,或找到不大於 key 的元素。
  3. 將 key 放入 arr[j + 1],完成插入。

例如,若陣列為 [5, 2, 4]:第一回合取出 2,將 5 右移後放入 arr[0],得到 [2, 5, 4];第二回合取出 4,將 5 右移後放入 arr[1],得到 [2, 4, 5]。

解題技巧與複雜度

判斷插入排序的關鍵,是看程式是否以 key 暫存目前元素,再把左側較大的元素逐一右移,最後將 key 放入空出的位置。外層迴圈每次擴大左側的已排序區段。

最壞及平均時間複雜度為 O(n2)O(n^2);若輸入已排序,內層移動幾乎不執行,最佳時間複雜度為 O(n)O(n)。此程式僅使用固定數量的額外變數,空間複雜度為 O(1)O(1)。由於只在 arr[j] > key 時移動元素,相等元素不會彼此越過,因此此排序具穩定性。

【答案】 xxxSort 執行的是插入排序(Insertion Sort)。

(二)遞迴與迭代計算費氏數列

核心觀念

費氏數列符合遞迴關係式:

F(0)=0,F(1)=1,F(n)=F(n−1)+F(n−2)(n≥2)F(0)=0,\quad F(1)=1,\quad F(n)=F(n-1)+F(n-2)\quad(n\geq 2)

遞迴是由函式呼叫自身,直接依照定義拆解問題;迭代則透過迴圈逐步計算並保存中間結果。

解題方法

🔒

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

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

免費註冊

第 三 題20 分

(一) AA 與 BB 均為 1-bit 的輸入端,設計一個 1-bit 的互斥或(XOR)線路,判斷 AA 是否與 BB 一樣,若一樣則輸出 0,否則輸出 1。而且只能使用 AND、OR、NOT 邏輯閘(Gate)。(10 分)

(二) AA 與 BB 均為 1-bit 的輸入端,設計一個 1-bit 相等(EQUAL)的線路,判斷 A=BA=B,若 true 則輸出 1,否則輸出 0。而且只能使用 AND、OR、NOT 邏輯閘(Gate)。(10 分)

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

這一題的完整詳解

核心觀念

本題考查互斥或閘(XOR)與相等判斷(EQUAL)的真值定義,以及如何只用 AND、OR、NOT 閘實現邏輯功能。

  • XOR 在兩輸入不同時輸出 11,相同時輸出 00。
  • EQUAL 在兩輸入相同時輸出 11,不同時輸出 00,因此它是 XOR 的反相輸出。

解題方法

先列出兩個輸入的真值表,再依輸出為 11 的列寫成最小項,最後改寫成題目允許使用的 AND、OR、NOT 運算。

AABBXOREQUAL
0001
0110
1010
1101

(一) XOR 線路

XOR 在 (A,B)=(0,1)(A,B)=(0,1) 或 (1,0)(1,0) 時輸出 11。這兩列分別對應 A‾B\overline{A}B 與 AB‾A\overline{B},將它們以 OR 合併:

X=A⊕B=A‾B+AB‾X=A\oplus B=\overline{A}B+A\overline{B}

線路做法:

  1. 用 NOT 閘產生 A‾\overline{A} 與 B‾\overline{B}。
  2. 用兩個 AND 閘分別計算 A‾B\overline{A}B、AB‾A\overline{B}。
  3. 用 OR 閘合併兩個 AND 閘的輸出。
🔒

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

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

免費註冊

第 四 題20 分

在多執行緒(multithread)的作業系統,可能會有飢餓(starvation)或死結(deadlock)的問題,請問它們各自是怎樣的情況會造成這樣的問題。請各提出一個解決的方法,並說明為何可以解決問題。

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

這一題的完整詳解

核心觀念

本題考查作業系統中的飢餓(starvation)與死結(deadlock)。兩者都會使執行緒長時間無法前進,但成因不同:

  • 飢餓:某執行緒因排程或資源分配不公平,持續被其他執行緒超越,長期得不到所需的 CPU 時間或資源。
  • 死結:一組執行緒各自持有部分資源,並等待其他執行緒持有的資源,形成循環等待;循環中的執行緒都無法繼續執行。

解題方法

作答時先分辨問題來源:飢餓的關鍵是不公平分配造成等待無限延長;死結的關鍵是資源互相等待形成循環。接著各提出一項能對應成因的方法,並說明方法如何切斷成因。

一、飢餓的成因與解法

成因: 若排程器採用嚴格優先權排程,低優先權執行緒每次都被新到達的高優先權執行緒搶先,低優先權執行緒便可能一直得不到 CPU。鎖或其他資源若採不公平分配,也可能造成同一執行緒長期無法取得資源。

解法:優先權老化(aging)。 讓等待中的執行緒隨等待時間逐步提高優先權。低優先權執行緒等待越久,優先權越高,最終能取得 CPU 或資源,不會永遠被新到達的高優先權執行緒壓過。

二、死結的成因與解法

成因: 死結須同時具備四項必要條件:

🔒

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

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

免費註冊

第 五 題20 分

(一) 請將下列中序式(infix)的表示式,轉成前序式(prefix)。(10 分)

5+8∗(7−3)+65+8*(7-3)+6

(二) 下列兩個 IP,根據它的遮罩,請判定是否屬於同一個子網路(subnet)?(10 分)

200.188.170.82/27200.188.170.82/27 與 200.188.170.114/27200.188.170.114/27

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

這一題的完整詳解

(一)中序式轉前序式

核心觀念

運算優先順序由高至低為:括號、乘法、加法;同一優先順序的加法採由左至右結合。前序式(prefix)將運算子寫在運算元之前,不需再用括號表示優先順序。

解題方法

先依優先順序將原式分組:

5+8∗(7−3)+6=(5+(8∗(7−3)))+65+8*(7-3)+6 = \bigl(5+(8*(7-3))\bigr)+6

將最外層的加法及其左右運算式改寫為前序式:

  • 最外層:++,左邊為 5+(8∗(7−3))5+(8*(7-3)),右邊為 66。
  • 左邊的加法:++,左運算元為 55,右運算式為 8∗(7−3)8*(7-3)。
  • 乘法:∗*,左運算元為 88,右運算式為 7−37-3。
  • 括號內減法:−-,運算元為 77 與 33。

依序將運算子放在其運算元之前:

++5∗8−736\boxed{++5*8-736}

解題技巧

每遇到一個二元運算子,依「運算子、左運算元、右運算元」的順序輸出。括號內的減法必須先處理;乘法的優先順序高於加法,因此 8∗(7−3)8*(7-3) 要整體作為加法的右側運算式。

(二)判斷是否屬於同一個子網路

核心觀念

/27 表示前 2727 個位元為網路位址,子網路遮罩為:

255.255.255.224255.255.255.224

🔒

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

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

免費註冊

其他考古題

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