C 表示式(m abn cb 的運算

2021-06-25 14:42:55 字數 4357 閱讀 7581

1樓:倒黴熊

&& 是需要左右兩邊都為真時,才是真。

x && y 也就是需要x和y為真,x&&y為真,當x為假時,編譯器已經能判斷出 x&&y為假了,不可能為真了,此時編譯器就不再往下判斷了,也就是說y代表的東西不再執行了。

所以m=a>b 由於 a=b=1 所以a>b為假,用int表示也就是0,所以m=0 為假

所以 n=c>b不再執行,所以n的值不變,所以 n=1

2樓:匿名使用者

&& 這個運算子有個特點,如果左側表示值為假,右邊的表示式就不執行了,左側為真才繼續執行右側表示式

a>b結果為假,m=a>b=0(0表示為假),這時左側表示式的值就是m的值,為0,表示假,右側就不執行了,n就是1

3樓:80晴天

根據優先順序順序這個表示式等價於(m=(a>b))&&(n=(c>b));

a>b不成立,所以為false,即0,則m = 0;

因為&&處理機制的原因,左邊表示式為假,則整個表示式為假,就不對右邊表示式進行計算了。

4樓:網曉強

先看第一個括號:> 優先於 = ;表示式 a > b 為假返回0,然後將 0 賦給 m ,故 m = 0;

同理:n = 0;

(m=a>b)&&(n=c>d)運算後

5樓:匿名使用者

因為a>b為假,所以m=0

當"&&"左邊為0時,電腦就不會再算右邊了,既n=c>d沒有被運算

所以n還是為2。

6樓:匿名使用者

邏輯與和邏輯或操作符總是先計算其左運算元,然後計算右運算元,只有在僅靠左運算元的值無法確定該邏輯表示式的結果時,才會求解其右運算元,就是所謂的“短路求值”

題中左邊為假所以不會計算右邊。

7樓:匿名使用者

只有第一個值是1的時候,第二個表示式才進行運算

8樓:匿名使用者

與操作 第一個操作符為假 後續操作無效

9樓:落憶浪子

m && n中,若m為假,則n不被執行;

m||n中,若m為真,則n不被執行。

多看點資料,對你的學習會有很大的幫助,所謂“見多識廣”就是見的多了自然知識比較豐富。

10樓:手機使用者

這麼簡單的問題,大哥!!!

好好學習吧.

樓上的回答完全正確.

我只為兩分.

11樓:匿名使用者

補充一下,(0 && 0)的結果是假,不是真。

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

12樓:天雲一號

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

13樓:儀東澤

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

14樓:匿名使用者

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

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

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

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

15樓:匿名使用者

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

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

16樓:匿名使用者

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

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

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;

二者是一個意思。

17樓:匿名使用者

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

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

n=c>d同上

18樓:守豬の待兔

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

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

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

19樓:匿名使用者

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

20樓:晨媽

我認為m=0 n=2

c語言a=(m=a>b)&&(n=c>d)+5的運算順序

21樓:匿名使用者

#include

int main()

下面這個程式中(m=a>b)&&(n=c

22樓:匿名使用者

(m=a>b)&&(n=c由於a>b,即5>6為假,bai所以dum=0,0&&任何值都為0,所以(n=czhi被短dao路,沒有進行運算,所以n仍然等版於原值2,故權輸出2.

&&和||,也稱為短路運算子,這個題目考察的就是這個功能0&&任意值=0,1||任意值=1,後面任意值的表示式都被短路掉,不進行運算。

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

23樓:bruce於

n是false吧,邏輯與的第一部分判斷為false,第二部分就不會去判斷了,取預設值為false

24樓:朗月拂鳴

先將a的值賦給m,即m=1,而b=2,顯然m=a>b的值是0.由於是"與'運算,後面的式子可以不看,即不用執行了。整個表示式的值也為0.而n前後的值沒有變化,n=2

25樓:匿名使用者

&&並且判斷,先走左邊的m=a>b

=賦值,先走右邊的a>b

a>b嗎?不!所以a>b的值是0

m=0的值是0,賦值會用=左邊的值作為整個語句的值&&左邊0,不走右邊了,n=c>d沒執行

最後n=2

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

26樓:匿名使用者

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的值未改變。估是因為&&的原因。

27樓:寒冰射手小樣

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的值沒有改變!!

28樓:詹爵雲蕙若

m=0n=2

a>b不成立m=0;

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

c語言的在表示式中如何運算?如intx

0從右往左運算,x自減一,小於零的布林值為 0 假 賦值給y 上面回答了,就不用我了,printf d y 我c新手,598201526,願意的共同討論 涉及到操作符等級問題,在這裡,單目操作符優先順序最高,就是 x 其次是 0,最後是 x 結果是4,4大於0,所以y false,被型別轉換為0.i...

for(表示式1表示式2表示式3)語句組的執行順序是先求解表示式1再什麼 如果成立,則執行什麼 然後什麼

for 表示式1 表示式2 表示式3 語句組的執行順序是先求解表示式1,再 求解表示式2 如果成立,則執行 迴圈體 然後 求解表示式3 for 表示式1 表示式2 表示式3 語句組的執行順序是先求解表示式1再什麼?如果成立,則執行什麼 執行表示式1,判斷表示式2,執行迴圈體,執行表示式3。判斷表示式...

UG的工具表示式。怎麼建立表示式

在名稱裡輸入數字按回車在公式裡輸入事先編好的公式就ok ug 工具 表示式。怎麼建立表示式。那不是有名稱和公式嗎,輸入到下面回車就會加入到你點了不管用的那區域了。寫在下面的公式 名稱裡的,我也剛學 把你需要的關係式輸進去就ok了 ug表示式如何使用 工具 表示式 復定義變數名稱制 公式 bai 單位...