问题 单项选择题

以下程序的输出结果是______。
#define M(x,y,z) x*y+z
main()
int a=1,b=2,c=3;
printf("%d\n",M(a+b,b+c,c+a));

A) 19B) 17C) 15D) 12

答案

参考答案:D

解析: C语言的宏定义包括不带参数的宏定义与带参数的宏定义。本题为带参数的宏定义,其形式为:
#define宏名(形参表) 字符串
本题的M(a+,b+c,c+a)被字符串a+b*b+c+c+a代替。

解答题
单项选择题