計算機概論 程式輸出問題 - 考試

Table of Contents

考慮以下 C 程式
int fun (int *x) {
*x += 4;
return 4 * (*x) –2;
}

void main() {
int x = 20, y = 30, w,z;
w = fun(&x) + (x/2);
z = fun(&y) + (y/2); printf(“%d,%d”, w,z);
}
程式執行後,w, z 的值為何?
a.48與151 b.106與151 c.104與133 d.48與133
答案為b
想請問各位高手他是怎麼運算的啊?

--

All Comments

Hedwig avatarHedwig2014-07-16
w=4*24-2+24/2=106
z=4*34-2+34/2=151
Belly avatarBelly2014-07-17
這題出題老師其實還蠻溫柔的XD如果是我一定把a或c挑一個
Zenobia avatarZenobia2014-07-21
改106XD
Irma avatarIrma2014-07-24
x=20,呼叫後x變24。w=94+24/2
Skylar Davis avatarSkylar Davis2014-07-28
不懂原理的話GOOGLE CALL BY VALUE,CALL BY ADRESS