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語言邏輯運算子順序
k x 0 y 0 z x y 就是這個順序 x 是先使用x的值,再 之後,x的值變為0.所以x 0這個表示式的值為false對於邏輯與運算,如果第乙個表示式為false,則第二個表示式將不驗證所以 y 0 沒有執行,y的值仍然為5對於或運算,若第乙個表示式的值為false,則還要驗證第二個表示式於...
c 邏輯運算子,c 中邏輯運算子的問題。
x 2 y和z的值不變 邏輯運算 x的值為1,因此後面的語句沒有執行 參考 短路求值 作為 和 操作符的運算元表示式,這些表示式在進行求值時,只要最終的結果已經可以確定是真或假,求值過程便告終止,這稱之為短路求值。這是這兩個操作符的乙個重要屬性。假如expr1和expr2都是表示式,並且expr1的...
python邏輯運算子有哪些
網際網路 邏輯運算子用於組合多個條件測試語句。假設 我今年18歲 和 我身高2米 這兩個語句,前一個語句是真的,後一個語句是假的,因此,我今年18歲,並且我身高2米 這個語句是假的。其中,並且 可以認為是邏輯運算子。python中有三種邏輯運算子,分別是and or和not。一 邏輯運算子and 使...