求一道C语言程序题的答案与解题过程17、以下程序的输出结果是()# define f(x) x*xmain(){ int a=6,b=2,c;c=f(a)/f(b);printf(“%d\n”,c);}A)9 B)6 C)36 D)18为啥结果是A啊是现算/号吗?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/08 14:53:47
求一道C语言程序题的答案与解题过程17、以下程序的输出结果是()# define f(x) x*xmain(){ 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语言程序题的答案与解题过程17、以下程序的输出结果是()# define f(x) x*xmain(){ 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语言程序题的答案与解题过程
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语言程序题的答案与解题过程17、以下程序的输出结果是()# define f(x) x*xmain(){ 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),也就是加一对括号