C語言課件(運(yùn)算符和表達(dá)式)_第1頁
C語言課件(運(yùn)算符和表達(dá)式)_第2頁
C語言課件(運(yùn)算符和表達(dá)式)_第3頁
C語言課件(運(yùn)算符和表達(dá)式)_第4頁
C語言課件(運(yùn)算符和表達(dá)式)_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式第二講第二講 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式引例引例概念及分類概念及分類優(yōu)先級和結(jié)合性優(yōu)先級和結(jié)合性算術(shù)運(yùn)算算術(shù)運(yùn)算關(guān)系運(yùn)算關(guān)系運(yùn)算邏輯運(yùn)算邏輯運(yùn)算位運(yùn)算位運(yùn)算賦值運(yùn)算符賦值運(yùn)算符逗號運(yùn)算符逗號運(yùn)算符條件運(yùn)算符條件運(yùn)算符運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式引例引例引例引例問題問題輸入一個(gè)四位的正整數(shù),反序輸出該四位數(shù)的四個(gè)數(shù)字字符。輸入一個(gè)四位的正整數(shù),反序輸出該四位數(shù)的四個(gè)數(shù)字字符。設(shè)計(jì)設(shè)計(jì)用一個(gè)無符號整型變量用一個(gè)無符號整型變量number保存輸入的四位正整數(shù)。保存輸入的四位正整數(shù)。依次分解出個(gè)位數(shù)字、十位數(shù)字、百位數(shù)字和千位數(shù)字,并分別放依次分解出個(gè)位數(shù)字、十位數(shù)字、百

2、位數(shù)字和千位數(shù)字,并分別放到字符變量到字符變量c1、c2、c3和和c4中。中。怎么分解?怎么分解? 利用除法、取模等運(yùn)算。利用除法、取模等運(yùn)算。順序輸出變量順序輸出變量c1、c2、c3和和c4中的字符。中的字符。運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式引例引例引例引例源程序源程序(cw04-01.c)#include void main() unsigned number; char c1, c2, c3, c4; printf(請輸入一個(gè)四位的正整數(shù):請輸入一個(gè)四位的正整數(shù):); scanf(%u, &number); c1 = number%10 + 0; /得到個(gè)位數(shù)字得到個(gè)位數(shù)字 c2 =

3、 number/10%10 + 0; /得到十位數(shù)字得到十位數(shù)字 c3 = number/100%10 + 0; /得到百位數(shù)字得到百位數(shù)字 c4 = number/1000 + 0; /得到千位數(shù)字得到千位數(shù)字 printf(n%c%c%c%cn, c1, c2, c3, c4);請輸入一個(gè)四位的正整數(shù)請輸入一個(gè)四位的正整數(shù): 12344321運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式相關(guān)概念相關(guān)概念運(yùn)算符運(yùn)算符 在在C語言中用來表示某種計(jì)算的符號。語言中用來表示某種計(jì)算的符號。操作數(shù)操作數(shù) 運(yùn)算符操作的對象,可以為變量(已賦值)、常量或其他運(yùn)算符操作的對象,可以為變量(已賦值)、常量或其他有切確值的表達(dá)

