早教吧 育儿知识 作业答案 考试题库 百科 知识分享

)以下程序运行后,输出结果是A)49.5B)9.5C)22.0D)45.0#include#definePT5.5#defineS(x)PT*x*xmain(){inta=1,b=2;printf("%4.1f\n",S(a+b));}#include#definePT5.5#defineS(x)PT*x*xmain(){inta=1,b=2;printf("%4.1f\n",S(a+b));}

题目详情
) 以下程序运行后,输出结果是 A) 49.5 B) 9.5 C) 22.0 D) 45.0
#include
#define PT 5.5
#define S(x) PT* x * x
main()
{ int a=1,b=2;
printf("%4.1f\n",S(a+b));
}
#include
#define PT 5.5
#define S(x) PT* x * x
main()
{ int a=1,b=2;
printf("%4.1f\n",S(a+b));
}
为什么S(a+b)就是 PT*a+b*a+b
▼优质解答
答案和解析
#define S(x) PT*x*x //括号里的x和PT*x*x里的x是对应的
//就是说用括号里的内容替代右边相应的内容
S(a+b)就是把上面x原封不动的替换成a+b,即PT*a+b*a+b
PT* x * x //与x一一对应

如果是这样的宏
#define S(x) PT*(x)*(x)
则S(a+b)就是PT*(a+b)*(a+b)
PT* (x) * (x) //与x一一对应