int a,b,c a b c 0 abc為什麼a,c是1而b是0是a為

2021-03-29 13:01:32 字數 3322 閱讀 6148

1樓:匿名使用者

a++是先判斷a的值,自加運算等所有條件判斷完畢才進行。因為a=0,所以條件不成立。

因為計算機覺得a++都已經不成立了那麼&&後面的內容成不成立都無所謂了,就沒有去處理它,b++被華麗麗的忽視了。接著是||,因為前面部分是假,所以還要看看c++是不是真才能判斷條件的真假。同a++一樣,c++也為假.

最後執行自加,a,c變成了1. b++因為沒有被計算機執行,所以還是0.

2樓:haoabcd木

如果有a&&b,判斷到a=0,那麼就不會再去判斷b,因為結果已經確認是0了

為什麼a和c等於1而b等於0

3樓:匿名使用者

a++是假了 b++就不執行了,因為已經是假了就不用運算與了,但是後面的或符號需要運算。

4樓:孤獨o野狼

a++&&b++||c++的執行順序是 先計算a++&&b++的值,如果為false,再計算

c++; a++的值為0,a++&&b++為false, 所以計算c++

5樓:匿名使用者

a++&&b++||c++ 為假, 因為右加加要等這條語句執行完後才會自增。

此時 a,b,c都是0,所以式子為假。

int a=b=c=0; a++&&b++||c++;求 a,b,c 最好有 過程分析

6樓:阿瑞斯ares啊

a = 1, b = 0, c = 1

語句中a,b,c都是後自加, 所以是先進行表示式的運算, 再進行後自加, a++ && b++這部分時, a=0, 所以會發生內短路, 不會容執行b++,整個a++&&b++都為假 然後會執行判斷c++的值,

過程中只會對a和c進行後自加運算, 所以a和c為1, b=0

7樓:莊政警

結果是a=1,b=0,c=1

&&的優先順序來比||高,先做源a++&&b++a++返回a當前的值0, a++為假,那麼a++&&b++就必然為假,於是b++就沒必要執行,被忽略,然後求0||c++, 於是c++被執行

綜上就是a++和c++被執行, b++被忽略最終a=1,b=0,c=1

8樓:匿名使用者

|||首先,根據邏輯復符制

號優先順序,公式改寫成:bai(a++&&b++)||c++。

然後,用dua在「

zhi++」之前的值作為(a++)這個表dao達式的結果返回,即0,被轉換成邏輯假,這時a變成1了,但是a++表示式的結果是0。因此根據「&&」的短路徑求值原則,(a++&&b++)中的表示式b++不會求值,即b仍然是0,表示式(a++&&b++)結果為邏輯假。

最後,根據「||」多路徑求值原則,左邊表示式邏輯假,故而對表示式c++求值,故而c的值變成1。

最終結果是:a=1,b=0,c=1.

輸出值是 1,0,1, 0 求實解釋 最後一句

9樓:匿名使用者

printf是從最後乙個引數開始的,a++ a 還當前是0 &&b++ 不會執行了,因為a++是假,那麼a++&&b++也就是假了,然後是或上c++ 也是假, 所以,最後乙個數是0, a++過一次了,a是1,b沒加過是0 c++ 了 是 1

執行int a,b,c; a=b=c=0; ++a||++b&&++c;後a,b,c值分別為?

10樓:匿名使用者

a=1,b=0,c=0

當執行++a||++b&&++c的時候,判斷++a,先給a加1變為1,判斷++a為true,讀取邏輯運算子為「或」則停止後面的判斷

11樓:匿名使用者

a=1;b=0;c=0,因為++a為真,後邊的不執行!

12樓:匿名使用者

a = 1

b = 0

因為 或運算中的 a 為真, 所以不執行後邊的表達試了

int a,b,c; a=b=c=1; ++a‖(++b &&++c);求a,b值

13樓:匿名使用者

a\b\c初是1 後面的邏輯表示式本來是先算&&再算|| 但是最終還是算||,||中當左邊表示式為真時就不會計算右邊表示式所以只運算++a,所以結果是a=2,b=1,c=1

a=b=c=0;a++&&++b||c++;後,a的值為b的值為c

14樓:匿名使用者

a=b=c=0;a++&&++b||c++;

a=b=c=1, a和c是運算後+1, b是+1後運算

所以a++&&++b||c++=0&&1||0=0||0=0

大學c語言問題 執行「int a,b,c;a=b=c=1;--b&&++c||++a;"後,變數a

15樓:我才是淡淡

|,首先你要把整個結構弄清楚,&&的優先順序高於||,所以上面的式子等價於(--b&&++c)||(++a),

先看(--b&&++c),--b導致b的值為0,所以(--b&&++c)必然為假,所以c就不會加一了,c的值還是1。然後(--b&&++c)為假並不能直接斷定(--b&&++c)||(++a)的真假,因為||需要兩邊為假才是假,所以需要判斷右邊的(++a),這裡a自加一次變為2,(++a)為真,整個表示式(--b&&++c)||(++a)的值為真。最後a,b,c的值分別是2,0,1

16樓:

你的**是順序結構;

所以執行的時候是先對a進行賦值,也就是a=1;

至於後面對b和c的運算,並不能改變a的值。

第一步 int a,b,c;

第二步 a=b=c=1;

第三步 --b&&++c||++a;//這個地方只有++a能改變啊的值 b和c對a的值不影響

第四步輸出a的值;

17樓:益達是誰

這判斷式a,b,c應該是2-0-2啊,怎麼是201,還有我想問這式子對嗎

18樓:匿名使用者

答案應該是2 1 1

C已知abc的值為1,邏輯表示式0abc

1。因為 0 是48,而 的優先順序比 高,所以原式被解釋為專 0 a b c 3 0 已經屬確定了整個表示式的值為1,所以第乙個 右邊就不計算了,所以a b c的值沒有變化。c 中 已知a,b,c的值分別為2 5 1,邏輯表示式 0 a b c 3 的值是 a,b,c的值分別是 0 a b c 3...

直線方程的一般形式為AxByC0中A,B,C表示什麼意

表示三個常數 如 3x 2y 6 0 中,a 3 b 2 c 6 直線的一般式方程ax by c 0中,a b c 代表什麼?是座標點嗎?還是什麼數?這三個是常數,不是座標,座標點是方程中的 x,y 但 c a,0 和 0,b a 分別表示了這條直線與x軸和y軸的交點。直線的一般式方程ax by c...

語句whilee中的條件e等價於e0為什麼

是非,baie非0,是真值,du所以 e是zhi假,為0 並不是e 0,而是 daoe 0。while e 中 版,e等價於 權e true 相當於先判斷e是否為真,然後再取反。while e 中,實際迴圈執行的條件是e為假。稱為邏輯非運算子。執行邏輯 not 操作,用來逆轉運算元的邏輯狀態。如果條...