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