1樓:匿名使用者
因為a>b為真所以a>b=1,而1不可能大於1,所以a>b>1為假,所以a>b>1=0,導致&&後的語句不執行,所以c=0,a=3,b=2,所以a+b+c=5
2樓:寒茗
不懂那個表示式是什麼意思
c語言中。int a=1,b=0,c=1; 執行語句 !b||++a&&++c 後,a,b,c
3樓:
或運算,而且是左結合,!b為真,整個表示式就為真了,不再繼續運算,也就是++a和++c沒有運算,表示式的結果就出來了。
4樓:匿名使用者
|後首先根據運算子優先順序和結合性。((!
b))||((++a)&&(++c))
然後先算!b,此時(!b)=1,為true,於是不需要專算||後的內容了。屬
因為:true||任意表示式=true。
注意,運算子優先順序不代表計算優先順序。
如果你把b=1 結果就是212
5樓:卿楓凌
對於!b||++a&&++c;按照規bai
定, 要先計du算 && (&&的優先順序zhi比||高)也就是需要計算dao出 ++b和c++;
但是按專照優化, 只要計算出 a>0 就可屬以了,不需要計算出 ++b和c++,「||」在這裡起到了短路的功能(短路就是,當第一條表示式能決定整條表示式的結果,那麼後面的語句都不執行!),這也叫做布林法則,給你推薦一本書叫做「c語言解惑」。望採納
c語言題目 1.若 int a=6,b=0,c=3,則表示式a&&b//b-c的結果是() 2.表示式「b」+3表示的字元是()
6樓:匿名使用者
1、計算後可得該式等價於(6&&0)||-3,由於計算機中0為假,非0為真,所以整個表示式的值為真
2、表示式'b'+3表示的字元是'e'
c語言 假定int a=3,b=2 c=1 表示式(c==a>c)+(a/b/2.0)的值是多少
7樓:匿名使用者
分析:首先(c==a>c):右結合。因為c=1,a=3,因此,a>c返回1,c==1返回1
然後,a/b/2.0,左結合。a/b,結果商為1,1/2.0的結果是0.5,1+0.5=1.5
最終結果1.5
8樓:匿名使用者
可以寫程式執行一下
#include"stdio.h"
main()
執行一下是1.500000
假定變數a=1,b=2,c=3,則表示式:c==b++>a&&a++,a+b的值 求詳解
9樓:匿名使用者
由運算bai符優先順序可知
原表達du式等效於zhi
(c==(b++>a))&&a++,a+b又由&&運算子的dao短路效應可內知子表
達式(c==(b++>a))&&a++中,&&右側的a++未被執行容又由逗號運算子是順序點這一點,此間所有***均會發生,所以只有b值自增了一
所以整個逗號表示式的值為4(a+b==1+3)
10樓:匿名使用者
c=3因為c從來沒有被賦值
整個表示式的值是4
因為 逗號運算子 ,結果為 a+b,即4
C語言中表示式1表示式2表示式3為什麼不先算表示式2急急急
在c語言中,或 的優先順序低於與 的優先順序,也就是說,無論表 達式1,表示式2,表示式3的值是真或者是假,都是做以下關係運算 表示式1的值 表示式2的值 表示式3的值 和他們的具體值無關。你的說法是不對的,因為此邏輯表示式是先求出 右側的值,然後再與 左側的值作關係或運算,如果想先算前面可以在前兩...
C語言中int a 9,b 5那麼表示式b(a
b a 4 b a 1,把4賦值給a a 42 把a賦值給b b a3.相除 結果就時1了 其實不管a是多少 0除外 結果都是1 inta 9,b 5 這句是給a,b賦初值 b a 4 b a 在這句中a 4是給a重新賦值了,此時a 4,所以b a 4b a 4 b a a 4 b 4 4 4 1 ...
若a3,b2,c1則關係表示式abc的值
對了a b 為true 也就是1 1 c值為真 若a 3,b 2,c 1則關係表示式 a b c 的值為真 vara,b,c,d integer f boolean begin a 3 b 2 c 1if a b then d 1 if d c then f true else f false en...