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