C语言题 执行下列语句后,a的值为

执行下列语句后,a的值为:
int a;
#define M(x,y) (x*y)
a=M(1+2,3);
A.9 B.7
C.5 D.以上均不是
答案是B吗?
为什么呢.

答案就是B
#define M(x,y) (X*y)
M(1+2,3)
所以 X=1+2 Y=3
先把式子展开在计算
就是1+2*3=7
然后把7赋值给a
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-13
直接替换就行了.a=(1+2*3)=7
第2个回答  2008-03-14
#define 的宏定义是只是简单的替换,而不是你人想象的加个括号然后运算的.
所以你直接代替的就是a=1+2*3
就是B答案拉!!!
最好多看看书!!

参考资料:谭浩强《C语言程序设计》清华大学出版社

第3个回答  2008-03-13
受教,谢谢
第4个回答  2008-03-13
9
第5个回答  2008-03-13
7
相似回答