4、式。有切確值的表達(dá)式。表達(dá)式表達(dá)式 運(yùn)算符和合適的操作數(shù)組成的具有切確值的式子稱為表達(dá)運(yùn)算符和合適的操作數(shù)組成的具有切確值的式子稱為表達(dá)式。式。運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式運(yùn)算符分類運(yùn)算符分類單目運(yùn)算符(一元運(yùn)算符)單目運(yùn)算符(一元運(yùn)算符) 只有只有1個(gè)操作數(shù)。個(gè)操作數(shù)。雙目運(yùn)算符(二元運(yùn)算符)雙目運(yùn)算符(二元運(yùn)算符) 具有具有2個(gè)操作數(shù)。(主要類型)個(gè)操作數(shù)。(主要類型)三目運(yùn)算符(三元運(yùn)算符)三目運(yùn)算符(三元運(yùn)算符) 需要需要3個(gè)操作數(shù)。(唯一:條件運(yùn)算符個(gè)操作數(shù)。(唯一:條件運(yùn)算符 ? :)運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式運(yùn)算符的優(yōu)先級和結(jié)合性運(yùn)算符的優(yōu)先級和結(jié)合性運(yùn)算符的優(yōu)先級運(yùn)算符的優(yōu)先

5、級某些運(yùn)算符先于其他運(yùn)算符被執(zhí)行。某些運(yùn)算符先于其他運(yùn)算符被執(zhí)行。例如,例如,x + y * 4,先乘除后加減。,先乘除后加減。必要時(shí)可以用必要時(shí)可以用圓括號圓括號()()改變計(jì)算順序。改變計(jì)算順序。例如,求三個(gè)數(shù)的平均值。例如,求三個(gè)數(shù)的平均值。錯(cuò)誤的寫法:錯(cuò)誤的寫法:a + b + c / 3 正確的寫法:正確的寫法:(a + b + c ) / 3運(yùn)算符的結(jié)合性運(yùn)算符的結(jié)合性當(dāng)出現(xiàn)并列的運(yùn)算優(yōu)先級別相同的運(yùn)算符時(shí),由運(yùn)算符的當(dāng)出現(xiàn)并列的運(yùn)算優(yōu)先級別相同的運(yùn)算符時(shí),由運(yùn)算符的結(jié)合性決定計(jì)算的次序。結(jié)合性決定計(jì)算的次序。例如,例如,x * y / z運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式算術(shù)運(yùn)算符算術(shù)

6、運(yùn)算符常用的算術(shù)運(yùn)算及運(yùn)算符常用的算術(shù)運(yùn)算及運(yùn)算符說明說明取模運(yùn)算(取模運(yùn)算(%),結(jié)果是兩個(gè)整數(shù)相除的余數(shù)。),結(jié)果是兩個(gè)整數(shù)相除的余數(shù)。例如,例如,7%5 = 2,-2%3 = -2。運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式運(yùn)算符名稱運(yùn)算符名稱算術(shù)運(yùn)算符算術(shù)運(yùn)算符代數(shù)表達(dá)式代數(shù)表達(dá)式C語言表達(dá)式語言表達(dá)式適用的數(shù)據(jù)類型適用的數(shù)據(jù)類型正號正號+ + a+ a+ a+ a整數(shù)、字符、浮點(diǎn)數(shù)整數(shù)、字符、浮點(diǎn)數(shù)負(fù)號負(fù)號- - b- b- b- b整數(shù)、字符、浮點(diǎn)數(shù)整數(shù)、字符、浮點(diǎn)數(shù)加加+ +f + 7f + 7f + 7f + 7整數(shù)、字符、浮點(diǎn)數(shù)整數(shù)、字符、浮點(diǎn)數(shù)減減- -p cp cp cp c整數(shù)、字符

7、、浮點(diǎn)數(shù)整數(shù)、字符、浮點(diǎn)數(shù)乘乘* *bmbmb b * * m m整數(shù)、字符、浮點(diǎn)數(shù)整數(shù)、字符、浮點(diǎn)數(shù)除除/ /x / yx / yx / yx / y整數(shù)、字符、浮點(diǎn)數(shù)整數(shù)、字符、浮點(diǎn)數(shù)取模取模% %r mod sr mod sr % sr % s整數(shù)、字符整數(shù)、字符運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式自增和自減運(yùn)算符自增和自減運(yùn)算符自增和自減運(yùn)算符自增和自減運(yùn)算符自增運(yùn)算符:自增運(yùn)算符:+將操作數(shù)的值增一。將操作數(shù)的值增一。自減運(yùn)算符:自減運(yùn)算符:-將操作數(shù)的值減一。將操作數(shù)的值減一。操作數(shù)必須是整型和字符型操作數(shù)必須是整型和字符型變量變量。單目運(yùn)算符。單目運(yùn)算符。優(yōu)先級:優(yōu)先級:2。結(jié)合性:從右

8、往左。結(jié)合性:從右往左。運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式算術(shù)運(yùn)算符(特殊問題)算術(shù)運(yùn)算符(特殊問題)除號運(yùn)算符的使用問題除號運(yùn)算符的使用問題 當(dāng)除號前后操作數(shù)全為整型數(shù)(包括當(dāng)除號前后操作數(shù)全為整型數(shù)(包括char、int、long)時(shí),)時(shí),除號為整除運(yùn)算。除號為整除運(yùn)算。 當(dāng)有任一操作數(shù)為實(shí)型數(shù)時(shí)則為普通除法運(yùn)算。當(dāng)有任一操作數(shù)為實(shí)型數(shù)時(shí)則為普通除法運(yùn)算。取模運(yùn)算符的使用問題取模運(yùn)算符的使用問題 操作數(shù)只能整型數(shù)據(jù)(操作數(shù)只能整型數(shù)據(jù)(char、int、long)。)。自加自加/自減運(yùn)算符的使用問題自減運(yùn)算符的使用問題 +(-)在前:先加(減)后用;)在前:先加(減

9、)后用; +(-)在后:先用后加(減)。)在后:先用后加(減)。運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式自增和自減運(yùn)算自增和自減運(yùn)算舉例舉例(cw0404.c)#include void main() int i=6, a, b; printf(%dn, +i); printf(%dn, i+); a=-i; printf(%dn, a); b=i-; printf(%dn, b); printf(%dn, -i+); printf(i=%dn, i);7777-6i = ?運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式關(guān)系運(yùn)算關(guān)系運(yùn)算關(guān)系運(yùn)算(比較運(yùn)算)關(guān)系運(yùn)算(比較運(yùn)算)比較兩個(gè)值,結(jié)果為比較兩個(gè)值,結(jié)果為“真真”或或

