C語言邏輯運算子問題,c語言邏輯運算子 我不明白 和 到底是怎麼運算的

時間 2021-10-17 05:03:01

1樓:匿名使用者

c表示式中的操作符按優先順序順序結合,本表示式中運算子的優先順序順序從高到低為:()、%、==、!=、&&、||。

所以表示式計算分解為:

temp1=year%4;

temp2=year%100;

te***=year%400;

temp4=(temp1==0);

temp5=(temp2!=0);

temp6=(te***==0);

temp7=(temp5&&temp6);

expr=(temp7||temp6);

所以操作符"!="的運算元為temp2和0,即(year%100)和0兩個表示式;

2樓:匿名使用者

整個邏輯表示式由兩個邏輯條件構成:

1. 是(year%4==0&&year%100!=0),表達year能夠被4整除但是不能被100整除,含義就是除了末尾兩位數是00的年份外,能夠被4整除的那些年份滿足條件。

其中!是與 = 共同構成c的關鍵字 != 表示「不等於」的關係。

2. year%400==0,表示能夠被400整除的年份(%是求餘數運算)表示式表達的含義是year除以400時餘數等於0。

1和2兩個條件之間的的關係是「邏輯或」,用「||」表示。任何一個year,若滿足1和2兩個條件之一,就使整個表示式的計算結果為「真」,在c語言中即為1。如果某個year對上述兩個條件都不滿足,則使表示式的計算結果為假,即為0。

題目應該要求的是閏年的年份,閏年的條件是:

年份能夠被4整除但不能被100整除,或者年份能被400整除。

c語言邏輯運算子 我不明白&&和||到底是怎麼運算的

3樓:匿名使用者

1 形式:

&&的形式為a&&b。

||的形式為a||b。

2 計算規則:

&&只有當a和b的值均非0時,結果為1,否則結果為0。

||只有當a和b的值均為0時,結果為0,否則結果為1。

3 優先順序:

&&的優先順序比||高,所以在寫在一起時,先計算&& 再計算||。

相同符號時,自左向右計算。

4 短路原則:

對於&&,如果左運算元a為0,那麼結果必然為0, 右運算元b將不參與計算。

對於||,如果左運算元a非0,那麼結果必然為1, 右運算元b將不參與計算。

4樓:匿名使用者

邏輯運算,方式子成立是即為真時整個式子值就為1反之為0,而對於值來說只要不是0就為真,如i&&j&&k=1,i,j=3都為真,所以整個式子為真等於1。另外要注意的是當&&左邊為假時不進行右邊計算,如(i=0)&&(j=3);l為0假右邊j=3不進行運算,所以j還是等於2,手機寫的真不方便。

5樓:**

i&&j&&k,先判斷i&&j,因為i和j都大於0,所以這個命題是真的,所以i&&j這個表示式等於1,再判斷後面的1&&k(ps:如果i&&j這個表示式等於0,後面的就不用判斷了,整個表示式就是0了)

。因為k大於0,所以1&&k就等於1,整個表示式就等於1了。

6樓:匿名使用者

邏輯正即為1,否則就為0,所以i&&j&&k=1

至於後面的就是因為&&這個運算子了,如果它的前一個為0的話那後面的就會直接忽略

不過你的結果貌似有點問題。。。。

c語言中邏輯運算子非"!"與"&&"或"||"的優先順序怎麼說?

7樓:a羅網天下

邏輯非的優先順序最高,邏輯與次之,邏輯或最低,即:!(非) → &&(與) → ||(或)

記憶口訣:not(非) and(與) or(或)

運算規則

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

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

3) ! :當運算量的值為"真"時,運算結果為"假";當運算量的值為"假"時,運算結果為"真"。

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

優先順序

優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表示式求值順序是從左到右。

優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

相同優先順序中,按結合性進行結合。大多數運算子結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算子、條件運算子、賦值運算子。

基本的優先順序需要記住:

指標最優,單目運算優於雙目運算。如正負號。

