民國112年 普通考試 電子工程 計算機概要考古題與答案

民國112年 普通考試 電子工程 計算機概要收錄考選部官方試題與測驗式試題標準答案,共 40 題可線上瀏覽。

官方資料

答案以考選部公告之測驗式試題標準答案 PDF 為準。

題目與答案

第1題

在設計管線式(pipeline)處理器時,需搭配各式軟硬體的設計機制,以減少管線因data hazard 損失的運算效能。下列優化運算效能的技術,何者不能於編譯器(compiler)上實施? A. Data forwarding B. Instruction scheduling D. Register renaming C. Software pipelining

參考解答

  • 答案:A. Data forwarding

解析:Data forwarding(資料前送)是在處理器硬體中加入旁路(bypass)路徑,讓ALU 的運算結果不必先寫回暫存器,就能直接送給下一道指令使用,屬於硬體層面的設計,編譯器無法自行實施。Instruction scheduling 由編譯器調整指令順序,把有相依性的指令拉開距離;Software pipelining 由編譯器重排迴圈內指令,使多個迭代重疊執行;Register renaming 亦可由編譯器在靜態排程時配置不同暫存器,來消除名稱相依(假相依)。因此只有 A 屬於硬體機制。

第2題

將時間切割成很多小片段,讓CPU 不停地在許多程序(Process)之間切換執行,每位使用者以為自己的程序一直持續在執行,這種作業系統稱為: A. 多元(Multi-programming)系統 B. 分時(Time-sharing)系統 D. 多執行緒(Multi-thread)系統 C. 即時(Real-time)系統

參考解答

  • 答案:B. 分時(Time-sharing)系統

解析:分時(Time-sharing)系統將 CPU 時間切成極短時間片(time slice/quantum),在多名使用者的程序間快速切換,因切換極快,每位使用者感覺自己的程序持續執行,可達到互動式多人共用。多程式(Multi-programming)強調同時駐留多道程序提升 CPU 利用率;即時系統強調期限內回應;多執行緒是程序內多執行流。題意為時間切片切換,故選 B。

第3題

在記憶體階層架構裡,下列敘述何者錯誤? A. 主記憶體通常使用隨機存取記憶體(RAM) B. CPU 裡面的暫存器(Registers)存取速度最快 D. 硬碟屬於輔助記憶體 C. 在CPU 與主記憶體之間可以使用快閃記憶體(Flash memory)來提昇系統的效能

參考解答

  • 答案:D. 在CPU 與主記憶體之間可以使用快閃記憶體(Flash memory)來提昇系統的效能

第4題

音樂CD 的取樣頻率是44.1 kHz,取樣位元是16 位元,一段雙聲道10 秒鐘的音樂,在無壓縮的情形下,需要多少位元組(Byte)來儲存? A. 441,000 B. 882,000 D. 1,764,000 C. 3,528,000

參考解答

  • 答案:C. 1,764,000

第5題

將二進位數字(1011 0110)2 換算為四進位數字,下列何者正確? A. (1231)4 B. (3122)4 D. (2312)4 C. (1320)4

參考解答

  • 答案:C. (2312)4

第6題

關於process 與thread 的敘述,下列何者錯誤? A. 在多核心系統上的平行程式,可以在單一process 內部執行多個thread 的方式實現 B. 在多核心系統上的平行程式,可以多個process 的方式實現 D. 在單一process 內部的不同thread 之間,可透過global variable 交換資料 C. 在不同process 的thread 之間,可透過global variable 交換資料

參考解答

  • 答案:D. 在不同process 的thread 之間,可透過global variable 交換資料

第7題

對10110110 和10100111 按位元(bit-wise)進行AND 的運算,結果為下列何者? A. 00010001 B. 01011101 D. 10100110 C. 10110111

參考解答

  • 答案:C. 10100110

第8題

下列那一種作業系統排程演算法,理論上能得到最短的平均等待時間? A. 優先權(Priority) B. 先到先做(FCFS) D. 循環分配(RR) C. 最短工作先做(SJF)

參考解答

  • 答案:D. 最短工作先做(SJF)

第9題

某計算機系統具有32 bits 位址的記憶體定址空間,並包含一個direct mapped 快取記憶體(cache),該快取記憶體每個cache block 為8 bytes,且必須儲存17 bits 的位址做為tag。該快取記憶體的大小為何? A. 8 KByte B. 16 KByte D. 32 KByte C. 64 KByte

參考解答

  • 答案:C. 32 KByte

第10題

將八進位數值(625)8 換算為十六進位,下列何者正確? A. A01H B. 195H D. 619H C. 215H

