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

admin2015-07-28  23

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

选项 A、21,18
B、81,81
C、21,21
D、18,18

答案A

解析 宏替换是使用宏名代替一个字符串,是一种机械、简单的置换,所以表达式S(k+j+2)=k+j+2*k+j+2=5+2+2*5+2+2=21,S(j+k+2)=j+k+2*j+k+2=2+5+2*2+5+2=18,答案选A。
转载请注明原文地址:https://kaotiyun.com/show/P7Jp777K
0

最新回复(0)