设C程序如下: #define ABC(x) x*x #inc

设C程序如下:
#define ABC(x) x*x
#include"stdio.h"
main()
{int a=3,b;
b=ABC(a+1);
printf("b=%d", b); }
上述程序运行输出的结果是___D___ 。
A、b=4 B、b=a+1
C、b=16 D、b=7

我想知道为什么?麻烦帮我看看

那是因为宏定义#define只是单纯的字符串替换,所以当你算的时候就把字符串替换回去就是了,b=ABC(a+1),把x用a+1来替换那就变成:b=a+1*a+1,所以结果就是b=7了追问

但是答案为什么是D

追答

我上面不会给你解释了吗,把字符串替换回去的结果就是

b=a+1*a+1,这个把a=3代进去就是b=3+1*3+1=7

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-14
你定义了一个宏,这个宏的结果就是输入参数的平方,现在参数是3+1,所以输出结果应该是16,选C。追问

答案是D喔

本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网