1樓:
0——因為關係運算子是左結合的,a>b>c等價於(a>b)>c,由於a>b成立得1,而1>c不成立得0。
2樓:聽不清啊
設int a=3,b=2,c=1;,表示式a>b>c的值是 0,false
因為: 3>2為真,即為1,而 1>1為假,即false
c語言中int a=3,b=2,c=1執行if(a>b>c)a=b;else a=c 後a=1
3樓:匿名使用者
執行的時候bai,應該寫a>b && b>c ,你du這樣寫的結果就是:先執zhi行a>b,結果為真,在c語言裡dao真用1表示,就
版是算式權a>b結果為1,接下來,1>c,結果為假,所以a=c。
比如你寫死迴圈的時候寫while(2>1){}的時候是死迴圈,寫while(1)的時候也是死迴圈,明白了吧。
4樓:匿名使用者
if(a>b>c)a=b;else a=c
a>b>c這個演算法是從左到右的,也就是先算a>b成立,為1,然後再算1>c,此時c=1,所以if條件不成立,執行else語句。也就是a=c=1.即a=1.
5樓:冬日秋巡春逐鹿
int a=2,b=3, x=1;
if(a>2)
if (b>2)
x = 2 ;
else
x = 3;
printf(抄"%d",x);如果是襲這個的bai話,else對的du
是第zhi二dao個if.
6樓:落月
if(a>b&&b>c)
else
a=1;
c語言賦值表示式問題:若定義有語句:int a=3, b=2, c=1; 以下選項
7樓:匿名使用者
測試**:
#include "stdio.h"
#include "conio.h"
main()
測試平臺:
【dev_c++】 順利通過
結果:a=3,b=3,c=1
a=5,b=4,c=1
a=2,b=2,c=1
a=2,b=4,c=4
a=12,b=4,c=4
【tc2.0測試】
a=(b=4)=3;
(a=3*5)=4*3;
2句話有語法錯誤!
這個怎麼說呢?其實就是賦值等號從右往左看就可以了。主要的原因是【c的標準和編譯器】的實現不同吧。c89,99,11都有很多變化。而且不同的編譯器對一些處理是不同的。
比如一個函式的多個引數含有表示式的話,是從左往左呢還是從右往左計算都有差異的。
如:int fun1(int a,int b,int c)
呼叫的時候:fun1(i++,++i,i++) 不同的編譯器有不同處理。
再說大一點:不同的語言對同一功能也是不同的。
就說求模函式。 c,java,javascript ,vb,c#,c++,php,go等在負數求餘的時候選擇的處理是不一樣的。-7.
2%-3.8 -7.8%-3.
2,-7.8%-3.8,-7.
2%-3.2 樓主可以好好測試和琢磨下。
總結:這種題目總的來說就考試無厘頭的試題了。實際專案和開發中我們也會老老實實在分成多條語句來寫。考試的時候樓主就不要糾結了。
選a吧。不能將常量3賦值給一個表示式(非變數),b=4已經是個表示式了,既然是表示式就只有真假(即true和false)
樓主還記得這樣的考題嗎:
int a=3, b=2, c=1;
if(b=3)
else
所以本題,考試就選a!
樓主好運!
8樓:滄海雄風
a錯了,不能將3賦值給表示式,b=4已經是個表示式了,既然是表示式就只有真假(即0和1),
而 (a=3*5)=4*3 中的a=3*5 是賦值
9樓:匿名使用者
我在vc++6.0中貼上你的**,編譯執行都通過#include
int main()
結果2 4 4
10樓:匿名使用者
賦值語句的物件只能是變數,而不是表示式 b=4已經是個表示式。若換成a=b=3,就對了。
對於b,最後的值:a=2,b=2,c=1
對於c,整個語句是個賦值語句,裡面又巢狀了個b=4的賦值語句,所以,最後的結果是a=5,b=4,c=1
對於d,解法同c,a=5,b=4,c=4.
所以a 是錯誤滴。
c語言中, 已知int a=1,b=2 ,c=3 以下語句執行後a,b,c的值是??
11樓:思念不溼
應該是看成
if (a>b)
a=b;
b=c;
if只管到c=a ; 因為a=1,b=2,不滿足if,所以執行後面的,a=b=2,b=c=3,c還是3選b
12樓:uspta鄭州站
條件a>b不成立
所以c=a執行,所以
a=2,b=3,c=3
13樓:當上帝愛上天使
a,原文中a不大於b,則不滿足if條件~則不執行下列語句~所以abc的值不變
14樓:匿名使用者
沒學過都會 不是打擊你哦 都告訴你整形常量 a b c的值了 下面的式子 如果 a>b就執行 c=a;a=b;b=c c=a是把a的值給c 下面是一個意思 把b的值給a c的值給b 你自己看選什麼吧 a>b不滿足的時候就不執行語句 結果a=1 b=2 c=3
c語言 若有定義語句 int a=3,b=2,c=1; 一下選項中錯誤的賦值表示式是 a a=
15樓:匿名使用者
c語言中,賦值號左邊只能是變數,而不能是表示式,答案a中,最右邊的賦值號它左邊是一個表示式(因為b=4使用了括號)而不是變數,所以是錯的
16樓:匿名使用者
a 已經驗證過了,需要左賦值!
17樓:一劍傾心頂你
選a這個題要考慮運算子的優先順序,
+-*/優先於=
而且=運算子從右往左算
若有定義 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第三個 b c 1 先算c...
int a 1,b 2,c 3,d 0 if a 1 b2 if bc3 printfd d結果為什麼不是1,
第一句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語言中或運算只有在 之前的表示式不為真的時候在進行 後面的表示式計算,而上面是 之前的表示式...
int a 1,b 2,c 2,t while abct a a b b t cprintfd,d,d n ,a,b,c 為什麼輸出的是1,
首先看a再把a!第一次迴圈a版為1,然後1環的條件權成立 那麼執行迴圈體後a 2,b 1,c 1 第二次迴圈a 第三次迴圈a abai是1,1也為 true c 2 du所以第一次 zhiwhile的值為dao1,執行 之後內,a 2,b 1,c 1,繼續進行while判斷a容while的值也為1,...