求一道C语言程序题的答案与解题过程
问题描述:
求一道C语言程序题的答案与解题过程
17、以下程序的输出结果是()
# define f(x) x*x
main()
{ int a=6,b=2,c;
c=f(a)/f(b);printf(“%d\n”,c);
}
A)9 B)6 C)36 D)18
为啥结果是A啊
是现算/号吗?
答
答案是c=f(a)/f(b)=a*a/b*b=6*6/2*2=36!
其实define就是直接把参数带进去,所以就变成上面的等式!你的目的计算机并没有帮你实现,如果你要达到你的目的,应该将define改为:#define f(x) (x*x),也就是加一对括号