電子工程 111 年計算機概要考古題(共 40 題) 資料來源:考選部歷屆試題|法律人 LawPlayer 整理 https://lawplayer.com/exam/electronic-engineering/111-%E8%A8%88%E7%AE%97%E6%A9%9F%E6%A6%82%E8%A6%81 第 1 題 透過下列那一種機制,可讓記憶體和硬碟之間的大量資料轉移的工作,不需要依賴中央處理器去逐筆處理? (A) I/O 映射I/O(I/O-mapped I/O) (B) 記憶體映射I/O(memory-mapped I/O) (C) 直接記憶體存取(direct memory access) (D) 快取記憶體(cache) 正解:C 第 2 題 某一處理器的指令運算碼(operation code)長度為7 個位元,該運算碼最多可解碼出幾種不同的指令? (A) 7 (B) 28 (C) 64 (D) 128 正解:D 第 3 題 下列技術,何者可以協助電腦系統實現虛擬記憶體? (A) 管線(Pipeline) (B) 分頁(Paging) (C) 推測執行(Speculative execution) (D) 快取(Caching) 正解:B 第 4 題 將十進制含有小數點的數字0.625 用二進制表示,答案為: (A) 0.10100 (B) 0.11001 (C) 0.11010 (D) 0.11011 正解:A 第 5 題 將三進位數值(2012)3 轉換為九進位數值表示,下列何者正確? (A) (65)9 (B) (67)9 (C) (52)9 (D) (81)9 正解:A 第 6 題 若要用同樣數量的位元來描述100 種不同狀態中的任一狀態,則至少要用多少個位元才足夠? (A) 5 (B) 6 (C) 7 (D) 8 正解:C 第 7 題 下列那一個布林運算式與(F = A xor B)完全等效? (A) F =((not A)or B)and(A or(not B)) (B) F = ((not A)and B)or(A and(not B)) (C) F =(A and B)or ((not A)and(not B)) (D) F =(A or B)and((not A)and(not B)) 正解:B 第 8 題 對10110110 按位元進行NOT 的運算,結果為下列何者? (A) 00110110 (B) 00110111 (C) 01001001 (D) 01101101 正解:C 第 9 題 有關作業系統中的Critical section problem,主要是在討論: (A) CPU job scheduling (B) Process synchronization (C) Deadlock prevention (D) Memory management 正解:B 第 10 題 當一個程序(Process)得到CPU 控制權後,可以被更高優先權的程序暫時暫停,是下列那一種作業系統的排程策略? (A) 先到先做排程(FCFS) (B) 不可搶先排程(Non-Preemptive Scheduling) (C) 可搶先排程(Preemptive Scheduling) (D) 最短工作先做排程(SJF) 正解:C 第 11 題 某處理器為具有5 個stages 的管線式處理器,各管線階級(pipeline stage)分別為instruction fetch (IF), instruction decode (ID),execution (EX),memory (MEM), write back (WB)。各stage 所需的運算時間分別如下:IF: 2.5 nsID: 1.0 nsEX: 1.5 nsMEM: 4 nsWB: 3.0 ns則該處理器可執行的最快時脈頻率為何? (A) 1 GHz (B) 0.5 GHz (C) 0.25 GHz (D) 0.10 GHz 正解:C 第 12 題 一般而言,增加管線階級(Pipeline stages)數,可以造成下列何種結果? (A) 處理器時脈頻率的提高 (B) 記憶體容量的增加 (C) 危障(Hazard)發生機會的減少 (D) 效能的降低 正解:A 第 13 題 在UNIX 系統中,fork()這個系統呼叫的作用為何? (A) 產生子程序(Child process) (B) 開啟檔案(File) (C) 傳送資料給作業系統 (D) 接收作業系統所傳遞之資料 正解:A 第 14 題 執行下列C 程式後,產生的輸出為何?#includemain(){int a[] = {3, 0};int b[] = {1, 2, 3, 10};printf("%d", b[1]/a[1]);} (A) 0.5 (B) 0.333 (C) 編譯時出現錯誤 (D) 執行時出現錯誤 正解:D 第 15 題 對一個堆疊(Stack)可以執行推入(Push)、彈出(Pop)和清空(Empty)等基本運算。現在接連對一個空堆疊連續執行推入A、推入B、清空、推入C、推入D、推入E、彈出,最後執行推入F。在執行以上運算後,堆疊中共存在多少元素? (A) 2 (B) 3 (C) 4 (D) 5 正解:B 第 16 題 在一個圖(Graph)中進行深度優先搜尋(Depth-first Search),應使用下列那種資料結構設計,可使得搜尋的過程最符合深度優先的順序? (A) 佇列(Queue) (B) 堆積(Heap) (C) 堆疊(Stack) (D) 雜湊表(Hash Table) 正解:C 第 17 題 下列何者是平衡樹(Balanced Tree)? (A) AVL tree (B) Binary Search Tree (C) Huffman Tree (D) Spanning Tree 正解:A 第 18 題 ( A × B + C ) + D × E 之前序式表示法為何? (A) + ×+ AB × CDE (B) ×++ × ABCDE (C) ×+ × AB + CDE (D) ++ × ABC × DE 正解:D 第 19 題 Dijkstra 演算法是一很有名的找出最短路徑演算法,根據其方法特性,屬於下列何類演算法? (A) Dynamic Programming Algorithm (B) Linear Programming Algorithm (C) Genetic Algorithm (D) Deep Learning Algorithm 正解:A 第 20 題 從圖中的節點a 開始進行廣度優先搜尋(Breadth first search,簡稱BFS),產生的廣度優先擴張樹(BFS spanning tree)可能為下列何者? 第 21 題 將下列六個整數依下列步驟由小到大排序的演算法為何?原始資料9 8 6 10 9 3第一次比序並交換位置後8 6 9 9 3 10第二次比序並交換位置後6 8 9 3 9 10第三次比序並交換位置後6 8 3 9 9 10第四次比序並交換位置後6 3 8 9 9 10第五次比序並交換位置後3 6 8 9 9 10 (A) 合併排序(merge sort) (B) 快速排序(quick sort) (C) 選擇排序(selection sort) (D) 氣泡排序(bubble sort) 正解:D 第 22 題 搜尋未排序的串列,應使用那種搜尋法? (A) 二元搜尋法 (B) 插入搜尋法 (C) 循序搜尋法 (D) 氣泡搜尋法 正解:C 第 23 題 假設要撰寫一個C 程式來處理學生資料,而每一個學生有兩類資料,第一類為其姓名、型態為字串,第二類為其班級排名、型態為整數,則應該使用C 語言的何種型態來表示每一筆學生資料最合適? (A) struct (B) union (C) enum (D) double 正解:A 第 24 題 若是一個高階程式語言支援強型態(strong typing),有關其程式特性的敘述,下列何者錯誤? (A) 一個變數會固定對應到一種型態 (B) 一個運算式通常會固定對應到一種型態 (C) 編譯器會檢查型態的使用是否一致 (D) 比起弱型態的程式執行時間通常較長 正解:D 第 25 題 如下所示之C 程式,其輸出為下列何者?#includeint func(int a, int b){int p;if (b == 0) return 1;p = func (a, b / 2);p *= p;return (b % 2) ? a * p : p;}int main(int argc, char *argv){printf("%d\n", func(2, 11));return 0;} (A) 211 (B) (C) 22 (D) 121 正解:B 第 26 題 執行下列C 程式後,產生的輸出為何?#includeint main(){int i;for(i= 0; i < 3; i++){switch(i){case 0: break;case 1: printf("one ");case 2: printf("two ");case 3: printf("three ");}printf("four ");}return 0;} (A) four one four two four (B) four one two three four two three four (C) one two three four two three four three four (D) four one two three four two three four three four 正解:B 第 27 題 對下列之C 函式:int f(char *s, char *t){char *p1,*p2;for(p1 = s; *p1; p1++){for (p2 = t; *p2; p2++)if (*p1 == *p2) break;if (*p2 == '\0')break;}return p1-s;}若執行此函式呼叫f("abcd", "babc"), 所得到的回傳值為何? (A) 0 (B) 1 (C) 2 (D) 3 正解:D 第 28 題 下列C 程式的執行結果為何?int fn(char s[]){int i=0, num=0;while (s[i])if (str[i++]=='e')num++;return num;}int main(){char c[]="To be or not to be, that's the question";printf("%d", fn(c));return 0;} (A) 1 (B) 2 (C) 3 (D) 4 正解:D 第 29 題 執行下列C 程式後,產生的輸出為何?#include int f (int *a) {int i, t;t = *a;for( i=1; i