逻辑表达式(m=a>b)&&(n=c>d)运算

如题所述

第1个回答  2019-08-10
先看第一个括号:>
优先于
=
;表达式
a
>
b
为假返回0,然后将
0
赋给
m
,故
m
=
0;
同理:n
=
0;
第2个回答  2019-10-31
我编译以后也是2,这个答案错了!
有的时候最好自己编写验证下啊!

逻辑表达式(m=a>b)&&(n=c>d)运算
&&的结果只有真或假 1 0

在c语言中,a=(m=a>b)&&(n=c<d);是什么意思
由于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);

(m=a>b)&&(n=c>d)运算后
因为a>b为假,所以m=0 当"&&"左边为0时,电脑就不会再算右边了,既n=c>d没有被运算 所以n还是为2。

逻辑表达式(m=a>b)&&(n=c>d)运算
优先于 = ;表达式 a > b 为假返回0,然后将 0 赋给 m ,故 m = 0;同理:n = 0;

(m=a>b)&&(n=c>d)
先将a的值赋给m,即m=1,而b=2,显然m=a>b的值是0.由于是"与'运算,后面的式子可以不看,即不用执行了。整个表达式的值也为0.而n前后的值没有变化,n=2

这个c程序中m怎么等于0,n怎么等于2啊
关键是这句:(m=a>b)&&(n=c>d);这本身是个逻辑表达式,所以先计算左边括号中的表达式的值,即m = a > b。因为逻辑运算符>的优先级高于赋值运算符=,所以先求a > b的值。而a = 5, b = 7,所以a > b不成立,逻辑运算结果为0,再把0赋值给m。所以m的值会是零,而且整个表达式(m ...

...b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后...
b=6、c=7、d=8、m=2、n=2,则逻辑表达式 (m=a>b)&&(n=c>d)运算后,n的值是0。解析:C语言中比较表达式的运算结果为0或1。0代表不成立,1表示成立;例如 9>8这个关系表达式是真的,所以9>8这个表达式的数值就是1; 7<6这个关系表达式是假的,所以7<6这个表达式的数值就是0。

C语言 详细解答
(m=a>b)&&(n=c>d)中,先判断a>b和c>d,但 m,n,a,b,c,d 均为1,所以a>b和c>d的逻辑值都是“假”,默认真是1,假是0,所以把0赋值给了m和n a!=0&&b!=0 即a不等于零并且b不等于零,!代表逻辑非,&&代表逻辑且 (b=10)%(c=6)就是b=10;c=6;a=b%c,%是取余数的...

c语言(m=a>b)&&(n=c>d),a=5,b=6,c=7,d=8,m=2,n=2,运算后m= ,n=...
首先你应该明白运算的优先级,包括逻辑运算与算术运算。注意,在c语言中是非0即1的思路,这里根据C语言语法分析:a>b = 0, 后面是与运算,到此程序应该结束,表达式为0。最后结果:m=0, n=2

C语言经过逻辑运算,为什么变量的值没有改变呢
逻辑运算不改变变量的值,只返回该表达式的结果,如果是真,返回1,假返回0 而你的 (m=a>b)&&(n=c>d)首先把a赋值给m,然后比较m和b,5>6假,返回0,&&一边有0肯定结果是0,所以整个式子的结果是0,但是!你并没有吧整个结果储存起来,所以整个结果就丢失了。不过不论整个结果是多少,本身...

相似回答
大家正在搜