1樓:在杜鵑谷跳倫巴的埃及狼
首先,"?"是c++中的三元運算子,是條件運算子。此題意思是,賦值a,b分別為3,5。
宣告c變數。如果a>--b為真,則輸出a++;否則輸出b--。然後判斷:
a=3
2樓:聽不清啊
執行比較3>4?
否,b--; 於是 b 變成3
a b 的值分別是 3 3 。
3樓:
c=(a>--b)a++:b--;是不是c=(a>--b)?a++:b--; ?
如果是的話,那運算順序是:
--b,故 b=4
a > --b(4), 故值為假,c=a++a++為4,故a = 4 則c = 4
如上所述:a、b、c均為4
4樓:匿名使用者
a=4b=3
您的提問(回答)過於簡略,請再豐富一下內容重新提交
5樓:
a的值為4,b的值為3。
**解釋:先是定義整型變數a、b、c,並給a賦予初值3,給b賦予初值5;接著,給c賦值於 (a>--b)的值,a的值為3,經--b運算後的b的值為4,所以(a>--b)為假,其值為0,所以c的值為0;然後,進行a++運算,a自加1得4;b--運算,b自減1得3。所以,a的值為4,b的值為3。
如果說最後一段**是 c=(a>--b)?a++:b--;那麼因為(a>--b)為假,所以先將b的值賦予c,c的值為4,再進行b--運算,得到b的值為3,而a的值不變。
此時a的值為3,b的值為3。
如有錯誤,請多原諒。
6樓:匿名使用者
應該是 c=(a >--b)?a++:b--;
結果是a=3;b=3;
有定義int a=3,b=4,c=5;執行完表示式a++>--b&&b++>c--&&++c後,a,b,c的值分別為( ) 怎麼來的?
7樓:匿名使用者
a++>--b是取a加1前的值3和b減1後的值3比大小,結果是假,所以&&的最終結果肯定是假,後面的執行都不繼續算了。所以a=4,b=3
8樓:匿名使用者
你要清楚&&的意思!它意味著「並且」。如果a++>--b不成立,則你就不用進行下面的運算了!a=3+1;b=4-1+1;c=5-1;結果就在這了!!
9樓:匿名使用者
a = 3,a++ = 3,先使用a,然後a自增
b = 4,--b = 3,b++ = 4
c = 5,c-- = 5,先使用c然後c自減,++c = 6
設有變數定義int a=3,b=5,c=10:下列表示式的值是( )(++a*b--
10樓:匿名使用者
a自增自減優先順序高 ++a 是4 ,乘以 b 是20,再除以2.0是10.0,再乘以10是100.0;
這種題也就考試出,實際開發敢這麼寫肯定被人鄙視
若已定義:int a=3,b=5,c=2;.則表示式c+!a
11樓:文明珠詩君
1、按照運算子優先順序,「==」的優先順序大於「=」,所以先計算b==c的值,應為
回b=2,c=3,所以這個表示式的
答值為假,也就是值為0.然後將b==c的值賦給a,那麼執行a=b==c之後,a=0;
2、第一個方式不正確,第二個左值不能為表示式,第三個正確,第四個左值不能為表示式
12樓:
c+!a
(c=2) + (!a = 0) < (b = 5) // 所有抄
不等於0的數值襲的!的值都bai是0, 0 的!值du是不為
zhi0的任意數
dao或者 true
=> 2 + 0 < 5
=> 2 < 5
=> true
13樓:鷹騁天下
最後的答案為 1 是不是
設int a=5,b=6,表示式(++a==b--)?++a:--b的值是
14樓:匿名使用者
結果為bai7。
條件表示式
du為:表
zhi達式1?表示式2:表示式3。先求解dao表示式內1,若其值為真(非容0)則將表示式2的值作為整個表示式的取值,否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。
先判斷++a==b--是否為真,++a表達的值為6,b--表達的值為6,兩者相等,為真。則將表示式++a的值作為整個表示式的取值,因為在此之前a的值已經自增變成6,再進行++a表示式的值為7。
15樓:匿名使用者
最後值為7,這是一個if語句,就是
int a=5,b=6;
if(++a==b--) ++a;
else --b;
++ar的規則
是先運算,所以括號中左值++a=6,a=6;
==的優先順序低版過--,所以先計算權b--b--的規則是先賦值,所以括號中右值b--=6,b=5;
左值6==右值6,即條件為真,執行++a,因為a值已是6, 所以加1操作後,
結果為 7
16樓:烏石
7,條件表示式條件為真,取值為++a;原來為6,執行++a後為7
int a=3,b=2,c=1; c=5?a++:b--; printf("%d\n",c) 輸出為什麼是3啊? 求大神指點
17樓:
因為c=5永遠是「真」,所以執行?後的a++。而a++是後++,要把a的值3賦給c後a才變為4。
18樓:單屏安
c=5這個條件為假,應該執行b--,得b=1,但是最後輸出為c,c不變,應該是c=1
19樓:飛向夢想飛向未來
c語言提供一種特殊的運算子——逗號運算子。用它將兩個表示式連線起來。如:
3+5,6+8
稱為逗號表示式,又稱為「順序求值運算子」。逗號表示式的一般形式為表示式1,表示式2
逗號表示式的求解過程是:先求解表示式1,再求解表示式2。整個逗號表示式的值是表示式2的值。例如,上面的逗號表示式「3+5,6+8」的值為14。又如,逗號表示式
a=3*5,a*4
對此表示式的求解,讀者可能會有兩種不同的理解:一種認為「3*5,a*4」 是一個逗號表示式,先求出此逗號表示式的值, 如果a的原值為3,則逗號表示式的值為12,將12賦給a, 因此最後a的值為12。另一種認為:
「a=3*5」是一個賦值表示式」,「a*4」是另一個表示式,二者用逗號相連,構成一個逗號表示式。這兩者哪一個對呢?賦值運算子的優先順序別高於逗號運算子, 因此應先求解a=3*5(也就是把「a=3*5」作為一個表示式)。
經計算和賦值後得到a的值為15,然後求解a*4,得60。整個逗號表示式的值為60。
20樓:匿名使用者
加個括號你就明白了
c = (5?a++:b--)
因為5>0 所以 c =a ++ = 3;
為什麼int a3和int a3不能正確二維陣列
嘿嘿 你這樣定義的話 編譯器無法識別第一位的個數 陳學陽 int a 3 2 這個語句語法是錯的,錯在二維陣列的初始化。初始化值要放在花括號裡。int a 3 二維陣列宣告,其中一維大小不定。陣列的初始化不要求全部元素都賦值,所以 int a 3 初始化 a 0 0 等於6 int a 3 初始化 ...
如int a 3,a a a a最後我的值為A3 B0 C9 D 12未詳細解釋
賦值運算子的優先順序低於算術運算子,結合性為從右向左。所以 a a 先計算,得到 9 然後是 a 9 此後 a的值為 6 然後是 a a 也即 a a a 6 6 12 int a 3,a a a a 這個a 3後面用逗號編譯過不去的,換成分號後,拆解後面的式子。a a a a 等效於a a a 此...
一道C語言的題目定義int a 5,b則執行表示式b
1級優先順序 左結合 圓括號 下標運算子 指向結構體成員運算子 結構體成員運算子。2級優先順序 右結合 邏輯非運算子 按位取反運算子 字首增量運算子 字首減量運算子 正號運算子 負號運算子 型別 型別轉換運算子 指標運算子 地址運算子 sizeof長度運算子。3級優先順序 左結合 乘法運算子 除法運...