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