问题 单项选择题

以下程序的输出结果是______。
#include<stdio.h>
#define FUDGE(y) 2.84+y
#define PR(a) printf("%d",(int)(a))
#define PRINT1(a) PR(a);putchar('\n')
main()
int x=2;
PRINT1(FUDGE(5)*x);

A) 11
B) 12
C) 13
D) 15

答案

参考答案:B

解析: 在程序中如果有带实参的宏,则按#define命令行中指定的字符串从左到右进行置换,如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中,可以得出答案为“12”。

多项选择题
单项选择题