首页 > 试题广场 >

执行以下代码 #define SUM(x,y) x+y

[单选题]
执行以下代码:
#define SUM(x,y) x+y
int a = 3;
int b = 2;
a += a*SUM(a, b)*b;
a的值为()
  • 16
  • 30
  • 33
  • 39
#define SUM(x,y) x+y 
这是在定义宏 宏不仅替换字符串 还替换参数列表
原式a=a+a*SUM(a,b)*b=a+a*a+b*b=16
发表于 2019-04-03 11:59:24 回复(3)
a+=3*3+2*2;
发表于 2018-07-11 16:38:47 回复(0)
妈的,中计了

发表于 2023-07-13 12:18:35 回复(0)
宏定义 进行计算时,不能带有括号 就是存粹的替换
因此a=a+a*SUM(a,b)*b发生替换后 会变为 a=a+a*a+b*b
发表于 2023-06-07 22:40:51 回复(0)
没加括号


发表于 2023-04-07 10:57:28 回复(0)
太坑了
发表于 2025-08-31 01:07:04 回复(0)
直接替换下来
发表于 2022-08-09 18:42:31 回复(0)
没外面的括号,所以就变成a*a+b*b了
发表于 2020-11-11 13:59:45 回复(0)
a=a+a*a+b*b
a=3,b=2,
所以a=16.
发表于 2020-04-15 16:49:49 回复(0)
1.定义SUM(x,y)为x+y, 所以表达式SUM(a+b)为a+b。
2.a+=a*SUM(a,b)*b  变为=====>a=a+a*(a+b)*b
3.带入a=3,b=2  =====> a=16
发表于 2018-08-14 10:50:16 回复(7)