⑴ c語言中什麼是邏輯表達式,什麼是關系表達式。舉幾個例子
邏輯表達式是指運算符為或||、與&&、非!的表達式。返回值為0或1,0表示false,非0表示true. 例如!0返回1,0&&1返回0,0||1返回1。
關系表達式是指運算符為<,<=,>,>=,==,!=的表達式。返回值同樣為0或1,例如a!=b,a>=0等。
C語言用整數"1"表示"邏輯真"、用"0"表示"邏輯假"。但在判斷一個數據的"真"或"假"時,卻以0和非0為根據:
如果為0,則判定為"邏輯假";如果為非0,則判定為"邏輯真"。
例如,假設num=12,則: !num的值=0 ,num>=1 && num<=31的值=1 ,num || num>31的值=1。
邏輯運算符兩側的操作數,除可以是0和非0的整數外,也可以是其它任何類型的數據,如實型、字元型等。
短路原則:非常重要,在計算邏輯表達式時,只有在必須執行下一個表達式才能求解時,才求解該表達式(即並不是所有的表達式都被求解)。換句話說:
對於邏輯與運算,如果第一個操作數被判定為"假",系統不再判定或求解第二操作數;對於邏輯或運算,如果第一個操作數被判定為"真",系統不再判定或求解第二操作數。
(1)c語言邏輯關系擴展閱讀:
C語言邏輯表達式注意:
由於浮點數在計算機中不能非常准確地表示,所以,判斷兩個浮點數是否相同時,通常不使用關系運算符「等於」(==),而是利用區間判斷方法來實現。為了判斷x是否等於5.003,可利用如下邏輯表達式:x>5.002 && x<5.004。
當此邏輯表達式為「真」時,就可以認為x等於5.003
邏輯及性質保真性:所有變數的真值皆為「真」的命題在邏輯或運算後的結果為真。保假性:所有變數的真值皆為「假」的命題在邏輯或運算後的結果為假。
⑵ C語言的邏輯運算和按位運算怎麼區分
1、作用的不同
&&、||是邏輯運算符,用於從左到右求表達式的真值。假設x=1;y=2;那麼x&&y=1;x||y=1。
&、|是位運算符,是對x,y進行位運算,x,y取值如上,那麼有x&y=0;(x的二進製表示為00,y的二進製表示為10)。
2、判斷這個表達式的真或假的不同
&和|既是邏輯運算符也是位運算符,而&&和||只是邏輯運算符。
當&與&&同為邏輯運算符時,它們都用於連接兩個Boolean類型的表達式,當&和&&的兩端表達式同時為真時,表達式的結果為真,只要有一端為假,那麼表達式結果為假。
例:3>5&3>2;3>5&&3>2;
當|和||的兩端表達式同時為假時,表達式的結果為假,只要有一端為真,那麼表達式結果為真。
3、計算方式不同
當使用&運算符:計算機在判斷表達式的值的時候,先判斷3>5的值為假,然後再判斷3>2的結果為真,於是最後的結果是假&真為假;
但是當我們使用&&運算符的時候:計算機先判斷3>5的值為假,此時表達式的結果一定為假,所以計算機就不再往下判斷了,判定表達式結果為假。
⑶ C語言邏輯運算,邏輯量是什麼和邏輯表達式有什麼區別
在邏輯表達式里有參加邏輯運算的邏輯量及邏輯運算最後的結果(邏輯值),把這二個概念區分開來和記住它們是很重要的。
什麼是邏輯量--凡是參加邏輯運算的變數、常量都是邏輯量。
我們來仔細分析一下哪些是邏輯量,哪些是邏輯值。
要表達一件事情是否成立是這樣描述的:「如果他來了,這件事情一定能成功」。用程序語句描述就是
if(a!=0)在這個語句里用變數a來表示他來與不來這件事,變數的值為1說明他來了,為0就是不來。在C語言中,一般不寫成這樣(如果一定要寫成if(a!=0),別人一看你的程序就知道你是編程菜鳥),而是寫成
if(a)。括弧裡面的變數a就是邏輯量。當該邏輯量的邏輯值為1時,if表達式為真,這時可以執行if
後的的程序語句。當該邏輯量的邏輯值為0時,if表達式為假,就不能執行if後面的程序語句。可以看出,if表達式能否成立是要看「邏輯量」最後的「邏值值」是否為1來判斷的。
什麼是邏輯值--邏輯量、邏輯表達式其最後的運算結果的值就是邏輯值。邏輯值只能是「0」和「1」這二個數。「1」表示邏輯真(成立);「0」表示邏輯假(不成立)。
一切非「0」的邏輯量其邏輯值都為真。正確理解這句話很重要。例:if(-1),結果為真。
⑷ C語言提供3種邏輯運算符,按優先順序高低它們分別是
C語言提供三種邏輯運算符,按優先順序高低它們分別是:邏輯非(!),邏輯與(&&)、邏輯或(||)。
運算規則:
&&:當且僅當兩個運算量的值都為「真」時,運算結果為「真」,否則為「假」。
|| :當且僅當兩個運算量的值都為「假」時,運算結果為「"假」,否則為「真」。
! :當運算量的值為「真」時,運算結果為「假」;當運算量的值為「假」時,運算結果為「真」。
例如:假定x=5,則(x>=0) && (x<10)的值為「真」,(x<-1) || (x>5)的值為「假」。
(4)c語言邏輯關系擴展閱讀
C語言中運算符分為四類:算數運算符、關系運算符、邏輯運算符、位運算符。
算數運算符(9):+ - * / % ++ --
關系運算符(6):== != > >= < <=
邏輯運算符(6):&& || ! ^ & |
位運算符(7):& | ~ ^ >> << >>>;
1級是特殊運算符:括弧()
2級是單目運算符:++,-- 從右向左運算,只需要一個運算對象;
3、4級算數運算符:+ - * /
6、7級關系運算符:== != > >= < <=
11、12級邏輯運算符:&& || ! ^ & |
3~12級是雙目運算符:從左向右,需要兩個運算對象
13級是三目運算符:需要三個運算對象
14級是賦值運算符:=
⑸ c語言中的邏輯運算符之間的關系是什麼樣的,怎樣分析邏輯表達式
int y;
scanf("%d",&y);
if(y%400==0 || (y%4==0 && y%100!=0)) printf("是閏年\n");
else printf("不是閏年\n");
非運算(!)和與運算(&&)優先順序相同
或運算(||)比它們低
⑹ C語言中邏輯關系!0表示真還是假
0是可以轉換數據類型bool裡面false的。而前面加一個感嘆號就是邏輯反,所以最終的運算結果是true。
⑺ C語言中邏輯運算符的規則是什麼
1、邏輯運算符運算規則:
||或:比如兩個條件中,只要有一個成立,則結果就成立;
&&與:比如兩個條件中,兩個同時成立,則結果成立,否則不成立;
!非,就是取反之意,如果是真,結果是假,如果是假,結果是真。
2、邏輯運算符是根據表達式的值來返回真值或是假值。其實在C語言中沒有所謂的真值和假值,只是認為非0為真值,0為假值。下為C語言邏輯運算||和&&的真值表: