




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第第 三三 章章順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì)2程序是對(duì)數(shù)據(jù)進(jìn)行各種操作,其中程序是對(duì)數(shù)據(jù)進(jìn)行各種操作,其中運(yùn)算操作運(yùn)算操作是最基本的操作是最基本的操作之一。之一。在在C語(yǔ)言程序中,使用語(yǔ)言程序中,使用表達(dá)式表達(dá)式描述各種運(yùn)算。描述各種運(yùn)算。表達(dá)式表達(dá)式是由參與運(yùn)算的數(shù)據(jù)和表示運(yùn)算的符號(hào),按照一定的是由參與運(yùn)算的數(shù)據(jù)和表示運(yùn)算的符號(hào),按照一定的規(guī)則組成的式子。規(guī)則組成的式子。描述運(yùn)算的符號(hào)稱(chēng)為描述運(yùn)算的符號(hào)稱(chēng)為運(yùn)算符運(yùn)算符,由一個(gè)或兩個(gè)特定符號(hào)表示。,由一個(gè)或兩個(gè)特定符號(hào)表示。引言引言3語(yǔ)言具有豐富的運(yùn)算符,可分為多種類(lèi)型,包括:語(yǔ)言具有豐富的運(yùn)算符,可分為多種類(lèi)型,包括:(1)算術(shù)運(yùn)算符
2、算術(shù)運(yùn)算符 (+ - * / %)(2)關(guān)系運(yùn)算符關(guān)系運(yùn)算符 ( = = != )(3)邏輯運(yùn)算符邏輯運(yùn)算符 (!(! |)(4)位運(yùn)算符位運(yùn)算符 ( | )(5)賦值運(yùn)算符賦值運(yùn)算符 (= += -= *= /= %= 等)等)(6)條件運(yùn)算符條件運(yùn)算符 (?(? : )(7)逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符 (,),)引言引言4(8)指針運(yùn)算符指針運(yùn)算符 (*和)和)(9)求字節(jié)數(shù)運(yùn)算符(求字節(jié)數(shù)運(yùn)算符(sizeof)(10)強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符(強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符( (類(lèi)型)類(lèi)型) )(11)分量運(yùn)算符(分量運(yùn)算符( -)(12)下標(biāo)運(yùn)算符()下標(biāo)運(yùn)算符()(13)其他其他 (如函數(shù)調(diào)用運(yùn)算符()(如
3、函數(shù)調(diào)用運(yùn)算符()引言引言5主要內(nèi)容主要內(nèi)容3.1 算術(shù)運(yùn)算和算術(shù)表達(dá)式算術(shù)運(yùn)算和算術(shù)表達(dá)式3.2 賦值運(yùn)算和賦值表達(dá)式賦值運(yùn)算和賦值表達(dá)式3.3 自增自減運(yùn)算自增自減運(yùn)算3.4 優(yōu)先級(jí)和類(lèi)型轉(zhuǎn)換優(yōu)先級(jí)和類(lèi)型轉(zhuǎn)換3.5 使用數(shù)學(xué)庫(kù)函數(shù)使用數(shù)學(xué)庫(kù)函數(shù)3.6 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì) 63.1 算術(shù)運(yùn)算和算術(shù)表達(dá)式算術(shù)運(yùn)算和算術(shù)表達(dá)式3.1.1 整數(shù)算術(shù)運(yùn)算整數(shù)算術(shù)運(yùn)算3.1.2 實(shí)數(shù)算術(shù)運(yùn)算實(shí)數(shù)算術(shù)運(yùn)算3.1.3 混合算術(shù)運(yùn)算混合算術(shù)運(yùn)算3.1.4 算術(shù)表達(dá)式算術(shù)表達(dá)式3.1.5 算術(shù)表達(dá)式的計(jì)算規(guī)則算術(shù)表達(dá)式的計(jì)算規(guī)則7C語(yǔ)言中的操作語(yǔ)言中的操作算術(shù)運(yùn)算符算術(shù)運(yùn)算符加法運(yùn)算加法運(yùn)算+減
4、法運(yùn)算減法運(yùn)算-乘法運(yùn)算乘法運(yùn)算*除法運(yùn)算除法運(yùn)算/取模運(yùn)算(求余數(shù))取模運(yùn)算(求余數(shù))%表表3-1 算術(shù)運(yùn)算符算術(shù)運(yùn)算符注意注意加號(hào)(加號(hào)(+)除了可以表示兩個(gè)數(shù)相加外,還表示正號(hào),例如,)除了可以表示兩個(gè)數(shù)相加外,還表示正號(hào),例如,+5;減號(hào)(減號(hào)(-)除了可以表示兩個(gè)數(shù)相減外,還表示負(fù)號(hào),例如)除了可以表示兩個(gè)數(shù)相減外,還表示負(fù)號(hào),例如-12。C語(yǔ)言中使用的特殊符號(hào),星號(hào)(語(yǔ)言中使用的特殊符號(hào),星號(hào)(*)表示乘號(hào),)表示乘號(hào),斜杠(斜杠(/)表示除號(hào),百分號(hào)()表示除號(hào),百分號(hào)(%)表示求余數(shù)。)表示求余數(shù)。另另外外83.1.1 3.1.1 整數(shù)算術(shù)運(yùn)算整數(shù)算術(shù)運(yùn)算如果參與運(yùn)算的操作數(shù)都
5、是如果參與運(yùn)算的操作數(shù)都是整數(shù)整數(shù),運(yùn)算的,運(yùn)算的結(jié)果結(jié)果一定是一定是整數(shù)整數(shù)。例如,例如,3+5,5-7,4*3,6/4,7%4, 3/5, 3%5%運(yùn)算符只能用于運(yùn)算符只能用于整數(shù)整數(shù)運(yùn)算。運(yùn)算。思考:思考:1+1/2的運(yùn)算結(jié)果是多少?的運(yùn)算結(jié)果是多少?8, -2, 12, 1, 3, 0, 3注意注意C語(yǔ)言規(guī)定語(yǔ)言規(guī)定93.1.2 3.1.2 實(shí)數(shù)算術(shù)運(yùn)算實(shí)數(shù)算術(shù)運(yùn)算例如,例如,3.4+5.7,5.1-7.3,4.7*3.2,6.5/4.6思考:思考: 1.0+1.0/2.0的運(yùn)算結(jié)果是多少?的運(yùn)算結(jié)果是多少?C語(yǔ)言規(guī)定語(yǔ)言規(guī)定如果參與運(yùn)算的操作數(shù)都是如果參與運(yùn)算的操作數(shù)都是實(shí)數(shù)實(shí)數(shù),運(yùn)
6、算的,運(yùn)算的結(jié)果結(jié)果一定是一定是實(shí)數(shù)實(shí)數(shù)。9.1, -2.2, 15.04, 1.41注意注意實(shí)數(shù)不能使用運(yùn)算符實(shí)數(shù)不能使用運(yùn)算符%。10如果參與運(yùn)算的操作數(shù)一個(gè)是如果參與運(yùn)算的操作數(shù)一個(gè)是整數(shù)整數(shù),另一個(gè)是,另一個(gè)是實(shí)數(shù)實(shí)數(shù),運(yùn)算的結(jié)果一定是運(yùn)算的結(jié)果一定是實(shí)數(shù)實(shí)數(shù)。3.1.3 3.1.3 混合算術(shù)運(yùn)算混合算術(shù)運(yùn)算例如,例如,3+5.7,5.1-7,4.7*3,6/4.6C語(yǔ)言規(guī)定語(yǔ)言規(guī)定8.7 , -1.9 , 12.7 , 1.3注意注意混合運(yùn)算情況下也不能使用運(yùn)算符混合運(yùn)算情況下也不能使用運(yùn)算符%。113.1.4 3.1.4 算術(shù)表達(dá)式算術(shù)表達(dá)式由參與算術(shù)運(yùn)算的操作數(shù)(可以是常量、變量
7、、函數(shù)等)、由參與算術(shù)運(yùn)算的操作數(shù)(可以是常量、變量、函數(shù)等)、算術(shù)運(yùn)算符和圓括號(hào)組成的符合算術(shù)運(yùn)算符和圓括號(hào)組成的符合C語(yǔ)言語(yǔ)法規(guī)則的式子。語(yǔ)言語(yǔ)法規(guī)則的式子。概念概念注意注意C語(yǔ)言中的算數(shù)表達(dá)式書(shū)寫(xiě)形式和代數(shù)中的算術(shù)表達(dá)式類(lèi)似,語(yǔ)言中的算數(shù)表達(dá)式書(shū)寫(xiě)形式和代數(shù)中的算術(shù)表達(dá)式類(lèi)似,但但C語(yǔ)言中的算術(shù)表達(dá)式語(yǔ)言中的算術(shù)表達(dá)式必須寫(xiě)成一行必須寫(xiě)成一行的形式。的形式。例如,代數(shù)中的例如,代數(shù)中的 ,在,在C語(yǔ)言中必須寫(xiě)成語(yǔ)言中必須寫(xiě)成3/5的形式。的形式。53代數(shù)表達(dá)式代數(shù)表達(dá)式C語(yǔ)言表達(dá)式語(yǔ)言表達(dá)式舉例舉例54321xxxacb42dcba2rbyxa 是常數(shù),是常數(shù),不可以寫(xiě)成不可以寫(xiě)成符號(hào)符
8、號(hào) (x1+x2+x3+x4)/5b*b-4*a*c(a+b)/(c-d)3.1415926*r*ra/x+b*y123.1.5 3.1.5 算術(shù)表達(dá)式的計(jì)算規(guī)則算術(shù)表達(dá)式的計(jì)算規(guī)則 如果沒(méi)有括號(hào),算術(shù)表達(dá)式按照運(yùn)算符的如果沒(méi)有括號(hào),算術(shù)表達(dá)式按照運(yùn)算符的優(yōu)先規(guī)則優(yōu)先規(guī)則從左到右從左到右計(jì)算。計(jì)算。 如果有括號(hào),括號(hào)中的表達(dá)式優(yōu)先級(jí)別是最高的,要先計(jì)算括號(hào)中的表達(dá)式。如果有括號(hào),括號(hào)中的表達(dá)式優(yōu)先級(jí)別是最高的,要先計(jì)算括號(hào)中的表達(dá)式。高級(jí):高級(jí):* / % 低級(jí):低級(jí):+ -8-13/5+4*8-7+6%3優(yōu)先規(guī)則優(yōu)先規(guī)則舉例舉例18-2+32-7+233舉例舉例2(8-13)/5+4)*8-
9、(7+6%3)07-5-132417133.2 賦值運(yùn)算和賦值表達(dá)式賦值運(yùn)算和賦值表達(dá)式3.2.1 賦值運(yùn)算符賦值運(yùn)算符3.2.2 賦值運(yùn)算的類(lèi)型轉(zhuǎn)換問(wèn)題賦值運(yùn)算的類(lèi)型轉(zhuǎn)換問(wèn)題3.2.3 復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符3.2.4 賦值表達(dá)式賦值表達(dá)式C語(yǔ)言將賦值操作作為一種運(yùn)算。語(yǔ)言將賦值操作作為一種運(yùn)算。143.2.1 3.2.1 賦值運(yùn)算符賦值運(yùn)算符一般表達(dá)形式一般表達(dá)形式其中,表達(dá)式可以是常量、變量、函數(shù)等。其中,表達(dá)式可以是常量、變量、函數(shù)等。例如:例如:賦值運(yùn)算過(guò)程賦值運(yùn)算過(guò)程a=3b=sum/30先計(jì)算賦值運(yùn)算符(先計(jì)算賦值運(yùn)算符(=)右邊的表達(dá)式的值,然后將計(jì))右邊的表達(dá)式的值
10、,然后將計(jì)算結(jié)果賦給賦值運(yùn)算符(算結(jié)果賦給賦值運(yùn)算符(=)左邊的變量。)左邊的變量。例如,例如,sum=3000時(shí),執(zhí)行時(shí),執(zhí)行b=sum/30,先計(jì)算先計(jì)算sum/30的值,結(jié)果為的值,結(jié)果為100,然后將然后將100賦值給變量賦值給變量b,結(jié)果是變量,結(jié)果是變量b的值為的值為100。賦值運(yùn)算符賦值運(yùn)算符=變量變量 = 表達(dá)式表達(dá)式153.2.2 3.2.2 賦值運(yùn)算的類(lèi)型轉(zhuǎn)換問(wèn)題賦值運(yùn)算的類(lèi)型轉(zhuǎn)換問(wèn)題我們經(jīng)常會(huì)遇到賦值運(yùn)算符兩側(cè)的數(shù)據(jù)類(lèi)型不一致的情況,我們經(jīng)常會(huì)遇到賦值運(yùn)算符兩側(cè)的數(shù)據(jù)類(lèi)型不一致的情況,這時(shí)在執(zhí)行賦值運(yùn)算時(shí)就要進(jìn)行類(lèi)型轉(zhuǎn)換。這時(shí)在執(zhí)行賦值運(yùn)算時(shí)就要進(jìn)行類(lèi)型轉(zhuǎn)換。轉(zhuǎn)換時(shí),以賦
11、值運(yùn)算符轉(zhuǎn)換時(shí),以賦值運(yùn)算符左側(cè)的變量左側(cè)的變量的類(lèi)型為準(zhǔn)進(jìn)行。的類(lèi)型為準(zhǔn)進(jìn)行。例如:有定義例如:有定義 int a; float x;執(zhí)行執(zhí)行 a=45.78時(shí),時(shí),a的取值是的取值是45。執(zhí)行執(zhí)行x=623時(shí),時(shí),x的取值是的取值是623.000000。類(lèi)型轉(zhuǎn)換準(zhǔn)則類(lèi)型轉(zhuǎn)換準(zhǔn)則16C語(yǔ)言允許將形式為:語(yǔ)言允許將形式為: 變量變量 = 變量變量 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 表達(dá)式表達(dá)式的表達(dá)式簡(jiǎn)潔地寫(xiě)成:的表達(dá)式簡(jiǎn)潔地寫(xiě)成: 變量變量 算術(shù)運(yùn)算符算術(shù)運(yùn)算符= 表達(dá)式表達(dá)式3.2.3 3.2.3 復(fù)合的賦值運(yùn)算符復(fù)合的賦值運(yùn)算符C C語(yǔ)言中的操作語(yǔ)言中的操作復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符加賦值運(yùn)算加賦
12、值運(yùn)算+=+=減賦值運(yùn)算減賦值運(yùn)算-=-=乘賦值運(yùn)算乘賦值運(yùn)算* *= =除賦值運(yùn)算除賦值運(yùn)算/=/=取余賦值運(yùn)算取余賦值運(yùn)算%=%=17例如:例如:要求掌握的復(fù)合賦值運(yùn)算符:要求掌握的復(fù)合賦值運(yùn)算符:,*,a+=1 x-=y+1a*=b x/=n+1x%=10a=a+1x=x-(y+1)a=a*bx=x/(n+1)x=x%10以下程序的輸出結(jié)果是以下程序的輸出結(jié)果是_。 void main()void main() int a=3; int a=3; printf(%dn,(a+=a-=a printf(%dn,(a+=a-=a* *a);a); A A)-6 B-6 B)12 C12 C)
13、0 D0 D)-12-12D舉例舉例183.2.4 3.2.4 賦值表達(dá)式賦值表達(dá)式由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子。由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子。例如例如: “x5+6*a”是一個(gè)賦值表達(dá)式是一個(gè)賦值表達(dá)式 。如果。如果a=10,則,則C語(yǔ)言規(guī)定,表達(dá)式語(yǔ)言規(guī)定,表達(dá)式5+6*a的值為的值為65,變量,變量x賦值后的值為賦值后的值為65,表達(dá)式,表達(dá)式x5+6*a的值也為的值也為65。例如例如: x=(y=15) 其中賦值運(yùn)算符右側(cè)的表達(dá)式,可以是算術(shù)表達(dá)式,也可以是其中賦值運(yùn)算符右側(cè)的表達(dá)式,可以是算術(shù)表達(dá)式,也可以是一個(gè)一個(gè)賦值表達(dá)式賦值表達(dá)式。賦值運(yùn)
14、算符按照賦值運(yùn)算符按照“自右而左自右而左”的結(jié)合順序,因此,的結(jié)合順序,因此, x=(y=15)和和x=y=15等價(jià)。等價(jià)。賦值表達(dá)式賦值表達(dá)式賦值表達(dá)式的值賦值表達(dá)式的值被賦變量的值被賦變量的值注意注意19例例1float a; int b;a=1.2;b=a*3;? b b=3例例2a+=3;x*=y+8 ;a=a+3;x=x*(y+8) ;例例3a=b=5;a=7+(b=8) ;? a,b a=5 ;b=5a=15;b=8自右而左自右而左的結(jié)合性的結(jié)合性例例4a=10;a+=a*=a ; ? a a=200例例5y=23;printf(%d,x=y);?x 輸出輸出x=2323在一個(gè)語(yǔ)句
15、中可以在一個(gè)語(yǔ)句中可以完成賦值和輸出完成賦值和輸出兩種操作功能兩種操作功能203.3 3.3 自增自減運(yùn)算自增自減運(yùn)算自增、自減自增、自減運(yùn)算符運(yùn)算符作用:自增運(yùn)算符()使作用:自增運(yùn)算符()使單個(gè)單個(gè)變量的值增變量的值增1; 自減運(yùn)算符()使自減運(yùn)算符()使單個(gè)單個(gè)變量的值減變量的值減1。i=i+1i=i-1格式:格式: 前置:前置:+i , -i (在使用(在使用i之前,使之前,使i的值加(減)的值加(減)1) 后置:后置:i+ , i- (在使用(在使用i之后,使之后,使i的值加(減)的值加(減)1)幾點(diǎn)幾點(diǎn)說(shuō)明說(shuō)明(1)自增自減運(yùn)算符只對(duì)自增自減運(yùn)算符只對(duì)單個(gè)變量單個(gè)變量進(jìn)行操作,稱(chēng)為
16、單目運(yùn)算符或一進(jìn)行操作,稱(chēng)為單目運(yùn)算符或一元運(yùn)算符。不能用于常量和表達(dá)式。元運(yùn)算符。不能用于常量和表達(dá)式。例如,例如,5+、-(a+b)等都是非法的。等都是非法的。 (2)常用于循環(huán)語(yǔ)句中使循環(huán)控制變量自動(dòng)加或減常用于循環(huán)語(yǔ)句中使循環(huán)控制變量自動(dòng)加或減1,也用于指針,也用于指針變量,使指針指向上一個(gè)或下一個(gè)地址。變量,使指針指向上一個(gè)或下一個(gè)地址。(3) 對(duì)于對(duì)于+n和和n+,單獨(dú)使用時(shí)意義相同,都是使變量,單獨(dú)使用時(shí)意義相同,都是使變量n的值加的值加1。(4)如果用在賦值語(yǔ)句中,意義有所不同。如果用在賦值語(yǔ)句中,意義有所不同。int n=4,x,y;x=+n; /y=n+;? x,y x=5
17、 / y=421例例3.1#include stdio.hint main( ) int n,x,y; n=4; x=+n; printf(n=%dtx=%dn,n,x); n=4; y=n+; printf(n=%dty=%dn,n,y); return 0;運(yùn)行結(jié)果:運(yùn)行結(jié)果:n=5 x=5n=5 y=4自增運(yùn)算符的前置、后置對(duì)比。自增運(yùn)算符的前置、后置對(duì)比。22例例3.2#include stdio.hint main( ) int n,x,y; n=4; x=-n; printf(n=%dtx=%dn,n,x); n=4; y=n-; printf(n=%dty=%dn,n,y); r
18、eturn 0;運(yùn)行結(jié)果:運(yùn)行結(jié)果:n=3 x=3n=3 y=4自減運(yùn)算符的前置與后置對(duì)比。自減運(yùn)算符的前置與后置對(duì)比。23#include stdio.hint main( ) int n; n=4; printf(%dt,n); printf(%dt,+n); printf(%dnn,n); n=4; printf(%dt,n); printf(%dt,n+); printf(%dnn,n); n=4; printf(%dt,n); printf(%dt,-n); printf(%dnn,n); n=4; printf(%dt,n); printf(%dt,n-); printf(%dnn
19、,n); return 0;運(yùn)行結(jié)果:運(yùn)行結(jié)果:4 5 54 4 54 3 34 4 3例例3.3自增自減運(yùn)算符在輸出語(yǔ)句中。自增自減運(yùn)算符在輸出語(yǔ)句中。243.4 優(yōu)先級(jí)和類(lèi)型轉(zhuǎn)換優(yōu)先級(jí)和類(lèi)型轉(zhuǎn)換3.4.1 優(yōu)先級(jí)優(yōu)先級(jí)3.4.2 類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換 3.4.2.1 自動(dòng)類(lèi)型轉(zhuǎn)換自動(dòng)類(lèi)型轉(zhuǎn)換 3.4.2.2 強(qiáng)制類(lèi)型轉(zhuǎn)換強(qiáng)制類(lèi)型轉(zhuǎn)換253.4.1 3.4.1 優(yōu)先級(jí)優(yōu)先級(jí)優(yōu)先級(jí)優(yōu)先級(jí)結(jié)合性結(jié)合性 如果一個(gè)表達(dá)式中有多個(gè)運(yùn)算符,那么用來(lái)規(guī)定運(yùn)如果一個(gè)表達(dá)式中有多個(gè)運(yùn)算符,那么用來(lái)規(guī)定運(yùn)算先后順序的規(guī)則稱(chēng)為優(yōu)先級(jí)法則。算先后順序的規(guī)則稱(chēng)為優(yōu)先級(jí)法則。當(dāng)表達(dá)式中參與運(yùn)算的多個(gè)運(yùn)算符具有相同優(yōu)先級(jí)當(dāng)表
20、達(dá)式中參與運(yùn)算的多個(gè)運(yùn)算符具有相同優(yōu)先級(jí)時(shí),用來(lái)規(guī)定運(yùn)算的先后順序。時(shí),用來(lái)規(guī)定運(yùn)算的先后順序。已經(jīng)介已經(jīng)介紹運(yùn)算紹運(yùn)算符的優(yōu)符的優(yōu)先級(jí)和先級(jí)和結(jié)合性結(jié)合性?xún)?yōu)先級(jí)優(yōu)先級(jí)結(jié)合性結(jié)合性算數(shù)運(yùn)算符算數(shù)運(yùn)算符()()+,-,+,- (單目)(單目)*,/,%+,-由左向右由左向右由右向左由右向左由左向右由左向右由左向右由左向右賦值運(yùn)算符賦值運(yùn)算符=復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符由右向左由右向左263.4.23.4.2類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換3.4.2.1自動(dòng)類(lèi)型轉(zhuǎn)換自動(dòng)類(lèi)型轉(zhuǎn)換不同類(lèi)型數(shù)據(jù)參與運(yùn)算時(shí),將一種類(lèi)型的數(shù)據(jù)轉(zhuǎn)換為不同類(lèi)型數(shù)據(jù)參與運(yùn)算時(shí),將一種類(lèi)型的數(shù)據(jù)轉(zhuǎn)換為另一種兼容的類(lèi)型。另一種兼容的類(lèi)型。doub
21、le x;,x=45; /x取值為取值為45.0,整型數(shù)據(jù),整型數(shù)據(jù)45自動(dòng)轉(zhuǎn)換為自動(dòng)轉(zhuǎn)換為double類(lèi)型數(shù)據(jù)。類(lèi)型數(shù)據(jù)。int a;a=123.756; /a取值取值123,小數(shù)部分被截去。,小數(shù)部分被截去。類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換類(lèi)型轉(zhuǎn)換分類(lèi)類(lèi)型轉(zhuǎn)換分類(lèi)自動(dòng)轉(zhuǎn)換(隱式轉(zhuǎn)換):轉(zhuǎn)換隱藏在操作中自動(dòng)轉(zhuǎn)換(隱式轉(zhuǎn)換):轉(zhuǎn)換隱藏在操作中強(qiáng)制轉(zhuǎn)換(顯示轉(zhuǎn)換):使用強(qiáng)制轉(zhuǎn)換運(yùn)算符強(qiáng)制轉(zhuǎn)換(顯示轉(zhuǎn)換):使用強(qiáng)制轉(zhuǎn)換運(yùn)算符自動(dòng)轉(zhuǎn)換舉例自動(dòng)轉(zhuǎn)換舉例2+4.5 /整型數(shù)據(jù)整型數(shù)據(jù)2轉(zhuǎn)換為轉(zhuǎn)換為double類(lèi)型數(shù)類(lèi)型數(shù)2.0, 再與再與4.5進(jìn)行加法運(yùn)算進(jìn)行加法運(yùn)算,是自動(dòng)轉(zhuǎn)是自動(dòng)轉(zhuǎn)換過(guò)程。換過(guò)程。先轉(zhuǎn)換、后運(yùn)算先轉(zhuǎn)
22、換、后運(yùn)算實(shí)型實(shí)型整型:整型:采取采取截去小數(shù)截去小數(shù)部分的策略,部分的策略,而不是四舍五入。而不是四舍五入。27轉(zhuǎn)換規(guī)則轉(zhuǎn)換規(guī)則doublefloatlongunsignedintchar,short高高低低 1、縱向向上的箭頭表示不同類(lèi)型的、縱向向上的箭頭表示不同類(lèi)型的 轉(zhuǎn)換方向(由低類(lèi)型轉(zhuǎn)化為高類(lèi)轉(zhuǎn)換方向(由低類(lèi)型轉(zhuǎn)化為高類(lèi) 型),不表示轉(zhuǎn)換所經(jīng)的步驟。型),不表示轉(zhuǎn)換所經(jīng)的步驟。 2、橫向向左的箭頭表示必須的轉(zhuǎn)換。、橫向向左的箭頭表示必須的轉(zhuǎn)換。 自動(dòng)類(lèi)型轉(zhuǎn)換規(guī)則自動(dòng)類(lèi)型轉(zhuǎn)換規(guī)則說(shuō)明說(shuō)明:必定的轉(zhuǎn)換必定的轉(zhuǎn)換運(yùn)算對(duì)象類(lèi)型運(yùn)算對(duì)象類(lèi)型不同時(shí)轉(zhuǎn)換不同時(shí)轉(zhuǎn)換283.4.2.2 強(qiáng)制類(lèi)型轉(zhuǎn)換強(qiáng)
23、制類(lèi)型轉(zhuǎn)換一般形式一般形式 (要轉(zhuǎn)換成的數(shù)據(jù)類(lèi)型要轉(zhuǎn)換成的數(shù)據(jù)類(lèi)型)(被轉(zhuǎn)換的表達(dá)式被轉(zhuǎn)換的表達(dá)式)注:當(dāng)被轉(zhuǎn)換的表達(dá)式是一個(gè)簡(jiǎn)單表達(dá)注:當(dāng)被轉(zhuǎn)換的表達(dá)式是一個(gè)簡(jiǎn)單表達(dá)式時(shí),外面的一對(duì)圓括號(hào)可以缺省。式時(shí),外面的一對(duì)圓括號(hào)可以缺省。舉例舉例 float x,y; x=2.3 ; y=4.5; (int)(x+y) (int)x+y說(shuō)明說(shuō)明強(qiáng)制轉(zhuǎn)換得到的是所需類(lèi)型的中間變量,強(qiáng)制轉(zhuǎn)換得到的是所需類(lèi)型的中間變量,原變量或表達(dá)式的類(lèi)型不變。原變量或表達(dá)式的類(lèi)型不變。/ 6 (int)/ 6.5 (double)29#include stdio.hint main( ) int x,y; float
24、ave; x=12 ;y=25 ; ave=(x+y)/2; printf(ave=%fn,ave); return 0;運(yùn)行結(jié)果:運(yùn)行結(jié)果:ave=18.000000其中表達(dá)式其中表達(dá)式(x+y)/2按按照照整數(shù)除法整數(shù)除法的規(guī)則進(jìn)的規(guī)則進(jìn)行,結(jié)果截去了小數(shù)行,結(jié)果截去了小數(shù)部分的值。部分的值。例例3.4自動(dòng)轉(zhuǎn)換效果舉例。自動(dòng)轉(zhuǎn)換效果舉例。30在程序中加入強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符在程序中加入強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符#include stdio.hint main( ) int x,y; float ave; x=12 ;y=25 ; ave=(float)(x+y)/2; printf(ave=%fn,
25、ave); return 0;運(yùn)行結(jié)果:運(yùn)行結(jié)果:ave=18.500000其中表達(dá)式其中表達(dá)式(float)(x+y)/2將將(x+y)強(qiáng)制轉(zhuǎn)換為強(qiáng)制轉(zhuǎn)換為float類(lèi)型,再按照類(lèi)型,再按照混合除法混合除法運(yùn)算的規(guī)則進(jìn)行,結(jié)果運(yùn)算的規(guī)則進(jìn)行,結(jié)果保留了小數(shù)部分的值。保留了小數(shù)部分的值。例例3.5使用強(qiáng)制類(lèi)型轉(zhuǎn)換示例。使用強(qiáng)制類(lèi)型轉(zhuǎn)換示例。31思考:以下程序的運(yùn)行結(jié)果。思考:以下程序的運(yùn)行結(jié)果。#include stdio.hint main( ) double sum; sum=1+1/2+1/3+1/4+1/5; printf(sum=%fn,sum); return 0;運(yùn)行結(jié)果:運(yùn)行結(jié)
26、果:sum=1.00000032運(yùn)用強(qiáng)制類(lèi)型轉(zhuǎn)換,程序改為:運(yùn)用強(qiáng)制類(lèi)型轉(zhuǎn)換,程序改為:#include stdio.hint main( ) double sum; sum=1+1/(double)2+1/(double)3+1/(double)4+1/(double)5; printf(sum=%fn,sum); return 0;運(yùn)行結(jié)果:運(yùn)行結(jié)果:sum=2.283333 333.5 使用數(shù)學(xué)庫(kù)函數(shù)使用數(shù)學(xué)庫(kù)函數(shù)ANCI C規(guī)定,所有函數(shù)在使用之前都必須被聲明。規(guī)定,所有函數(shù)在使用之前都必須被聲明。該函數(shù)已編寫(xiě)好并已編譯。在鏈接時(shí),與用戶(hù)寫(xiě)的該函數(shù)已編寫(xiě)好并已編譯。在鏈接時(shí),與用戶(hù)寫(xiě)的
27、程序連接在一起形成可執(zhí)行的程序。程序連接在一起形成可執(zhí)行的程序。庫(kù)函數(shù)庫(kù)函數(shù) 標(biāo)準(zhǔn)標(biāo)準(zhǔn)C函數(shù)按照不同的類(lèi)別,將聲明信息放在不同的頭文函數(shù)按照不同的類(lèi)別,將聲明信息放在不同的頭文件中,例如:件中,例如:標(biāo)準(zhǔn)標(biāo)準(zhǔn)輸入輸出函數(shù)輸入輸出函數(shù)printf( )、scanf( )等,其聲明信息放等,其聲明信息放在頭文件在頭文件“stdio.h”中,需要時(shí)使用如下文件包含命令:中,需要時(shí)使用如下文件包含命令: #include stdio.h用來(lái)完成一些常用數(shù)學(xué)計(jì)算的用來(lái)完成一些常用數(shù)學(xué)計(jì)算的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)標(biāo)準(zhǔn)數(shù)學(xué)函數(shù),如,如sqrt()、sin()等,其聲明信息放在頭文件等,其聲明信息放在頭文件“math.
28、h”中,需要時(shí)使中,需要時(shí)使用如下文件包含命令:用如下文件包含命令: #include math.h34調(diào)用函數(shù)通常是按如下順序書(shū)寫(xiě)的:調(diào)用函數(shù)通常是按如下順序書(shū)寫(xiě)的: 函數(shù)名函數(shù)名(參數(shù)或用逗號(hào)分隔的參數(shù)列表參數(shù)或用逗號(hào)分隔的參數(shù)列表)例如,例如, 計(jì)算計(jì)算x的平方根:的平方根:sqrt(x), 計(jì)算計(jì)算ex的函數(shù):的函數(shù):exp(x), 計(jì)算計(jì)算xy的函數(shù):的函數(shù):pow(x,y), 計(jì)算計(jì)算|x|的函數(shù):的函數(shù):fabs(x), 計(jì)算弧度值計(jì)算弧度值x的三角函數(shù):的三角函數(shù):sin(x)、cos(x)、tan(x)等等35舉例舉例數(shù)學(xué)表達(dá)式數(shù)學(xué)表達(dá)式C語(yǔ)言表達(dá)式語(yǔ)言表達(dá)式xex2)2(
29、aacbb242yearratemoney)1 ( 注意注意1、使用數(shù)學(xué)表達(dá)式時(shí)一定要符合、使用數(shù)學(xué)表達(dá)式時(shí)一定要符合C語(yǔ)言表達(dá)式的書(shū)寫(xiě)規(guī)范。語(yǔ)言表達(dá)式的書(shū)寫(xiě)規(guī)范。2、數(shù)學(xué)庫(kù)函數(shù)中、數(shù)學(xué)庫(kù)函數(shù)中沒(méi)有提供余切函數(shù)沒(méi)有提供余切函數(shù),可以利用正弦函數(shù)和余弦函,可以利用正弦函數(shù)和余弦函數(shù)進(jìn)行計(jì)算。假設(shè)要計(jì)算的角度數(shù)進(jìn)行計(jì)算。假設(shè)要計(jì)算的角度x是以角度為單位的,還需要將它是以角度為單位的,還需要將它轉(zhuǎn)換為轉(zhuǎn)換為弧度弧度。x的余切計(jì)算公式:的余切計(jì)算公式: sin(x*3.14/180)/cos(x*3.14/180)或者利用正切函數(shù)或者利用正切函數(shù) 1/tan(x*3.14/180)(x+2)*exp(
30、2*x)(-b+sqrt(b*b-4*a*c)/(2*a)money * pow(1 + rate), year)363.6 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì)3.6.1 C語(yǔ)句概述語(yǔ)句概述3.6.2 簡(jiǎn)單語(yǔ)句簡(jiǎn)單語(yǔ)句3.6.3 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì)37C語(yǔ)句語(yǔ)句控制語(yǔ)句控制語(yǔ)句函數(shù)調(diào)用函數(shù)調(diào)用語(yǔ)句語(yǔ)句由一次函數(shù)調(diào)用加由一次函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成一個(gè)一個(gè)分號(hào)構(gòu)成一個(gè)語(yǔ)句。語(yǔ)句。表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句空語(yǔ)句空語(yǔ)句?1、出現(xiàn)在函數(shù)體的、出現(xiàn)在函數(shù)體的執(zhí)行部分。執(zhí)行部分。2、作用是向計(jì)算機(jī)、作用是向計(jì)算機(jī)系統(tǒng)發(fā)出系統(tǒng)發(fā)出操作操作指令。指令。復(fù)合語(yǔ)句復(fù)合語(yǔ)句if () else for ()
31、while () do while()continuebreakswitchgotoreturnif (xy) z=x;else z=y;printf(“Hello!”);由表達(dá)式加一個(gè)分由表達(dá)式加一個(gè)分號(hào)構(gòu)成一個(gè)語(yǔ)句。號(hào)構(gòu)成一個(gè)語(yǔ)句。a=3;由由 將一些語(yǔ)句將一些語(yǔ)句括起來(lái)。括起來(lái)。 t=a; a=b; b=t;?3.6.1 C3.6.1 C語(yǔ)句概述語(yǔ)句概述簡(jiǎn)單語(yǔ)句簡(jiǎn)單語(yǔ)句383.6.2 3.6.2 簡(jiǎn)單語(yǔ)句簡(jiǎn)單語(yǔ)句簡(jiǎn)單語(yǔ)句主要包括表達(dá)式語(yǔ)句、函數(shù)調(diào)用語(yǔ)句等。簡(jiǎn)單語(yǔ)句主要包括表達(dá)式語(yǔ)句、函數(shù)調(diào)用語(yǔ)句等。表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句表達(dá)式;表達(dá)式; 例如,例如, n+; x1 = (-b+sqrt(b
32、*b-4*a*c)/(2*a); x2 = (-b-sqrt(b*b-4*a*c)/(2*a); z = x+a%3*(int)(x+y)%2/4; w = (float)(a+b)/2+(int)x%(int)y; p = money * pow(1 + rate), year);39函數(shù)調(diào)用語(yǔ)句函數(shù)調(diào)用語(yǔ)句 函數(shù)調(diào)用;函數(shù)調(diào)用; 例如,例如, printf(Hello!); printf(sum=%fn,sum); scanf(%d%d,&a,&b); putchar(ch1);兩者結(jié)合構(gòu)成的賦值語(yǔ)句兩者結(jié)合構(gòu)成的賦值語(yǔ)句ch1=getchar( );403.6.3 3.6
33、.3 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì)通常程序編寫(xiě)的步驟是:通常程序編寫(xiě)的步驟是: 分析實(shí)際問(wèn)題分析實(shí)際問(wèn)題 寫(xiě)出算法、畫(huà)出流程圖寫(xiě)出算法、畫(huà)出流程圖 根據(jù)流程圖寫(xiě)出相應(yīng)的根據(jù)流程圖寫(xiě)出相應(yīng)的C語(yǔ)句程序語(yǔ)句程序 變量變量聲明聲明 輸入輸入已知變量值已知變量值 計(jì)算或計(jì)算或處理處理操作操作 輸出輸出結(jié)果結(jié)果 在順序結(jié)構(gòu)程序中,各語(yǔ)句(或命令)是按照位置在順序結(jié)構(gòu)程序中,各語(yǔ)句(或命令)是按照位置的的先后次序,順序執(zhí)行先后次序,順序執(zhí)行的,且每條語(yǔ)句都會(huì)被執(zhí)行到。的,且每條語(yǔ)句都會(huì)被執(zhí)行到。41編寫(xiě)程序,實(shí)現(xiàn)兩個(gè)變量值的交換功能。編寫(xiě)程序,實(shí)現(xiàn)兩個(gè)變量值的交換功能。例例3.1借助于第三變借助于第三
34、變量量#include stdio.hint main( ) float a,b,t; printf(請(qǐng)輸入請(qǐng)輸入a,b的初始值的初始值:); scanf(%f%f,&a,&b); printf(交換之前交換之前a,b的值的值n); printf(a=%ftb=%fn,a,b); t=a; a=b; b=t; printf(交換之后交換之后a,b的值的值n); printf(a=%ftb=%fn,a,b); return 0;運(yùn)行情況:運(yùn)行情況:請(qǐng)輸入請(qǐng)輸入a,b的初始值的初始值:10 25交換之前交換之前a,b的值的值a=10.000000 b=25.000000交換之后交換
35、之后a,b的值的值a=25.000000 b=10.00000042編寫(xiě)程序,實(shí)現(xiàn)從鍵盤(pán)輸入三角形的三邊長(zhǎng),編寫(xiě)程序,實(shí)現(xiàn)從鍵盤(pán)輸入三角形的三邊長(zhǎng),求三角形面積的功能。求三角形面積的功能。例例3.2#include stdio.h#include math.hint main( ) double a,b,c,s,area; printf(請(qǐng)輸入三角形的三邊長(zhǎng)值請(qǐng)輸入三角形的三邊長(zhǎng)值:); scanf(%lf%lf%lf, &a, &b, &c); printf(輸入的三角形三邊長(zhǎng)值輸入的三角形三邊長(zhǎng)值); printf(a=%.2f b=%.2f c=%.2fn, a, b, c); s=(a+b+c)/2.0; area=sqrt(s*(s-a)*(s-b)*(s-c); prin
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度車(chē)輛借出責(zé)任免除及駕駛規(guī)范合同
- 2025年度商務(wù)協(xié)議翻譯及全球供應(yīng)鏈管理服務(wù)合同
- 水路運(yùn)輸?shù)V石采購(gòu)合同
- 2024-2030年中國(guó)足球用品行業(yè)市場(chǎng)深度分析及投資策略研究報(bào)告
- 機(jī)械制造工藝測(cè)試題+參考答案
- 包裝設(shè)計(jì)師模擬習(xí)題+答案
- 第六單元課外古詩(shī)詞誦讀《卜算子·黃州定慧院寓居作》教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版語(yǔ)文八年級(jí)下冊(cè)
- 2025年新型復(fù)合型菌劑合作協(xié)議書(shū)
- 2025年阻燃塑料電表箱行業(yè)深度研究分析報(bào)告
- 人教版初中歷史與社會(huì)七年級(jí)上冊(cè) 1.2 .1鄉(xiāng)村聚落 教學(xué)設(shè)計(jì)
- 《種太陽(yáng)》公開(kāi)課課件
- 教育的第三只眼
- 多功能健身車(chē)的設(shè)計(jì)-機(jī)械設(shè)計(jì)制造及其自動(dòng)化本科畢業(yè)設(shè)計(jì)
- 保密基本知識(shí)考試試題(100題含答案)
- 動(dòng)物檢疫技術(shù)-動(dòng)物檢疫的方法方式(動(dòng)物防疫與檢疫技術(shù))
- 新聞攝影培訓(xùn)PPT
- DB31 SW-Z 017-2021 上海市排水檢測(cè)井圖集
- 露天煤礦防治水管理制度
- 電工電子技術(shù)與技能 程周
- PANTONE潘通色卡C面顏色
- 中藥的性能課件
評(píng)論
0/150
提交評(píng)論