若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2 则执行以下语句后,输出结果是_______.int a;a=Y; printf("%d\n",Z); printf("%d\n",--a);
A.
因为#define A B 相当于在编辑器中做字符串替换,所以Z 将被替换为 Y*X/2,而Y又会被替换为X+1,因此, Z被替换为X+1*X/2. 而X被替换为5, 所以a=Y=5+1. Z则=5+1*5/2=5+2=7; 故本题答案: 7 5
B.
因为#define A B 相当于在编辑器中做字符串替换,所以X==5, 而Y==X+1==6, Z==Y*X/2==6*5/2=15. 故本题答案: 15 5
C.
因为#define A B 相当于在编辑器中做字符串替换,所以X==5, 而Y==X+1==6, Z==Y*X/2==6*5/2=15. --a的值为6. 故本题答案: 15 6