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

admin2019-05-17  19

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

选项 A、17,37
B、49,2401
C、17,289
D、49,289

答案A

解析 宏替换只是使用宏名代替一个字符串,是一种机械的置换,所以S(k+j)=k+j*k+j=17,T(k+j)=S(k+j)*S(k+j)=k+j*k+j*k+j*k+j=37,输出结果为选项A)。
转载请注明原文地址:https://kaotiyun.com/show/tHRp777K
0

最新回复(0)