10、“假假”。舉例:舉例:a3如果如果a=8,則結(jié)果為,則結(jié)果為“真真”如果如果a=1,則結(jié)果為,則結(jié)果為“假假”用關(guān)系運(yùn)算進(jìn)行條件判斷用關(guān)系運(yùn)算進(jìn)行條件判斷關(guān)系表達(dá)式表示一個(gè)條件,根據(jù)其結(jié)果判斷條件是否滿足。關(guān)系表達(dá)式表示一個(gè)條件,根據(jù)其結(jié)果判斷條件是否滿足。舉例:舉例:a3如果如果a=8,結(jié)果為,結(jié)果為“真真”,即條件滿足,即條件滿足如果如果a=1,結(jié)果為,結(jié)果為“假假”,即條件不滿足,即條件不滿足運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式關(guān)系運(yùn)算符關(guān)系運(yùn)算符關(guān)系運(yùn)算符關(guān)系運(yùn)算符運(yùn)算符運(yùn)算符含含 義義優(yōu)先級優(yōu)先級結(jié)合性結(jié)合性 小于小于6 6左結(jié)合左結(jié)合= 大于大于=大于或等于大于或等于=等于等于7 7!=!

11、=不等于不等于運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式關(guān)系表達(dá)式關(guān)系表達(dá)式關(guān)系表達(dá)式關(guān)系表達(dá)式 表達(dá)式表達(dá)式1和表達(dá)式和表達(dá)式2可以是任何表達(dá)式。可以是任何表達(dá)式。舉例舉例abm+nz)=(yz)運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式關(guān)系表達(dá)式關(guān)系表達(dá)式關(guān)系表達(dá)式的值是一個(gè)邏輯值:關(guān)系表達(dá)式的值是一個(gè)邏輯值:“真真”或或“假假”C語言沒有邏輯類型,因此語言沒有邏輯類型,因此用整數(shù)用整數(shù) 1 表示表示“真真”用整數(shù)用整數(shù) 0 表示表示“假假”即關(guān)系表達(dá)式的值是整數(shù)即關(guān)系表達(dá)式的值是整數(shù) 1 或或 0 。舉例舉例若若a=1,b=2,c=3aba+bc)=(bc)Y!=y0111運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式關(guān)系表達(dá)式的使

12、用關(guān)系表達(dá)式的使用舉例:寫出下面各條件的關(guān)系表達(dá)式舉例:寫出下面各條件的關(guān)系表達(dá)式x為不小于為不小于 -5 的整數(shù)的整數(shù)x為非零的數(shù)為非零的數(shù)x的平方大于的平方大于m與與n的和的和x=-5x!=0 x*x(m+n)運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式關(guān)系運(yùn)算的不足關(guān)系運(yùn)算的不足關(guān)系表達(dá)式只能表達(dá)一些簡單的條件關(guān)系表達(dá)式只能表達(dá)一些簡單的條件grade=60total1000每個(gè)判斷只是對一個(gè)條件進(jìn)行測試。每個(gè)判斷只是對一個(gè)條件進(jìn)行測試。如果要對多個(gè)條件進(jìn)行測試就要在獨(dú)立的語句或嵌套的如果要對多個(gè)條件進(jìn)行測試就要在獨(dú)立的語句或嵌套的if或或if-else結(jié)構(gòu)中進(jìn)行測試。結(jié)構(gòu)中進(jìn)行測試。例例1:10y5例

13、例2:x0if (y5) if (y10) ;if (x0) ;運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式邏輯運(yùn)算邏輯運(yùn)算邏輯運(yùn)算邏輯運(yùn)算通過邏輯運(yùn)算符把簡單的條件組合起來,能夠形成更加復(fù)通過邏輯運(yùn)算符把簡單的條件組合起來,能夠形成更加復(fù)雜的條件。雜的條件。例例1:10y5 的邏輯表達(dá)式的邏輯表達(dá)式(y5)&(y10)例例2:x0 的邏輯表達(dá)式的邏輯表達(dá)式(x0)邏輯運(yùn)算符邏輯運(yùn)算符!(邏輯非)(邏輯非)&(邏輯與)(邏輯與)|(邏輯或)(邏輯或)運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式邏輯表達(dá)式邏輯表達(dá)式邏輯表達(dá)式邏輯表達(dá)式 表達(dá)式表達(dá)式1和表達(dá)式和表達(dá)式2可以是任何表達(dá)式。可以是任何表達(dá)式。舉例舉例

