有以下程序: #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)); } 程序运行后的输出结果是( )。

admin2020-01-10  32

问题 有以下程序:
#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、57,39
B、57,57
C、9,9
D、39.39

答案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。(注:宏定义中的形参一定要使川小括号括起来,以避免出错)。
转载请注明原文地址:https://kaotiyun.com/show/4FCp777K
0

相关试题推荐
最新回复(0)