一道c语言选择题,大家能帮我解释一下吗

已知宏定义#defineN3#defineY(n)((N+1)*n)执行语句z=2*(N+Y(5+1));变量z的值为().A:42B:48C:54D:出错答案:B... 已知宏定义
#define N3
#define Y(n) ((N+1)*n)
执行语句
z=2*(N+Y(5+1));变量z的值为().
A:42
B:48
C:54
D:出错
答案:B
展开
 我来答
ishowboy
2014-01-08 · 超过18用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:50.6万
展开全部
define 是直接替换
所以 Y(5+1) 就能变成了 ((N+1)*5+1) 注意不是 ((N+1)*(5+1))
N变成 3
所以
z= 2*(3+((3+1)*5+1)

计算一下,也就是48啦
百度网友6fe74e2
2014-01-08 · TA获得超过6592个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:232万
展开全部
宏定义是直接替换的:
先替换Y(n):
z=2*(N+Y(5+1))=2*(N+(N+1)*5+1);
再替换N
z=2*(N+(N+1)*5+1)=2*(3+(3+1)*5+1)=48;

他不会给5+1智能的加括号的,是直接替换

所以,用宏定义时一定要小心,尽量少用,而且尽量多加括号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
5922771321
2014-01-08 · TA获得超过1438个赞
知道小有建树答主
回答量:1410
采纳率:100%
帮助的人:357万
展开全部
N=3
Y(n) = ((N+1)*n)
Y(5+1)=Y(6)=((3+1)*6)
z=2*(3+24)=54
C是这么算出来的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
home奶茶温泉
2014-01-08 · TA获得超过119个赞
知道答主
回答量:211
采纳率:0%
帮助的人:184万
展开全部
Y(5+1)=(N+1)*5+1=21
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
照月明
2014-01-08 · TA获得超过154个赞
知道答主
回答量:229
采纳率:0%
帮助的人:87.7万
展开全部
.........答案是B?为什么我算着是C?
追问
答案是B呀。。那C是怎么算出来的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式