有以下程序: #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

admin2021-06-15  21

问题 有以下程序:
#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,MUk3(m,m+n)*2);
}
程序运行后的输出结果是(  )。

选项 A、10,20,14
B、20,20,20
C、10,10,10
D、14,14,14

答案A

解析 本题考查宏定义,宏定义在程序的预编译阶段“接进行文本替换,所以本题中宏定义展开如下:
MUL1(m,m+n)×2=m×m+n×2=2×2+3×2=10
MUL2(m,m+n)×2=(m)×(m+n)×2=2×(2+3)×2=20
MUL3(m,m+n)×2=(m×m+n)×2=(2×2+3)×2=14
程序输出结果为10,20,14答案为A,(注:宏定义中的形参一定要使用小括号括起来,以避免出错)。
转载请注明原文地址:https://jikaoti.com/ti/GLz0FFFM
0

最新回复(0)