第 1 頁,共 6 頁 准考證號碼:
國立臺中教育大學 105 學年度學士班日間部轉學招生考試
計算機概論試題
適用學系:資訊工程學系二、三年級 一、選擇題(40%,每題 2%) 1. 在物件導向程式設計中,一個抽象類別(Abstract Class)為 A. 一個沒有方法(method)的類別 B. 一個不能被繼承(inherit)的類別 C. 一個不能被實體化(instantiated)的類別 D. 一個僅擁有被複寫方法(overridden method)的類別 E. 一個僅擁有抽象方法(abstract method)的類別 2. 在 C 語言中,一個宣告出來的陣列的元素總數若為 N,則 A. 最大陣列索引值與 N 無關 B. 合法陣列索引值最大為 N + 1 C. 合法陣列索引值最大為 N – 1 D. 合法陣列索引值最大為 N E. 最大合法的陣列索引值隨程式執行而變動 3. 以下何者並非物件導向程式的特性? A. Encapsulation B. Agile C. Polymorphism D. Inheritance E.Abstraction 4. 下列 C++程式碼片段的輸出為? int result = 18;result = result - result * 3 / 5; cout << result A. 7.2 B. 10.8 C. 18 D. 0 E. 8
第 2 頁,共 6 頁 5. C++語言中,可以用下列哪個指令來進行動態配置記憶體? A. cin B. new C. free D. delete E. create 6. 在程式語言中,一個函數在函數內部呼叫本身的動作,稱之為 A. 標準呼叫 B. 迴圈呼叫 C. 遞迴式呼叫 D. 隱藏呼叫 E. 以上皆非 7. 在物件導向程式設計中,在一個類別中,兩個或是兩個以上的方法有相同 的名字,我們稱之為 A. overloading B. overwriting C. overriding D. overlooking E. overtaking 8. 以下何者為 Java 語言所不支援的? A. class
B. automatic garbage collection
C. support for object-oriented language
D. design pattern implementation
E. 以上皆支援 9. 在 Java 中執行下列算式,可以得到結果為何 10.0 * (8 / 5 ) + 14.0 A. 30.0 B. 24.0 C. 14.0 D. 不正確的敘述,除號(/)應為% E. 不正確的敘述,無法算出結果 10. 若要確保迴圈的主體(body)至少會被執行一次,該用下列哪種寫法才對?
A. do body while (control)
B. while (control) body;
C. for (initialize, test, update) body; D. loop (body) at least one
第 3 頁,共 6 頁
11. 在 C++中,我們可以使用哪個運算子進行 structure 或是 class 內部成員的
存取?
A. The ampersand(&) operator
B. Equal(=) operator
C. Comma(,) operator
D. The dot(.) operator
E. 以上皆可 12. 在 C++中,存取陣列用的索引值必須是 A. 正整數 B. 浮點數 C. 小於等於陣列的大小 D. 非負整數 E. 以上皆錯
13. 在 C++中,以下何者為正確宣告類別 F(class F)為衍生類別 C (derived class
C)之公開基礎類別(public base class)之寫法 A. public base class F: class C {/*…*/}; B. class C: public class F {/*…*/};
C. class F: public C {/*…*/}; D. class C: public F {/*…*/}; E. 以上皆非 14. 在 C++中,若有一個類別名稱為 Deadpool,則其解構子(destructor)應命名 為? A. ~Deadpool B. destructor C. Deadpool D. 任何程式撰寫原想要的名字,除了該類別名稱外 E. 以上皆非 15. C 語言中,下列何者可以用來建立出一個 C-string(字串),其內容值為 “Avenger”?
A. char stringVar[10] = {‘A’, ‘v’, ‘e’, ‘n’, ‘g’, ‘e’, ‘r’};
B. char stringVar[10] = “Avenger”;
C. char stringVar[10] = {‘A’, ‘v’, ‘e’, ‘n’, ‘g’, ‘e’, ‘r’, ‘\0’}; D. char stringVar[8] = “Avenger”;
第 4 頁,共 6 頁
16. 在 C 語言中,以下何者可以用來避免標頭檔的重複引用?
A. #include “header.h”
B. #define HEADER_H
#ifnder HEADER_H
//declarations for header.h go here #endif
C. #ifndef HEADER_H
#define HEADER_H
//declarations for header.h go here #endif
D. #ifndef HEADER_H
//declarations for header.h go here #endif E. 以上皆可 17.針對以下 C++程式,執行完後輸出結果是哪一個? A. 10 B. 0 C. -1 D. 可以編譯,無法執行 E. 無法編譯 #include <iostream> using namespace std; class Animal{ private: int position; public:
Animal(int pos) { position = pos; } virtual void run() {}
void location() { cout << position << endl; } };
class Bear : public Animal{ public:
Bear(int pos):Animal(pos) { } };
Int main(int argc, char *argv[]){ Bear *pBear = new Bear(10); pBear->run();
pBear->location(); delete pBear; }
第 5 頁,共 6 頁 18.針對以下 C++程式,執行完後輸出結果是哪一個? A. 10 B. 0 C. -1 D. 可以編譯,無法執行 E. 無法編譯 19.以下 C++程式碼的輸出為何? A. 43 43 B. 78 78 C. 43 78 D. 78 43 E. 以上皆非 #include <iostream> using namespace std; class Animal{ private: int position; public:
Animal(int pos) { position = pos; } virtual void run() {}
void location() { cout << position << endl; } };
class Bear : public Animal{ public:
Bear(int pos):Animal(pos) { } void run(){ position *= 2; } };
Int main(int argc, char *argv[]){ Bear *pBear = new Bear(10); pBear->run(); pBear->location(); delete pBear; } int *p; int *q; p = new int; *p = 43; q = p; p = new int; *p = 78; q = new int; *q = *p; cout << *p << " " << *q << endl;
第 6 頁,共 6 頁 20. 一個類別成員若要分享給該類別的所有物件,我們稱之為 A. A const member B. A reference member C. A static member D. A value member E. A function member 二、簡答題(20%,每題 5%) 1.以下為一部份的 C 程式,請問當執行時,標號 1~5 各會列印出什麼結果?
char ch[]={‘e’, ‘x’, ‘a’, ‘m’}; char *p = &ch[0]; printf("%c\n", *(p+3)); ---(1) printf("%c\n", *p++); ---(2) printf(“%c\n”, *p); ---(3) printf("%c\n", *++p); ---(4) printf(“%c\n”, *p); ---(5)
2.請問在 C 程式語言中,傳遞參考(call by reference)和傳遞值(call by value) 的差異為何?
3.請以電晶體邏輯圖為劃圖單位,劃出 AND 邏輯閘的電路?
4.請拼出下列縮寫全名:WAN, CPU, IP, SSL, MIMD?
三、問答題(40%,每題 10%) 1.請說明以存取 MAR, MDR 暫存器為基本操作步驟時,資料寫入記憶體的 過程。 2.請說明 Von Neumann 架構下,電腦的特性。 3.請寫出 Quick Sort 的虛擬碼。 4.請寫出 Compiler 編譯高階語言成機器語言的 4 個階段(過程) 。