14、(x5)|(x-5)!(ac)&(a+cb)&(b+ca)邏輯表達(dá)式的值邏輯表達(dá)式的值1:真:真0:假:假整數(shù)整數(shù)運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式邏輯運(yùn)算邏輯運(yùn)算邏輯運(yùn)算真值表邏輯運(yùn)算真值表a!a1001aba&b111100010000aba|b111101011000!&|運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式邏輯表達(dá)式的使用邏輯表達(dá)式的使用將下面的條件用將下面的條件用C語言的邏輯表達(dá)式表示語言的邏輯表達(dá)式表示例例1:1x10且且x7x=1&x=65如果如果gender不等于不等于F,整個(gè)表達(dá)式的值就是假,求值過程結(jié)束。,整個(gè)表達(dá)式的值就是假,求值過程結(jié)束。例例2

15、:average=90|finalExam=90如果如果average大于等于大于等于90,整個(gè)表達(dá)式的值就是真,求值過程結(jié)束。,整個(gè)表達(dá)式的值就是真,求值過程結(jié)束。運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式程序設(shè)計(jì)舉例程序設(shè)計(jì)舉例舉例舉例(cw0602.c)問題:任意輸入一個(gè)字符,判斷它是字母還是數(shù)字。問題:任意輸入一個(gè)字符,判斷它是字母還是數(shù)字。#include void main() char c; c=getchar(); if (c=A&c=a&c=0&c=9) printf(“%c is a digit.”, c); else printf(“%c is neither

16、a letter nor a digit.”, c); 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式位運(yùn)算位運(yùn)算位左移位左移,位與,位與&,位或,位或|,位異或,位異或位運(yùn)算按二進(jìn)制數(shù)運(yùn)算法則進(jìn)行計(jì)算位運(yùn)算按二進(jìn)制數(shù)運(yùn)算法則進(jìn)行計(jì)算將另立專題講解運(yùn)算規(guī)則將另立專題講解運(yùn)算規(guī)則運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式賦值運(yùn)算賦值運(yùn)算賦值運(yùn)算符賦值運(yùn)算符簡單賦值運(yùn)算符:簡單賦值運(yùn)算符:=復(fù)合賦值運(yùn)算符:復(fù)合賦值運(yùn)算符:+=,-=,*=,/=,%=優(yōu)先級:優(yōu)先級:14結(jié)合性:從右往左結(jié)合性:從右往左賦值表達(dá)式賦值表達(dá)式 d = 23作用:將表達(dá)式的值賦給變量。作用:將表達(dá)式的值賦給變量。賦值表達(dá)式的值就是被賦值的變量的

17、值。賦值表達(dá)式的值就是被賦值的變量的值。運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式簡單賦值運(yùn)算簡單賦值運(yùn)算簡單賦值運(yùn)算符:簡單賦值運(yùn)算符:=舉例舉例類型轉(zhuǎn)換類型轉(zhuǎn)換如果賦值運(yùn)算符右邊表達(dá)式的類型與左邊變量的類型不一如果賦值運(yùn)算符右邊表達(dá)式的類型與左邊變量的類型不一致,則把右邊表達(dá)式值的類型按左邊變量的類型進(jìn)行轉(zhuǎn)換,致,則把右邊表達(dá)式值的類型按左邊變量的類型進(jìn)行轉(zhuǎn)換,然后再賦值。然后再賦值。例如,例如,int n = 3.6; n的值為的值為3。運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式c=a+ba=b=c=d=10 x=(a=5)+(b=8)a=(a+b)a=(b=(c=(d=10)a=5,

18、b=8, x=a+b運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式復(fù)合賦值運(yùn)算復(fù)合賦值運(yùn)算復(fù)合賦值運(yùn)算符:復(fù)合賦值運(yùn)算符:+=, -=, *=, /=, %=簡化了賦值表達(dá)式簡化了賦值表達(dá)式 = 由下面的表達(dá)式簡化而來由下面的表達(dá)式簡化而來 = 舉例舉例運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式a+=5x*=y+7x+=x-=x*=xa=a+5x=x*(y+7)x=x+(x=x-(x=x*x)運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式逗號運(yùn)算符逗號運(yùn)算符逗號運(yùn)算符:逗號運(yùn)算符:,優(yōu)先級:優(yōu)先級:15。結(jié)合性:從左往右。結(jié)合性:從左往右。逗號表達(dá)式逗號表達(dá)式, , , x=1, (a=b+1), i+求解過程:先求表達(dá)式求解過程:先求表達(dá)式1的值,再求表達(dá)式的值,再求表達(dá)式2的值,的值,直,直至求出表達(dá)式至求出表達(dá)式n的值。的值。表達(dá)式的值為表達(dá)式表達(dá)式的值為表達(dá)式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論