參考解答

  • 答案:B. 195H

解析:先將八進位展開為十進位:(625)8 = 6×8² + 2×8¹ + 5×8⁰ = 384 + 16 + 5 = 405。再轉十六進位:405 ÷ 16 = 25 餘 5,25 ÷ 16 = 1 餘 9,1 ÷ 16 = 0 餘 1,由下往上讀得 195H。亦可利用 8 = 2³、16 = 2⁴,先將每位八進位數字寫成三位元:110 010 101,再由右往左每四位一組補零成 0001 1001 0101,即 1、9、5,同樣得到 195H。

第11題

程式執行的流程有時必須根據指令執行的結果而改變,在處理器管線(Pipelining)架構中,這種情形將會引發何種危障(Hazard)? A. 資料危障(Data Hazard) B. 結構危障(Structure Hazard) D. 控制危障(Control Hazard) C. 程式危障(Program Hazard)

參考解答

  • 答案:C. 控制危障(Control Hazard)

第12題

網路傳輸媒介中,下列何者最不受電磁波干擾? A. 雙絞線 B. 光纖 D. 同軸電纜 C. 無線傳輸

參考解答

  • 答案:B. 光纖

解析:光纖以光訊號在玻璃或塑膠纖維中傳遞,訊號被侷限於纖維內,不受外界電磁場干擾,亦不會向外輻射電磁波,因此抗電磁干擾(EMI)能力最佳,且保密性高、頻寬大、傳輸距離遠。雙絞線與同軸電纜皆以電訊號傳輸,本質上是導體,會受外部電磁場感應而產生雜訊;無線傳輸以電磁波在空氣中傳播,最容易受干擾、衰減與遮蔽影響。故選 B。

第13題

已知某二元樹為不同數字之最大堆積(Max-heap),下列敘述何者正確? A. 若以陣列(Array)來存放此二元樹,則此陣列中的元素必為遞減數列 B. 若以陣列來存放此二元樹,則此陣列中的元素必為遞增數列 D. 每一從樹根(Root)至樹葉(Leaf)的路徑(Path)上的元素必為遞減數列 C. 不會有上層(Level)任一元素比下層任一元素(不見得具有直屬關係)小的情形發生

參考解答

  • 答案:C. 每一從樹根(Root)至樹葉(Leaf)的路徑(Path)上的元素必為遞減數列

第14題

在程式執行中,為有效地利用記憶體空間,當需要記憶體空間來存放資料時,才向系統索取所需的記憶體空間,要達到此目的,下列何種資料結構設計最合適? A. Queue B. Stack D. Circular Array C. Linked List

參考解答

  • 答案:D. Linked List

第15題

假設有堆疊S1、S2 與佇列Q1、Q2、Q3,以下圖方式連結,且Q1 有三個資料A、B、C(A 在佇列前端),其餘堆疊與佇列皆為空。今有四個指令如下:●若Q1 非空,從Q1 刪除一個資料並push 到S1 中●若S1 非空,從S1 pop 出一個資料並加入到Q2 中●若Q2 非空,從Q2 刪除一個資料並push 到S2 中●若S2 非空,從S2 pop 出一個資料並加入到Q3 中我們可用任何順序執行這四個指令,直到所有資料皆存入Q3。下列敘述何者正確? A. 資料被加入Q3 的順序不可能是A、C、B B. 資料被加入Q3 的順序不可能是B、A、C D. 資料被加入Q3 的順序不可能是C、A、B C. 資料被加入Q3 的順序可以是A、B、C 的任意排列順序

參考解答

  • 答案:D. 資料被加入Q3 的順序可以是A、B、C 的任意排列順序

第16題

假設有一棵完滿二元樹(Full binary tree)含有n 個內部節點(Internal nodes),則該棵二元樹的總節點數是多少個? A. n+1 B. 2n-1 D. 2n+1 C. log(n),(log 以2 為底)

參考解答

  • 答案:C. 2n+1

第17題

傳統的電腦系統架構中,CPU 通常到那裡取得指令來執行? A. 程式計數(Program Counter)暫存器 B. 通用暫存器 D. 主記憶體 C. 輔助記憶體

參考解答

  • 答案:C. 主記憶體

第18題

若要將2 個各自由小到大排序好的數列(長度分別為5 和6)進行合併排序(Merge sort),使得合併後的數列也能由小到大排列,則合併過程最多需要進行幾次數字比較? A. 5 B. 6 D. 10 C. 11

參考解答

  • 答案:C. 10

第19題