先算術運算,後移位運算,最後位運算。請特別注意:1 << 3 + 2 & 7等價於 (1 << (3 + 2))&7.

邏輯運算最後結合。

8樓:喜歡種蘑菇

同一優先順序的運算子,結合次序由結合方向所決定。簡單記就是:! > 算術運算子 > 關係運算子 > && > || > 賦值運算子。

9樓:飛雪射鹿笑倚鴛

c語言中邏輯運算子優先順序非"!"與>"&&">"||",建議混合使用的時候加上括號,這樣的**便於自己和其他人維護。

10樓:我喜歡蘆潔

「!」>「&&」>「‖」

11樓:

不知道的就加括號,這是常識,不必記

c語言中的邏輯或運算子怎麼打出來?

12樓:

c語言中的邏輯或運算子可以按住shift鍵,接著按兩下enter上面的鍵就能打出來,接下來具體的演示一下:

1、按住shift鍵不鬆手,接著按兩下enter上面的鍵,如下圖所示2、然後邏輯或運算子就打出來了,如下圖所示3、打邏輯或運算子的時候不需要區分大小寫,在中英文輸入法中按照上面的步驟都能打出來

13樓:匿名使用者

c語言的邏輯或運算子為||,這並不是一個字元,而是由兩個|組成的。

所以在打||的時候,需要連續打兩個|。

|在鍵盤右上角,backspace下面有一個印有|和\的鍵。按住shift同時按這個鍵,就可以打出|了。

在打||的時候,可以按住shift,再按|鍵兩次,然後抬起shift鍵即可。

邏輯或的運算形式為:

expr1 || expr2

其運算規則為:

當expr1與expr2均為假時,結果為假。

否則結果為真。

14樓:匿名使用者

||;shift加右方括弧的右邊那個鍵;該按鍵是'|'和英文'\'中文頓號'、'的輸入鍵

15樓:匿名使用者

就是上檔字元 \ : shift + \ = |

16樓:匿名使用者

鍵盤打出來啊 0 0.

< > <= >= != ==

+ - * / %

c語言邏輯運算子順序是什麼?

17樓:匿名使用者

ls,貌似&&的優先順序比||大 = 賦值語句結合性 自右相左

a=b=c=1;等價於 c = 1;b = c; a = b;

-------------------------

對以上回答進行一點補充

首先宣告 ||和&&運算子均屬於短路運算子;

什麼是短路運算子舉個簡單例子

若 a = 1; a||a++;執行後結果是什麼,變數a值為多少?

||邏輯或對第一項a進行判斷是否為0,若不為零則返回值為1;且不在進行後面的a++運算,這就是短路運算子的特性,這樣一來,a的值還是1沒有改變,同理 a =0; 0&&a++;的執行結果為a=0;

舉個形象點的例子:

a=1 a就是真

b=0 b就是假

a||a-- 真||a++,既然已經有真的了就沒必要再判斷a--是否為真 1||a++;肯定是真的;

同理 b&&b++ ,假&&b--既然已經有假的了就沒有必要判斷b++真假,同時b++也就不會被執行

++a||++b&&++c;這個語句根據算數運算子的優先順序關係 &&的優先順序比||大 『可以這樣理解』

所以先執行對++a||++b 和 ++c進行邏輯與(&&)運算,並先判斷++a||++b是否為假若假則不進行++c;在判斷 ++a||++b 是否為真的過程中,進行了++a和++b的||(邏輯或)運算,在邏輯或運算中先判斷++a是否為零,這個過程中相當於 先a=a+1;再if (a!=0) 因為前面a=1,再執行++a,a這時等於2所以在if (a!=0) 成立則,不會執行++b;

所以執行結果為a =2 ,b=c=1;

再程式執行++a||++b&&++c;這條語句的過程中只有a變數的值發生改變,而不是樓下說的那樣

「在執行「++a||++b&&++c;」語句之前完成自加運算」 這是錯的·

上述方法只是為了幫助你理解這個++a||++b&&++c;語句的意思

