问题
单项选择题
以下程序段的执行结果为
#define PLUS(X,Y)X+Y
main()
int x=1,y=2,z=3,sum;
sum=PLUS(x+y,z)*PLUS(y,z);
printf("SUM=%d",sum);
A.SUM=9
B.SUM=12
C.SUM=18
D.SUM=28
答案
参考答案:B
解析: 本题考查带参数的宏定义及应用方法,这种宏不只是进行字符串的替换,还要进行参数的替换。
格式为:#define宏名(参数表)字符串
我们先看一个简单的带参数的宏定义:#define X (A,B)A*B*B并且在程序中有语句:y=X(4,3);经过替换后变为y=4*3*3;这就是带参数的宏定义的使用方法。注意:宏是按原形替换,本题替换后为 sun=1+2+3*2+3;。