下列由C 語言程式撰寫的函數sort 實作了何種排序法?void sort (int a[], int l, int h) {if (l >= h) return;int j, i, key;i=l; j=h; key=a[i];while (i < j) {while (i < j&&a[j] > key) j--;if (i < j) a[i++] = a[j];while (i < j&&a[i]< key) i++;if (i < j) a[j--] = a[i];}a[i] = key;if (l < i-1)sort (a, l, i-1);if (i+1 < h)sort (a, i+1, h);} A. 快速排序(Quick sort) B. 插入排序(Insertion sort) D. 選擇排序(Selection sort) C. 合併排序(Merge sort)

參考解答

  • 答案:A. 快速排序(Quick sort)

解析:該函數選取 a[l] 為基準(pivot,key),以 i、j 從兩端向中間掃描,將大於 key 者移到左、小於 key 者移到右,再將 key 放至正確位置,並遞迴處理左(l,i−1)與右(i+1,h)子陣列,符合快速排序(Quick sort)的分區(partition)與遞迴精神。其平均時間複雜度 O(n log n),最壞 O(n²)。其餘排序法不採此樞紐分割策略,故選 A。

第20題

若以插入排序(Insertion sort)對數列(7, 10, 2, 5, 4)進行排序,下列何者是正確步驟? A. (7, 10, 2, 5, 4)->(7, 10, 2, 5, 4)->(2, 7, 10, 5, 4)->(2, 5, 7, 10, 4)->(2, 4, 5, 7, 10) B. (7, 10, 2, 5, 4)->(2, 7, 10, 5, 4)->(2, 4, 7, 10, 5)->(2, 4, 5, 7, 10)->(2, 4, 5, 7, 10) D. (7, 10, 2, 5, 4)->(7, 10, 2, 4, 5)->(2, 4, 5, 7, 10) C. (7, 10, 2, 5, 4)->(7, 2, 5, 4, 10)->(2, 4, 5, 7, 10)

參考解答

  • 答案:A. (7, 10, 2, 5, 4)->(7, 10, 2, 5, 4)->(2, 7, 10, 5, 4)->(2, 5, 7, 10, 4)->(2, 4, 5, 7, 10)

解析:插入排序逐一把未排序元素插入已排序前綴。初始前綴 (7),10 不動得 (7,10,2,5,4);2 插入最前得 (2,7,10,5,4);5 插於 2 與 7 間得 (2,5,7,10,4);4 插於 2 與 5 間得 (2,4,5,7,10)。每步皆維持前綴有序,與選項 A 完全一致。B 跳步、C 與 D 步伐與插入邏輯不符,故選 A。

第21題

若宣告下列2 維整數陣列int a[3][3]={{1, 2},{3, 4, 5},{6}};則下列那個元素為0? A. a[0][1] B. a[1][0] D. a[1][2] C. a[2][1]

參考解答

  • 答案:D. a[2][1]

第22題

給定一個陣列arr ={45, 66, 78, 89, 91, 95, 120},且欲搜尋的目標鍵值是key = 95,則使用二元搜尋法 A. 89、95 B. 89、91 D. 78、95 C. 78、91

參考解答

  • 答案:A. 89、95

解析:二元搜尋先取中間索引 mid=(0+6)/2=3,比較 a[3]=89,因 95>89 故調高下界 low=4;再取 mid=(4+6)/2=5,比較 a[5]=95 命中。故比較順序為 89、95 兩次即找到。選項 B、C、D 所列 91、78 均未在此搜尋路徑出現,故選 A。

第23題

Java 程式經編譯後,會先產生什麼格式的檔案? A. Assembly code B. Byte code D. Machine code C. Virtual code

參考解答

  • 答案:B. Byte code

解析:Java 原始碼(.java)經編譯器(javac)編譯後,產生與平台無關的中介碼 Byte code(.class 檔),再由 Java 虛擬機(JVM)解譯或即時編譯執行。Assembly code 為組合語言、Machine code 為機器碼(直接由 CPU 執行),均非 Java 編譯產出;Virtual code 非標準術語。故選 B。

第24題

事先寫好的函式(function)經過編譯(compile)後,將目的檔(object file)集合起來存放於一個檔案供其他程式連結使用,這種檔案稱為: A. 系統呼叫(System Call) B. 虛擬碼(Pseudo code) D. 中斷服務常式(Interrupt Service Routine) C. 函式庫(Library)

參考解答

  • 答案:D. 函式庫(Library)

第25題

