版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第三章運(yùn)算符與表達(dá)式1第一節(jié)算術(shù)運(yùn)算符和算術(shù)表達(dá)式第二節(jié)賦值運(yùn)算符和賦值表達(dá)式第三節(jié)關(guān)系運(yùn)算符和關(guān)系表達(dá)式第四節(jié)邏輯運(yùn)算符和邏輯表達(dá)式第五節(jié)條件運(yùn)算符和條件表達(dá)式第六節(jié)逗號運(yùn)算符和逗號表達(dá)式第七節(jié)不同類型數(shù)據(jù)的混合運(yùn)算2第一節(jié)算術(shù)運(yùn)算符和算術(shù)表達(dá)式基本的算術(shù)運(yùn)算符自增和自減運(yùn)算符3C語言提供了算術(shù)運(yùn)算符
+(加法運(yùn)算或正號運(yùn)算符)-(減法運(yùn)算或負(fù)號運(yùn)算符)*(乘法運(yùn)算符)/(除法運(yùn)算符)%(求余運(yùn)算符,或稱模運(yùn)算符)基本的算術(shù)運(yùn)算符算術(shù)運(yùn)算符和算術(shù)表達(dá)式4說明:兩個整數(shù)相除結(jié)果為整數(shù),如8/5的結(jié)果為1,舍去小數(shù)部分。如果參加運(yùn)算的兩個數(shù)中有一個數(shù)為實數(shù),則結(jié)果是double型。求余運(yùn)算要求%兩側(cè)都是整型數(shù)據(jù)。算術(shù)運(yùn)算符和算術(shù)表達(dá)式基本的算術(shù)運(yùn)算符5算術(shù)表達(dá)式用算術(shù)運(yùn)算符和括號將運(yùn)算量連接起來的式子稱為算術(shù)表達(dá)式。運(yùn)算符有優(yōu)先級和結(jié)合性,在求表達(dá)式的值時,要按照優(yōu)先級的高低依次計算,如果運(yùn)算符兩側(cè)優(yōu)先級相同,則按規(guī)定的結(jié)合方向進(jìn)行。結(jié)合性算術(shù)運(yùn)算符和算術(shù)表達(dá)式6算術(shù)運(yùn)算符和算術(shù)表達(dá)式優(yōu)先級-(負(fù)號運(yùn)算符)*/%+-(加減運(yùn)算符)
我最高!
我最低!7++運(yùn)算符的作用是使變量的值增1。--運(yùn)算符的作用是使變量的值減1。常見的用法有:++i,--i在使用i前,先使i的值加(減)1i++,i--在使用i后,先使i的值加(減)1自增和自減運(yùn)算符自增和自減運(yùn)算符8例題已知
i=5(1)j=i++;j=?i=?(2)j=++i;j=?i=?56669自增和自減運(yùn)算符注意:
1、自增和自減運(yùn)算符只能用于變量,表達(dá)式(x+y)++是不合法的。2、自增和自減運(yùn)算符的結(jié)合方向是“自右向左”。
如表達(dá)式-i++等價于-(i++)。3、(i++)+(i++)+(i++)結(jié)果?4、(++i)+(++i)+(++i)結(jié)果?5、printf(“%d,%d”,i,i++)10第二節(jié)賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符賦值表達(dá)式賦值運(yùn)算符的結(jié)合性11簡單的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符=+=-=*=%=/=12賦值運(yùn)算符簡單的賦值就是把一個表達(dá)式的值賦給一個變量。例如:
i=5;i=j+1;簡單的賦值運(yùn)算符13
i+=2等價于i=i+2a*=b+5等價于a=a*(b+5)x%=3等價于x=x%3賦值運(yùn)算符在賦值符“=”之前加上其它運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符。例如:
C語言采用這種復(fù)合運(yùn)算符,一是為了簡化程序,使程序精煉;二是為了提高編譯效率。14賦值表達(dá)式由賦值運(yùn)算符將一個變量和一個表達(dá)式連接起來的式子稱為賦值表達(dá)式。形式:
〈變量〉〈賦值運(yùn)算符〉〈表達(dá)式〉例如:x=3y=x+3對賦值表達(dá)式求解的過程是:將賦值運(yùn)算符右側(cè)的表達(dá)式的值賦給左側(cè)的變量。賦值表達(dá)式的值就是被賦值的變量的值。結(jié)合性15注意:一般形式的賦值表達(dá)式中的“表達(dá)式”又可以是一個賦值表達(dá)式。如:
a=b=8按照從右到左的結(jié)合性等價于
a=(b=8)賦值表達(dá)式也可以包含復(fù)合的賦值運(yùn)算符。設(shè)a的值為6,計算a+=a-=a*a
先進(jìn)行a*a的計算,結(jié)果為36再進(jìn)行a-=36的計算,相當(dāng)于a=a-36=-30
最后進(jìn)行a+=-30的計算,相當(dāng)于a=a-30=-6016第三節(jié)關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符
優(yōu)先級<<=>>===!=高低17關(guān)系表達(dá)式概念用關(guān)系運(yùn)算符將兩個表達(dá)式(可以是算術(shù)表達(dá)式、關(guān)系表達(dá)式、賦值表達(dá)式或邏輯表達(dá)式)連接起來的式子,稱為關(guān)系表達(dá)式。關(guān)系表達(dá)式的值為邏輯值“真”或“假”,以1代表“真”,以0代表“假”。結(jié)合性:左結(jié)合性18例如:關(guān)系表達(dá)式“8==4”的值為“假”,表達(dá)式的值為0。關(guān)系表達(dá)式“5>0”的值為“真”,表達(dá)式的值為1。若a=5,b=3,c=1,則a>b>c的計算過程是:
先計算a>b,結(jié)果為真,值為1再計算1>c,結(jié)果為假,值為0
f=b>c!=a的計算過程是:先計算b>c,結(jié)果為1再計算1!=c,結(jié)果為0最后將0賦值給f19第四節(jié)邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符!(邏輯非)&&(邏輯與)||(邏輯或)a b !a !b a&&ba||b真 真 假 假 真真真 假 假 真 假真假 真 真 假 假真
假 假 真 真 假假20賦值運(yùn)算符||&&運(yùn)算符的優(yōu)先級關(guān)系運(yùn)算符算術(shù)運(yùn)算符高低?。ǚ牵?1邏輯表達(dá)式邏輯表達(dá)式的值是一個邏輯量“真”或“假”。C語言編譯系統(tǒng)在給出邏輯結(jié)果時,以數(shù)值1代表“真”,以0代表“假”;但是在判斷一個量是否為“真”時,以非0代表“真”,以0代表“假”。例如:
若x=10,則!x的值為0。
若a=3,b=2,則a&&b的值為1。
5&&0||8的值為1。結(jié)合性:左結(jié)合性。22邏輯運(yùn)算符的特點特點在邏輯表達(dá)式的求解中并不是所有的運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運(yùn)算符才能求出表達(dá)式的解時,才執(zhí)行下一個運(yùn)算符。例如:1、a&&b&&c2、a||b||c當(dāng)a=5,b=3,c=2,d=1,x=1,y=1則表達(dá)式(x=a<b)&&(y=c<d)首先計算“a<b”,結(jié)果為0,則x=0,因此“y=c<d”不被執(zhí)行,所以y的值仍為1而不是0。23第五節(jié)條件運(yùn)算符和條件表達(dá)式條件運(yùn)算符
?:條件表達(dá)式的形式為:
表達(dá)式1?表達(dá)式2:表達(dá)式3這就是條件表達(dá)式,先計算表達(dá)式1,若其值為非零,則結(jié)果為表達(dá)式2的值,否則就是表達(dá)式3的值。結(jié)合性:從右到左24例如:設(shè)a=2,b=3,c=4,則(1)m=a>b?a:b的值為3(2)m=a>b?a:b>c?b:c
先計算b>c?b:c,結(jié)果為4再計算m=a>b?a:4,結(jié)果為4則m的值為4,整個表達(dá)式的值也為4。
25第六節(jié)
逗號運(yùn)算符和逗號表達(dá)式在逗號表達(dá)式中,逗號是一種運(yùn)算符。形式如下
表達(dá)式1,表達(dá)式2由逗號隔開的一對表達(dá)式從左向右進(jìn)行計算,其求解過程為:先求解表達(dá)式1,再求表達(dá)式2,整個逗號表達(dá)式的值是表達(dá)式2的值。逗號運(yùn)算符是所有運(yùn)算符中級別最低的。26例如
a=4*6,a+5
整個逗號表達(dá)式的值為29。注意一個逗號表達(dá)式又可以與另一個表達(dá)式組成一個新的逗號表達(dá)式,例如:
(a=4*6,a+5),a+6
整個表達(dá)式的值為30。27第七節(jié)
不同類型數(shù)據(jù)的混合運(yùn)算C語言允許數(shù)據(jù)值從一種類型轉(zhuǎn)換成另一種類型。在進(jìn)行運(yùn)算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換的規(guī)則按圖所示。高
doublefloatlongunsigned低int
char,short28說明橫向向左的箭頭表示當(dāng)運(yùn)算對象為不同類橫向向左的箭頭表示必定的轉(zhuǎn)換,如字符型(char)數(shù)據(jù)和短整型(short)數(shù)據(jù)必定先轉(zhuǎn)換成整型(int),以提高運(yùn)算精度。縱向的箭頭表示當(dāng)運(yùn)算對象為不同類型時轉(zhuǎn)換的方向型時轉(zhuǎn)換的方向。數(shù)據(jù)總是由低級別向高級別轉(zhuǎn)換。29C語言提供一種“強(qiáng)制類型轉(zhuǎn)換”運(yùn)算符,將一個類型的變量強(qiáng)制轉(zhuǎn)換為另一種類型。一般形式為:
(類型標(biāo)識符)表達(dá)式例如:
k=(int)((int)x+(float)i)/*得到整型數(shù)*/(float)(x=85)/*得實型單精度數(shù)*/注意對一個變量進(jìn)行強(qiáng)制轉(zhuǎn)換后,得到一個新的類型的數(shù)據(jù),但原來變量的類型不變。30例如若x原為實型變量且值為2.6,在執(zhí)行
i=(int)x
后得到一個整數(shù)2,并把它賦給整型變量i,但x仍為實型,值為2.6。31字符輸出函數(shù)格式:putchar(c)功能:將c值所對應(yīng)的字符輸出到標(biāo)準(zhǔn)輸出設(shè)備上(一般為顯示器)。c可以是整型或字符型。一次只能輸出一個字符,也可以輸出控制符,如
putchar('\n')輸出一個換行符,即光標(biāo)移到下一行。函數(shù)調(diào)用語句:32例:#include"stdio.h"main(){charch1,ch2;ch1=‘A’;ch2=‘B’;putchar(ch1);putchar(ch2);
}運(yùn)行程序,運(yùn)行結(jié)果為ABputchar()函數(shù)也可以輸出轉(zhuǎn)義字符,如:putchar(‘\101’)即輸出字符‘A’33格式輸出函數(shù)格式:printf(格式控制,輸出表列)功能:printf函數(shù)可以將任意類型的多個數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出設(shè)備上(一般為顯示器)。函數(shù)調(diào)用語句:34普通字符格式說明轉(zhuǎn)義字符格式控制由雙引號括起來的字符串由“%”和格式字符組成,它的作用是將輸出的數(shù)據(jù)按照指定的格式輸出。需要原樣輸出的字符。用于控制輸出。35附加格式說明符格式字符
含義
字母l 用于長整型,可加在格式符d,o,x,u之前
m(整數(shù))數(shù)據(jù)最小寬度
.n(整數(shù))對實數(shù),表示輸出n位小數(shù);對字符串,表示截取的字符個數(shù)
— 輸出的數(shù)字或字符在域內(nèi)向左靠printf格式符格式字符
含義
d 十進(jìn)制形式輸出帶符號整數(shù)(正數(shù)輸出不帶符號)
o 八進(jìn)制形式輸出無符號整數(shù)(不輸出前導(dǎo)0)
x 十六進(jìn)制形式輸出無符號整數(shù)(不輸出前導(dǎo)0x)
u 十進(jìn)制形式輸出無符號整數(shù)
c 輸出一個字符
s 輸出一個字符串
f 小數(shù)形式輸出單、雙精度實數(shù)(隱含輸出6位小數(shù))
e 指數(shù)形式輸出單、雙精度實數(shù)(數(shù)字部分有6位小數(shù))
g 當(dāng)指數(shù)小于-4或大于給定的精度時用%e格式,否則用%f格式。36main(){inta,b;floatx;charc;a=123;b=-1;x=3.14;c='A';
printf("%d,%4d\n",a,a);printf("%d,%x,%o,%u\n",b,b,b,b);printf("%c,%d\n",c,c);printf("%f,%6.1f\n",x,x);}寫出程序運(yùn)行結(jié)果371111111111111111-1在內(nèi)存中的存放(補(bǔ)碼形式)123,123-1,ffff,177777,65535A,653.140000,3.1運(yùn)行結(jié)果38字符輸入函數(shù)格式:getchar()、getch()或getche()功能:從標(biāo)準(zhǔn)設(shè)備(一般是鍵盤)輸入一個字符。字符輸入函數(shù)沒有參數(shù),函數(shù)值就是從設(shè)備輸入的字符。函數(shù)調(diào)用語句:39三個函數(shù)有一些差別:getchar()函數(shù)在由鍵盤鍵入一個字符后,必須按回車鍵,而getch()和getche()函數(shù)不需要。getche()函數(shù)和getchar()會顯示出所輸入的字符,而getch()函數(shù)不響應(yīng)輸入的字符。40main(){printf(“Enteracharactertoexit…\n”);getch();}運(yùn)行結(jié)果:Enteracharactertoexit...(注:輸入字符’a’不顯示)比較getchar()和getch()函數(shù):main(){printf(“Enteracharactertoexit…\n”);getchar();}運(yùn)行結(jié)果:Enteracharactertoexit...(注:輸入字符’a’顯示)a(回車)41例4.3從鍵盤輸入三個大寫字母,將其轉(zhuǎn)換成小寫字母輸出。#include"stdio.h"main(){charc1,c2,c3;c1=getchar();c2=getchar();c3=getchar();c1=c1+32;c2=c2+32;c3=c3+32;putchar(c1);putchar(c2);putchar(c3);
}運(yùn)行程序,輸入數(shù)據(jù)CPUCPU運(yùn)行結(jié)果為cpu42#include"stdio.h"main(){intc1,c2;charc;printf("Pleaseenteracharacter:\n");c=getchar();c1=c-1;c2=c+1;
putchar(c1);putchar(c);putchar(c2);}例4.8給出一個大寫字母,要求按字母順序打印出3個字母,指定的字母是三個字母中間的一個字母。輸入的字母不能為A或Z。43格式輸入函數(shù)格式:scanf(格式控制,地址表列)功能:scanf函數(shù)可以從標(biāo)準(zhǔn)輸入設(shè)備輸入任意類型的多個數(shù)據(jù)(一般為顯示器)。注意:輸入數(shù)不能規(guī)定精度格式控制與printf函數(shù)中的含義相同。函數(shù)調(diào)用語句:44scanf格式符格式字符
含義
d 用來輸入十進(jìn)制整數(shù)
o 用來輸入八進(jìn)制整數(shù)
x 用來輸入十六進(jìn)制整數(shù)
c 輸入一個字符
s 輸入一個字符串,以‘\0’為結(jié)束標(biāo)志
f
用來輸入實數(shù),可以用小數(shù)形式或指數(shù)形式
e 與f作用相同(e和f輸入時不能規(guī)定精度)附加格式說明符格式字符
含義
字母l
用于輸入長整型或double型,可加在格式符d,o,x,e,f之前
字母h
用于輸入短整型,可加在格式符d,o,x之前
m(整數(shù))指定輸入數(shù)據(jù)所占寬度
* 跳過本項輸入,讀入后不送給相應(yīng)變量
45當(dāng)輸入一串?dāng)?shù)據(jù)時,系統(tǒng)如何區(qū)分每個數(shù)據(jù)呢?(1)根據(jù)格式字符的含義分隔字符。
sacnf("%d%c%f",&a,&b,&c);若輸入數(shù)據(jù):120a45.6則a=120,b='a',c=45.6(2)系統(tǒng)按格式串指定的長度截取所需的數(shù)據(jù)。
scanf("%3d%2d",&a,&b);輸入數(shù)據(jù)12345則a=123,b=4546(3)用隱含的分隔符。在輸入數(shù)據(jù)中用空格或換行符分隔數(shù)據(jù)。
scanf("%d%d%d",&a,&b,&c);輸入數(shù)據(jù)345或輸入34(回車)5(回車)則a=3,b=4,c=5(4)%后的“*”附加說明符,用來表示跳過它相應(yīng)的數(shù)據(jù)。
scanf("%d,%*d,%d",&a,&b);如果輸入3,4,5則a=3,b=5,第二個數(shù)據(jù)跳過不賦給任何變量。47(5)使用顯示分隔符。在格式說明符中還可以有其它字符,在輸入字符時應(yīng)輸入與這些字符相同的字符。
scanf("%d,%d,%d",&a,&b,&c);輸入數(shù)據(jù)3,4,5
scanf(”a=%d,b=%d,c=%d",&a,&b,&c);輸入數(shù)據(jù)
a=3,b=4,c=5(6)用“%c”格式輸入字符時,空格字符和轉(zhuǎn)義字符都作為有效字符輸入:scanf("%c%c%c",&c1,&c2,&c3);如果輸入abc則字符‘a(chǎn)’送給c1,空格送給c2,字符’b’送給c348注意:(1)輸入時不能規(guī)定精度,如
scanf(“%6.1f”,&a)是
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度農(nóng)產(chǎn)品代加工與農(nóng)業(yè)科技示范推廣合同3篇
- 2025年度年度托管班營養(yǎng)餐供應(yīng)合同2篇
- 二零二五年度農(nóng)產(chǎn)品加工企業(yè)原料委托收購合同3篇
- 2024年中國白跟小跟市場調(diào)查研究報告
- 2025年度農(nóng)村土地整治農(nóng)民勞務(wù)服務(wù)合同
- 2025年度農(nóng)村土地轉(zhuǎn)讓與使用權(quán)租賃合同2篇
- 二零二五養(yǎng)老院院民健康療養(yǎng)出行服務(wù)合同3篇
- 2024年河北醫(yī)科大學(xué)第一醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫頻考點附帶答案
- 2024年中國珠海漁女紀(jì)念品市場調(diào)查研究報告
- 2025年學(xué)校臨時工聘用合同修訂模板3篇
- 2024年地理知識競賽試題200題及答案
- 肝衰竭診治指南(2024年版)解讀
- 河北省唐山市藥品零售藥店企業(yè)藥房名單目錄
- 監(jiān)考要求、操作流程及指導(dǎo)語
- 水上運(yùn)輸大型構(gòu)件安全交底
- 《保障農(nóng)民工工資支付條例》口袋書課件
- 2020 新ACLS-PCSA課前自我測試-翻譯版玉二醫(yī)【復(fù)制】附有答案
- 危險化學(xué)品安全周知卡氧氣
- DB13∕T 5517-2022 大田作物病蟲草害防控關(guān)鍵期植保無人飛機(jī)作業(yè)技術(shù)規(guī)程
- 《編譯原理》考試試習(xí)題及答案(匯總)
- 贏在執(zhí)行力:團(tuán)隊執(zhí)行力-下
評論
0/150
提交評論