設int a 0,b 1表示式 ab 後b的值是什麼

時間 2021-08-16 11:05:24

1樓:匿名使用者

優先順序問題

!的優先順序最高,其次++,最後才||

又因為!a==1 ,||在c語言中,只要||前面的值為1,就不再執行||後面的

所以它不會執行++b b因此沒有增值,還是原來的值,b=1

2樓:匿名使用者

短路求值問題,||的結合性是從左到右的,因此會先計算!a的值,由於a==0,所以!a不等於0,因此不必再計算後面的++b了,因為到此整個表示式的結果已經可以確定了,所以b值沒有改變,還是1.

請到以下頁面檢視短路求值的詳細解釋

3樓:悲劇故土

b=1;

具體操作是#include

#include

int main()

然後輸出是1 1 0;

至於為什麼呢,是因為在c中,對於||或運算子來說,如果它前面乙個表示式為真的話,它就不會執行後乙個語句,從而直接判斷這個表示式是真!!

因為表示式(!a||++b)中!a為真,所以++b這個語句沒有執行,這個問題經常會被忽略,建議看看《c語言解惑》這本書,對你有很大的好處!

4樓:叔淑蘭本乙

這個問題涉及運算子優先順序的問題。

首先,.++(自增)運算子的優先順序要高於||(邏輯或),所以要先進性自增(++)運算,也就是++a,此時a=1,

然後輪到||運算子了,邏輯或是雙目運算子,它的規則是如果第乙個運算元是非0,那麼整個的運算結果就是真(非0),也就是不會進行第二個運算元的運算,即++b是不會參與運算的,此時b還是5.

然後再執行,a+b,基於上面兩步,那麼a+b=1+5=6over,希望你明白了。

設int a=5,b=6,表示式(++a==b--)?++a:--b的值是

5樓:匿名使用者

結果為bai7。

條件表示式

du為:表

zhi達式1?表示式2:表示式3。先求解dao表示式內1,若其值為真(非容0)則將表示式2的值作為整個表示式的取值,否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。

先判斷++a==b--是否為真,++a表達的值為6,b--表達的值為6,兩者相等,為真。則將表示式++a的值作為整個表示式的取值,因為在此之前a的值已經自增變成6,再進行++a表示式的值為7。

6樓:匿名使用者

最後值為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

7樓:烏石

7,條件表示式條件為真,取值為++a;原來為6,執行++a後為7

int a=5,b=2;float c=32.8 表示式 b*(int)c%a的值

8樓:匿名使用者

(int)c = 32,

2*32 = 64

64%5 =4

int a=1, b=0, c=1; 計算表示式 !b||++a&&++c的值後,c的值是

9樓:匿名使用者

計算!b後得到true

後面的表示式應該沒計算

c的值還是1

大學c語言問題 int a=0,b=1,c=1,d=3 表示式++b&&--c||--a的值是多少?變數a,b,c的值分別是多少?為什麼?

10樓:gta小雞

先計算++b,為2,再計算--c,為0,2&&0為0;然後計算--a,為-1,0||-1為1。所以表示式為1,a,b,c分別為-1,2,0.

11樓:匿名使用者

先計算++b,b = 2 不為0 ,然後計算--c c = 0,不滿足邏輯運算關係,所以還要計算--a,a=0.

b = 2 , c = 0, a = -32768.

c語言中,設int a,b,c;執行表示式a=b=1,a++,b+1,c=a+b--後,a,b和c的值分別是 ?

12樓:葉子離去是紀念

a=b=1 //此時a值為1,b值為1;

a++ //a自增為2b+1 //不對b的值產生任何影響c=a+b-- //首先,b--優先運算,專運算結果是1,然後b自減

屬為0,此時a值為2,再算c,所以c值 為 a+(b--)值為2+1=3

13樓:匿名使用者

a=b=1,//a=1 b=1 c=0a++, //a=2 b=1 c=0b+1, //a=2 b=1 c=0c=a+b-- //a=2 b=0 c=3//----------------------區別(i++)和(++i)-------給你個例回子

int i=1;

int y=i++;// y=1 i=2 //i--同理答int i=1;int y=++i;// y=2 i=2 //--i同理

14樓:匿名使用者

a=1 -> a++ (a=2)

b=1 -> b+1 (b=1) -> b-- (b=0)

c=a+b=2+1=3

假定int a 0,b 1,表示式a

節俊智雲旋 最後值為7,這是一個if語句,就是 inta 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操作...

設a 5,b 2,則表示式“ ab”的值是A 1 B 0 C 1 D

寧金芳 1 設int型變數x有初始值3,則表示式x 5 10的值.首先,x 是後置加加,先使用變數,然後變數再加1.所以,x 先使用變數的值3與5相乘,得到15 由於x為int型變數,所以,15 10之後只取整數部分1.因此,答案選 b 1.2 x 5 y x x 首先,x 是後置加加,先使用變數,...

若有定義 int a 3,b 2,c 1並有表示式 a b,abc,b c 1,c 1,則表示式值相等的是哪兩個

你是誰會想 表示式一值為1,表達二好象有錯誤,不能那樣表示,應寫成a b b c,這樣寫二式為真,值為1,三式且符號兩邊都非零,都為真,所以三式值為2,四式為賦值語句,最終結果是c的值為2 湯福書屋 第一個 a b 輸出結果為 1 第二個 a b c為真,3 2為真 即為1,但1 1為假 即為0第三...