匆匆那年看完后的感受:关于C语言的等级题

来源:百度文库 编辑:高考问答 时间:2024/04/29 08:25:53
# define f(x) (x*x)
?? main()
?? { int i1, i2;
?? i1=f(8)/f(4) ; i2=f(4+4)/f(2+2) ;
?? printf("%d, %d\n",i1,i2);
?? }
??程序运行后的输出结果是
前后的函数有什么区别吗

其实它是用替换法的.
1 f(8)/f(4) = (8*8)/(4*4)
2 f(4+4)/f(2+2) = ( 4+4*4+4 )/( 2+2*2+2 )
如果想一样把宏定义改为
# define f(x) ((x)*(x))即可.

4,3
这个8,和4就不用说了
看4+4,入到F(X)里就成了4+4*4+4,是24
2+2就成了2+2*2+2就成了8,所以是3

输出结果为:4,3
i1=(8*8)/(4*4)
i2=(4+4*4+4)/(2+2*2+2)