c語言設a 2,b 0,c則執行c b a語句後

時間 2021-05-05 17:48:51

1樓:匿名使用者

&&的特點是,只要左右表示式有一個為0,則整個表示式為0,並且&&的運算順序是從左向右,

所以如果&&的左表示式為0,則不會再計算右表示式,直接將整個表示式返回0,這個又叫&&短路

所以當b=0時,不會再處理a--,直接b&&a--返回0了,所以a值不變

而當b=1時,還要再根據右值是否為0才能判斷整個表示式的值,所以會再處理a--,所以a值為1

2樓:匿名使用者

&&運算子的短路效應

我們知道&&運算子相當於邏輯運算子 且

也就是說,只有&&兩側都為真(也就是非零)時,這個表示式的結果才為真(一般預設是1)

那麼假如&&左側就是假(0)了,那麼整個表示式可定就是假(0)了,右側的當然也就沒有必要去判斷、執行了

類似的 || 運算子也有同樣的效果

3樓:

首先, 邏輯與運算子&&有一個特徵叫 「短路求值」,即從左往右運算的過程中,如果表示式的值已經確定,則不會計算剩下的表示式。

c=b && a-- 這個表示式中 b的表示式如果不成立,即&&的前半部分已經為假,整個表示式的值也是為假,所以後面的a--的語句就沒有執行。

相反 b的表示式成立的情況下, &&的前半部分為真,整個表示式的值還不能確定,還依賴於a--的值。所以a--的語句執行後就a就等於1了。

除了&&,邏輯或運算子 || 也有這樣的特點

4樓:匿名使用者

c=b&&a-- 因為b=0,是false,不執行&&後面的a--,所以a沒變

c=b&&a-- 因為b=1,是true,執行&&後面的a--,執行後,a自減1,所以a=1

int a=2,b=0,c=0;執行語句c+=b&&a--後a的結果為?c的結果為?

5樓:

#include

int main()

執行結果為:

a=2c=0

分析如抄下:襲

因為c+=b的邏輯值為0,那麼不管a--是真還bai是假du,整個表示式的值都是zhi假,而c語言的dao處理是直接略過a--了,即不執行a--操作了,所以a的值輸出還是2。

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

6樓:我才是淡淡

|,首先你要把整個結構弄清楚,&&的優先順序高於||,所以上面的式子等價於(--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

7樓:

你的**是順序結構;

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

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

第一步 int a,b,c;

第二步 a=b=c=1;

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

第四步輸出a的值;

8樓:益達是誰

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

9樓:匿名使用者

答案應該是2 1 1

C語言 假定a 1,b 2,c 3,d

int a 1,b 2,c 3,d 4 if a 2 b 1 c 2 a 2表示賦值2給a,同時檢查結果2是不是真,當然是,所以又檢查b 1,b 1 同上,結果也是真,所以執行c 2 if c 3 d 1 a 5 c 2!3 d 4 1,所以不執行a 5 printf d,d,d,d n a,b,c...

設S為ABC的面積S根號3 4(a 2 b 2 c 2)求C的大小,和sinA sinB的最大值

餘弦定理有 a 2 b 2 c 2 2abcosc,代入s,有 s 根號3 4 2abcosc 同時,s 1 2absinc,所以,根號3 4 2abcosc 1 2absinc,tanc 根號3,所以c 60度。sina sinb sina sin 120 a 2sin60cos a 60 這步是...

c語言若有定義語句int b2則表示式b《2b 的值是

我感覺這題答了以後 採納率又會下來。2 的二進位制形式 0010 b 2 1000 8 3 b 3 2 1 所以最後的表示式的值就是 8 至於你說的為什麼3 b 1.首先你得分清 與 運算。是按位或 就是你說的 011 010 後結果為 011 而在 的世界裡,只認兩個值 0 和 1。即真和假 所有...