
一个C语言题目
a,b,c,d,m,n均为整形变量,且a=5,b=7,c=3,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为————答案为2,我算的...
a,b,c,d,m,n均为整形变量,且a=5,b=7,c=3,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为————答案为2,我算的为0.不知道自己错在哪。
展开
6个回答
展开全部
答案的确是2哦。。。且听我下面的解释:
a>b为假,假是0,所以m=0,(m=0)=0,即(m=a>b)为假。而&&是“且”的符号,只要前面一个为假,则(m=a>b)&&(n=c>d)即为假,所以(n=c>d)并没有参与运算,因此n等于原值2不变。。。希望你能够看得懂。
另外再给你说下||符号。||表示“或”符号,它的原则是其中任意一个为真即为真,两个为假才为假。所以只要||前面的那个运算为真了,则后面的不需要运算了,举个例子(m=a<b)||(n=c>d),经过这个运算之后,n还是等于2的。而经过(m=a>b)||(n=c>d)运算,n=0
a>b为假,假是0,所以m=0,(m=0)=0,即(m=a>b)为假。而&&是“且”的符号,只要前面一个为假,则(m=a>b)&&(n=c>d)即为假,所以(n=c>d)并没有参与运算,因此n等于原值2不变。。。希望你能够看得懂。
另外再给你说下||符号。||表示“或”符号,它的原则是其中任意一个为真即为真,两个为假才为假。所以只要||前面的那个运算为真了,则后面的不需要运算了,举个例子(m=a<b)||(n=c>d),经过这个运算之后,n还是等于2的。而经过(m=a>b)||(n=c>d)运算,n=0
展开全部
n=2,条件中已赋值,怎能呢个改变?
后面的(m=a>b)&&(n=c>d)表达式是迷惑你的,而n=c〉d为假,不能当作赋值语句,
后面的(m=a>b)&&(n=c>d)表达式是迷惑你的,而n=c〉d为假,不能当作赋值语句,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c>d值为0
然后把0赋值给n
n=0
我是这么理解的。跟你的结果一样
然后把0赋值给n
n=0
我是这么理解的。跟你的结果一样
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在该表达式中,程序首先计算第一个括号的值,其中先计算a>b,结果显然是0.那么将0赋给m,因为其中逻辑运算符为&&,自左向右运算,第一个为假,那么程序将不再计算后面的操作数,直接认定该表达式的值为假,所以后面的括号的表达式没有被执行,所以n的值没有变。 如果你将第一个括号的a>b改为a<b,试试看,是否是n的值改变了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
n=2,在且a=5,b=7,c=3,d=8,m=2,n=2,条件中已赋值
逻辑表达式(m=a>b)&&(n=c>d)得出的是返回值 返回值为0
但是n的值仍为2
逻辑表达式(m=a>b)&&(n=c>d)得出的是返回值 返回值为0
但是n的值仍为2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是算符的优先级的问题,>是比=高的,所以n=0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |