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