c語言if問題求解假定所有變數均已正確說明下列

2021-05-02 05:54:11 字數 4536 閱讀 6501

1樓:辭友緣心

請看如下注釋過的**:

int a=b=c=0;

int x=35;

if(!a)x=x-1;//a=0 此if進來後 x=34了else if(b); //空語句 直接過if(c)  x=3; //由於 c=0 所以此if進不去走else 所以最後 x=4

else  x=4;

2樓:匿名使用者

//最後兩行必有一行對x進行賦值, 所以前面兩行可以忽略不看.(因為if(b)後面有個分號)

//即等價於:

if(0) x=3;

else x=4;

所以最終執行的語句是:  x=4;

3樓:匿名使用者

前面的不管

到if(c) x=3;

else x=4; 時,由於 c = 0 ,為 false 所以走 else

x=4 是個簡單賦值操作,因此,不管之前x 是多少,走了這個流程以後,就是 4了

4樓:掽甜櫢翡眐

當然是執行z=x+y呀,因為是進了if語句才開始的迴圈,可以除錯一下試試 要多除錯

請採納答案,支援我一下。

5樓:匿名使用者

因為c為,執行最後一個else所以為4

c語言中a!=b 什麼意思呢

6樓:匿名使用者

這個叫三目運算式.標準格式是如下

num=a>b?x:y; 簡單解決.a>b是一個表示式,如果這個表示式成立.也就是返回是真的.那麼就將冒號前面的x交給num,否則就把y交給num.

意思就是說.問號前面的關係表示式如果為真就取冒號前面的變數,如果為假就取後面的,當然這裡的表示式也可以為其它型別.比如

num='\0'?x:y;這樣也是可以的.'\0'返回是0也就是假,所以最後num=y;

你這個表示式,我想不用我再告訴你是什麼意思了吧?

我又回來補充了.a*=如果你是問這個是什麼意思,這個是乘等的意思,比如a*=i;意思就是a=a*i;

你的這個表示式答案我給你寫最下面,你行自己用我說的理解一下,看對不.

t=a*=a>b?a:b的意思就是,先比較a和b如果a大於b那麼就取a的值,否則取b的值,然後將取出來的值與a相乘,最後再賦給a然後再賦給t

7樓:匿名使用者

a=b!=0;

左邊第一個等號,是賦值運算;

!=是關係運算,進行「不等於」運算;

關係運算的結果是一個邏輯值,c語言把false轉換成0,把truee轉換成1。

這個語句,先進行判斷b是否「不等於」0,如果b為0,給a賦值0,;如果b不為0,給a賦值1。

8樓:匿名使用者

!b在c語言中表示不等於,你這句意思就是說「a != b ,a 不等於 b」就是一個運算子,和加減乘除一樣,只不過在c語言中不等於號表示為這個「!

=」等於號是這個「==」,希望能對你有所幫助。

9樓:匿名使用者

(a-b)條件成立(a-b不等於0則成立),則等於a ,反之等於 b

三目運算子

《表示式1>?《表示式2>:《表示式3>; "?

"運算子的含義是: 先求表示式1的值, 如果為真, 則執行表示式2,並返回表示式2的結果 ; 如果表示式1的值為假, 則執行表示式3 ,並返回表示式3的結果。

10樓:匿名使用者

一般做一個條件

例如if(a!=b )

結果wei真和假

如果a、b不相等,結果真【真用1表示】

如果a=b,則結果假【假用0表示】

11樓:戀戀土豆絲

首先,你要知道==操作符

的優先性是比=高的。

所以a=b==c,先運算b==c,這個表示式的含義是,若b與c相等,那麼得出的值為1,若不等則為0.而根據你的定義,b=2,c=3,顯然兩個數不等,所以a=0.

12樓:天雨下凡

x=(x,b,c);就是把變數c的值賦給變數x

(x,b,c)是逗號表示式,值是最右邊的值,即c的值。

13樓:匿名使用者

說明b是一個指標變數,其定義應該是這樣:int *b,a;

*是取值運算子,*b就是取b指向儲存空間的值;

&是取地址運算子,&a表示取變數a的地址。

*運算子後面應該跟指標;而&後面應該跟變數名(或陣列元素,或結構體變數.成員名)。

14樓:匿名使用者

int a=04,b; a是八進位制數,把a的值轉換成二進位制為:100,補齊8位則是0000 0100

b=a<<1

把a的二進位制形式左移1位,最右邊補1個0

則結果為: 0000 1000

所以b的二進位制形式是:0000 1000

把b轉換成十進位制 則是8

15樓:秋楓

