當前位置:首頁 » 編程語言 » c語言經典邏輯
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言經典邏輯

發布時間: 2022-08-13 02:10:51

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語言原理

你好:和匯編語言相比,C語言屬於高級語言,現在嵌入式中常用到C語言編程,因為它可以直接對硬體編程。
像你說的,用最抽象,最易懂的語言形容C語言,我做不到,因為C語言比邏輯上比匯編語言簡單,但是它涉及到的知識點比較多,總的來說:有變數,常量,條件語句,循環語句,位操作,文件操作。。。我推薦你一本書吧:《C語言入門經典》lvor Horton編寫的,知識點介紹得很全,而且每個例子後面的說明也全面,我開始學習C語言的時候就是看的這本書,還有,記住:C語言不必死記硬背,也不像你說的,它和英語沒什麼關系,你學習過就會明白了,C語言就那麼幾種語句,多練習,自然而然就記住了。最後祝你成功。

⑶ C語言常用邏輯符號

邏輯非:!
1&&1=1,0&&1=0(1為真,0為假)
邏輯或:||
1&&0=1,0&&0=0(1為真,0為假)
取反:~
如對11010
取反後為00101
位與:&
位與:&&
如對11010和10101
位與後為10000
就是0&1=1,1&1=1
0
與0或1位與都為0
位或:|
如對11010和10101
位或後為11111
就是0||0=1,0||1=1
1
與0或1位或都為1
位異或:^
如對11010和10101
位異或後為10000
就是0||0=1,0||1=1,倆個相同則為1,不同則為0

⑷ C語言邏輯關系

邏輯與&&的左側表達式若為假,則結果一定為假,不再計算右側表達式;
同理,邏輯或||的左側表達式若為真,則結果一定為真,不再計算右側表達式。
上述兩點特性稱為短路運算。
--a&&b--,由於左側表達式--a=0為假,&&表達式結果一定為假,不再計算b--,直接返回0;
0||c--,左側表達式0為假不能確保||結果一定為假,仍需計算右側表達式,故計算c--,此時引用c的原值然後將c自減,結果為3,因此||表達式結果為真,返回1。
最終d被賦值為1。

⑸ 能解釋一下這c語言語句的邏輯嗎重賞

這個相當於
if(m%i==0)
{
return 0;
}
else
return 1;
因為 return語句會結束函數 所以即使沒有else, return 0以後也不會再有return 1
如果m%i!=0就不會執行return 0 而執行return 1了

⑹ C語言邏輯或與非的用法

C語言邏輯或與非用於邏輯運算,可以在一條語句中同時出現,但還有優先順序的限制。

基本應用:

邏輯與,符號為「&&」,只有兩個操作數都是真,結果才是真。邏輯或,是邏輯運算符,符號是「||」。表示當兩個條件中有任一個條件滿足,「邏輯或」的運算結果就為「真」。「!」(邏輯非)邏輯運算符。「邏輯非」就是指本來值的反值。

優先順序:

C語言中,運算符的運算優先順序共分為15 級。1 級最高,15 級最低。邏輯與運算符 13級「&&」邏輯與運算符。邏輯或運算符 14 級,「 || 」邏輯或運算符。邏輯否「!」單目/一元運算 3級。因此優先順序為:邏輯非高於邏輯與高於邏輯非。

運算方向:

在C語言中,只有4個運算符規定了運算方向,它們是&&、| |、條件運算符及賦值運算符。&&、| |都是先計算左邊表達式的值,當左邊表達式的值能確定整個表達式的值時,就不再計算右邊表達式的值。如 a = 0 && b; &&運算符的左邊位0,則右邊表達式b就不再判斷。

(6)c語言經典邏輯擴展閱讀:

相關規則及應用:

1、邏輯運算符:a=1,b=1;a||b-1;因為a=1為真值,所以不管b-1是不是真值,總的表達式一定為真值,這時後面的表達式就不會再計算了。

2、短路原則:

在邏輯表達式的求解過程中,任何時候只要邏輯表達式的值已經可以確定,則求解過程不再進行,求解結束。表達式中優先順序最低的邏輯運算符,以這些運算符為准將整個邏輯表達式分為幾個計算部分。最左邊一個計算部分開始,按照算術運算、關系運算和邏輯運算的規則計算該部分的值。

