以下程序运行后,输出结果是 #define PT 5.5 #define S(x) PT*x*x #include<stdio.h> main() { int a=1,b=2; printf("%4.1f\n",S

admin2009-02-15  26

问题 以下程序运行后,输出结果是    #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

答案1

解析 宏替换用“#define宏名宏体”的形式来定义。在进行编译预处理时,将把程序中宏定义之后的所有宏名用宏体替换。宏虽然可以带参数,但宏替换过程中不像函数那样要进行参数值的计算、传递及结果返回等操作;宏替换只是简单的字符替换,不进行计算。因而本题中的S(a+b)进行宏替换后为PT* 1+2*1+2=5.5*1+2*1+2=9.5。注意:带参数的宏定义。
转载请注明原文地址:https://kaotiyun.com/show/cvXp777K
0

最新回复(0)