[考题] 计算机概论 程式输出问题

楼主: jolinboyfrie (宇)   2014-07-16 16:11:24
考虑以下 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
想请问各位高手他是怎么运算的啊?
作者: godpam (波波)   2014-07-16 16:22:00
w=4*24-2+24/2=106z=4*34-2+34/2=151
作者: fatty3321   2014-07-16 16:24:00
这题出题老师其实还蛮温柔的XD如果是我一定把a或c挑一个改106XD
作者: j16598231 (荥䴖)   2014-07-16 16:26:00
x=20,呼叫后x变24。w=94+24/2
作者: Kingofjungle (焱焱焱焱)   2014-07-16 16:32:00
不懂原理的话GOOGLE CALL BY VALUE,CALL BY ADRESS

Links booklink

Contact Us: admin [ a t ] ucptt.com