第 1 頁,共 4 頁 准考證號碼:
國立臺中教育大學 106 學年度學士班日間部轉學招生考試
計算機概論試題
適用學系:資訊工程學系二、三年級 一、單選題(20%,每一題 2%) 1.假如有 500 個符號,利用 0/1 的 bit 表示方式,試問需要幾個 bit 的組合才可 完全表示這些符號? A. 6 B. 7 C. 8 D. 9 E. 10 2.下列何者不是物件導向程式之特性? A. Inheritance B. Polymorphism C. Automation D. Abstraction E. Encapsulation 3.以下何者不是 C++函式庫內函式的名稱? A. strcpy B. getforkdir C.clock D.random E.scanf 4.以下何者不是國際化標準組織(ISO)所訂定之 OSI 網路模型七層中之其中一層? A. Physical LayerB. Data Link Layer C. Network Layer D. Transport Layer E. Sensor Layer
第 2 頁,共 4 頁 5.下列何種技術可以用來控制 critical region 的存取? A. Spooling B. Time sharing C. Semaphore D. Booting E. Pooling 6. 60(十進位)轉成 2 進位的 2 的補數,其結果為下列何者? A. 000100 B. 111100 C. 000011 D. 001111 E. 111111 7. 有關C語言中void function 的描述,下列何者為真? A. 傳入參數的型態必需為布林值 B. 不需要傳入參數 C. 必需回傳一個值 D. 是一個虛擬的 function,function 本身不需要實作程式碼 E. 以上皆非 8. 下列何者的存取速度最快? A. RAM B. ROM C. Cache D. Register E. Disk
9.有關內容定址記憶體(Content Addressable Memory, CAM)的敘述,下列何者 有誤? A. 可稱為關聯式記憶體 B. 利用 CAM 的特殊硬體架構設計,使欲搜尋的關鍵字可以同時與存在 CAM 記憶體內的資料進行比對,並輸出與輸入關鍵字符合的資料位址 C. 可以讓大量且隨機存放的資料可以有效地加快資料的搜尋速度 D. 在 CAM 內的每筆儲存資料都配有一組資料比較器,用來比較儲存資料與輸 入資料是否相符 E. 以上皆非
第 3 頁,共 4 頁 10. 以下哪一個時間複雜度最高? A. O(n2) B. O(n!) C. (nlog n) D. O(log n) E. O(1) 二、程式題(40%) 1. 類似下列的程式碼常出現在 C 語言的標頭檔中,請解釋#字號開頭各行的意 思,並說明此段程式碼主要的目的為何。(10%) #ifndef HEADER_H #define HEADER_H
//declarations for header.h go here #endif 2. 小明寫了一個從一個檔案中讀取第一行字元資料,並輸出到螢幕上,直到該行 結束的 C 語言程式,但因為某些原因,他的程式部分遺失了,下面是他寫的 程式,請你協助他將空白的地方補齊。(即填空出標號(1)~(5)號的部分) (10%,每一填空 2%) 3. 請寫出下列程式片段中,printf 函式的輸出結果。假設程式片段中的變數 i,j,k 皆為整數(int)。( 10%,每一小題 2%)
(a) int i=3, j=2, k=9;
printf(“%d,”, i<j || ++j <k); printf(“%d,%d,%d”, i, j, k);
(b) int i=1, j=7, k=7;
printf(“%d,”, i-4 && j-- < k); printf(“%d,%d,%d”, i, j, k); (c) int i=5, j=6, k=9;
printf(“%d,”, (i=j) || (j=k)); printf(“%d,%d,%d”, i, j, k);
(d) int i=3, j=1, k=8;
printf(“%d,”, ++i || ++j && ++k); printf(“%d,%d,%d”, i, j, k); (e) int i=1, j=7, k=3;
printf(“%d,”, (--i) || (j-=k)); printf(“%d,%d,%d”, i, j, k);
#include <___(1)____>
int main(int argc, char argv[][]) { _(2)__ *myfile; char ch; myfile = fopen(“input.txt”, ”r”); __(3)___ ( _(4)_ != (ch = fgetc(__(5)__))) printf(“%c”, ch); }
第 4 頁,共 4 頁 #include <iostream> using namespace std; class Pokemon{ protected: int combat_power; public: Pokemon(int cp) { combat_power = cp; }
void train() { combat_power = combat_power + 20; }
virtual void jump() { cout << "Pokemon can jump " << combat_power << " meters." << endl; } };
class Magikarp : public Pokemon{ public:
Magikarp(int cp):Pokemon(cp) { } void train(){ combat_power *= 2; }
void jump() {cout << "Magikarp can jump " << combat_power << " meters." << endl; } };
class Gyarados : public Pokemon{ public:
Gyarados(int cp):Pokemon(cp) {} void train() { combat_power *= 4; }
void jump() { cout << "Gyarados cruising height is " << combat_power << " meters." << endl; } };
int main(int argc, char *argv[]){
Pokemon *pPokemon = new Pokemon(10); Pokemon *pMagikarp = new Magikarp(10); Magikarp *pMagikarp2 = new Magikarp(10); Pokemon *pGyarados = new Gyarados(10); Gyarados *pGyarados2 = new Gyarados(10); pPokemon->train(); pPokemon->jump(); pMagikarp->train(); pMagikarp->jump(); pMagikarp2->train(); pMagikarp2->jump(); pGyarados->train(); pGyarados->jump(); pGyarados2->train(); pGyarados2->jump();
delete pPokemon, pMagikarp, pMagikarp2, pGyarados, pGyarados2; }
4. 下列程式執行後會產生五行的輸出,請寫出這五行的輸出結果。(10%)
三、問答題(40%)
1. 請列出作業系統的基本功能為何,請描述之。(10%)
2. 請將下列中序(Infix)運算式 A%B+C*D 分別轉換為前序(prefix)運算式以 及後序(postfix)運算式。若 A=1, B=2, C=3, D=4,則此運算式值為何?(10%)
3. ARP(Address Resolution Protocol)協定主要功用為何?(10%)
4. 請描述網路協定中 CSMA/CD (Carrier Sense Multiple Access/ Collision Detection)的運作流程。(10%)