第16題(1 0分)int a 3,b 2,c 1 if abc a b else a c則a的值為A 3 B 2 C

2021-12-20 06:35:06 字數 4382 閱讀 4592

1樓:匿名使用者

首先if(a>b>c)

是不行的,有語病,只能if(a>b&&b>c)如果非要選的話

if的邏輯判斷是成立的

所以執行a=b

所以選b

int a=3,b=2,c=1; if(a>b>c)a=b; else a=c; 則a的值為

2樓:匿名使用者

1.先比較a>b,結果為真,返回1,但1小於c,所以a=1

3樓:色啦波

2~~~~~~~~~~~~~~~~~

int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;則a的值為3。對嗎

4樓:匿名使用者

授人魚不如授人漁bai。

我來幫你分析

du吧,

a=1,b=2,c=3

1、 如果a大於zhib 那麼dao b賦值給a,(2肯定比1大 是不是?明顯

回不成立,跳過,不答理它)

接下來2、如果a大於c 那麼c賦值給a,(明顯1不大於3嘛,所以還是不管他)

最終結果 a 還是最開始的時候的值,那就是1.

c語言中int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf

5樓:匿名使用者

c語言copy提供一種特殊的運算子——逗號運算子。用它將兩個表示式連線起來。如:

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。

6樓:匿名使用者

c=(a+=a+2),(a=b,b+3);

->c=(a+=a+2);(a=b,b+3);

->c=(a+=a+2);a=b;b+3;

7樓:焚香木弋

int a=1,b=2,c=3;

c=(a+=a+2),(a=b,b+3);

相當於兩個順序語句:

先執行了c=(a+=a+2)這個語句得出c=a=a+1+2=4;

然後執行a=b,b+3;得出a=b=2;後面專的b+3單純是迷惑人

屬而已,不起作用。

所以輸出的答案是a=2,b=2,c=4;

8樓:沫宸萱

樓主自己敲下**執行結果不就知道了?

9樓:康康

2,2,4

可以自己編譯跑一下啊,比來問以後效率得多

c語言 假定int a=3,b=2 c=1 表示式(c==a>c)+(a/b/2.0)的值是多少

10樓:匿名使用者

分析:首先(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

11樓:匿名使用者

可以寫程式執行一下

#include"stdio.h"

main()

執行一下是1.500000

int a=3,b=2,c=1 f=a>b>c 和f=(a>b>c)有區別嗎? 為什麼第一個f的值為1?

12樓:匿名使用者

int a=3,b=2,c=1 f=a>b>c 和f=(a>b>c)有區別嗎?bai

為什麼第一個

duf的值為1?

f=a>b>c

這裡=號的先zhi優級最低,這兩句

dao是一樣的效是的

你說值為1不是專吧,我的程

屬序輸出是0的,而且我的分析也是為0

f=(a>b>c)這個是先比較a,b然後拿這個結果和c 比較最後把結果賦值給f的

a>b 結果是1,然後再把1和c比較,沒有比c大,所以為0,最後f為0

main( ) { int a=1,b=2,c=3; printf(「%d」,c>b>a); }

13樓:疑問太多的人

是這樣子的

如果單獨只printf("%d",c>b);//或者是b>a輸出是1但是數學上的表示式c>b>a直接放到計算機裡面,解析的過程是不一樣的先判斷c>b返回真假,為真即為1,為假即為0c>b結果是1 然後再繼續 1>a結果為零。

再不然,你把a初始化為0,結果為1

14樓:匿名使用者

因為c>b>a是一個關係表示式,關係表示式只會返回兩個值,一個是true 一個是false

c>b>a的關係是不成立的所以返回false 在c和c++中0代表false假 1代表true真

15樓:

他是這麼判斷的先判斷c>b這個是假的返回0,然後用0和a比較也是假的,所以輸出0

16樓:匿名使用者

上面說的就是了,我就隨便逛逛,推薦你去弄本基礎書看看

17樓:匿名使用者

這是c語言的特點,另外》從左到右的

18樓:匿名使用者

你改下格式printf(「%d>%d>%d」,c,b,a); 試試

19樓:偶韋中悅

輸出結果應該是1

c=a,把a的值賦給c,c不等於0,所以if條件為真,輸出c

也是就1了.

int a=1,b=2,c=3;if(a>c)b=a;a=c;c=b;則c的值為

20樓:指春秋

if(a>c)b=a為if語句,因為a=1,c=3不成立,未設定else語句,跳出if判定,轉而執行a=c;c=b。所以c=b=2

21樓:豆豆小米朵兒

c的值是2

注意if(a>c)b=a;

這是一句

正確的格式:

int a=1,b=2,c=3;

if(a>c)

b=a;

a=c;

c=b;

c語言, int a=1,b=2,c=3,d=4; if((a=2)&&(b=1)) c=2;

22樓:匿名使用者

int a=1,b=2,c=3,d=4;

if((a=2)&&(b=1)) c=2;

a=2表示賦值2給a,同時檢查結果2是不是真, 當然是,所以又檢查b=1,

b=1 同上,結果也是真,所以執行c=2;

if((c==3)||(d==-1)) a=5;

c=2!=3 ,d=4!=-1,所以不執行a=5;

printf("%d,%d,%d,%d\n",a,b,c,d);

正確結果為:2 1 2 4

如果你的答案是5 1 2 -1,則說明你if((c==3)||(d==-1)) a=5;這句寫錯了,

應該是if((c==3)||(d=-1)) a=5; 是d=-1不是d==-1

c=2!=3為假,因為是||或關係,所以會再判斷d=-1,-1非0為真,會執行a=5

這樣結果為

a=5 b=1 c=2 d=-1

23樓:匿名使用者

我執行的結果是2,1,2,4

第一個if中a=2(b=1)是賦值,和a==2(b==1)是不一樣的

24樓:匿名使用者

if((a=2)&&(b=1)) 相當於if(2&&1) ,結果很明顯

25樓:雪月靈妖

1.結果是: 2,1,2,4

不知道你為什麼是5,1,2,-1

2.if((a=2)&&(b=1))

a=2 => 2 真

b=1 => 1 真

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語言中或運算只有在 之前的表示式不為真的時候在進行 後面的表示式計算,而上面是 之前的表示式...

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

0 因為關係運算子是左結合的,a b c等價於 a b c,由於a b成立得1,而1 c不成立得0。設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 e...

若有定義 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...