版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5部分 基本運(yùn)算符與表達(dá)式第1頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六 學(xué)習(xí)重點(diǎn)熟悉幾種常用的運(yùn)算符掌握運(yùn)算符的運(yùn)算規(guī)則3. 掌握表達(dá)式求值 第2頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六3.1 表達(dá)式一、 表達(dá)式的概念 表達(dá)式是由運(yùn)算符連接常量、變量、函數(shù)所組成的式子。 每個(gè)表達(dá)式都有一個(gè)值和類型。第3頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六二、 運(yùn)算符的種類:據(jù)運(yùn)算對(duì)象的個(gè)數(shù)分有三種: 單目、雙目、三目第4頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六C運(yùn)算符算術(shù)運(yùn)算符:(+ - * / % + -)關(guān)系運(yùn)算符:( = !=
2、)邏輯運(yùn)算符:(! & |)位運(yùn)算符 :( | &)賦值運(yùn)算符:(= 及其擴(kuò)展)條件運(yùn)算符:(?:)逗號(hào)運(yùn)算符:(,)指針運(yùn)算符:(* &)求字節(jié)數(shù) :(sizeof)強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:(. -)下標(biāo)運(yùn)算符:()其它 :(( ) -)第5頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六學(xué)習(xí)運(yùn)算符應(yīng)注意:運(yùn)算符功能與運(yùn)算量關(guān)系要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量類型運(yùn)算符優(yōu)先級(jí)別結(jié)合方向結(jié)果的類型第6頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六一、算術(shù)運(yùn)算符: + - * / %結(jié)合方向:從左向右優(yōu)先級(jí): - -* / % - + -說(shuō)明:“-”可為單目運(yùn)算符時(shí),右結(jié)
3、合性兩整數(shù)相除,結(jié)果為整數(shù)%要求兩側(cè)均為整型數(shù)據(jù)例 5/2 = -5/2.0 =例 5%2 = -5%2 = 1%10 = 5%1 = 5.5%2例 5/2 = 2 -5/2.0 = -2.5例 5%2 = 1 -5%2 = -1 1%10 = 1 5%1 = 0 5.5%2 ()3.2 算術(shù)運(yùn)算符和表達(dá)式第7頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六例1:#include”stdio.h”main()int a,b; a=20/7; b=-20/7;printf(nn%d,%dn,a,b);printf(%f,%fn,20.0/7,-20.0/7);結(jié)果:2,-22.8571
4、43,-2.857143例2: #include”stdio.h”main() int i; i=100%3; printf(%dn,i); 結(jié)果:1第8頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六3.3 賦值運(yùn)算符一、簡(jiǎn)單賦值運(yùn)算符:=格式: 變量=表達(dá)式作用:將一個(gè)數(shù)據(jù)(常量或表達(dá)式)賦給一個(gè)變量例 a=3; d=func(); c=d+2;第9頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六說(shuō)明:結(jié)合方向:自右向左左側(cè)必須是變量,不能是常量或表達(dá)式優(yōu)先級(jí):比算術(shù)低第10頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六3.4 不同類型數(shù)據(jù)間的轉(zhuǎn)換轉(zhuǎn)換有兩種
5、:隱式:計(jì)算機(jī)自動(dòng)進(jìn)行的轉(zhuǎn)換顯式:強(qiáng)制性轉(zhuǎn)換一、隱式轉(zhuǎn)換(4種)運(yùn)算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運(yùn)算時(shí)賦值轉(zhuǎn)換-把一個(gè)值賦給與其類型不同的變量時(shí)輸出轉(zhuǎn)換-輸出時(shí)轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換-實(shí)參與形參類型不一致時(shí)轉(zhuǎn)換第11頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六(1) 運(yùn)算轉(zhuǎn)換:不同類型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)轉(zhuǎn)換成同一類型數(shù)據(jù)類型的級(jí)別floatlongintbitchar低高unsignedsigned第12頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六轉(zhuǎn)換規(guī)則:當(dāng)運(yùn)算符兩端的數(shù)據(jù)類型不同時(shí),按“向高看齊”的原則,對(duì)較低的類型提升。10+a +i*f - d / l例
6、int i; float d,f; long l;intintfloatfloatfloatfloatfloatfloat第13頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六(2)賦值轉(zhuǎn)換:自動(dòng)將“=”右邊的類型轉(zhuǎn)換為左邊變量的類型。實(shí)整,舍棄小數(shù)。例: int i; i=375.986; i=375intfloat,數(shù)值不變,但以浮點(diǎn)形式存到變量中。例:float f; f=36; f=36.000000第14頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六 字符 整型,將字符的ASCII碼值放到整型量的低八位中,高八位為0。 整型賦予字符型,只把低八位賦予字符變量。
7、char c; c=322;例:int i; i=A; i=65 c=66第15頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六 signedunsigned,原樣照賦例3 #include”stdio.h” main() unsigned int a; int b=-1; a=b; printf(“%u”,a); 輸出結(jié)果:65535C第16頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六二、顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)格式:(類型名)(表達(dá)式)例 (int)(x+y) (int)x+y (float)(3/2) (int)3.6 說(shuō)明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型
8、不變 例4 #include”stdio.h” main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 結(jié)果:x=3.600000,i=3精度損失問題較高類型向較低類型轉(zhuǎn)換時(shí)可能發(fā)生第17頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六例: float f; f=6/7;問:f=? f=0.8571 f=0.0改為:f=6.0/7 或 f=6/7.0或 f=(float)6/7類型轉(zhuǎn)換時(shí),只贊成低高 不贊成高低 只贊成有符號(hào)數(shù)無(wú)符號(hào)數(shù) 不贊成無(wú)符號(hào)數(shù)有符號(hào)數(shù)第18頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24
9、分,星期六3.5 關(guān)系運(yùn)算符和表達(dá)式運(yùn)算符: = = !=結(jié)合方向:自左向右優(yōu)先級(jí)別: = -= !=與其它比:算術(shù)關(guān)系賦值例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(bc /a=(bc)關(guān)系表達(dá)式的值:是邏輯值,1(真) 0(假)例 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc/表達(dá)式值1/表達(dá)式值1/表達(dá)式值0/d=1/f=0第19頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六注意:例 若a=0; b=0.5; x=0.3; 則 a=x278在C中是允許的, 值為0例 int i=1, j=7,a; a=i
10、+(j%4!=0); 則a=2例 a0 結(jié)果為 A100 結(jié)果為10第20頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六例 注意區(qū)分“=”與“=” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);第21頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六例5:#include”stdio.h”main() int x,y,z; printf(“input data x,y:n”); scanf(“%d%d”,&x,&y); printf(“n x y xy xy x=y
11、x!=y x=y”); printf(“n%5d%5d”,x,y); z=xy;printf(“%5d”,z); z=xy;printf(“%5d”,z); z=x=y;printf(“%5d”,z); z=x!=y;printf(“%5d”,z); z=x=y;printf(“%5d”,z); printf(“n”);第22頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六結(jié)果1:input data x,y:5 3 回車 x y xy xy x=y x!=y x=y 5 3 0 0 1 1 1 0結(jié)果2:-input data x,y:-5 -3 回車 x y xy xy x=y
12、x!=y x=y -5 -3 1 1 0 0 1 0結(jié)果1:input data x,y:4 4 回車 x y xy xy x=y x!=y x=y 4 4 0 1 0 1 0 1第23頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六ab!a!ba&ba|b真假真假假假真真3.6 邏輯運(yùn)算符和表達(dá)式運(yùn)算符:! & |邏輯運(yùn)算真值表 運(yùn)算量: 0(假) 非0(真) 表達(dá)式值: 0(假) 1(真) 真假假假假假真真假假真真真假真真第24頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六例 a=x & xb&xy a=b|x=y !a|ab優(yōu)先級(jí):結(jié)合方向:! : 右左& : 左右
13、| : 左右/ (a=x) & (xb)&(xy)/(a=b)|(x=y)/(!a)|(ab)與其它比:?jiǎn)文克阈g(shù)關(guān)系邏輯賦值!&|第25頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六例 a=4;b=5; !a a&b a|b !a|b 4&0|2 53&2|8b)&(n=cd)求 m=? n=?/m=0,n=1例 a&b&c /只在a為真時(shí),才判別b的值; 只在a、b都為真時(shí),才判別 c的值或表達(dá)式遇真結(jié)束例 a|b|c /只在a為假時(shí),才判別b的值; 只在a、b都為假時(shí),才判別 c的值第27頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六例6:#include”stdi
14、o.h”main() int x,y,z; printf(“input data x,y:n”); scanf(“%d%d”,&x,&y); printf(“n x y !x x|y x&y”); printf(“n%5d%5d”,x,y); z=!x;printf(“%8d”,z); z=x|y;printf(“%8d”,z); z=x&y;printf(“%8d”,z); printf(“n”);第28頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六結(jié)果1:input data x,y:12 8 回車 x y !x x|y x&y 12 8 0 1 1 結(jié)果2:input dat
15、a x,y:9 -3 回車 x y !x x|y x&y 9 -3 0 1 1 結(jié)果3:input data x,y:0 81 回車 x y !x x|y x&y 0 8 1 1 0 第29頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六結(jié)果4:input data x,y:-23 0 回車 x y !x x|y x&y -23 0 0 1 10 結(jié)果5:input data x,y:0 0 回車 x y !x x|y x&y 0 0 1 0 0 第30頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六3.7 自增、自減運(yùn)算符:+ -作用:使變量值加1或減1 i+ 或 +i
16、i=i+1 i- 或 - i i=i-1種類:前綴:+i, - - i 先增1(減1),再使用i值后綴:i+ , i- - 先使用i值,再增1(減1)例 j=3; k=+j; j=3; k=j+; j=3; printf(“%d”,+j); j=3; printf(“%d”,j+); a=3;b=5;c=(+a)*b; a=3;b=5;c=(a+)*b; /k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=4第31頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六說(shuō)明:不能用于常量和表達(dá)式,如5+,(a+b)+結(jié)合方向: 自右向左優(yōu)先級(jí):- + - -* / %
17、-+ - 例 -i+ -(i+) i=3; printf(“%d”,-i+); /-3 例 int a=5,b; b=a+; printf(“a=%d,b=%d”,a,b);/a=6,b=5例 int a=5,b; b=+a; printf(“a=%d,b=%d”,a,b);/a=6,b=6第32頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六例7:#include”stdio.h”main() int x,y,z; x=y=8;z=+x; printf(“n%3d%3d%3d”,y,z,x); x=y=8;z=x+; printf(“n%3d%3d%3d”,y,z,x); x=y=
18、8;z=-x; printf(“n%3d%3d%3d”,y,z,x); x=y=8;z=x-; printf(“n%3d%3d%3d”,y,z,x); printf(“n”);結(jié)果: 8 9 9 8 8 9 8 7 7 8 8 7 第33頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六3.8 逗號(hào)運(yùn)算符和表達(dá)式形式:表達(dá)式1,表達(dá)式2,表達(dá)式n結(jié)合性:從左向右優(yōu)先級(jí): 最低表達(dá)式值:等于表達(dá)式n的值用途:常用于循環(huán)for語(yǔ)句中例 a=3*5,a*4 a=3*5,a*4,a+5例 a=1;b=2;c=3; printf(“%d,%d,%d”,a,b,c); printf(“%d,%d,
19、%d”,(a,b,c),b,c); /a=15,表達(dá)式值60/a=15,表達(dá)式值20/1,2,3/3,2,3第34頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六例8:#include”stdio.h”main() int x,y=7; float z=4; x=(y=y+6,y/z); printf(x=%dn,x);運(yùn)行結(jié)果:x=3第35頁(yè),共38頁(yè),2022年,5月20日,12點(diǎn)24分,星期六3.9 條件運(yùn)算符與表達(dá)式 e1 ? e2 : e3 (唯一的三目運(yùn)算符)功能:e1為真,取e2值;e1為假,取e3值。 (相當(dāng)于條件語(yǔ)句,但不能取代一般if語(yǔ)句)結(jié)合方向:自右向左 如 ab?a:cd?c:d ab?a:(cd?c:d)例 if (ab) printf(“%d”,a); e
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 維也納客戶協(xié)議書
- 博云開源協(xié)議書
- 維保協(xié)議維保合同
- 租賃醫(yī)師證協(xié)議書
- 打字勞動(dòng)合同范本
- 合伙分家協(xié)議書
- 店員用工合同范本
- 供電擔(dān)保協(xié)議書
- 借戶上學(xué)協(xié)議書
- 借名入戶協(xié)議書
- 湖北省鄂東南省級(jí)示范高中教育教學(xué)改革聯(lián)盟2026屆生物高二上期末復(fù)習(xí)檢測(cè)試題含解析
- 科睿唯安 2025-年最值得關(guān)注的公司:蛋白質(zhì)降解劑-使針對(duì)“不可成藥”靶點(diǎn)的精準(zhǔn)干預(yù)成為可能
- 民航招飛pat測(cè)試題目及答案
- 2025年Unity3D交互設(shè)計(jì)沖刺模擬專項(xiàng)卷
- 2026年元旦校長(zhǎng)致辭:凱歌高奏辭舊歲歡聲笑語(yǔ)迎新年
- 中孕引產(chǎn)護(hù)理查房
- 食育課三明治課件
- DB3305∕T 280-2023 湖州黃茶加工技術(shù)規(guī)程
- 病房結(jié)核應(yīng)急預(yù)案
- 2026考研政治模擬預(yù)測(cè)卷及答案
- 2025-2026學(xué)年八年級(jí)數(shù)學(xué)上冊(cè)人教版(2024)第17章 因式分解 單元測(cè)試·基礎(chǔ)卷
評(píng)論
0/150
提交評(píng)論