狂想曲丶 发表于 2021-6-2 17:29:41

第四届计应赛C语言初赛题目

下面程序的执行结果是(    )。
#include<stdio.h>
#define PT 3.14
#define S(r) PT*r*r
void main()
{
int a=1,b=2;
printf("%0.1f\n",S(a+b));
}

A.12.6 B. 7.1 C. 28.3 D. 25.7

请问这题为什么选B?

肖-肖 发表于 2021-6-2 17:36:04

因为
#define S(r) PT*r*r
和S(a+b)之间的替换是这样的:
S(a+b) =PT*a+b*a+b
         =3.14*1+2*1+2
         =3.14+2+2
         =7.14
然后因为%0.1f,所以是7.1
页: [1]
查看完整版本: 第四届计应赛C语言初赛题目