c语言这题为什么选这个
11.若有宏定义#defineMOD(x,y)x%y,则执行以下语句后的输出为Bintz,a=15,b=100;z=MOD(b,a);printf("%d\n",z++)...
11.若有宏定义#define MOD(x,y) x%y,则执行以下语句后的输出为 B
int z,a=15,b=100;
z=MOD(b,a);
printf("%d\n",z++);
A)11 B)10 C)6 D)宏定义不合法 展开
int z,a=15,b=100;
z=MOD(b,a);
printf("%d\n",z++);
A)11 B)10 C)6 D)宏定义不合法 展开
7个回答
展开全部
d/100=2
->
2%9=2(%为取余数的意思)
->
a=2
-1
=
11111111
------------------
1&&1=1
1&&0=0
0&&0=0
------------------
11111111
&
11111111
----------
11111111
按位做
"与
"
所以-1&&-1
=1
非0都是1
->
2%9=2(%为取余数的意思)
->
a=2
-1
=
11111111
------------------
1&&1=1
1&&0=0
0&&0=0
------------------
11111111
&
11111111
----------
11111111
按位做
"与
"
所以-1&&-1
=1
非0都是1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这里宏定义的是一个取模运算,MOD(b,a)在调用后MOD(100,15),此结果为6余下10,这里取余下的部分10,即z=10,由于在printf语句中师z++,那么z的值在使用后加1,即在输出这个结果以后在将z的值加上1,但在printf输出时(及使用时)为10;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在程序编译阶段 z=MOD(b,a)被替换为z=b%a 则算出z=10
而Z++代表先取z的值进行运算 再对z加一 也就是说你输出时z的值还没有加一 而是再你输出后加一
而Z++代表先取z的值进行运算 再对z加一 也就是说你输出时z的值还没有加一 而是再你输出后加一
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b%a是求的b除a的余数即10,把输出部分看做y=Z++,先把z即10赋给y,再将z加1,所以输出的是y即10
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询