c語言a m abn cd 5的運算順序

時間 2021-05-06 07:56:33

1樓:匿名使用者

#include

int main()

在c語言中,a=(m=a>b)&&(n=c

2樓:天雲一號

a=(m=a>b)&&(n=c>d)表示將條件(m=a>b)與條件(n=c>d)進行邏輯與運算後,將結果賦值給變數a。

具體執行過程可以通過如下例項來說明:

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

int m, n;

a=(m=a>b)&&(n=c>d);

// 先計算(m=a>b),由於a>b為假,所以m=0;

// 再計算(n=c>d),由於c>d為真,所以n=1;

// 最後計算邏輯與,此時將m=0與n=1進行與運算,結果為0,之後將最終結果0賦值給變數a,所以經過a=(m=a>b)&&(n=c>d);運算後a=0

3樓:儀東澤

m=(a>b)為0這時候這個已經false了,後面就不用運算了,n還是2,m為0

4樓:匿名使用者

如果a>b,那麼m=1,否則m=0;

如果c<d,那麼n=1,否則n=0;

求出m,n後,再求m&&n,

如果m,n都等於1,則a=1,否則a=0.

5樓:匿名使用者

(m=n= =b)|| (n=c= =d)就是把(n=b)這個表示式的值(0或1)賦給m,然後(c=d)的值賦給n,

(注意,以上兩條式子是數學表示式而不是c語言**!)最後讓這兩個值邏輯或(不是位或!就是1||99仍然為1)

6樓:匿名使用者

這是個運算子優先順序的問題

==的優先順序大於=,這段**可以翻譯為

m=(n==b);

解釋為:如果n等於b,那麼m等於true(即1);否則m等於false(即0);

n=c==d也是這個意思

連線起來就是

如果m等於1或者n等於1,這個表示式的值為1,否則為0;

或者這樣解釋

如果n等於b或者c等於d,這個表示式的值為1,否則為0;

二者是乙個意思。

7樓:匿名使用者

()&&() 中&&是邏輯運算子 是邏輯與 說白了就是&&兩邊的值都為真是 它的結果才為真(1) ;

m=a>b 的意識是 先比較a b的大小,如果a>b 則返回真(1)給m 相反這為假(0);

n=c>d同上

8樓:守豬の待兔

m= n==b n與b是否相等的判斷結果賦值給m

(n=c= =d) c與d是否相等的判斷結果賦值給n

最後m與n 或||一下... 得到最後的邏輯值

9樓:匿名使用者

先看括號裡的,括號中的優先順序要高,因為關係運算賦(<,>,<=,>=)的優先順序大於賦值運算子(=),所以先判斷關係表示式a>b和c>d的值,如果為真,值為1,如果為假,值為0,然後再把值分別賦給m和n,然後就是看&&(邏輯與)這個運算子了,如果m和n的值同時為1,則整個表示式的值為1,即真,如果有乙個為0,則整個表示式的值為0,即假。

10樓:晨媽

我認為m=0 n=2

請問一下c語言中(m=a>b)&&(n=c>d)a=1b=2c=3d=4是什麼意思?詳細一下謝謝

11樓:匿名使用者

(m=a>b)&&(n=c>d)

a>b的布林值賦值(1或0)給m,如果為真,繼續執行n=c>d.如果a>b為假,則不執行c=c>d

a=1b=2c=3d=4

這表示式有問題

12樓:匿名使用者

&&是條件與,表示只有前後兩個判斷語句的布林值都為1(判斷結果都為真)的時候才滿足條件。按初a=1b=2c=3d=4來看,&&前後的條件都為假,所以就是 0&&0,最終結果為假。

13樓:手動閥隧道

m=a>b就是把a>b的比較結果賦給m,即a>b成立時,m=1否則m=0

同理n=c>d也是一樣

那麼(m=a>b) && (n=c>d)的意思就是(a>b)&&(c>d),同時把a>b的結果賦給m,c>d的結果賦給n

a=1b=2c=3d=4這個不符合語法規則啊??是不是a=1;b=2;c=3;d=4?

哪位高手知道c語言中語句 (m=a>b)&&(n=c>d) 是什麼意思 ?非常感謝!!

14樓:匿名使用者

()&&() 中&&是邏輯運算子 是邏輯與 說白了就是&&兩邊的值都為真是 它的結果才為真(內1) ;

m=a>b 的意識是 先比較a b的大容小,如果a>b 則返回真(1)給m 相反這為假(0);

n=c>d同上

15樓:匿名使用者

先看括號裡的,bai括號中的優先順序du

要高,zhi因為關係運算賦(<,>,<=,>=)的優先dao級大於賦

版值運算子(=),權所以先判斷關係表示式a>b和c>d的值,如果為真,值為1,如果為假,值為0,然後再把值分別賦給m和n,然後就是看&&(邏輯與)這個運算子了,如果m和n的值同時為1,則整個表示式的值為1,即真,如果有乙個為0,則整個表示式的值為0,即假。

16樓:願有好心情

(m=a>b)&&(n=c>d)

首先 比較 a>b, 大於m=1,否則m=0其次比較 c>d 大於 n=1,否則n=0然後 計算以下算式 : (m != 0) && (n!=0)

17樓:匿名使用者

m和n是布林型的,就是1真 和 0假。a>b那m就是1,相反就是0。

&&就是 m和n同時為真才是1,其他情況全是0。

18樓:匿名使用者

這行**可以等同於

下面回的**答

if(a>b)

else

if(m == 1)

else}

