若有以下程序 #define S(x)x*x #define T(x)S(x)*S(X) main() { int k=5,j=2 ; printf("%d,96d\n",S(k+j),T(k+3));}

admin2016-12-28  16

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

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

答案A

解析 本题考查了宏替换,宏替换就是简单的字符替换,不会进行语法错误检查也不会进行运算。S(k+j)宏展开以后为k+j*k+j,值为17,T(k+j)宏展开以后为k+j*k+j*k+j*k+j,值为37。
转载请注明原文地址:https://jikaoti.com/ti/kVi0FFFM
0

最新回复(0)