选择题
有以下程序:
#include <stdio.h>
#define MUL1(x,y) x*y
#define MUL2(x,y) (x)*(y)
#define MUL3(x,y) (x*y)
main()
{ int m=2,n=3;
printf('%d,%d,%d\n',MUL1(m,m+n)*2,MUL2(m,m+n)*2,MUL3(m,m+n)*2);
}
程序运行后的输出结果是______。
【正确答案】
C
【答案解析】[考点] 预编译处理、动态分配、结构体、位运算和文件 本题考查宏定义和宏展开,第一个带参数的宏MUL1(m,m+n)*2展开为m*m+n*2。第二个带参数的宏MUL2(m,m+n)*2展开为(m)*(m+n)*2,第三个带参数的宏MUL3(m,m+n)*2展开为(m*m+n)*2。将m=2,n=3代入展开后的式子,得到“10,20,14”。