问题 单项选择题

下面程序的输出结果是( )。 #define PI 3.1415 #define ARE(X) PI*x*x main() { int r=2; printf("%.2f",ARE(r+1)); }

A.28.26

B.28.260000

C.9.28

D.9.280000

答案

参考答案:C

解析: 带参数的宏展开是在编译时进行的,是一种纯粹文字性的替换过程。本题定义了一个带参数宏#define ARE(x) PI*x*x,在printf()函数中使用了这个宏,展开过程为:ARE(r+1)=>PI*r+1*r+1=>3.1415*r+1*r+1,其结果为3.1415*2+1*2+1=6.283+2+1= 9.283,由于输出格式限定为两位小数,故输出结果为9.28,应该选择C。

问答题 简答题
单项选择题