设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喔
本回答被网友采纳