




已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三講 運(yùn)算符和表達(dá)式,一、表達(dá)式,二、算術(shù)運(yùn)算符和算術(shù)表達(dá)式,四、算術(shù)表達(dá)式中數(shù)據(jù)類型的轉(zhuǎn)換,三、標(biāo)準(zhǔn)庫函數(shù)調(diào)用,六、增量運(yùn)算符與增量表達(dá)式,七、逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式,五、賦值運(yùn)算 1、賦值運(yùn)算符和賦值表達(dá)式 2、復(fù)合賦值運(yùn)算,一、表達(dá)式,表達(dá)式:由常量、變量、函數(shù)和運(yùn)算符組成的式子稱為表達(dá)式。,例:計(jì)算圓面積的語句: s = 3.14159 * r * r ; 該語句中, r,3.14159,3.14159 * r , 3.14159 * r * r ,s = 3.14159 * r * r 都是表達(dá)式 其中,*是運(yùn)算符,r是變量,3.14159是常量,表達(dá)式的求值規(guī)則,按照運(yùn)算符的優(yōu)先級(jí)和結(jié)合性的規(guī)定順序進(jìn)行。,有的運(yùn)算符只需要一個(gè)運(yùn)算對(duì)象,這種運(yùn)算符稱為單目運(yùn)算符; 如5中的()負(fù)號(hào) 需要兩個(gè)運(yùn)算對(duì)象的稱為雙目運(yùn)算符; 如加(),減(),乘(*),除(/),一個(gè)表達(dá)式有一個(gè)值及其類型,它們等于計(jì)算表達(dá)式所得結(jié)果的值和類型。,二、算術(shù)運(yùn)算符和算術(shù)表達(dá)式,算術(shù)運(yùn)算符:算術(shù)運(yùn)算符用于各類數(shù)值運(yùn)算。算表達(dá)式中的運(yùn)算對(duì)象都是算術(shù)量,即整型、實(shí)型或字符型。,下表為基本的算術(shù)運(yùn)算符:,其中單目運(yùn)算符負(fù)號(hào)()的優(yōu)先級(jí)最高,為2,除法運(yùn)算符“/”進(jìn)行求商運(yùn)算。對(duì)于不同類型的運(yùn)算對(duì)象,除法表達(dá)式計(jì)算結(jié)果的類型也會(huì)不同。,例:計(jì)算x/y 如果x,y是整型,則結(jié)果為整型,小數(shù)部分被略去。 如果x,y中有一個(gè)實(shí)型量,則x,y都被轉(zhuǎn)化為double類型進(jìn)行運(yùn)算,結(jié)果為double類型量,運(yùn)算實(shí)例: x,y為整型量: 5/2結(jié)果為2,整型量 2/5結(jié)果為0,整型量,x,y其中一個(gè)為實(shí)型量 : 5.0/2或5/2.0或5.0/2.0結(jié)果為2.5,實(shí)型量,“”是求余運(yùn)算。ab計(jì)算a除以b后的余數(shù),也是a模b的值。它要求兩個(gè)運(yùn)算對(duì)象都是整型量,其結(jié)果也是整型量。,例:52結(jié)果為1 25結(jié)果為0,例:將數(shù)學(xué)式改寫成算術(shù)表達(dá)式,一般數(shù)學(xué)式 a(b+c)+dac,算術(shù)表達(dá)式 (a*(b+c)+d)*a*c 將方括號(hào)改成圓括號(hào),*不能省略,x/(x+y)+1.0/x*y 其中不能出現(xiàn)分?jǐn)?shù),改用除法運(yùn)算符,圓括號(hào)不能缺少,3.14159*r*r/2.0 其中 為非字母字符,要用實(shí)型常量代替,例:基本數(shù)學(xué)運(yùn)算符程序?qū)嵗?main ( ) int a, b, c1, c2 ; a=3, b=-7 ; c1=b/a; c2=b%a; printf( “c1=%dtc2=%dn“, c1,c2 ); c1=a/b; c2=a%b; printf( “c1=%dtc2=%dn“, c1,c2 ); ,程序運(yùn)行輸出: c1=-2 c2=-1 c1=0 c2=3,三、標(biāo)準(zhǔn)庫函數(shù)調(diào)用,對(duì)于某些數(shù)學(xué)運(yùn)算,如求平方根,指數(shù)、對(duì)數(shù)運(yùn)算,C語言中有標(biāo)準(zhǔn)庫函數(shù)對(duì)其進(jìn)行計(jì)算。,調(diào)用函數(shù)格式: 函數(shù)名(參數(shù),參數(shù),),其中函數(shù)名有由系統(tǒng)提供,不同C的編譯系統(tǒng),提供的函數(shù)名不同,使用時(shí)需查閱相關(guān)手冊(cè)。,調(diào)用函數(shù)時(shí),參數(shù)的類型必須與系統(tǒng)規(guī)定一致。,調(diào)用標(biāo)準(zhǔn)庫函數(shù)之前,通常要用預(yù)編譯命令“# include”將所需要的庫函數(shù)信息包含到用戶源文件中。,如:在使用數(shù)學(xué)庫函數(shù)以前,需使用編譯命令 include “math.h”,例:計(jì)算 的值, include “math.h” main( ) double x,y; x=5.0; y=7.0; printf(“z=fn”,x*(2.0+pow(x,y); ,四、算術(shù)表達(dá)式中數(shù)據(jù)類型的轉(zhuǎn)換,當(dāng)表達(dá)式中的各類數(shù)值型數(shù)據(jù)參與混合運(yùn)算時(shí),要進(jìn)行類型轉(zhuǎn)換。,轉(zhuǎn)換方式 自動(dòng)轉(zhuǎn)換:數(shù)據(jù)類型自動(dòng)由低級(jí)向高級(jí)轉(zhuǎn)換。 強(qiáng)制轉(zhuǎn)換:將表達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成指定的數(shù)據(jù)類型。,如下表達(dá)式是合法的: 13.14159+0+A,自動(dòng)轉(zhuǎn)換規(guī)則:,例:數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換實(shí)例,有如下變量類型: char c; int i; float f; double d; 計(jì)算表達(dá)式: c+f+i+d,char float int double,c + f + i + d,int double,double double,double,double,強(qiáng)制轉(zhuǎn)換:,格式: (數(shù)據(jù)類型說明符)(表達(dá)式),注意: 1)強(qiáng)制轉(zhuǎn)換屬單目運(yùn)算,運(yùn)算優(yōu)先級(jí)為2。 2)強(qiáng)制轉(zhuǎn)換得到的是中間變量類型,原變量 類型不變。,例:int x, y; float z; (float)(x+y); (int)z+x;,五、賦值運(yùn)算,1、賦值運(yùn)算符和賦值表達(dá)式,賦值表達(dá)式的一般格式為: 變量表達(dá)式,說明:,賦值運(yùn)算符左邊必須是變量而不能是表達(dá)式;,賦值表達(dá)式的值是賦值號(hào)左邊變量被賦值后的值;,例:j+3=j a*b=c*4,左邊的語句是錯(cuò)誤的,賦值語句左邊只能是變量,如果賦值號(hào)兩邊的類型不一致,則將賦值號(hào)右邊表達(dá)式的值的類型轉(zhuǎn)換成賦值號(hào)左邊變量的類型;,例:float f=1.0; int a=2,b=3; char c=A; f=a+b+c;,賦值表達(dá)式f=a+b+c的值,也就是f的值為實(shí)型量,結(jié)果為70.0,賦值語句可以連續(xù)進(jìn)行。,例:a=b=c=0,該表達(dá)式等價(jià)于a=(b=(c=0),2、復(fù)合賦值運(yùn)算,算術(shù)運(yùn)算符“+ * / %”和賦值運(yùn)算符“=”結(jié)合起來,形成復(fù)合賦值運(yùn)算符。,變量 OP= 表達(dá)式 等價(jià)于 變量 = 變量 OP 表達(dá)式,用OP表示“+ * / %”,則復(fù)合賦值表達(dá)式格式為:,+= :加賦值運(yùn)算符; 如a+=b+3,等價(jià)于 a=a+(b+3),-= :減賦值運(yùn)算符; 如a-= b+ 3,等價(jià)于 a=a- (b+3) *= :乘賦值運(yùn)算符; 如a*= b+ 3,等價(jià)于 a=a* (b+3) /= :除賦值運(yùn)算符; 如a/= b+ 3,等價(jià)于 a=a/ (b+3) %= :取余賦值運(yùn)算符 a%= b+ 3,等價(jià)于 a=a% (b+3),復(fù)合運(yùn)算符左邊必須是變量;,注意:,復(fù)合運(yùn)算符右邊的表達(dá)式計(jì)算完成后才參與復(fù)合賦值運(yùn)算;,復(fù)合賦值運(yùn)算符的結(jié)合性和優(yōu)先級(jí)等同于簡(jiǎn)單的賦值運(yùn)算符“=”。,復(fù)合運(yùn)算符常用于某個(gè)變量自身的變化,尤其當(dāng)左邊的變量名很長(zhǎng)時(shí),使用復(fù)合運(yùn)算符書寫更方便。,復(fù)合運(yùn)算符在書寫時(shí),兩個(gè)運(yùn)算符之間不能有空格。,例:賦值語句程序?qū)嵗?main( ) int a, b, c; a=b=c=5; printf(”a=%d, b=%d, c=%dn”,a,b,c); a=(b=4)+(c=6); printf(”a=%d, b=%d, c=%dn”,a,b,c); a+=b+c; printf(”a=%d, b=%d, c=%dn”,a,b,c); a+=a-=a*=a; printf(”a=%dn”,a); ,程序運(yùn)行結(jié)果: a=5, b=5, c=5 a=10, b=4, c=6 a=20, b=4, c=6 a=0,六、增量運(yùn)算符與增量表達(dá)式,類別: 單目運(yùn)算,運(yùn)算優(yōu)先級(jí)為2,運(yùn)算符: + 使變量的值增 1 - 使變量的值減 1,結(jié)合性及執(zhí)行過程: 后綴 左結(jié)合 i 前綴 右結(jié)合 i i,自增、自減運(yùn)算只能用于變量,不能用于常量和表達(dá)式。,注意:,例 +6, +(a+b)均為非法的運(yùn)算,自增、自減運(yùn)算符高于基本算術(shù)運(yùn)算符。,自增、自減運(yùn)算符的運(yùn)算順序。,例:自增、自減運(yùn)算符程序?qū)嵗?,main ( ) int x, y, t=3; printf(“t=%d:n“, t ); x=t+; printf(“x=%d, t=%dn“, x, t); t=3; printf(“t=%d:n“, t ); y = +t ; printf(“y=%d, t=%dn“, y, t); ,程序運(yùn)行結(jié)果: t=3: x=3, t=4 t=3: y=4, t=4,例:自增、自減運(yùn)算符程序?qū)嵗?,main( ) int i, j, k ; i=1; j=1; k=i+j ; printf(“k=%d,i=%d,j=%dn“,k,i,j); ,程序運(yùn)行結(jié)果: k=2,i=2,j=1,表達(dá)式 x+y 等價(jià)于(x+)+y,例:自增、自減運(yùn)算符程序?qū)嵗?,main() int i, k ; i=3; k=i+i+i+ ; printf(“1) k=%dt i=%dn“, k,i); i=3; k = (+i)+(+i)+(+i) ; printf(“2) k=%dt i=%dn“, k,i); ,程序輸出: 1) k=9 i=6 2) k=18 i=6,例:自增、自減運(yùn)算符程序?qū)嵗?,main ( ) int x, a, b, c, d ; x=3; printf(“%dt%dt%dt%dn“, x, x+, x, x-); a=x=3; b=x+ ; c=x; d=x-; printf(“%dt%dt%dt%dn“,a, b, c, d ); ,程序運(yùn)行結(jié)果: 3 2 2 3 3 3 4 4,七、逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式,逗號(hào)運(yùn)算符,或稱順序求值運(yùn)算符 運(yùn)算符:, 運(yùn)算優(yōu)先級(jí):最低,15級(jí) 結(jié)合性:左結(jié)合,逗號(hào)表達(dá)式:由逗號(hào)運(yùn)算符連接起來的兩個(gè)或兩個(gè)以上的表達(dá)式。,格式: 表達(dá)式1,表達(dá)式2, ,表達(dá)式n,求解過程:先求表達(dá)式1的值,再求表達(dá)式2的值,直至求出表達(dá)式n的值。整個(gè)表達(dá)式的值為表達(dá)式n的值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 認(rèn)知能力發(fā)展教育
- 高中開學(xué)安全教育指南
- 甲狀腺切口引流管的護(hù)理
- 《智能網(wǎng)聯(lián)整車綜合測(cè)試》課件-超車場(chǎng)景測(cè)試評(píng)價(jià)
- 《社會(huì)財(cái)務(wù)共享服務(wù)實(shí)務(wù)》課件-個(gè)人所得稅申報(bào)
- 預(yù)防流感安全課件
- 預(yù)應(yīng)力混凝土工程課件
- 船員上船前培訓(xùn)指南
- 韻母un的課件教學(xué)課件
- 音樂鑒賞課件作品介紹
- 《樹立正確的“三觀”》班會(huì)課件
- 園林綠化移樹合同
- 醫(yī)療機(jī)構(gòu)保潔人員培訓(xùn)
- 企業(yè)員工健康促進(jìn)計(jì)劃的設(shè)計(jì)與實(shí)施
- 助理工程師答辯演示
- 成人失禁相關(guān)性皮炎的預(yù)防與護(hù)理-護(hù)理團(tuán)標(biāo)
- 裝載機(jī)的基礎(chǔ)知識(shí)-裝載機(jī)的結(jié)構(gòu)及儀表
- 現(xiàn)代低壓電器技術(shù) 課件 2. 常見低壓電器
- 浙江天垣新型墻體材料有限公司年產(chǎn)40萬立方米ALC板材項(xiàng)目環(huán)境影響報(bào)告
- 放射事件應(yīng)急處理預(yù)案牙科
- GSV2.0反恐安全管理手冊(cè)
評(píng)論
0/150
提交評(píng)論