如下所示之C 程式,其輸出為何?#include<stdio.h>int data[] = {6,8, 4, 3, 11, 18, 17, 29, 25, 23, 27, 24, 22,48, 43, 55, 68, 63, 62, 69, 65, 72, 77,85, 88, 81, 99, 97, 92, 94, 91};int count[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };int main(void){int ii, nn = sizeof(data)/sizeof(data[0]);for (ii=0; ii < nn; ii++) {count[data[ii] / 10]++;}for (ii=0; ii < 10; ii+=2) {printf("%2d,", count[ii]);}return 0;} A. 4, 3, 6, 0, 2 B. 4, 6, 2, 5, 3 D. 3, 0, 1, 2, 5 C. 4, 3, 6, 0, 2, 1, 5, 2, 3, 5

參考解答

  • 答案:B. 4, 6, 2, 5, 3

解析:先統計 data 共 31 個元素,再以 data[ii]/10 的整數商為索引,累計各十位區間的元素個數:0 至 9 有 6、8、4、3 共 4 個;10 至 19 有 11、18、17 共 3 個;20 至 29 有 29、25、23、27、24、22 共 6 個;30 至 39 為 0 個;40 至 49 有 48、43 共 2 個;其後依序為 1、5、2、3、5 個。輸出迴圈每次 i 加 2,只印出索引 0、2、4、6、8 的內容,即 4、6、2、5、3,故選 B。選項 C 列出全部十個計數值,包含程式未印出的奇數索引,因此不符。

第26題

執行下列C 程式,並輸入「10 10 9」,下列何者為程式的輸出?#include <stdio.h>#include<iostream>int main() {int count =0, x=10, next;scanf("%d", &next);while (next == x){count++;scanf("%d", &next);}printf("%d", count);} A. 2 B. 3 D. 9 C. 10

參考解答

  • 答案:A. 2

解析:程式先令 count=0、x=10,接著以 scanf 讀入第一個整數 10;因為 next 等於 x,所以進入 while 迴圈:count 加 1 變成 1,再讀入第二個 10,仍等於 x,count 再加 1 變成 2,並讀入第三個值 9。此時 next 為 9,不等於 10,迴圈結束,printf 印出 count 的值 2,故選 A。scanf 每執行一次只讀一個數字,輸入序列中只有前兩個 10 會讓迴圈本體執行,第三個 9 僅被讀入便離開迴圈,因此不會再多加一次。

第27題

假設有一陣列A,以主行順序(Column major order)儲存資料,若A[5,1]位置為1234,A[7,5]位置為1260,則A[6,4]位置為何? A. 1248 B. 1249 D. 1252 C. 1253

參考解答

  • 答案:D. 1253

第28題

下列那個C 語言的迴圈指令執行的次數,與其他不同? A. for(i=0;i<10;i++)... B. for(i=0;i<10;++i)... D. for(i=0;i++<10;)... C. for(i=0;++i<10;)...

參考解答

  • 答案:D. for(i=0;++i<10;)...

解析:A、B 皆執行 10 次(i=0~9)。C:++i<10 先遞增再比較,i=1~9 共 9 次。D:i++<10 先比較再遞增,i=0~10 共 11 次。故 D 執行次數與其他不同。

第29題

給定以下類別定義:class A{private:static int cnt;class B{private:public:};B* p[5];public:A() {cnt=0;}int f(){if (cnt<5)p[cnt++]=new B;return cnt;}};int A::cnt=-100;若在main()中執行以下指令:Avar;var.f();var.f();cout << var.f();則將產生的輸出為何? A. 1 B. 3 D. 5 C. 7

參考解答

  • 答案:B. 3

解析:類別 A 的建構函式內容為 cnt=0,因此建立物件 var 時,雖然靜態成員 cnt 原本初始化為 −100,仍被重設為 0。接著每次呼叫 f(),因 cnt<5 成立,便以 new 建立一個 B 物件存入 p[cnt],再將 cnt 遞增後回傳。第一次呼叫回傳 1、第二次回傳 2、第三次回傳 3,cout 印出最後一次的結果 3,故選 B。若忽略建構函式對 cnt 的重設,會誤以為從 −100 起算而得到負值。

第30題

以下C 語言中的結構變數定義:struct A{union{struct{unsigned int i; } B;struct{unsigned short s1; unsigned short s2;} C;struct{unsigned char c1; unsigned char c2; unsigned char c3; unsigned char c4;} D;};};struct A a;a.B.i = 0x01020304;下列敘述何者正確? A. 執行printf("%hx", a.C.s1)將會輸出102 B. 執行printf("%hx", a.C.s2)將會輸出304 D. 執行printf("%d", a.D.c1)將會輸出1 C. 執行printf("%d", a.D.c4)將會輸出1

