道可道剧情:汇编预处理问题,程序解答题

来源:百度文库 编辑:高考问答 时间:2024/05/06 07:23:23
#define ADD(x) x+x
main()
{int m=1,n=2,k=3;
int sum=ADD(m+n)*k;
printf("sum=%d",sum);
}
上面程序的运行结果是_;为什么?
A.sum=9 B.sum=10 C.sum=12 D.sum=18

选B!
代入:int sum=ADD(m+n)*k=m+n+m+n*k=1+2+1+2*3=10
注意区分:#define ADD(x) (x+x)
#define 是宏定义语句,它不是C语句,不分配内存空间,不检查语法错误,只是一个完全的替代
为了确认,我在C里帮你编译了一下,确实是我这样说的