c語言設inta3,b2,c1,表示式abc的值是多少

2021-03-03 20:42:56 字數 3229 閱讀 8327

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,...