作业帮 > 综合 > 作业

这道题就是看不明白(38) 有以下程序#define f(x) x*xmain( ){ int i; i=f(4+4)/

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/04/30 01:40:08
这道题就是看不明白
(38) 有以下程序
#define f(x) x*x
main( )
{ int i;
i=f(4+4)/f(2+2);
printf(“%d\n”,i);
}
执行后输出结果是
A) 28 B) 22 C) 16 D) 4
答案28
这道题就是看不明白(38) 有以下程序#define f(x) x*xmain( ){ int i; i=f(4+4)/
c语言中在用#define定义宏的时候,很容易出错的.
本程序中#define f(x) x*x使得f(x)等价于 x*x.
而f(4+4)/f(2+2); 则等价于4+4*4+4/2+2*2+2=4+16+2+4+2=28.
我想这不是编程者本人的意思.加个括号就好了.如下:
#define f(x) ((x)*(x)) .
注意在用#define定义宏的时候,最好每个变量都加一个括号,然后整体在加个括号,这样就不会出错了.