c語言問題a2,b0那麼ab怎麼看為什麼我覺

2021-03-04 00:14:18 字數 1763 閱讀 5501

1樓:

int a=2,b=0;

!baia&&b 首先運算:!dua = false = 0 && b=0 結果就zhi是0;

因為單目運算子!的

dao優先順序高於版&&,所以先運算 !a = false 就短路了,其實權這道題目無論如何都會有0的 ,因為關係運算子是 && 都為真是也是1 ,而現在b已經是0了,所以結果也為0

2樓:匿名使用者

優先順序順序

!a&&b == (!a)&&b

c語言題: 已知a=b=c=0;則++a||++b&&c++的值為?正確答案:1,0,0,1 要過程, 謝謝

3樓:匿名使用者

邏輯運算子並不是運算子兩邊的表示式一定都執行,就本例來說:

a = b = c = 0;

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

1、&&的優先順序比||高,注意優先順序是「結合優先順序」而不是「計算優先順序」。所以整個表示式可以看做++a||(++b&&c++)

2、對於一個||邏輯或來說,只要||左邊的表示式為假(即0)才執行||右邊的表示式(即本例中的++b&&c++),如果||左邊表示式已經為真,那麼會造成所謂的「短路」即||右邊的表示式不再執行

3、由於++a是先++再賦值,則a=1,由於||左邊表示式已經為真(非零),則短路,右邊表示式不執行

4、按上面描述,答案a = 1, b = 0, c = 0, d = 1

總結,&&運算子,除非該操作符左表示式為真,才執行右表示式,否則直接為假

||運算子,除非該操作符左表示式為假,才執行右表示式,否則直接為真

4樓:sr開得比板慢

a++ a=1

因為a=1 所以 | |後面的都忽略了..所以b=0, c=0而且整個式子的值是1

還不懂的話可以追問

5樓:憂傷海域

||c=0;

b=c;

a=b;

c=c++(c=0)用過後為c=1;

b=++b(b=1)用過後為b=0;

++b&&c++=0(1&&0為假值為0)a=++a(a=1)用過後為a=0;

0||0為真值為1.

表示式值為1,a=0,b=0,c=1.

6樓:石化終結者

thangkfasd fasdf

求解釋和答案!

7樓:匿名使用者

|int x=2,y=2,z=0,a;

a=++x||++y&&z++;

//上面等價於 x++; a= x || (++y&&z++); 由於x>0, 而右邊是 || 所以 不會執行 (++y&&z++)

printf(′′%d,%d,%d\n′′,x,y,z); //結果是 3,2,0

8樓:

a=++x||++y&&z++; //或運算||有短路功能。當第一個運算元++x的值3為非零時,不計算第二個運算元++y&&z++的值,直接返回真,因此,程式執行完成後,a=1,x=3,y=2,z=0。

9樓:

3,3,1;這時a==1。

自增問題:++在變數前是加1參加運算;在後是先運算後加1。到printf()時就是3,3,1了。

C語言問題,c0是什麼意思

在c語言中會遇到不同型別的資料進行運算,如果一個運算子的兩側資料型別不同,則先自動進行型別轉換,使兩者具有同一種型別,然後進行運算,規律為 1 運算的兩個數中有一個為float或double型,結果是double型,因為統一將所有float型資料都先轉換為double型,然後進行運算。2 如果int...

下列哪個是C 語言的合法的字元常量A0 B 054 Cx89 D092答案C請解釋一下

c 語言中的字元常量 通常指單引號括起來的內容,雙引號的為字串,根據這個定義,a排除。字元常量中可以用轉義序列來表示,如 t 表示退格,及用轉義符號 後加ascll碼來表示單一字元。注意此處ascll碼用八進位制或十六進位制表示,故開始無 0,排除b,d,還有八進位制中首字以o 歐 開頭,不是零,十...

如果a2 b2 c2 1,a b c 0,化簡或求值 a

解答 解 a2 1b 1c b2 1a 1c c2 1a 1b a2b a2c b2 a b2c c2a c2b a2b c2b a2c b2c b2a c2a a2 c2b a2 b2c b2 c2a 1 b2b 1 c2c 1 a2a 1a 1 b 1c a b c ab bc ac abc a...