在c語言中,設有如下定義: int a=1,b=2,c=3,d=4,m=2,n=2; 則執行表示式:(m=a>b)&&(n=c>d)後,n的值為,過程

19樓:無憂網事

n的值抄仍然為2,沒有改變!

過程:先計算a>b,值為0,賦給m的值為0,表示式m=a>b的值也是0。

對於&&邏輯運算,不管後面(n=c>d)的值如何,都不影響(m=a>b)&&(n=c>d)的最終結果,因此,c語言不再對表示式n=c>d進行計算。因而n的值沒有改變!!

20樓:匿名使用者

n的值為2

a = 1, b = 2 ===> m = a > b ===> m = 0

&&支援短路運算

所以m = a > b的值為0 不用考慮後面的值了所以n的值任然為2

int a=1, b=2,c=3,d=4,m=2,n=2; 則執行表示式:(m=a>b)&&(n=c>d)後,n的值為?

21樓:匿名使用者

n=2,因為m=(a>b);

解釋為bai:如果a大於dub,那麼m等於true(即1);否則zhim等於false(即0);

n=c>d也是這個意思.

再有dao(m=a>b)&&(n=c>d)首判斷a>b是否為真,因為內a=1,b=2.所以a>b為假。m=0,接容著就不進行

n=c>d。故n的值未改變。估是因為&&的原因。

22樓:寒冰射手小樣

n的值仍然為2,沒有改變!

過程:先計算a>b,值為0,賦給m的值為0,表示式m=a>b的值也是版0。

對於&&邏輯運算,不管後面

權(n=c>d)的值如何,都不影響(m=a>b)&&(n=c>d)的最終結果,因此,c語言不再對表示式n=c>d進行計算。因而n的值沒有改變!!

23樓:詹爵雲蕙若

m=0n=2

a>b不成立m=0;

又因為(m=a>b)為0,所以不執行(n=c>d),即n的值不變。這是&&的特性。

c語言已知a=5,b=6,c=7,d=8,m=2,n=2執行(m=a>b)&&(n=c>d)後n值為

24樓:匿名使用者

答案不可能是復2,答案應制該是0,這是乙個邏輯表達bai式不可能出現0,1之外的數du字。前邊》的優zhi先級高於賦值也就是先dao判斷a>b是假,也就是0,把這個零賦值給m,此時m=0,因為邏輯符號&&有短路效應,也就是說前邊只有出現假,就不會接著判斷後邊的一部分,所以整體表示式是假,也就是0

25樓:感情程式設計師

答案是2沒錯。

首先復,你得知道運制算符優先順序是 >優先於bai=

因此先執行dua>b這條語句,這條語句執行結zhi果是dao返回乙個bool值,只有0和1兩種情況

因為a=5,b=6所以語句a>b會返回0,並將結果賦值給m因此在左邊那個括號裡面的最終結果是m=0,而&&符號是「並且」的意思,往往放在if()中來判斷,只有兩邊都非0,才會執行if()下面的語句,

當&&的左邊為0,它就不執行&&右邊的語句(因為這條語句「並且」的意思,當左邊為0,就是為假,不論右邊出現什麼情況,整個語句必然是假,執行右邊語句沒意義,編譯器跳過不執行)

綜上,可得n的值沒改變,為2

@樓上的

c語言中短路現象,求詳解

26樓:匿名使用者

請參照 清華大學出版社 孫海洋 編著 的《c語言程式設計》第60頁,如下是該教材關於邏輯與及邏輯或存在的「短象」想象講解截圖,希望對你有幫助。

27樓:匿名使用者

為了要提高效率。在邏輯運算時候,如果值已經能決定整個表示式的值,就不會再往右繼續運算了。。。比如在if裡有個&&,如果左邊的值為假,就不會再算右邊的真假

