有以下程序 #include <stdio.h> #define S(x) x/x main() { int k=5, j=2; printf("%d,%d\n", S(k+j), S(j+k)); } 程序的运行结果是

admin2015-11-24  33

问题 有以下程序
#include <stdio.h>
#define  S(x)   x/x
main()
{  int  k=5, j=2;
   printf("%d,%d\n", S(k+j), S(j+k));
}
程序的运行结果是

选项 A、7,9
B、1,1
C、7,7
D、9,9

答案A

解析 带参数的宏的调用格式:宏名(实参表),替换过程是,用宏调用提供的实参字符串,直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。S(k+j)被置换成k+j/ k+j,计算时先计算j/k,则k+j/k+j=7;S(j+k)被置换成j+k/j+k,计算时先计算k/j,则j+k/j+k=9。程序的运行结果是7,9,A选项正确。
转载请注明原文地址:https://jikaoti.com/ti/czkiFFFM
0

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