一道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 展开
#define N3
#define Y(n) ((N+1)*n)
执行语句
z=2*(N+Y(5+1));变量z的值为().
A:42
B:48
C:54
D:出错
答案:B 展开
5个回答
展开全部
宏定义是直接替换的:
先替换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智能的加括号的,是直接替换
所以,用宏定义时一定要小心,尽量少用,而且尽量多加括号
先替换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智能的加括号的,是直接替换
所以,用宏定义时一定要小心,尽量少用,而且尽量多加括号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
N=3
Y(n) = ((N+1)*n)
Y(5+1)=Y(6)=((3+1)*6)
z=2*(3+24)=54
C是这么算出来的
Y(n) = ((N+1)*n)
Y(5+1)=Y(6)=((3+1)*6)
z=2*(3+24)=54
C是这么算出来的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Y(5+1)=(N+1)*5+1=21
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
.........答案是B?为什么我算着是C?
追问
答案是B呀。。那C是怎么算出来的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询