參考解答

  • 答案:D. 執行printf("%d", a.D.c4)將會輸出1

第31題

關於C++ 類別的建構函式(constructor),下列敘述何者錯誤? A. 一個類別可以有多個多載(overloaded)的建構函式 B. 建構函式可以設定預設值(default value) D. 建構函式可以回傳(return)一個常數值(constant) C. 一個類別可以不宣告任何建構函式

參考解答

  • 答案:C. 建構函式可以回傳(return)一個常數值(constant)

第32題

檢查判斷網路通不通,下列何者是最常用的指令? A. mail B. cp D. pine C. ping

參考解答

  • 答案:D. ping

第33題

有關OSI 模型網路七層架構,下列敘述何者錯誤? A. TCP 與UDP 之運作屬於傳輸層(Transport Layer) B. 網路層(Network Layer)的功能包含對於網路封包的切割(Fragmentation)與組裝(Defragmentation) D. 資料連結層(Data Link Layer)提供流量控制(Flow Control)的能力 C. 網路層提供了網路路由(Routing)的功能

參考解答

  • 答案:C. 資料連結層(Data Link Layer)提供流量控制(Flow Control)的能力

第34題

下列何者不是TCP 協定的特性? A. 壅塞控制(Congestion Control) B. 向發送端回報錯誤訊息 D. 流量控制(Flow Control) C. 資料遺失重送

參考解答

  • 答案:B. 向發送端回報錯誤訊息

解析:TCP 提供可靠傳輸,靠序號、確認(ACK)與逾時重送達成資料遺失重送(C),並具備壅塞控制(A,如慢啟動、壅塞避免)與流量控制(D,滑動視窗)。TCP 本身不負責向發送端回報網路錯誤訊息,錯誤通告(如目的地不可達)是由 ICMP 協定擔當,因此 B 不是 TCP 的特性。

第35題

有關傳輸層安全性協定(Transport Layer Security, TLS),不提供下列那一種保護? A. 匿名性 B. 保密性 D. 完整性 C. 身分認證

參考解答

  • 答案:A. 匿名性

解析:TLS 主要提供三項保護:保密性(B),以對稱式加密保護資料內容;完整性(D),以 MAC 或 AEAD 偵測竄改;身分認證(C),透過憑證驗證伺服器(必要時也驗證用戶端)的身分。TLS 並不隱藏通訊雙方的身分,也不隱藏來源 IP,因此不提供匿名性(A)。故選 A。

第36題

關於一次性密碼本(One-Time Pad, OTP)加密演算法,下列何者正確? A. 金鑰需至少與明文一樣長 B. 金鑰可以重複使用 D. 可使用百科全書作為密碼本(金鑰) C. 加密與解密的金鑰不同

參考解答

  • 答案:A. 金鑰需至少與明文一樣長

解析:一次性密碼本屬理論上不可破的完美保密系統,條件是:金鑰必須真正隨機、長度至少等於明文(A)、且每把金鑰只用一次。B 錯誤,重複使用金鑰會讓兩段密文產生關聯而遭破解;C 錯誤,OTP 是對稱式加密,加解密使用同一把金鑰;D 錯誤,百科全書內容不具隨機性且可預測,不能當作密碼本。

第37題

揭露一個組織(無論是私有的還是公共的)內部非法的、不誠實的或者不正當行為的人,稱為: A. 安全管理技術 B. 吹哨者保護條款 D. 網路主權 C. 吹哨者

參考解答

  • 答案:D. 吹哨者

第38題

網路封包在傳送的過程中,由較高層往較低層傳送時,會加上標頭(Header),這動作稱為: A. 多工 B. 解多工 D. 封裝 C. 解封裝

參考解答

  • 答案:C. 封裝

第39題

下列C 程式以指標處理陣列,執行後會產生何種輸出?int a[] = {1, 2, 3, 4}, n = sizeof(a)/sizeof(int), *p = a, *q = &a[n-1], temp;while (p < q){temp = *p;*p++ = *q;*q-- = temp;}printf("%d%d%d%d", a[0], a[1], a[2], a[3]); A. 1234 B. 2341 D. 3412 C. 4321

參考解答

  • 答案:D. 4321

第40題

下列何者為合法的Media Access Control(MAC)位址? A. 01:23:45:67:89:AB:CD B. 67:89:AB:CD:EF:GH D. 01:23:45:67:89:AB C. 01:23:45:67:89

參考解答

  • 答案:C. 01:23:45:67:89:AB