*b=&a這種寫法只有在定義時這麼寫才對,例如 int *b;*b=&a;是錯誤的,正確的是int a=1;int *b=&a;意思是說定義一個指標b,b裡存的是a這個變數的地址。如果定義好了一個這真b,那麼*b就指b這個變數裡存的地址裡的值(有點繞口,慢慢理解),&為取地址符,&a就是a這個變數的地址。

16樓:匿名使用者

朋友,>是比較運算子,!=是邏輯運算子!其優先順序低於比較運算子所以先判斷a>b是否成立,如果成立,則a>b 整體就為1,不成立則為0,

然後判斷a>b 整體是否等於c,如果不等於a>b!=c這個式子整體為1,

如果等於c,則a>b!=c

這個式子整體為0.應該是用來判斷c的值是1或是0的

17樓:

先判斷k是否小於a,如果是,k的值不變,否則k的值為c然後判斷k是否小於b,如果是,k的值為c,否則k的值為a整個相當於k取a,b,c中的最小值

。。。。。。。。。。。。。。。。。。。。。。。。

算了,感覺條件不足。

18樓:匿名使用者

可以看出f是一個自定義函式。

所以呼叫f函式,並將a,b作為引數傳遞給f函式執行,將結果賦值給c

19樓:匿名使用者

三目運算子執行順序為自右向左。

所以首先執行c

此時,要看c與b的大小,整個式子就分為以下兩種情況:

c小於b: k< a ? k:cc大於等於b: k< a ? k:a這下你就明白了吧。。。

20樓:匿名使用者

首先 a 、b是你宣告的變數 a!=b 意思就是a與b不相等。如果是指標型別 就是a 和b 表示一個地址 就是說a b 地址不相同 可以 看看 關於c語言的書 這是個很基礎的問題

21樓:蔚海韻

先判斷a>b是否成立,如果成立,則a>b 整體就為1,不成立則為0,

然後判斷a>b 整體是否等於c,如果不等於a>b!=c這個式子整體為1,

如果等於c,則a>b!=c這個式子整體為0.

22樓:藥名

條件表示式,個人理解:如果k>a則輸入k,如果k<=a,判斷c

23樓:匿名使用者

首先你要明白什麼du

是表示式,還有zhi變數。

a是一dao個變數。

a++,專++a都是a加了屬1.

比如a原來是1,執行了a++或++a後,a變數的值就是2了

至於a++和++a的區別主要是在表示式上的區別。

++a是先執行了a加1後,參與表示式的計算。

a++是a先參與表示式的計算,後執行自加1.

比如:int a,b;

a=1;//如果你想把a的值1,付給b.那麼,但你又想使得a加1。你就可以這麼做

b=a++;//++在a之後,先把a的值付給b,然後再本身加1 。這時候b=1,a=2了。

//如果你還不懂得話。b=a++;的意思 就是b=a;a=a+1;這兩句意思

//而b=++a 就是 a=a+1;b=a;的意思

至於a++=a+a+1

好像寫錯了吧

是a+=a+a+1

優先順序等於 a=a+(a+a+1)//a+=b 是 a=a+b 的簡化

!= 不等於,是條件運算子,用來判斷真假的。

比如1!=2; 表示式的值就是假,也就是0;

c語言很多式子都是簡化的,這樣雖然可以節省**,卻比較讓人糊塗。

24樓:湛藍水晶

就近原則,與編譯器無關,很容易記的。

相當於(a++)+b;

但是太多+號就不行了,

比如a+++++b,雖然一看就知道意思是(a++)+(++b);但是編譯就通不過,出錯資訊大概是:迷失在加號空間?

25樓:超越說

a不等於b

!表示邏輯非

a!=b就是判斷表示式 a≠b

c語言問題。求解答,C語言問題。求解答

上面程式的功能是算出你輸入同學的平均分,同時輸出低於平均分的分數 但是你這個程式版是有問權題的沒有退出的條件,只能輸入score為負數才能退出 分別為56,78,89,65,58,34,45,9 則輸出結果如下圖 c語言問題求解答 5 1 include 2 int main 3 21 22 23 ...

c語言問題,急求解答,C語言問題,急求解答

你好樓主 if a 1 是判斷a是否等於1 而if a 1 則直接將a賦值為1,即永遠非零 為真 不會執行else下內容,不符合程式原意 c語言中 為賦值 為判斷是否相等 a 1 是吧1賦值給a if a 1 等價於 if 1 條件為真了這時候if語句後面的內容必然會執行的 a 1是判斷他們是否相等...

c語言問題求解

我來告訴你吧。第一,i 是整型,所以 c1 c2 i 159.123賦值時,對 159.123進行了截斷,i 的值就成了 159.然後將 159賦給c2 和 c1,你可能不理解這裡。第二,你定義的c1,c2是無符號字元型別,一個位元組,即8個位。所以將 159賦給c1,c2就有問題了。首先來看 15...