1樓:匿名使用者
1和1對於bai
!(a+b)+c-1&&b+c/2 ,&&前後接兩個表du達式zhi,一個
是!(a+b)+c-1,另dao一個是b+c/2 ,第一版個表示式結果為c-1即2(因為(a+b)非0,故!(a+b)結果為0),第二個表示式結果為6,所以這兩個表示式均為非權零,所以它們進行邏輯與操作之後的結果為1
對於a || b+c&& b == c,||邏輯或操作符連線兩個表示式,但是第一個表示式為a,非0,故不用求後一個表示式的值,所以該表示式結果為1
在vs2010上執行通過
測試**如下:
int a=3,b=4,c=5 ;
int d = !(a+b)+c-1&&b+c/2;
int e = a || b+c&& b == c;
cout << d << endl ;
cout<< e;
2樓:黑褲子白上衣
學會這抄道題,需要了解運算子的優bai先級,還要知道這些都是int整形變數
()括號一級運du算符
!邏輯非zhi運算子屬二級運算子
/ 除法運算子屬**運算子
&&邏輯與運算子屬十一級運算子
運算子級數越高越先算
!(a+b)+c-1&&b+c/2
級數越高越先計算
左邊0+5-1==4
右邊4+2.5==6 因為是整dao形
兩邊都為真
&&是全真才真,兩邊都為真,故結果為1
int a=3,b=4,c=5,執行完語句t =!(a+b)+c-1&&b+c/2後t的值是?
3樓:匿名使用者
1。!的優先順序強於+和-,+和-的優先順序強於&&。
4樓:
int a=3,b=4,c=5;
int t;
t=!(a+b)+(c-1)&&b+c/2;
printf("%d",t);t=1
設a=3,b=4,c=5,則邏輯表示式: !(a+b0+c-1&&b+c/2 的值 我用c寫的, main() { int a,b,c; a=3; b=4; c=5;
5樓:匿名使用者
需要強制型別裝換!
(!(a+b)+c-1&&b+c/2)是true和false吧?x是整形 好像是的吧?你看看呢
6樓:匿名使用者
x在賦值語句那,資料型別變了。應該將它定義成布林資料型別。
設int a=5,b=6,表示式(++a==b--)?++a:--b的值是
7樓:匿名使用者
結果為bai7。
條件表示式
du為:表
zhi達式1?表示式2:表示式3。先求解dao表示式內1,若其值為真(非容0)則將表示式2的值作為整個表示式的取值,否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。
先判斷++a==b--是否為真,++a表達的值為6,b--表達的值為6,兩者相等,為真。則將表示式++a的值作為整個表示式的取值,因為在此之前a的值已經自增變成6,再進行++a表示式的值為7。
8樓:匿名使用者
最後值為7,這是一個if語句,就是
int a=5,b=6;
if(++a==b--) ++a;
else --b;
++ar的規則
是先運算,所以括號中左值++a=6,a=6;
==的優先順序低版過--,所以先計算權b--b--的規則是先賦值,所以括號中右值b--=6,b=5;
左值6==右值6,即條件為真,執行++a,因為a值已是6, 所以加1操作後,
結果為 7
9樓:烏石
7,條件表示式條件為真,取值為++a;原來為6,執行++a後為7
有變數定義inta3,b4,c5表示式abc
答案是 1 由符號優先順序知,先計算a b不成立為0,0 c成立結果就是1 設int a 5,b 6,表示式 a b a b的值是 結果為bai7。條件表示式 du為 表 zhi達式1?表示式2 表示式3。先求解dao表示式內1,若其值為真 非容0 則將表示式2的值作為整個表示式的取值,否則 表示式...
有定義int a 3,b 4,c 5執行完表示式ab bcc後,a,b,c的值分別為怎麼來的
a b是取a加1前的值3和b減1後的值3比大小,結果是假,所以 的最終結果肯定是假,後面的執行都不繼續算了。所以a 4,b 3 你要清楚 的意思!它意味著 並且 如果a b不成立,則你就不用進行下面的運算了!a 3 1 b 4 1 1 c 5 1 結果就在這了!a 3,a 3,先使用a,然後a自增 ...
求c語言高手解設有語句 int a 3執行語句a a
賦值運算順序自右而左,首先算a a,即3 3的值為9,然後算a 9,即a a 9,值為 6,最後算a 6,即a a 6 值為最後值為 3 賦值語來句,從右到左依次執行 源那麼 int a 3 a a a a 相當於 a a a a a 然後相當於 a a a a a a a 由於a初始化為3 a a...