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

admin2010-01-10  27

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

选项 A、28.26
B、28.26
C、9.28
D、9.28

答案4

解析 带参数的宏展开是在编译时进行的,是一种纯粹文字性的替换过程。本题定义了一个带参数宏#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。
转载请注明原文地址:https://jikaoti.com/ti/SyI0FFFM
0

最新回复(0)