设a=3,b=4,c=5试计算以下表达式:(1)a=b>c&&b==c (2)a||b+c&&b-c (3)(!(a+b)+c-1)&&(b+c)/2用C语言!就是计算值~
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/26 15:51:39
设a=3,b=4,c=5试计算以下表达式:(1)a=b>c&&b==c (2)a||b+c&&b-c (3)(!(a+b)+c-1)&&(b+c)/2用C语言!就是计算值~
设a=3,b=4,c=5试计算以下表达式:(1)a=b>c&&b==c (2)a||b+c&&b-c (3)(!(a+b)+c-1)&&(b+c)/2
用C语言!
就是计算值~
设a=3,b=4,c=5试计算以下表达式:(1)a=b>c&&b==c (2)a||b+c&&b-c (3)(!(a+b)+c-1)&&(b+c)/2用C语言!就是计算值~
(1) a=b>c && b==c
b>c 为 false => a=b>c为 false => (1)式为false
(2) a || b+c&&b-c
a = 3 != 0 => (2)式为true
(3)(!(a+b)+c-1)&&(b+c)/2
!(a+b) == 0 => (!(a+b)+c-1) == 4 为 true
又(b+c)/2 != 0 所以 (3)式为true
结果为 0 1 1
C语言中采用的是短路计算方式,一旦确定了表达式的值就不会再去计算未确定的因子 例如 a && b 如果 a为false 则整个表达式为 false,b的值不会计算; 如果 a 为true 则再计算b的值来确定整个表达式的值.
你可以编程测试
#include
#include
void main()
{
int a,b,c;
a = 3;
b = 4;
c = 5;
int x,y,z;
x = ( a=b>c&&b==c );
y = ( a||b+c&&b-c );
z = ((!(a+b)+c-1)&&(b+c)/2);
printf( "x=%d,y=%d,z=%d \n",x,y,z);
}