首页 > 试题广场 >

下面程序输出的是:

[单选题]
下面程序输出的是:
#define f(x) x*x
main (){
 int a=5,b=2,c;
 c=f(a)/f(b);
 printf("%d",c);
}

  • 6.25
  • 6
  • 24
  • 25
其实执行的是 int c = 5*5/2*2 = 12 * 2 = 24 。
如果这么写的话:#define f(x)  (x*x)
那么结果就是6了。
发表于 2016-12-21 16:29:11 回复(6)
这里主要考察宏定义,实际上宏展开的就是将宏的定义复制过来。
所以题目#define f(x) x*x
在c=f(a)/f(b),展开w为 c =a*a/b*b;
发表于 2021-01-21 17:31:22 回复(0)
a*a/b=12.5,由于是int类型变12 ,然后12*2=24。计算过程中不要自己改了顺序
发表于 2023-01-06 17:38:48 回复(0)
都0202年了 还玩文字游戏,瞬间回到了高中
发表于 2020-08-06 10:42:35 回复(0)
秀啊。。。
发表于 2021-01-03 09:59:18 回复(0)
考查两个点,一个是#define,还有就是注意int类型的除法‘/’,结果是只有整数的,要把小数部分去掉
发表于 2023-10-25 10:51:44 回复(0)
运算过程:c=5*5/2*2 =25/2*2=12*2=24!!!!
发表于 2023-07-19 18:37:17 回复(0)
代码地雷聚集地,学会了,老板都怕你
发表于 2023-02-21 17:53:19 回复(0)
如果改成是函数就不一样了。所以重点在理解define
发表于 2022-07-12 08:49:43 回复(0)
这个要看运算顺序呢
发表于 2022-02-11 12:14:09 回复(0)
25/2:12
发表于 2021-03-31 19:55:42 回复(0)
5*5/2=12
发表于 2021-02-02 15:10:29 回复(0)
5*5/2*2=24
发表于 2020-11-27 13:26:52 回复(0)
666
发表于 2017-09-22 14:47:58 回复(0)