首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
下列程序执行后的输出结果为()
[单选题]
下列程序执行后的输出结果为()
36
以上均不正确
16
30
查看正确选项
添加笔记
求解答(28)
邀请回答
收藏(595)
分享
17个回答
添加回答
70
kylsen
使用有参宏定义时,形参要用括号括起来,改为#define sum(a,b,c) (a+b+c)答案为30,否则计算过程为i*i+(i+j)+j=16。
发表于 2017-07-24 21:51:21
回复(2)
16
Eric.10
编译器在编译时会将宏定义展开,i*sum(i, (i+j), j)被展开为 i*i+(i+j)+j。因此,若想宏定义sum(a, b, c)为a,b,c的和,应该定义为 # define sum(a, b, c) (a+b+c)
发表于 2017-10-16 14:21:39
回复(0)
5
炮祺泡祺君
宏替换后为i * i + (i + j) + j,即为3×3+5+2=16,选C。
发表于 2018-11-18 17:35:38
回复(0)
3
blossoma
是少了个,嘛
发表于 2018-10-30 14:07:40
回复(1)
2
三天打鱼者
为什么我确是没看到 i*
发表于 2022-11-19 12:06:50
回复(0)
2
牛客124252258号
参数宏定义把sum(i,(i+j),j)替换成i+(i+j)+j,然后就是i*i+(i+j)+j把i=3,j=2带入得16.
发表于 2019-03-19 20:02:59
回复(0)
2
牛客吴彦祖QAQ
ccccc
发表于 2017-04-18 15:39:15
回复(0)
1
Mustbebrushed
i*i+i+i+j+j=3*3+3+2+2=16
发表于 2023-11-10 11:11:57
回复(0)
1
小李很哇塞_666
宏定义计算一定要看清楚
发表于 2022-08-23 21:43:54
回复(0)
0
牛客134980485号
眼瞎,我确是没看到 i*
发表于 2023-04-13 18:42:09
回复(0)
0
kkkkk_
建议加个逗号或者把b选项去掉
发表于 2022-10-17 20:21:03
回复(0)
0
牛客485153484号
太骚了没看见逗号
发表于 2021-11-17 16:15:09
回复(0)
0
犹有傲霜枝
宏是模板替换,不能看成函数。坑🕳️
发表于 2020-08-18 00:31:07
回复(0)
0
CDL03
<p>应该是sum(i,(i+j),j),漏了个逗号</p><p><br></p>
发表于 2020-06-03 15:34:52
回复(0)
0
Z3R0
宏定义那是真的🐮🍺
发表于 2019-10-25 21:29:06
回复(0)
0
编程小海浪
太骚了,宏定义看成了函数
发表于 2019-09-19 11:58:03
回复(0)
0
低调的嵌入式软件工程师
没有返回值啊 我的哥
发表于 2017-09-09 09:03:30
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C语言
来自:
爱奇艺2017秋招c+...
上传者:
牛100
难度:
17条回答
595收藏
3108浏览
热门推荐
相关试题
假定指针变量 p 定义为 “int...
360集团
C++
C语言
评论
(36)
来自
360公司2014校招笔试卷
class A; class B;...
360集团
C++
C语言
评论
(18)
来自
360公司2014校招笔试卷
为了查看不断更新的日志文件,可以使...
爱奇艺
Linux
C++工程师
2017
评论
(17)
来自
爱奇艺2017秋招c++...
设有以下定义程序 ; 则以下合法的...
C++
评论
(32)
来自
爱奇艺2017秋招c++...
定义新运算:对于任意自然数 A ,...
数学运算
评论
(6)
来自
爱奇艺2017秋招c++...
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题