設int a 1,b 2,c 3執行表示式(a bC 1)後c的值為什麼等於

2021-05-23 07:32:35 字數 2952 閱讀 5862

1樓:匿名使用者

條件表示式的短路效應,邏輯與的a>b是false,則整個表示式一定是false,後面的c=1就不會執行

2樓:匿名使用者

在執行抄表示式(a>b)&&(c=1)時,系統發bai

現是與運du算,先計算與運算前面的邏輯判斷zhi,發現a>b得到dao假,由於是與運算,無論後面的式子等於什麼與假進行與都會得到假,則後面的式子就不算(執行)了,直接得到整個式子的結果是假,結果c=1就沒有被執行過

3樓:

因為a>b不成立,所以沒有必要再執行&&後面的語句了……

int a=1, b=2,c=3,d=4,m=2,n=2; 則執行表示式:(m=a>b)&&(n=c>d)後,n的值為?

4樓:匿名使用者

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的值未改變。估是因為&&的原因。

5樓:寒冰射手小樣

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的值沒有改變!!

6樓:詹爵雲蕙若

m=0n=2

a>b不成立m=0;

又因為(m=a>b)為0,所以不執行(n=c>d),即n的值不變。這是&&的特性。

設有: int a=1,b=2,c=3,d=4,m=2,n=2; 執行(m=a>b)&&(n=c>

7樓:不不見不念

這是邏輯運算,n的值為2

(m=a>b) 是賦值表示式,若a大於b則m得真,否則m得假回。答 a=1,b=2, a>b 為假,故 m=假。賦值表示式(m=a>b)為假。m=0。

在邏輯與&&運算中,如果第一個運算元為假,則結果是假,後面的運算元不參與運算,本題中因為第一個運算元(m=a>b)為假,所以第二個運算元(n=c>d)不參加運算,因此n的值不變。

8樓:匿名使用者

選a!首先要了解一下抄

運算子的運算先bai後順序,優先順序口訣:

括號成du員第一; 括號運算子zhi() 成員運算子. ->

全體dao單目第二; 所有的單目運算子比如++ -- +(正) -(負) 指標運算*&

乘除餘三,加減四; 這個"餘"是指取餘運算即%

移位五,關係六; 移位運算子:< >> ,關係:> >= <= 等

等於(與)不等排第七; 即== !=

位與異或和位或; 這幾個都是位運算: 位與(&)異或(^)位或(|)

"三分天下"**十;

邏輯或跟與; 邏輯運算子:|| 和 &&

十二和十一; 注意順序:優先順序(||) 低於 優先順序(&&)

條件高於賦值, 三目運算子優先順序排到 13 位只比賦值運算子和","高

逗號運算級最低! 逗號運算子優先順序最低

剩下的你自己同時參考一下2樓和3樓的解釋,問題就應該能解決的比較透徹了!

9樓:

1> 答案是:n = 2;

2> 問題具體分析如下:

(m=a>b)&&(n=c>d) 分析: && 有短路特性,即 m=(a>b) 為假則整個表示式為假,不回計算答(n=c>d) 所以n=2;

3> 測試程式:

#include

int main(int argc, char **argv)else

if((m=ad))

else

return 0;}

設有如下定義:int a=1,b=2,c=3,d=4,m=2,n=2;則執行表示式:(m=ad)後,m,

10樓:彭彭丁滿

m=1,n=0;解釋如下,如果襲a立,則bai系統認為其為真,真值du為1,反之若不成立,則zhi為dao假,真值為0;因為(m=a子值為1,在&&這個運算子中,先判斷&&左邊的表示式是否為真,為真才會對&&右邊的(n=c>d)進行處理,此題因為&&左邊的表示式為真(若左邊的表示式為假,則此題n=2,),所以會處理&&右邊的(n=c>d)這個式子,由以上分析,(c>d)為假,其真值為0,所以n為0。

11樓:cornerboy丶

執行之後m=1,n=0;

在m=a

非零即為真,零即為假.對於真值預設為1.

n同理.

12樓:張沛湘

是二,後面的被短路了

若有定義int a=1,b=2,c=3;則執行表示式(a=b+c)||(++b)後a,b,c的值

13樓:紫瞳傲雪

1。 b+c=5

將 5 賦值 給 a

2. a =5 為真 || 短路或所以不執行 ++b

b 依然為2

所以 有 a=5 b=2 c=3;

14樓:匿名使用者

從左往右看,a=b+c a=5, ++b, b=3

若有定義int a 1,b 2,c 3則執行表示式(a b cb)後a,b,c的值

1。b c 5 將 5 賦值 給 a 2.a 5 為真 短路或所以不執行 b b 依然為2 所以 有 a 5 b 2 c 3 從左往右看,a b c a 5,b,b 3 若有定義 int a,b 則表示式 a 2,b 5,a 2,b a b 的值是?b 的意思是 先將b的原值帶入本條語句執行,然後再...

有定義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自增 ...

設有語句int a 3,b 4c 5則表示式

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 ...