C语言两道小题
已知intk,m=1;执行语句k=-m++;后,k的值是_____。当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是______。A.m=k=nB.(m=k)...
已知int k,m=1;执行语句k=-m++;后,k的值是_____。
当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是______。
A.m=k=n B.(m=k)&&(n=m)
C.(m=k)||(n=k) D.(n=m)&&(m=k)
我知道答案,但是求较详细的解析。 展开
当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是______。
A.m=k=n B.(m=k)&&(n=m)
C.(m=k)||(n=k) D.(n=m)&&(m=k)
我知道答案,但是求较详细的解析。 展开
1个回答
展开全部
m++它是把m加1后, 返回m+1前的值
m加1前的值是1, 而前面还有个负号, 所以就是-1, 然后把-1给了k.
B, 因为赋值运算符的返回值就是所赋的值, 而k的值不是0, 所以返回值就一定是真. 而&&运算符:如果左操作数为真, 则右操作数一定会运行, 如果左操作数为假, 那么右操作数就不会运行. 所以是B.
为什么不是C?因为||是一个为真, 这个表达示就是真. 所以如果左边的是真, 不管右边的是不是真, 这个表达示一定是真, 所以运算它右边的就没有意义了, 所以就不会运行.而n=k就不会被执行.
m加1前的值是1, 而前面还有个负号, 所以就是-1, 然后把-1给了k.
B, 因为赋值运算符的返回值就是所赋的值, 而k的值不是0, 所以返回值就一定是真. 而&&运算符:如果左操作数为真, 则右操作数一定会运行, 如果左操作数为假, 那么右操作数就不会运行. 所以是B.
为什么不是C?因为||是一个为真, 这个表达示就是真. 所以如果左边的是真, 不管右边的是不是真, 这个表达示一定是真, 所以运算它右边的就没有意义了, 所以就不会运行.而n=k就不会被执行.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询