1楼:匿名用户
因为a>b为假,所以m=0
当"&&"左边为0时,电脑就不会再算右边了,既n=c>d没有被运算
所以n还是为2。
2楼:匿名用户
逻辑与和逻辑或操作符总是先计算其左操作数,然后计算右操作数,只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解其右操作数,就是所谓的“短路求值”
题中左边为假所以不会计算右边。
3楼:匿名用户
只有第一个值是1的时候,第二个表达式才进行运算
4楼:匿名用户
与操作 第一个操作符为假 后续操作无效
5楼:落忆浪子
m && n中,若m为假,则n不被执行;
m||n中,若m为真,则n不被执行。
多看点资料,对你的学习会有很大的帮助,所谓“见多识广”就是见的多了自然知识比较丰富。
6楼:手机用户
这么简单的问题,大哥!!!
好好学习吧.
楼上的回答完全正确.
我只为两分.
7楼:匿名用户
补充一下,(0 && 0)的结果是假,不是真。
在c语言中,a=(m=a>b)&&(n=c
8楼:天云一号
a=(m=a>b)&&(n=c>d)表示将条件(m=a>b)与条件(n=c>d)进行逻辑与运算后,将结果赋值给变量a。
具体执行过程可以通过如下实例来说明:
int a=1, b=2, c=4, d=3;
int m, n;
a=(m=a>b)&&(n=c>d);
// 先计算(m=a>b),由于a>b为假,所以m=0;
// 再计算(n=c>d),由于c>d为真,所以n=1;
// 最后计算逻辑与,此时将m=0与n=1进行与运算,结果为0,之后将最终结果0赋值给变量a,所以经过a=(m=a>b)&&(n=c>d);运算后a=0
9楼:仪东泽
m=(a>b)为0这时候这个已经false了,后面就不用运算了,n还是2,m为0
10楼:匿名用户
如果a>b,那么m=1,否则m=0;
如果c 求出m,n后,再求m&&n, 如果m,n都等于1,则a=1,否则a=0. 11楼:匿名用户 (m=n= =b)|| (n=c= =d)就是把(n=b)这个表达式的值(0或1)赋给m,然后(c=d)的值赋给n, (注意,以上两条式子是数学表达式而不是c语言**!)最后让这两个值逻辑或(不是位或!就是1||99仍然为1) 12楼:匿名用户 这是个运算符优先级的问题 ==的优先级大于=,这段**可以翻译为 m=(n==b); 解释为:如果n等于b,那么m等于true(即1);否则m等于false(即0); n=c==d也是这个意思 连接起来就是 如果m等于1或者n等于1,这个表达式的值为1,否则为0; 或者这样解释 如果n等于b或者c等于d,这个表达式的值为1,否则为0; 二者是一个意思。 13楼:匿名用户 ()&&() 中&&是逻辑运算符 是逻辑与 说白了就是&&两边的值都为真是 它的结果才为真(1) ; m=a>b 的意识是 先比较a b的大小,如果a>b 则返回真(1)给m 相反这为假(0); n=c>d同上 14楼:守猪の待兔 m= n==b n与b是否相等的判断结果赋值给m (n=c= =d) c与d是否相等的判断结果赋值给n 最后m与n 或||一下... 得到最后的逻辑值 15楼:匿名用户 先看括号里的,括号中的优先级要高,因为关系运算赋(<,>,<=,>=)的优先级大于赋值运算符(=),所以先判断关系表达式a>b和c>d的值,如果为真,值为1,如果为假,值为0,然后再把值分别赋给m和n,然后就是看&&(逻辑与)这个运算符了,如果m和n的值同时为1,则整个表达式的值为1,即真,如果有一个为0,则整个表达式的值为0,即假。 16楼:晨妈 我认为m=0 n=2 (m=a>b)&&(n=c>d) 17楼:bruce于 n是false吧,逻辑与的第一部分判断为false,第二部分就不会去判断了,取默认值为false 18楼:朗月拂鸣 先将a的值赋给m,即m=1,而b=2,显然m=a>b的值是0.由于是"与'运算,后面的式子可以不看,即不用执行了。整个表达式的值也为0.而n前后的值没有变化,n=2 19楼:匿名用户 &&并且判断,先走左边的m=a>b =赋值,先走右边的a>b a>b吗?不!所以a>b的值是0 m=0的值是0,赋值会用=左边的值作为整个语句的值&&左边0,不走右边了,n=c>d没执行 最后n=2 下面这个程序中(m=a>b)&&(n=c 20楼:匿名用户 (m=a>b)&&(n=c由于a>b,即5>6为假,bai所以dum=0,0&&任何值都为0,所以(n=czhi被短dao路,没有进行运算,所以n仍然等版于原值2,故权输出2. &&和||,也称为短路运算符,这个题目考察的就是这个功能0&&任意值=0,1||任意值=1,后面任意值的表达式都被短路掉,不进行运算。 c语言a=(m=a>b)&&(n=c>d)+5的运算顺序 21楼:匿名用户 #include int main() int a=1, b=2,c=3,d=4,m=2,n=2; 则执行表达式:(m=a>b)&&(n=c>d)后,n的值为? 22楼:匿名用户 n=2,因为m=(a>b); 解释为bai:如果a大于dub,那么m等于true(即1);否则zhim等于false(即0); n=c>d也是这个意思. 再有dao(m=a>b)&&(n=c>d)首判断a>b是否为真,因为内a=1,b=2.所以a>b为假。m=0,接容着就不进行 n=c>d。故n的值未改变。估是因为&&的原因。 23楼:寒冰射手小样 n的值仍然为2,没有改变! 过程:先计算a>b,值为0,赋给m的值为0,表达式m=a>b的值也是版0。 对于&&逻辑运算,不管后面 权(n=c>d)的值如何,都不影响(m=a>b)&&(n=c>d)的最终结果,因此,c语言不再对表达式n=c>d进行计算。因而n的值没有改变!! 24楼:詹爵云蕙若 m=0n=2 a>b不成立m=0; 又因为(m=a>b)为0,所以不执行(n=c>d),即n的值不变。这是&&的特性。 1楼 匿名用户 执行 m a b n c d 先判断 是左结合,算左括号,然后 赋值 优先级低,先算a b得到真赋值给m,m为1,然后整个括号内表达式为1 因为1 and 任意值 都为真!因此继续看右边,c d为假,所以n 0 如果是左括号值为假,则如果右边的n的值就为不确定!因为0 任何值都为假 ...C语言:设abcd均为0执行(m a bn c!d)后m n的值为