大话西游2免费版小年:C语言问题

来源:百度文库 编辑:高校问答 时间:2024/05/02 08:08:27
#define PI 3.14
#define AREA(r) PI*r*r
则 s=AREA(10+10) 的值是_______.
A、314 B、125.6 C、141.4 D、1256

选D
s=AREA(10+10)
即AREA(20)
AREA(r) PI*r*r
r换为20

PI*20*20
PI 3.14

答案选D
1256

C #define中不遵循四则运算
即PI*10+10*10+10=141.4

这里:r 是10+10
直接代入PI*r*r:
PI*10+10*10+10
所以结果是141.4

141.4
宏代换只是简单的代换

#define PI 3.14
#define AREA(r) PI*r*r
s=AREA(10+10)
为 3.14*|10+10|*|10+10|=3.14*10+10*10+10=141.4 ("||"只表示过程,纯属本人人为添加,下同)

#define PI 3.14
#define AREA(r) PI*(r)*(r)
则 s=AREA(10+10)
为 3.14*|(10+10)|*|(10+10)|=3.14*(10+10)*(10+10)=1256

D 1256

宏代换中对实参表达式不作计算直接地照原样代换
选C