有以下程序:
#include< stdio.h >
#define S(x)(x/x)*x
main()
{int k=6,j=3;
printf("%d,%d\n",S(k+j),S(j+k));
}
程序运行后的输出结果是( )。
【正确答案】
A
【答案解析】本题考查宏定义:宏定义是在程序预处理阶段直接进行文本替换,所以本题中S(k+i)、S(i+k)可以替换为:S(k+j)=(k+j/k+j)×k+j=(6+3/6+3)×6+3=57;S(j+k)=(j+k/j+k)×j+k=(3+6/3+6)×3+6=39,故答案为A。(注:宏定义中的形参一定要使川小括号括起来,以避免出错)。