(m abn cd)运算后,(m=a>b)&&(n=c>d)

2021-03-02 08:19:06 字数 3656 阅读 8414

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的值不变。这是&&的特性。

C语言:设abcd均为0执行(m a bn c!d)后m n的值为

1楼 匿名用户 执行 m a b n c d 先判断 是左结合,算左括号,然后 赋值 优先级低,先算a b得到真赋值给m,m为1,然后整个括号内表达式为1 因为1 and 任意值 都为真!因此继续看右边,c d为假,所以n 0 如果是左括号值为假,则如果右边的n的值就为不确定!因为0 任何值都为假 ...