c中已知a,b,c的值分別為1,邏輯表示式

2021-03-04 00:12:40 字數 3850 閱讀 6533

1樓:匿名使用者

'0'||(a++)&&(++b)||(c=3)相當於('0') || ((a++)&&(++b)) || (c=3)

'0'字元對應的ascii碼是48, 48是非0值, 表示true, 於是整個表示式返回true(1)

同時版, 或者運算||是短路運算子, 只要|權|左邊的表示式是true值那麼為了節省時間就直接返回true而不用計算右邊的表示式, 於是後面的(a++)&&(++b)和c=3都沒有被執行; 同理&&也是短路運算子, &&左邊只要為false就直接返回false而不計算右邊的表示式, a?b:c只要a是true就只計算b, 否則只計算c

c++:已知a、b、c的值為2、5、1,邏輯表示式'0'||(a++)&&(++b)||(c=3)

2樓:

||1。因為'0'是48,而&&的優先順序比||高,所以原式被解釋為專'0' || ((a++) && (++b)) || (c=3),'0'已經屬確定了整個表示式的值為1,所以第一個||右邊就不計算了,所以a、b、c的值沒有變化。

c++已知a=1,b=2.c=3 ,則表示式++a||-b&&++c 的值是()這個道題怎麼做

3樓:匿名使用者

根據運算子的優先順序,表示式等價於

(++a) || (-b) && (++c)在c/c++中 0為false,非0就是true,上面的表示式就等於true || true && true

所以最終的值就是true,如果按照整數輸出,則為1

4樓:匿名使用者

簡單你只要知道在c語言中0代表偽,非0代表真

把值代進去就可以了

結果為真(1)

5樓:匿名使用者

值吱吱吱自治組織組織重中之重這孩子=(1)

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

6樓:匿名使用者

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

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

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

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

7樓:sr開得比板慢

a++ a=1

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

還不懂的話可以追問

8樓:憂傷海域

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

9樓:石化終結者

thangkfasd fasdf

已知a=1,b=2,c=3,則表示式a*b&&(b++,!c)&&(a++,c++)的值是。該表示式運算過後,a=? ,b=? ,c=? 5

10樓:聽不清啊

該表示式運算過後,a=1 ,b=3 ,c=3因為 1*2的值非0,被認為是「真」

&&後面繼續計算:b++,!c

是一個逗號表示式,b變成了3,!c的值為0(因為c原值為非0,即「真」,取反後即為「假」),所以逗號表示式的值為「假」。

整個表示式的值已經確定,為「假」,後面總分不再運算。

所以,a=1 ,b=3 ,c=3

11樓:匿名使用者

首先得知道&&進行的是短路運算,如果運算子的左邊經計算後結果為假,則不會再計算右邊。

因a*b=2為真,接著計算(b++,!c),而(b++,!c)是一個逗號表示式,逗號表示式按從左往右計算,整個表示式的結果為最右邊那個表示式的結果。

所以,(b++,!c)經計算後為(2,0),逗號表示式的值是0,同時b為3,而已為假,不會再計算(a++,c++),因此,結果是表示式a*b&&(b++,!

c)&&(a++,c++)的值是0,該表示式運算過後,a=1,b=3,c=3。

12樓:三天打魚

看結果就知道了 執行了第一個括號之後就返回了 後面的括號沒有執行

第一個括號最後一個值是!c c邏輯取反運算 c是3 取反後是0 然後逗號表示式返回最後一個值 返回了0 前面的&&遇到0就直接返回結果了

13樓:

根據運算子的優先順序,表示式等價於

(++a) || (-b) && (++c)在c/c++中 0為false,非0就是true,上面的表示式就等於true || true && true

所以最終的值就是true,如果按照整數輸出,則為1

急!!c++.已知變數a,b,c是整型變數,且a=3、b=4、c=5,則表示式:!(a+b)+c-1 && b+c/2的值是?求詳解~

14樓:匿名使用者

答案為1。

詳解:!

(a+b)+c-1 && b+c/2

等價於(!(a+b)+c-1) && (b+c/2)計算機內部計算步驟(可以檢視彙編)

先算!(a+b)+c-1 ——>0+5-1——>4測試上一步專結果(結果為4),表屬達式為真。

再算b+c/2——>結果為6(注意4/2結果為2,因為都是整型,餘數丟掉)

測試上一步結果(結果為6),表示式為真。

最後,將結果1賦給整個表示式,即最後的結果。

#include

using namespace std;

int main()

15樓:匿名使用者

!(a+b)+c-1 = 0 + 5 - 1 = 4b+c/2 = 4 + 5 / 2 = 4 + 2 = 6!(a+b)+c-1 && b+c/2 = 4 && 6 返回的可能是左值 4

std::cout<回

顯示答4

16樓:磨溝山水

值為1本題為bai邏輯運算,根du據運算子號的優zhi先級可把該式dao子等效為( !(a+b)+c -1 )&&( b+c/2 )

優先回級排序:答()...... !、+、—、...... / ...... && (優先順序靠前優先計算)

分步解析:邏輯與左邊:1)先計算a+b=7 ; 2) !(a+b)=! 7 = 0 ; 3)0+c-1=4

邏輯與右邊:1)c/2=2; 2) b+2=64&&6(兩邊都為邏輯真值,相與亦為真值)

17樓:匿名使用者

!(a+b)+c-1&&b+c/2

=!(3+4)+5-1&&4+5/2

=0+5-1+2=6

已知在ABC中,角A,B,C的對邊分別為a,b,c,且 根號3 cosC cosA 1 求A的大小

題目是這樣的 2b 根號3 c cosa 根號3 acosc 求角a。解答如下 利用正弦定理,有 2sinb 3sinc cosa 3sinacosc,後得到 2sinbcosa 3sinccosa 3sinacosc,即 2sinbcosa 3sin c a 3sinb,cosa 根號3 2 從而...

在ABC中,A B C分別為內角,a,b,c分別為內角的對邊

a 2 2sina,b 2 2sinb,代入sina 2 sinc 2 sinasinb sinb 2sina 2 sinb 2 sinc 2 sinasinb根據正弦定理,a sina b sinb c sinca 2 b 2 c 2 ab 所以,cosc a 2 b 2 c 2 2ab 1 2c...

在ABC中,內角A,B,C的對邊分別為a,b,c,已知ac

b2 c2 a2 3 bc,cosa b 2 c 2 a2 2bc 3bc 2bc 3 2 解得a 6 acosb bcosa csinc,由正弦定理得sinacosb sinbcosa sincsinc,即sin a b sinc sincsinc,sinc 1,即c 2 b 3 故選 b 在 a...