问题
单项选择题
请选出以下程序的输出结果( )。
#include <stdio.h>
#define MIN(x,y) (x<y) x:y
main()
int i,j,k;
i=10;j=15;
k=10*MIN(i,j);
printf("%d\n",k);
A.15
B.100
C.10
D.150
答案
参考答案:C
解析: 本题考查宏定义。在C语言中,宏是直接替换的,所以表达式k=10*MIN(i,j)被直接替换为k=10*(i<j) i:j,在这个表达式中,10*(i<j)的值为非零,所以整个表达式的值应为i的值,即为10。