每計算完一個部分就與該部分右邊緊靠著的邏輯運算符根據真值表進行邏輯值判斷。如果已經能夠判斷出整個邏輯表達式的值則停止其後的所有計算;只有當整個邏輯表達式的值還不能確定的情況下才進行下一個計算部分的計算。

⑺ c語言的邏輯推理題!!急求!!!

#include<stdio.h>
typedefstruct{
intP,Q,R,S;
}Result;
intcheckPQ(Resultconst*constr){
if(r->P)//ifPistrue,Qmustbetrue.
returnr->Q;
return1;
}
intcheckQR(Resultconst*constr){//Q&&R=false;
return!(r->Q&&r->R);
}
intcheckRS(Resultconst*constr){//R||S=true;
returnr->R||r->S;
}
intcheckSQ(Resultconst*constr){//ifSistrue,Qisfalse
if(r->S)
return!r->Q;
return1;
}
intcheckPQRS(Resultconst*constr){
return2==r->P+r->Q+r->R+r->S;//only2istrue.
}
intmain()
{
Resultr;
for(inti=0;i<16;++i){
intj=i;
r.P=j%2;j/=2;
r.Q=j%2;j/=2;
r.R=j%2;j/=2;
r.S=j%2;
if(checkPQRS(&r)&&checkPQ(&r)&&checkQR(&r)&&checkRS(&r)&&checkSQ(&r))
printf("P=%d,Q=%d,R=%d,S=%d ",r.P,r.Q,r.R,r.S);
}
}

符號化短路略做簡化版本:

#include<stdio.h>
typedefstruct{
intP,Q,R,S;
}Result;
intcheckPQ(Resultconst*constr){
returnr->P&&r->Q||!r->P;//ifpistrue,qmustbetrue.
}
intcheckQR(Resultconst*constr){//Qconst*const*R=false;
return!(r->Q&&r->R);
}
intcheckRS(Resultconst*constr){//R||S=true;
returnr->R||r->S;
}
intcheckSQ(Resultconst*constr){//ifSistrue,Qisfalse
returnr->S&&!r->Q||!r->S;
}
intcheckPQRS(Resultconst*constr){
returnr->P+r->Q+r->R+r->S==2;//only2istrue.
}
intmain()
{
Resultr;
for(inti=0;i<16;++i){
intj=i;
r.P=j%2;j/=2;
r.Q=j%2;j/=2;
r.R=j%2;j/=2;
r.S=j%2;
if(checkPQRS(&r)&&checkPQ(&r)&&checkQR(&r)&&checkRS(&r)&&checkSQ(&r))
printf("P=%d,Q=%d,R=%d,S=%d ",r.P,r.Q,r.R,r.S);
}
}

輸出結果

P=0,Q=0,R=1,S=1

⑻ C語言中邏輯或的表示方法

c語言中邏輯或用符號「||」表示,在具體程序中的使用:

#include<stdio.h>
voidmain()
{
inta=5;
if(a>2||a<7)//或的使用
printf("a不在2-7之間 ");
}

同時「&&」表示邏輯的與,「!」表示邏輯的非

⑼ C語言提供3種邏輯運算符,按優先順序高低它們分別是

C語言提供三種邏輯運算符,按優先順序高低它們分別是:邏輯非(!),邏輯與(&&)、邏輯或(||)。

運算規則:

&&:當且僅當兩個運算量的值都為「真」時,運算結果為「真」,否則為「假」。

|| :當且僅當兩個運算量的值都為「假」時,運算結果為「"假」,否則為「真」。

! :當運算量的值為「真」時,運算結果為「假」;當運算量的值為「假」時,運算結果為「真」。

例如:假定x=5,則(x>=0) && (x<10)的值為「真」,(x<-1) || (x>5)的值為「假」。


(9)c語言經典邏輯擴展閱讀

C語言中運算符分為四類:算數運算符、關系運算符、邏輯運算符、位運算符。

算數運算符(9):+ - * / % ++ --

關系運算符(6):== != > >= < <=

邏輯運算符(6):&& || ! ^ & |

位運算符(7):& | ~ ^ >> << >>>;

1級是特殊運算符:括弧()

2級是單目運算符:++,-- 從右向左運算,只需要一個運算對象;

3、4級算數運算符:+ - * /

6、7級關系運算符:== != > >= < <=

11、12級邏輯運算符:&& || ! ^ & |

3~12級是雙目運算符:從左向右,需要兩個運算對象

13級是三目運算符:需要三個運算對象

14級是賦值運算符:=