28樓:匿名使用者

短路現象常見襲的有,短路與(&&)和

bai短路du或(||),若a && b ,如果a 的值為假,zhi則dao整個表示式的值就為假,它是從左向右計算的。所以執行該表示式後,b 的值還是它的初始值,即不進行運算。若a || b ,如果a 的值為真,整個表示式的值就為真,執行順序同上。

b 的真假由最初的真假來判斷,也就是說,當a 為真時,b 則不進行運算了。例如:(m=a>b)&&(n=c>d),當a b c d 分別為1,2,3,4,m =n =1時,由於a >b 為0,則m =0。

而後面的不再執行,所以n=1而不是0。

c語言中 (m=a > b)&&(n=c > d)是什麼意思

29樓:其穎包書雲

( m=a>b)&&(n=c>d)

首先比較

a>b,

大於m=1,否則m=0

其次比較

c>d大於n=1,否則n=0

然後計算以下算式

:(m!=

0) &&

(n!=0)

請問一下c語言中(m=a>b)&&(n=c>d)a=1b=2c=3d=4是什麼意思?詳細一下謝謝

30樓:謇思萱以君

(m=a>b)&&(n=c>d)

a>b的布林值賦值(1或0)給m,如果為真,繼續執行n=c>d.如果a>b為假,則不執行c=c>d

a=1b=2c=3d=4

這表示式有問題

31樓:汪蕙芸仝真

||這個問題中

(m=a>&&

運算時;b)

為0,遇到了結果為

1,根據邏輯與運算規則,||

運算時:有0則

0。同理版

,這樣可權以提高程式效率,所以後面的

(n=c>,結果肯定為

0,被忽略了;d)

就不計算了,何必浪費時間,如果前面的表示式為0的話,因為無論如何,後面的表示式就計算了,不一定每個表示式都計算的,後面的表示式就不再計算了

32樓:校和雅洪羨

m=a>b就是把a>b的比較結果

bai賦給

dum,即a>b成立時,m=1否則

zhim=0

同理n=c>d也是一樣

那麼(m=a>b)

&&(n=c>d)的意思就dao是(a>b)&&(c>d),同版時把a>b的結果權賦給m,c>d的結果賦給n

a=1b=2c=3d=4這個不符合語法規則啊??是不是a=1;b=2;c=3;d=4?

c語言 d=!( (m=a

33樓:看灰過來了

1、計算m=a果a立,則m=1,否則m=0,此表示式值與m值相同2、計算n=b回b否則n=0,此表示式值與答n值相同3、上面兩個表示式的值進行&&運算,只要有乙個值為0,計算結果為0,兩個值都為1,則此表示式值為1

4、對第3步的結果取非運算,如果第3步是1,則取非之後為0,否則為1.

c語言 a>b&& a-2==b||(m=a

34樓:堂醉東靜姝

這裡的&&表示且的意思

而||表示或的意思

看「a>b&&a-2==b」的意思說

如果滿足a>b並且a-2等於b成立

則為真這個整體(

a>b&&

a-2==b)的值與(m=a

C語言程式設計的取餘,C語言程式設計中運算子 (求餘運算子)怎樣使用?

c語言的取餘運算是指兩個整數相除時,運算結果只取商的整數部分,並且沒有四捨五入。那個函式輸出結果是 30 7is2 c語言中要輸出百分號,在printf函式裡必須用兩個百分號做格式控制,因為百分號本身被用作格式控制前導符使用了,屬於編譯系統的保留字元,它已經不能代表它自己了,為了能輸出它,就做了這個...

如果作業系統是C語言開發的,那麼C編譯器執行在什麼上呢

老馬 作業系統。c編譯器是執行在需要開發c程式的作業系統下的,這裡你可以把你用c語言開發的作業系統認為是一個c程式。c編譯器要裝在電腦的作業系統上,然後你在裝有編譯器的作業系統下完成了另一個作業系統的開發,然後將你完成的這個作業系統安裝在另一臺機器上,然後你的c開發的作業系統就執行了。c編譯器可以理...

c語言陣列中的a 2 ,c語言陣列中的a 0 a 5 a 7 a 2 3 是什麼意思

元素組成了陣列,陣列的定義為 int a 10 其中 int 為型別,即整型 還有字元型 char 和float 實型等 a 為陣列名 為下標符號,裡面的數字常量為 陣列的第幾號成員元素。例如 a 0 為 陣列a 10 的第一號成員元素。這裡有點要注意的是,陣列元素下標值是從0開始的,即你定義a 1...