永发信息网

20. 设有以下宏定义,则执行语句“z=2*(N+Y(5+1));”后,z的值为( )。

答案:2  悬赏:10  手机版
解决时间 2021-03-09 17:46
  • 提问者网友:自食苦果
  • 2021-03-09 02:51
20. 设有以下宏定义,则执行语句“z=2*(N+Y(5+1));”后,z的值为( )。
#define N 3
#define Y(n) ((N+1)*n)
A.出错 B. 42 C. 48 D. 54
最佳答案
  • 五星知识达人网友:轻雾山林
  • 2021-03-09 04:20
z=2*(N+Y(5+1));

分步来替换,先替换Y(n)
z=2*(N+ ((N+1)*5+1) );
再替换N
z=2*(3+((3+1)*5+1) ); = 2*(3+4*5+1)=2*24=48
选C
全部回答
  • 1楼网友:像个废品
  • 2021-03-09 05:21
y(5+1) = ((3+1)*5+1) z = 2*(3+((3+1)*5+1)) = 2*(3+21) = 48 陷阱在于y(n)的定义,若改为: #define y(n) ((n+1)*(n)) 则z的值为54。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