計算機概論 - 普考

Table of Contents

※ 引述《tsamarfi (一 擊 入 魂)》之銘言:
: 請各位不吝指教, 謝謝.
: 1. 99普考 第26題
: #include<stdio.h>
: #define MAX(a, b) a>b?a:b
: int main()
: {
: int m=10, n=10;
: printf("%d", MAX(++n, m));
: return 0;
: }
: 選項:(A)10 (B)11 (C)12 (D)13
: 答案:(C)
: 想法:++n後n=11, n>m, 應該判對判斷為11不是嗎?

MAX(++n, m) 呼叫++a>b?++a:b 因此++a兩次

: 2. 99鐵路 第一題
: 假設某程式運行在一有完美快取(cache)(不會發生任何快取錯失cache miss)的系統
: 上時, 其CPI(每指令所需時周期數cycles per instruction)為2. 在實際系統上,
: 指令快取(instruction cache)有1%的錯失率(miss rate)且資料快取(data rate)有
: 5%的錯失率. 若此程式有40%的指令是載入/儲存(load/store)指令, 每次錯失(miss)
: 發生時需要等待100個時脈週期(cycles), 則實際系統上程式執行的CPI為何?
: 選項:(A)3 (B)4 (C)5 (D)6
: 答案:(C)
: 想法:無

CPI為 2 + ( 0.01 + 0.05*0.4 ) * 100
完美 指令miss 資料miss miss須多等

: 3. 98普考 第17題
: 對於一個8Kx4的隨機存取記憶體(random-access memory, RAM),若採二維解碼結構
: (2-dimentional decoding structure),則所需的最少解碼電路為:
: (A)一個五輸入(input)線解碼器(line decoder),一個八輸入線解碼器
: (B)一個六輸入線解碼器,一個七輸入線解碼器
: (C)一個六輸入線解碼器,一個九輸入線解碼器
: (D)一個七輸入線解碼器,一個八輸入線解碼器
: 答案:(B)
: 想法:只知道加起來要13, 所以排除C和D, 僅此而已.

"最少"的解碼電路 2^5 + 2^8 與 2^6 + 2^7 後者需要較少成本


--

All Comments

Doris avatarDoris2013-06-30
感謝!另外請問為什麼後者的成本較少?
Victoria avatarVictoria2013-07-02
32+256=288 < 64+128=192
Susan avatarSusan2013-07-05
>
Andrew avatarAndrew2013-07-08
< 這是筆誤
Margaret avatarMargaret2013-07-12
豁然開朗, 感謝!
Irma avatarIrma2013-07-15
可以跟我說一下為什麼第一題是兩次嗎? 3Q
Skylar Davis avatarSkylar Davis2013-07-16
簡單說#define是前置處理指令 作用是定義一個tag之類
Yuri avatarYuri2013-07-19
的東西在最前面 之後程式只要一碰到該tag就自動取代
成用#define定義的內容
Joe avatarJoe2013-07-23
例如你前面寫#define x 100 則之後只要看到x就都是100
直接把x取代成100
Jake avatarJake2013-07-23
然後這題,基本上就是直接拿++n放到a的位置做取代
有幾個a你就取代幾次,因為是兩次所以加兩次
原本是10後來就變成12
Irma avatarIrma2013-07-26
基本上就是考#define跟副程式有什麼差別... 以上
Callum avatarCallum2013-07-27
如果這樣還不懂的話...你就想像成...
Catherine avatarCatherine2013-07-29
當程式碰到MAX()的時候會去找#define內容
James avatarJames2013-08-02
然後程式中的MAX()會變成 a>b?a:b 其中a都是++n
就這樣
Harry avatarHarry2013-08-04
萬分感謝 3q