有以下程序 #include #define S(x)(x)*x2 main() {intk=5,j=2; printf(“%d,”,S(k+j));printf(“%d﹨n”,S((k-j)); }

admin2013-02-23  34

问题 有以下程序
    #include
    #define S(x)(x)*x2
    main()
    {intk=5,j=2;
    printf(“%d,”,S(k+j));printf(“%d﹨n”,S((k-j));
    }
    程序运行后的输出结果是

选项 A、98,18
B、39,11
C、98,11
D、39,18

答案D

解析 本题考查带参数的宏定义,按照#define命令行中指定的字符串从左到右将实参代替形参.如果宏定义中的字符串不是参数字符,则保留。S(k+j)宏展开为:
    (k+j)*k+j*2=7*5+2*2=39;S((k-j))=((k-j))*(k-j)*2=3*3*2=18。
转载请注明原文地址:https://kaotiyun.com/show/zmJp777K
0

最新回复(0)