问题
单项选择题
以下程序运行后,输出结果是( )。
#define PT 5.5
#define S(x)PT*x*x
#include<stdio.h>
main()
int a=1,b=2;
prinf("%4.1f\n",S(a+b));
A.49.5
B.9.5
C.22
D.45.0
答案
参考答案:B
解析: 考查宏替换的使用。宏替换用“#define宏名宏体”的形式来定义。在进行编译预处理时,将把程序中宏定义之后的所有宏名用宏体替换。宏虽然可以带参数,但宏替换过程中不像函数那样要进行参数值的计算、传递及结果返回等操作;宏替换只是简单的字符替换,不进行计算,因而本题中的S(a+b)进行宏替换后为PT*1+2*1+2=5.5*1+2*1+2=9.5。