1樓:充碧萱閆邃
條件運算子的結合方向為「自右向左」
a>b?a:cb?a:(c 那麼結果就很顯然了 結果為:(c=)3 2樓:劉玥說載 可以看成是計算a>b?a:( cb不成立,取:後面的表示式即c c,所以值為c,3 3樓:剛珉曲材 應該是3 如果a大於b那麼就是a,否則如果c小於d就是c,否則為d 已知a=1,b=2,c=3,則表示式a*b&&(b++,!c)&&(a++,c++)的值是。該表示式運算過後,a=? ,b=? ,c=?
5 4樓:聽不清啊 該表示式運算過後,a=1 ,b=3 ,c=3因為 1*2的值非0,被認為是「真」 &&後面繼續計算:b++,!c 是一個逗號表示式,b變成了3,!c的值為0(因為c原值為非0,即「真」,取反後即為「假」),所以逗號表示式的值為「假」。 整個表示式的值已經確定,為「假」,後面總分不再運算。 所以,a=1 ,b=3 ,c=3 5樓:匿名使用者 首先得知道&&進行的是短路運算,如果運算子的左邊經計算後結果為假,則不會再計算右邊。 因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。 6樓:三天打魚 看結果就知道了 執行了第一個括號之後就返回了 後面的括號沒有執行 第一個括號最後一個值是!c c邏輯取反運算 c是3 取反後是0 然後逗號表示式返回最後一個值 返回了0 前面的&&遇到0就直接返回結果了 7樓: 根據運算子的優先順序,表示式等價於 (++a) || (-b) && (++c)在c/c++中 0為false,非0就是true,上面的表示式就等於true || true && true 所以最終的值就是true,如果按照整數輸出,則為1 c++已知a=1,b=2.c=3 ,則表示式++a||-b&&++c 的值是()這個道題怎麼做 8樓:匿名使用者 根據運算子的優先順序,表示式等價於 (++a) || (-b) && (++c)在c/c++中 0為false,非0就是true,上面的表示式就等於true || true && true 所以最終的值就是true,如果按照整數輸出,則為1 9樓:匿名使用者 簡單你只要知道在c語言中0代表偽,非0代表真 把值代進去就可以了 結果為真(1) 10樓:匿名使用者 值吱吱吱自治組織組織重中之重這孩子=(1) 急!!c++.已知變數a,b,c是整型變數,且a=3、b=4、c=5,則表示式:!(a+b)+c-1 && b+c/2的值是?求詳解~ 11樓:匿名使用者 答案為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() 12樓:匿名使用者 !(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 13樓:磨溝山水 值為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(兩邊都為邏輯真值,相與亦為真值) 14樓:匿名使用者 !(a+b)+c-1&&b+c/2 =!(3+4)+5-1&&4+5/2 =0+5-1+2=6 c語言:當a=5,b=4,c=2時,表示式a>b&&b>c的值是? 15樓:育知同創教育 c語言:表示式a>b&&b>c的值是首先分析a>b是成立的,b>c也是成立的,所以值為true 16樓:匿名使用者 1,a>b為真,b>c為真,&&兩邊都為真時結果為真 c語言環境中,設a=1,b=2,c=3,d=4,則表示式:a>b?a:c>d?a:d的結果為( ) 17樓:lovefree隨風 表示式:a>b?a:c>d?a:d的結果為4。 解析:1、由於c語言的相同優先順序運算子運算規則為從左至右依次運算,而條件運算子具有右結合性,所以表示式:a>b? a:c>d?a: d優先運算c>d?a:d,得出的結果為4; 2、再運輸a>b?a:4,得出的結果為4。 所以最終得出的結果為4。 擴充套件資料表示式為:表示式1?表示式2:表示式3 先求解表示式1, 若其值為真(非0)則將表示式2的值作為整個表示式的取值,否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。 例如:1、max=(a>b)?a:b,就是將a和b二者中較大的一個賦給max。 2、min=(a條件運算子具有右結合性 當一個表示式中出現多個條件運算子時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算子的運算物件。例如: 18樓:匿名使用者 結果是4,一會寫出過程 「?:" 這是一個三目運算子,以 「c>d?a: d」這個**為例,程式會首先判斷「c>d」是否為真,若為真則執行冒號前的語句,即其結果為」a「的值;若為假,則執行冒號後的語句,即其值為"d"的值。 一般遇到這樣的題要拆分著做,首先判斷最左邊的「a>b」,這個結果為假,根據條件判斷運算子的性質,所以接下來執行第一個冒號後的語句「c>d?a:d」,接著判斷「c>d」,結果為假,所以最終取值為第二個冒號後的值,即為d的值,也就是4。 19樓:匿名使用者 答案為4,「a?b:c」是從右向左執行的,也就是說a為真的話,這個式子就可以看做b,否則可以看做c;c大於d麼,不是,則變成了a>b? a:d,a大於b麼,不是,則為d,d=4. 20樓:匿名使用者 答案是4.三目運算子就可求得 c語言題: 已知a=b=c=0;則++a||++b&&c++的值為?正確答案:1,0,0,1 要過程, 謝謝 21樓:匿名使用者 邏輯運算子並不是運算子兩邊的表示式一定都執行,就本例來說: 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 總結,&&運算子,除非該操作符左表示式為真,才執行右表示式,否則直接為假 ||運算子,除非該操作符左表示式為假,才執行右表示式,否則直接為真 22樓:sr開得比板慢 a++ a=1 因為a=1 所以 | |後面的都忽略了..所以b=0, c=0而且整個式子的值是1 還不懂的話可以追問 23樓:憂傷海域 ||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. 24樓:石化終結者 thangkfasd fasdf 是 的4倍,則12個 因此1個 6個 所以 2個 6個 1 3 由題可得 1 4 3 2 所以原式 1 2 3 2 1 3 如果 則 的結果等於 a 2 b 4 c 8 d 16 假設 1 那麼 1 1 2 所以 0.25 所以 0.125 2 0.125 16選d 8 8 16 所以 16,應選d... 第一句if。a 1和b 都為真du。所以執行zhiif b 0 c 3 dao但是b 2先判斷b是否為2,後b自加1,所以內b 3,答案1,3,3 c不減1是因為if b 0 c 3 這個容if是或運算,在c語言中或運算只有在 之前的表示式不為真的時候在進行 後面的表示式計算,而上面是 之前的表示式... 1a b c 1,1 a 2 b 2 c 2 2,2 a 3 b 3 c 3 3 3 由 1 所以a 2 b 2 c 2 2ab 2bc 2ca 1再根據 2 所以a 2 b 2 c 2 ab bc ca 5 2根據a 3 b 3 c 3 3abc a b c a 2 b 2 c 2 ab bc c...如果那多少,如果,,,則的結果等於A2B4C8D16?
int a 1,b 2,c 3,d 0 if a 1 b2 if bc3 printfd d結果為什麼不是1,
已知a b c 1 a 2 b 2 c 2 2 a 3 b 3 c 3 3求abc的值求a 4 b 4 c