若我寫個a=b=c=1; ++a||++b&&++c||++a||++b&&++c||++a||++b&&++c;你說該怎麼理解?

挨個分析優先順序,?

那不得瘋了

所以那樣也沒必要++a||++b&&++c||++a||++b&&++c||++a||++b&&++c;只要由左到右依次執行這樣來判斷就好了就是(++a )語句1|| (++b&&++c||++a||++b&&++c||++a||++b&&++c)語句2

(++a)==2!=0所以嘛,語句2就不執行了 這樣判斷也符合 該語句的執行順序

計算機c語言中邏輯運算子的「或」怎樣輸入?

18樓:街道小巷

||或者||這個嗎?按住shift然後再加上等於符號的後面一個符號就行了

19樓:匿名使用者

按住shift鍵不放,然後按兩下\反斜槓鍵就可以了。

20樓:shine戚七七

按住shift別放,再覆按回車上面那個

斜槓制鍵,然後同時鬆開。

重複上面那個步驟一次。

即可完成輸入「||」。

c語言運算子:

加法運算子 6級

「 + 」加法運算子;「 - 」減法運算子。

移位運算子 7級

<< 左移運算子;>> 右移運算子。

關係運算子 8級

<、<=、>、>=關係運算子。

相等運算子 9級

「 == 」等於運算子;「 != 」不等於運算子。

位與運算子 10級

「 & 」按位與運算子

位異或運算子 11級

「 ∧ 」按位異或運算子(bitwise exclusive or operator)。

位或運算子 12 級

「 | 」按位或運算子(bitwise inclusive or operator)。

邏輯與運算子 13級

「&&」邏輯與運算子。

邏輯或運算子 14 級

「 || 」邏輯或運算子。

三元條件運算子 15級

? :條件運算子。

賦值運算子 16 級

=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=賦值運算子。

21樓:匿名使用者

上檔鍵(shift) + 斜槓\ 斜槓的上面就是或了 『|』

關於c語言邏輯運算子一道簡單的題目!

22樓:夏碧夢

這是邏輯運算子的短路判斷造成的!

由於邏輯運算子||和&&實現判斷左值的,顯然如果根據左值就能夠判斷整個表示式真假的話,那剩下的就不用判斷了!目前的c編譯就是這樣處理的!

對於邏輯或||,左值為真,整個表示式就為真;

對於邏輯與&&,左值為假,整個表示式就為假!

++x||++y&&++z中先執行邏輯或||左邊的++x後x=1,左值為真,後面的自然就不用處理了!

c語言中的邏輯運算子怎麼用,C語言中的邏輯或運算子怎麼打出來?

揚鈺藏思瑩 首先邏輯運算子的優先順序是非 與或,對於 與 只有運算子兩邊同時為真 如果兩邊是表示式則結果都為非0 結果為真即為1,例如 5 3 1 結果就為1,1 1 1結果就為0 對於 或 有一個為真結果就為真即結果為1 例如 2 1 0結果為1 3 3 2 2結果為0 非沒有什麼好說的就是取反 ...

asp中邏輯運算子的用法,ASP中邏輯運算子的一個用法

邏輯運算子用來表示日常交流中的 並且 或者 除非 等思想。邏輯運算的結果只有二種 真 或 假 基本的操作符有 非 與 或 條件 以及 雙條件 非 是一個一元操作符,它只操作一項 p 剩下的是二元操作符,操作兩項來組成複雜語句 p q,p q,p q,p q 1 注意,符號 與 和交集 或 和並集 的...

c語言中運算子是取整運算子嗎,C語言中“ ”運算子是取整運算子嗎?

終極至尊粉 printf f,f 10.0 3,10.0 3 雙目運算具有左結合性。參與運算量均為整型時,結果也為整型,捨去小數。如果運算量中有一個是實型,則結果為雙精度實型。printf d,d 10 3,10 3 printf f,f 10.0 3,10.0 3 c語言有以下幾種取整方法 1 直...