1樓:匿名使用者
優先順序問題
!的優先順序最高,其次++,最後才||
又因為!a==1 ,||在c語言中,只要||前面的值為1,就不再執行||後面的
所以它不會執行++b b因此沒有增值,還是原來的值,b=1
2樓:匿名使用者
短路求值問題,||的結合性是從左到右的,因此會先計算!a的值,由於a==0,所以!a不等於0,因此不必再計算後面的++b了,因為到此整個表示式的結果已經可以確定了,所以b值沒有改變,還是1.
請到以下頁面檢視短路求值的詳細解釋
3樓:悲劇故土
b=1;
具體操作是#include
#include
int main()
然後輸出是1 1 0;
至於為什麼呢,是因為在c中,對於||或運算子來說,如果它前面乙個表示式為真的話,它就不會執行後乙個語句,從而直接判斷這個表示式是真!!
因為表示式(!a||++b)中!a為真,所以++b這個語句沒有執行,這個問題經常會被忽略,建議看看《c語言解惑》這本書,對你有很大的好處!
4樓:叔淑蘭本乙
這個問題涉及運算子優先順序的問題。
首先,.++(自增)運算子的優先順序要高於||(邏輯或),所以要先進性自增(++)運算,也就是++a,此時a=1,
然後輪到||運算子了,邏輯或是雙目運算子,它的規則是如果第乙個運算元是非0,那麼整個的運算結果就是真(非0),也就是不會進行第二個運算元的運算,即++b是不會參與運算的,此時b還是5.
然後再執行,a+b,基於上面兩步,那麼a+b=1+5=6over,希望你明白了。
設int a=5,b=6,表示式(++a==b--)?++a:--b的值是
5樓:匿名使用者
結果為bai7。
條件表示式
du為:表
zhi達式1?表示式2:表示式3。先求解dao表示式內1,若其值為真(非容0)則將表示式2的值作為整個表示式的取值,否則(表示式1的值為0)將表示式3的值作為整個表示式的取值。
先判斷++a==b--是否為真,++a表達的值為6,b--表達的值為6,兩者相等,為真。則將表示式++a的值作為整個表示式的取值,因為在此之前a的值已經自增變成6,再進行++a表示式的值為7。
6樓:匿名使用者
最後值為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
7樓:烏石
7,條件表示式條件為真,取值為++a;原來為6,執行++a後為7
int a=5,b=2;float c=32.8 表示式 b*(int)c%a的值
8樓:匿名使用者
(int)c = 32,
2*32 = 64
64%5 =4
int a=1, b=0, c=1; 計算表示式 !b||++a&&++c的值後,c的值是
9樓:匿名使用者
計算!b後得到true
後面的表示式應該沒計算
c的值還是1
大學c語言問題 int a=0,b=1,c=1,d=3 表示式++b&&--c||--a的值是多少?變數a,b,c的值分別是多少?為什麼?
10樓:gta小雞
先計算++b,為2,再計算--c,為0,2&&0為0;然後計算--a,為-1,0||-1為1。所以表示式為1,a,b,c分別為-1,2,0.
11樓:匿名使用者
先計算++b,b = 2 不為0 ,然後計算--c c = 0,不滿足邏輯運算關係,所以還要計算--a,a=0.
b = 2 , c = 0, a = -32768.
c語言中,設int a,b,c;執行表示式a=b=1,a++,b+1,c=a+b--後,a,b和c的值分別是 ?
12樓:葉子離去是紀念
a=b=1 //此時a值為1,b值為1;
a++ //a自增為2b+1 //不對b的值產生任何影響c=a+b-- //首先,b--優先運算,專運算結果是1,然後b自減
屬為0,此時a值為2,再算c,所以c值 為 a+(b--)值為2+1=3
13樓:匿名使用者
a=b=1,//a=1 b=1 c=0a++, //a=2 b=1 c=0b+1, //a=2 b=1 c=0c=a+b-- //a=2 b=0 c=3//----------------------區別(i++)和(++i)-------給你個例回子
int i=1;
int y=i++;// y=1 i=2 //i--同理答int i=1;int y=++i;// y=2 i=2 //--i同理
14樓:匿名使用者
a=1 -> a++ (a=2)
b=1 -> b+1 (b=1) -> b-- (b=0)
c=a+b=2+1=3
假定int a 0,b 1,表示式a
節俊智雲旋 最後值為7,這是一個if語句,就是 inta 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操作...
設a 5,b 2,則表示式“ ab”的值是A 1 B 0 C 1 D
寧金芳 1 設int型變數x有初始值3,則表示式x 5 10的值.首先,x 是後置加加,先使用變數,然後變數再加1.所以,x 先使用變數的值3與5相乘,得到15 由於x為int型變數,所以,15 10之後只取整數部分1.因此,答案選 b 1.2 x 5 y x x 首先,x 是後置加加,先使用變數,...
若有定義 int a 3,b 2,c 1並有表示式 a b,abc,b c 1,c 1,則表示式值相等的是哪兩個
你是誰會想 表示式一值為1,表達二好象有錯誤,不能那樣表示,應寫成a b b c,這樣寫二式為真,值為1,三式且符號兩邊都非零,都為真,所以三式值為2,四式為賦值語句,最終結果是c的值為2 湯福書屋 第一個 a b 輸出結果為 1 第二個 a b c為真,3 2為真 即為1,但1 1為假 即為0第三...