有以下程序: #include #define S(x)(x/x)*x main() { int k=6,j:3; printf(“%d,%d\n”,S(k+j),S(j+k)); } 程序运行后的

admin2021-04-28  24

问题 有以下程序:
    #include
    #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+j)、S(j+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/2Rtp777K
0

最新回复(0)