




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、教學(xué)內(nèi)容:教學(xué)內(nèi)容: 4.1 4.1 數(shù)據(jù)運(yùn)算的基本概念數(shù)據(jù)運(yùn)算的基本概念 4.2 4.2 算術(shù)運(yùn)算算術(shù)運(yùn)算 4.3 4.3 賦值運(yùn)算賦值運(yùn)算 4.4 4.4 關(guān)系運(yùn)算關(guān)系運(yùn)算 4.5 4.5 邏輯運(yùn)算邏輯運(yùn)算 4.6 4.6 自增自減運(yùn)算自增自減運(yùn)算 4.7 4.7 其它運(yùn)算其它運(yùn)算教學(xué)要求:教學(xué)要求: 1.1.掌握各種運(yùn)算符的優(yōu)先級(jí)、結(jié)合方向。掌握各種運(yùn)算符的優(yōu)先級(jí)、結(jié)合方向。 2.2.掌握各種數(shù)據(jù)運(yùn)算的運(yùn)算符的運(yùn)算。掌握各種數(shù)據(jù)運(yùn)算的運(yùn)算符的運(yùn)算。 3.3.掌握混合運(yùn)算時(shí)的類(lèi)型轉(zhuǎn)換規(guī)則掌握混合運(yùn)算時(shí)的類(lèi)型轉(zhuǎn)換規(guī)則。 第第 4 4 章章 數(shù)數(shù) 據(jù)據(jù) 運(yùn)運(yùn) 算算4.14.1 數(shù)據(jù)運(yùn)算的基本概
2、念數(shù)據(jù)運(yùn)算的基本概念1. 1. 運(yùn)算符運(yùn)算符 C C語(yǔ)言具有豐富的運(yùn)算符。語(yǔ)言具有豐富的運(yùn)算符。 Turbo C Turbo C 提供了提供了4444種種數(shù)據(jù)操作運(yùn)算符,其使用范圍很寬。數(shù)據(jù)操作運(yùn)算符,其使用范圍很寬。 運(yùn)算符運(yùn)算符是一種向編譯程序說(shuō)明特定的運(yùn)算或操作是一種向編譯程序說(shuō)明特定的運(yùn)算或操作的符號(hào)。每一種運(yùn)算符都具有特定的數(shù)據(jù)操作規(guī)則。的符號(hào)。每一種運(yùn)算符都具有特定的數(shù)據(jù)操作規(guī)則。2. 2. 運(yùn)算符的分類(lèi)運(yùn)算符的分類(lèi) (1 1)按運(yùn)算符要求運(yùn)算對(duì)象的個(gè)數(shù)分類(lèi):?jiǎn)文窟\(yùn))按運(yùn)算符要求運(yùn)算對(duì)象的個(gè)數(shù)分類(lèi):?jiǎn)文窟\(yùn)算符、雙目運(yùn)算符、三目運(yùn)算符。算符、雙目運(yùn)算符、三目運(yùn)算符。 (2 2)按其數(shù)
3、據(jù)操作功能分類(lèi):算術(shù)運(yùn)算符、關(guān)系)按其數(shù)據(jù)操作功能分類(lèi):算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、C C的特殊運(yùn)算符的特殊運(yùn)算符 。 3.3.運(yùn)算符的優(yōu)先級(jí)運(yùn)算符的優(yōu)先級(jí) 當(dāng)一個(gè)表達(dá)式中出現(xiàn)多個(gè)運(yùn)算符時(shí),表達(dá)式的求值運(yùn)當(dāng)一個(gè)表達(dá)式中出現(xiàn)多個(gè)運(yùn)算符時(shí),表達(dá)式的求值運(yùn)算按運(yùn)算符的優(yōu)先級(jí)別從高到低的順序執(zhí)行。在算按運(yùn)算符的優(yōu)先級(jí)別從高到低的順序執(zhí)行。在C C語(yǔ)言中,語(yǔ)言中,將將4444種運(yùn)算符的優(yōu)先級(jí)從高到低共分為種運(yùn)算符的優(yōu)先級(jí)從高到低共分為1515個(gè)等級(jí)。如表個(gè)等級(jí)。如表4.14.1所示。所示。 4.4.運(yùn)算符的結(jié)合性運(yùn)算符的結(jié)合性(1 1)運(yùn)算符的)運(yùn)算符的左
4、結(jié)合性左結(jié)合性:當(dāng)一個(gè)操作數(shù)兩側(cè)的運(yùn)算符具:當(dāng)一個(gè)操作數(shù)兩側(cè)的運(yùn)算符具有相同的優(yōu)先級(jí)時(shí),操作數(shù)先與左邊的運(yùn)算符結(jié)合,即有相同的優(yōu)先級(jí)時(shí),操作數(shù)先與左邊的運(yùn)算符結(jié)合,即自左至右的結(jié)合方向。自左至右的結(jié)合方向。(2 2)運(yùn)算符的)運(yùn)算符的右結(jié)合性右結(jié)合性: 即自右至左的結(jié)合方向。即自右至左的結(jié)合方向。除單目運(yùn)算符、賦值運(yùn)算符和三項(xiàng)條件運(yùn)算符是右結(jié)合除單目運(yùn)算符、賦值運(yùn)算符和三項(xiàng)條件運(yùn)算符是右結(jié)合性外,其它運(yùn)算符都是左結(jié)合性。性外,其它運(yùn)算符都是左結(jié)合性。 初等運(yùn)算符初等運(yùn)算符 ( )、 、 單目運(yùn)算符 !、!、+ +、 、+ 、 、(類(lèi)型類(lèi)型) 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 、/ 、% ,+、 關(guān)系運(yùn)算符
5、 、= ,= =、! = 邏輯運(yùn)算符邏輯運(yùn)算符 &、 條件運(yùn)算符 ? : 賦值運(yùn)算符賦值運(yùn)算符 =、+=、 =、 =、/=、%= 逗號(hào)運(yùn)算符 ,各類(lèi)運(yùn)算符的優(yōu)先級(jí)(各類(lèi)運(yùn)算符的優(yōu)先級(jí)(從高至低從高至低):):高高低低 5.5.表達(dá)式表達(dá)式 用運(yùn)算符將運(yùn)算對(duì)象(常量、變量和函數(shù)等)連接起用運(yùn)算符將運(yùn)算對(duì)象(常量、變量和函數(shù)等)連接起來(lái)的、符合語(yǔ)言語(yǔ)法規(guī)則的式子,稱(chēng)為表達(dá)式。來(lái)的、符合語(yǔ)言語(yǔ)法規(guī)則的式子,稱(chēng)為表達(dá)式。(1 1)簡(jiǎn)單表達(dá)式:表達(dá)式中只有一個(gè)運(yùn)算符的表達(dá)簡(jiǎn)單表達(dá)式:表達(dá)式中只有一個(gè)運(yùn)算符的表達(dá)式,被稱(chēng)為普通表達(dá)式,或稱(chēng)為簡(jiǎn)單表達(dá)式。式,被稱(chēng)為普通表達(dá)式,或稱(chēng)為簡(jiǎn)單表達(dá)式。(2
6、2)復(fù)合表達(dá)式:有多個(gè)運(yùn)算符構(gòu)成的表達(dá)式,被復(fù)合表達(dá)式:有多個(gè)運(yùn)算符構(gòu)成的表達(dá)式,被稱(chēng)為復(fù)合表達(dá)式。稱(chēng)為復(fù)合表達(dá)式。(3 3)特殊表達(dá)式:在使用中,單個(gè)常量、變量和函特殊表達(dá)式:在使用中,單個(gè)常量、變量和函數(shù)(返回值)都可以看作是一個(gè)表達(dá)式,稱(chēng)為特殊表達(dá)式。數(shù)(返回值)都可以看作是一個(gè)表達(dá)式,稱(chēng)為特殊表達(dá)式。6.6.表達(dá)式求值表達(dá)式求值每一個(gè)每一個(gè)C C的合法表達(dá)式的合法表達(dá)式 ,經(jīng)過(guò)運(yùn)算一定能得到一,經(jīng)過(guò)運(yùn)算一定能得到一個(gè)確定的數(shù)值,這個(gè)數(shù)值被稱(chēng)為表達(dá)式的值。個(gè)確定的數(shù)值,這個(gè)數(shù)值被稱(chēng)為表達(dá)式的值。復(fù)合表達(dá)式的求解過(guò)程如下復(fù)合表達(dá)式的求解過(guò)程如下: (1)(1) 按運(yùn)算符的優(yōu)先級(jí)高低次序執(zhí)行
7、。例如,先按運(yùn)算符的優(yōu)先級(jí)高低次序執(zhí)行。例如,先乘除后加減。乘除后加減。(2)(2) 如果在一個(gè)運(yùn)算對(duì)象(或稱(chēng)操作數(shù))兩側(cè)的如果在一個(gè)運(yùn)算對(duì)象(或稱(chēng)操作數(shù))兩側(cè)的運(yùn)算符的優(yōu)先級(jí)相同,則按語(yǔ)言規(guī)定的結(jié)合方向運(yùn)算符的優(yōu)先級(jí)相同,則按語(yǔ)言規(guī)定的結(jié)合方向(結(jié)合性)進(jìn)行。(結(jié)合性)進(jìn)行。 4.24.2 算算 術(shù)術(shù) 運(yùn)運(yùn) 算算 1.五種基本算術(shù)運(yùn)算符五種基本算術(shù)運(yùn)算符 + + ( 加法加法 ) - - ( 減法減法/ /取負(fù)取負(fù) ) * * ( 乘法乘法 ) / / ( 除法除法 ) % % ( 求余數(shù)求余數(shù) ) 2. 運(yùn)算符的優(yōu)先級(jí)與結(jié)合性運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 (1)算術(shù)運(yùn)算符的優(yōu)先級(jí))算術(shù)運(yùn)算符的優(yōu)
8、先級(jí) 先先取負(fù)取負(fù)、再、再乘、除、求余乘、除、求余,最后,最后加、減法加、減法 (2)運(yùn)算符的結(jié)合性為:自左至右的結(jié)合方向。)運(yùn)算符的結(jié)合性為:自左至右的結(jié)合方向。 3. 3. 算術(shù)表達(dá)式算術(shù)表達(dá)式 由算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來(lái)形成的由算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來(lái)形成的運(yùn)算式子,稱(chēng)為算術(shù)表達(dá)式運(yùn)算式子,稱(chēng)為算術(shù)表達(dá)式 例如,例如,3 + 6 * 9 、(x + y) / 2 14.4.算術(shù)表達(dá)式的值算術(shù)表達(dá)式的值除除C C語(yǔ)言的特定規(guī)則外,語(yǔ)言的特定規(guī)則外,C C語(yǔ)言中算術(shù)運(yùn)算與數(shù)學(xué)中語(yǔ)言中算術(shù)運(yùn)算與數(shù)學(xué)中的算術(shù)運(yùn)算規(guī)則相同,經(jīng)過(guò)有限次加減除等運(yùn)算,最后的算術(shù)運(yùn)算規(guī)則相同,經(jīng)過(guò)有
9、限次加減除等運(yùn)算,最后求得表達(dá)式的值。求得表達(dá)式的值。例如,例如,表達(dá)式表達(dá)式 3 + 6 * 9 的值的值: : 57 5. C5. C語(yǔ)言算術(shù)運(yùn)算的語(yǔ)言算術(shù)運(yùn)算的特定規(guī)則特定規(guī)則 (1 1)兩個(gè)整數(shù)相除,其商為整數(shù),小數(shù)部分被舍)兩個(gè)整數(shù)相除,其商為整數(shù),小數(shù)部分被舍棄棄。 例如,例如, 表達(dá)式:表達(dá)式:5/2 的值為的值為 2 ,不是,不是 2.5。而表達(dá)式:而表達(dá)式:12.6/3的值為的值為4.2 ,不是不是 4。 (2 2)關(guān)于求余數(shù)運(yùn)算,要求求余運(yùn)算符兩側(cè)的操)關(guān)于求余數(shù)運(yùn)算,要求求余運(yùn)算符兩側(cè)的操作數(shù)均為整型數(shù)據(jù),否則出錯(cuò)。作數(shù)均為整型數(shù)據(jù),否則出錯(cuò)。 例如,例如,表達(dá)式:表達(dá)式
10、:5%3 的的值值為為2。而。而5.32出錯(cuò),出錯(cuò),不是合法不是合法表達(dá)式表達(dá)式。 (3 3)C C語(yǔ)言的整型、實(shí)型和字符型數(shù)據(jù)間可以混合語(yǔ)言的整型、實(shí)型和字符型數(shù)據(jù)間可以混合運(yùn)算。運(yùn)算。例例4.1 輸出算術(shù)表達(dá)式的結(jié)果輸出算術(shù)表達(dá)式的結(jié)果#includemain() int a,b,c1; float x,y,z; a=85; b=18; x=42.6; y=28.3; c1=a/b * 9 +a %b; z=x/y(x+y)/2 1; printf(c1=%dn,c1); printf(z1=%fn, z);程序運(yùn)行結(jié)果程序運(yùn)行結(jié)果: c1=49 z1=39.172222a/b的值是的值是
11、4,4乘乘9得得36,a%b的值的值1336+13得得49混合運(yùn)算中數(shù)據(jù)類(lèi)型的轉(zhuǎn)換:混合運(yùn)算中數(shù)據(jù)類(lèi)型的轉(zhuǎn)換:6.數(shù)據(jù)類(lèi)型轉(zhuǎn)換數(shù)據(jù)類(lèi)型轉(zhuǎn)換 1)橫向向左的箭頭,)橫向向左的箭頭,表示必須的轉(zhuǎn)換。表示必須的轉(zhuǎn)換。char和和short 型必須轉(zhuǎn)換成型必須轉(zhuǎn)換成 int 型,型,float型必須轉(zhuǎn)型必須轉(zhuǎn)換成換成double型。型。 2)縱向向上的箭頭,)縱向向上的箭頭,表示不同類(lèi)型的轉(zhuǎn)換方表示不同類(lèi)型的轉(zhuǎn)換方向。向。(1)整型、實(shí)型和字符型數(shù)據(jù)間可以混合運(yùn)算)整型、實(shí)型和字符型數(shù)據(jù)間可以混合運(yùn)算(因?yàn)樽址麛?shù)據(jù)與整型數(shù)據(jù)可以通用)。(因?yàn)樽址麛?shù)據(jù)與整型數(shù)據(jù)可以通用)。一個(gè)運(yùn)算符兩側(cè)的操作數(shù)的數(shù)據(jù)類(lèi)
12、型不同,則按一個(gè)運(yùn)算符兩側(cè)的操作數(shù)的數(shù)據(jù)類(lèi)型不同,則按“先轉(zhuǎn)換、后運(yùn)算先轉(zhuǎn)換、后運(yùn)算”的原則,首先將數(shù)據(jù)自動(dòng)轉(zhuǎn)換成的原則,首先將數(shù)據(jù)自動(dòng)轉(zhuǎn)換成同一類(lèi)型,然后進(jìn)行運(yùn)算。同一類(lèi)型,然后進(jìn)行運(yùn)算。例如,例如,int 型型與與 double 型數(shù)據(jù)進(jìn)行型數(shù)據(jù)進(jìn)行混合運(yùn)算混合運(yùn)算,則先將,則先將 int 型數(shù)據(jù)轉(zhuǎn)換成型數(shù)據(jù)轉(zhuǎn)換成 double 型,然后在兩個(gè)同類(lèi)型的數(shù)型,然后在兩個(gè)同類(lèi)型的數(shù)據(jù)間進(jìn)行運(yùn)算,據(jù)間進(jìn)行運(yùn)算,結(jié)果為結(jié)果為double型。型。 注意箭頭方向只表示數(shù)據(jù)類(lèi)型由低向高轉(zhuǎn)換注意箭頭方向只表示數(shù)據(jù)類(lèi)型由低向高轉(zhuǎn)換.例例4.2整型、實(shí)型數(shù)據(jù)間混合運(yùn)算整型、實(shí)型數(shù)據(jù)間混合運(yùn)算#includem
13、ain() int a; float x; a=35; x=42.63; printf(%fn,a+x); printf(%fn,x/a);程序運(yùn)行結(jié)果程序運(yùn)行結(jié)果: 77.630001 1.218000自動(dòng)將自動(dòng)將X的的數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)轉(zhuǎn)換成 double 型,再將型,再將 int 型變型變量量a數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)轉(zhuǎn)換成 double 型型,進(jìn)行加法運(yùn)算,運(yùn)算進(jìn)行加法運(yùn)算,運(yùn)算結(jié)果為結(jié)果為double型型 7.7.數(shù)據(jù)類(lèi)型強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類(lèi)型強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類(lèi)型允許強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類(lèi)型允許強(qiáng)制轉(zhuǎn)換, ,一般格式為:一般格式為: ( (數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型)()(表達(dá)式表達(dá)式) )例如例如: : (int)(x +
14、 y) /*將將 x+y 的結(jié)果轉(zhuǎn)換成的結(jié)果轉(zhuǎn)換成 int 型型*/(1)(1)當(dāng)被轉(zhuǎn)換的表達(dá)式是一個(gè)簡(jiǎn)單表達(dá)式時(shí),外面當(dāng)被轉(zhuǎn)換的表達(dá)式是一個(gè)簡(jiǎn)單表達(dá)式時(shí),外面的一對(duì)圓括號(hào)可以缺省。的一對(duì)圓括號(hào)可以缺省。例如例如: :(double)a /*將變量將變量a的值轉(zhuǎn)換成的值轉(zhuǎn)換成double型型*/(float)5/2 (等價(jià)于(等價(jià)于(float)(5)/2) /*將將5轉(zhuǎn)換成實(shí)型再除以轉(zhuǎn)換成實(shí)型再除以2(=2.5)*/(float)(5/2) / /* *將將5 5整除整除2 2的結(jié)果的結(jié)果:2,:2,轉(zhuǎn)換成實(shí)型數(shù):轉(zhuǎn)換成實(shí)型數(shù):2.02.0* */ /(2)(2)強(qiáng)制轉(zhuǎn)換類(lèi)型得到的是一個(gè)所需
15、類(lèi)型的中間量,原強(qiáng)制轉(zhuǎn)換類(lèi)型得到的是一個(gè)所需類(lèi)型的中間量,原表達(dá)式類(lèi)型并不發(fā)生變化。表達(dá)式類(lèi)型并不發(fā)生變化。例如,例如,(double)a 只是將變量只是將變量a a的值轉(zhuǎn)換成一個(gè)的值轉(zhuǎn)換成一個(gè)double型的中間量,其數(shù)型的中間量,其數(shù)據(jù)類(lèi)型并未轉(zhuǎn)換成據(jù)類(lèi)型并未轉(zhuǎn)換成double型。型。例例4.3 數(shù)據(jù)類(lèi)型強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類(lèi)型強(qiáng)制轉(zhuǎn)換#includemain() int a; float x,y; a=85; x=42.6; y=19.3; printf(“1-%ft, (float)5/2 ); printf(“2-%fn, (float)(5/2); printf(“3-%dt, (int)
16、(x + y) ); printf(“4-%fn, (double)a );程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果: 1-2.500000 2-2.000000 3-61 4-85.0000004.3 4.3 賦賦 值值 運(yùn)運(yùn) 算算 1.1.賦值運(yùn)算賦值運(yùn)算 賦值運(yùn)算符賦值運(yùn)算符: : “ = ” ,它的作用是將一個(gè)表達(dá)式的,它的作用是將一個(gè)表達(dá)式的值賦給一個(gè)變量。值賦給一個(gè)變量。 給變量賦值的一般形式為:給變量賦值的一般形式為:變量變量 = 表達(dá)式表達(dá)式 2 2賦值運(yùn)算符的優(yōu)先級(jí)賦值運(yùn)算符的優(yōu)先級(jí) 賦值運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符,也低于關(guān)賦值運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符,也低于關(guān)系運(yùn)算符和邏輯運(yùn)算符。
17、系運(yùn)算符和邏輯運(yùn)算符。 3 3賦值運(yùn)算結(jié)合方向賦值運(yùn)算結(jié)合方向 賦值運(yùn)算結(jié)合方向:自右向左結(jié)合。賦值運(yùn)算結(jié)合方向:自右向左結(jié)合。4.4.賦值表達(dá)式賦值表達(dá)式由賦值運(yùn)算符或復(fù)合賦值運(yùn)算符,將一個(gè)變量和一由賦值運(yùn)算符或復(fù)合賦值運(yùn)算符,將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的表達(dá)式,稱(chēng)為賦值表達(dá)式。個(gè)表達(dá)式連接起來(lái)的表達(dá)式,稱(chēng)為賦值表達(dá)式。(1)賦值表達(dá)式賦值表達(dá)式一般格式一般格式 變量變量 賦值運(yùn)算符賦值運(yùn)算符 表達(dá)式表達(dá)式 例如,例如, a = 5 、 b=x+3*y(2)賦值表達(dá)式的值)賦值表達(dá)式的值任何一個(gè)表達(dá)式都有一個(gè)值,賦值表達(dá)式也不例外。任何一個(gè)表達(dá)式都有一個(gè)值,賦值表達(dá)式也不例外。被賦值變量
18、的值,就是賦值表達(dá)式的值。被賦值變量的值,就是賦值表達(dá)式的值。例如,例如,a = 5 賦值表達(dá)式,變量賦值表達(dá)式,變量a的值的值是是 賦值表達(dá)式的值賦值表達(dá)式的值是是 。 例如,例如,int x; float y; x = 5 y = (float)5 / 2 如果表達(dá)式值的類(lèi)型,與被賦值變量的類(lèi)型不一如果表達(dá)式值的類(lèi)型,與被賦值變量的類(lèi)型不一致,但都是數(shù)值型或字符型時(shí),系統(tǒng)自動(dòng)地將表達(dá)式致,但都是數(shù)值型或字符型時(shí),系統(tǒng)自動(dòng)地將表達(dá)式的值轉(zhuǎn)換成被賦值變量的數(shù)據(jù)類(lèi)型,然后再賦值給變的值轉(zhuǎn)換成被賦值變量的數(shù)據(jù)類(lèi)型,然后再賦值給變量。量。 表達(dá)式表達(dá)式 x = 5 的值的值: : 5 變量變量 x
19、的值的值: : 5 表達(dá)式表達(dá)式 y = (float)5 / 2 的值的值: : 2 .5 變量變量 y 的值的值: : 2 .5 (3)賦值運(yùn)算結(jié)合方向:右賦值運(yùn)算結(jié)合方向:右左左例如例如: : x = y = 65 等價(jià)于等價(jià)于 x = ( y = 65 ) 操作數(shù)操作數(shù) y 是先與是先與右右邊的運(yùn)算符結(jié)合,即邊的運(yùn)算符結(jié)合,即 先將先將 65 賦值給變量賦值給變量 y 變量變量 y 的的值是值是 65 表達(dá)式表達(dá)式 y = 65 的的值是值是 65 再做再做左左邊邊賦值運(yùn)算,賦值運(yùn)算,即即 將將表達(dá)式表達(dá)式 y = 65的的值值65, 賦值給變量賦值給變量 x 變量變量 x 的的值是值
20、是 65 表達(dá)式表達(dá)式 x = y = 65 的的值是值是 65 5.5.復(fù)合賦值運(yùn)算復(fù)合賦值運(yùn)算 復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符:是由賦值運(yùn)算符之前再加一個(gè)雙目是由賦值運(yùn)算符之前再加一個(gè)雙目運(yùn)算符構(gòu)成的。運(yùn)算符構(gòu)成的。 (1)復(fù)合賦值運(yùn)算的一般格式為:復(fù)合賦值運(yùn)算的一般格式為: 變量變量 雙雙 目目 運(yùn)運(yùn) 算算 符符 = 表達(dá)式表達(dá)式 復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符它等價(jià)于:它等價(jià)于: 變量變量 = 變量變量 雙目運(yùn)算符雙目運(yùn)算符 (表達(dá)式表達(dá)式) 例如:例如: y *= x + 6 等價(jià)于等價(jià)于 y=y * (x+6) 不是不是 y=y * x+6 當(dāng)表達(dá)式為簡(jiǎn)單表達(dá)式時(shí),表達(dá)式外的一對(duì)圓括號(hào)
21、當(dāng)表達(dá)式為簡(jiǎn)單表達(dá)式時(shí),表達(dá)式外的一對(duì)圓括號(hào)才可缺省,否則可能出錯(cuò)。才可缺省,否則可能出錯(cuò)。 例如:例如: x+=a 等價(jià)于等價(jià)于 x=x + a x/=3 等價(jià)于等價(jià)于 x=x/3 (2) 10種復(fù)合賦值運(yùn)算符種復(fù)合賦值運(yùn)算符C語(yǔ)言規(guī)定的語(yǔ)言規(guī)定的10種復(fù)合賦值運(yùn)算符如下:種復(fù)合賦值運(yùn)算符如下:復(fù)合算術(shù)運(yùn)算符復(fù)合算術(shù)運(yùn)算符: += -= *= /= %=復(fù)合位運(yùn)算符復(fù)合位運(yùn)算符: &= = |= = 例例4.4 輸出輸出復(fù)合賦值運(yùn)算結(jié)果。復(fù)合賦值運(yùn)算結(jié)果。main() int x, y, m; x=10; y=3; m= 24; m/= x 4 ; printf(“%dn” ,m);
22、 printf(“%fn”,(float)x/y); x=1; y*=x+2; printf(“%d-%dn”, x/y, x%y); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 4 3.333333 0-1m = m / (x 4) ;4.4 4.4 關(guān)關(guān) 系系 運(yùn)運(yùn) 算算1.1.關(guān)系運(yùn)算符及其優(yōu)先次序關(guān)系運(yùn)算符及其優(yōu)先次序(1) 關(guān)系運(yùn)算符(關(guān)系運(yùn)算符(6種關(guān)系運(yùn)算符)種關(guān)系運(yùn)算符) (小于小于) (大于大于) = (大于或等于大于或等于) = (等于等于) != (不等于不等于)注意:在語(yǔ)言中,注意:在語(yǔ)言中,“等于等于”關(guān)系運(yùn)算符是雙等號(hào)關(guān)系運(yùn)算符是雙等號(hào)“=”,而不是單等號(hào),而不是單等號(hào)“= ”(賦值運(yùn)算
23、符)。(賦值運(yùn)算符)。 例如:例如: a=18 該表達(dá)式是賦值表達(dá)式該表達(dá)式是賦值表達(dá)式 a=18 該表達(dá)式是關(guān)系表達(dá)式該表達(dá)式是關(guān)系表達(dá)式 (變量變量a是否等于是否等于18)(2)關(guān)系運(yùn)算符關(guān)系運(yùn)算符優(yōu)先級(jí)優(yōu)先級(jí)與與結(jié)合方向結(jié)合方向在關(guān)系運(yùn)算符中:在關(guān)系運(yùn)算符中: = 4個(gè)優(yōu)先級(jí)相同;個(gè)優(yōu)先級(jí)相同; = != 2個(gè)也相同,個(gè)也相同,且前且前4個(gè)高于后個(gè)高于后2個(gè)。個(gè)。結(jié)合方向是結(jié)合方向是“自左至右自左至右”。(3) 關(guān)系運(yùn)算符與其它運(yùn)算符關(guān)系運(yùn)算符與其它運(yùn)算符關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符;關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符;關(guān)系運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符關(guān)系運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符
24、。3種運(yùn)算符優(yōu)先級(jí)從高到低為種運(yùn)算符優(yōu)先級(jí)從高到低為:算術(shù)運(yùn)算符算術(shù)運(yùn)算符 關(guān)系運(yùn)算符關(guān)系運(yùn)算符 賦值運(yùn)算符賦值運(yùn)算符 2. 關(guān)系表達(dá)式 (1) 關(guān)系表達(dá)式關(guān)系表達(dá)式 關(guān)系表達(dá)式關(guān)系表達(dá)式是指,用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接是指,用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái),進(jìn)行關(guān)系運(yùn)算的式子。起來(lái),進(jìn)行關(guān)系運(yùn)算的式子。 例如,下面的關(guān)系表達(dá)式都是合法的:例如,下面的關(guān)系表達(dá)式都是合法的: ab, a+bc-d, (a=3)=b, (ab)=(bc) (2) 關(guān)系表達(dá)式的值關(guān)系表達(dá)式的值 語(yǔ)言中沒(méi)有邏輯型數(shù)據(jù)。在語(yǔ)言中:語(yǔ)言中沒(méi)有邏輯型數(shù)據(jù)。在語(yǔ)言中: 當(dāng)關(guān)系表達(dá)式表示的含意為當(dāng)關(guān)系表達(dá)式表示的含意為“邏輯
25、真邏輯真” ,其值為,其值為 1; 當(dāng)關(guān)系表達(dá)式表示的含意為當(dāng)關(guān)系表達(dá)式表示的含意為“邏輯假邏輯假” ,其值為,其值為。 例如,假設(shè)例如,假設(shè)n1=3,n2=4,n3=5,則:則: n1n2 表達(dá)式的值:表達(dá)式的值:0。 (n1n2)!=n3 表達(dá)式的值:表達(dá)式的值:1。 n1n2n3 表達(dá)式的值:表達(dá)式的值:1。 思考思考:任意改變:任意改變n1或或n2的值,會(huì)影響整個(gè)表達(dá)式的的值,會(huì)影響整個(gè)表達(dá)式的值嗎?為什么?值嗎?為什么?再次強(qiáng)調(diào):再次強(qiáng)調(diào):C語(yǔ)言用整數(shù)語(yǔ)言用整數(shù)“1”表示表示“邏輯真邏輯真”,用整,用整數(shù)數(shù)“0”表示表示“邏輯假邏輯假”。 (3) 關(guān)系表達(dá)式的值,還可以參與其它種類(lèi)的
26、運(yùn)算關(guān)系表達(dá)式的值,還可以參與其它種類(lèi)的運(yùn)算,例如算術(shù)運(yùn)算、邏輯運(yùn)算等。例如算術(shù)運(yùn)算、邏輯運(yùn)算等。 (n1n2)+n3 表達(dá)式的值:表達(dá)式的值:6 因?yàn)橐驗(yàn)閚1=1 n=0) & (x31 表達(dá)式的值:表達(dá)式的值: 1 (x5) 表達(dá)式的值:表達(dá)式的值: 0 判斷一個(gè)年份是否是閏年的邏輯表達(dá)式判斷一個(gè)年份是否是閏年的邏輯表達(dá)式: (year%4=0)&(year%100!=0) (year%400=0)例如例如: 判斷判斷1900年是否是閏年:年是否是閏年: 先求表達(dá)式先求表達(dá)式 year%4=0 的值得的值得 1 再求表達(dá)式再求表達(dá)式 year%100!=0 的值得的值得 0
27、 邏輯表達(dá)式邏輯表達(dá)式 (year%4=0)&(year%100!=0) 的值得的值得 0 還要求表達(dá)式還要求表達(dá)式 year%400=0 的值得的值得 0 最后求值整個(gè)表達(dá)式的值得最后求值整個(gè)表達(dá)式的值得 0 1900年不是閏年年不是閏年6說(shuō)明說(shuō)明(1)邏輯運(yùn)算符兩側(cè)的)邏輯運(yùn)算符兩側(cè)的操作數(shù)操作數(shù),除可以是和非,除可以是和非的整數(shù)外,也可以是其它任何類(lèi)型的數(shù)據(jù),如實(shí)型、字的整數(shù)外,也可以是其它任何類(lèi)型的數(shù)據(jù),如實(shí)型、字符型等。符型等。 例如:例如: float a, b ; a=25.28; b=52.78; !a 表達(dá)式的值:表達(dá)式的值: 0 !(A) 表達(dá)式的值:表達(dá)式的值:
28、0 a11.564 & b31 表達(dá)式的值:表達(dá)式的值: 1 (b5) 表達(dá)式的值:表達(dá)式的值: 1(2)在計(jì)算邏輯表達(dá)式時(shí),只有在必須執(zhí)行下一個(gè)表)在計(jì)算邏輯表達(dá)式時(shí),只有在必須執(zhí)行下一個(gè)表達(dá)式才能求解時(shí),才求解該表達(dá)式,即達(dá)式才能求解時(shí),才求解該表達(dá)式,即并不是所有的表并不是所有的表達(dá)式都被求解。達(dá)式都被求解。 1)邏輯與()邏輯與(&)運(yùn)算,如果第一個(gè)操作數(shù)被判定)運(yùn)算,如果第一個(gè)操作數(shù)被判定為為“假假”,系統(tǒng)不再判定或求解第二操作數(shù)。,系統(tǒng)不再判定或求解第二操作數(shù)。 2)邏輯或()邏輯或(|)運(yùn)算,如果第一個(gè)操作數(shù)被判定)運(yùn)算,如果第一個(gè)操作數(shù)被判定為為“真真”,系統(tǒng)不
29、再判定或求解第二操作數(shù)。,系統(tǒng)不再判定或求解第二操作數(shù)。 例如例如: 設(shè)設(shè) n1=6, n2=9, x=2, y=2 求解表達(dá)式求解表達(dá)式 (x=n1n2)&(y=n2n1) 后,后, x 的值的值 為:,為:, y 的值不變,仍等于的值不變,仍等于2 求解表達(dá)式求解表達(dá)式 (x=n1n2) (y=n2n1) 后,后, x 的值的值 為:,為:, y 的值為:的值為: 1例例4.5 復(fù)雜表達(dá)式的計(jì)算順序復(fù)雜表達(dá)式的計(jì)算順序 #include main() int a=10, b=15, c=14, temp; temp= a+6b & b-cc; /*temp=0*/ prin
30、tf(a+6b & b -cc = %dn,temp); temp=!a+b*c-b/a & b-a *!(c-a); /* temp=1 */ printf(!a+b*c-b/a & b-a*!(c-a)= %dn,temp); 4.6 4.6 自自 增增 自自 減減 運(yùn)運(yùn) 算算1. 自增(自增(+)、自減()、自減(-)運(yùn)算)運(yùn)算 自增運(yùn)算使單個(gè)變量的值增,自增運(yùn)算使單個(gè)變量的值增, 自減運(yùn)算使單個(gè)變量的值減。自減運(yùn)算使單個(gè)變量的值減。2.用法與運(yùn)算規(guī)則用法與運(yùn)算規(guī)則 (1)前置運(yùn)算前置運(yùn)算運(yùn)算符放在變量之前:變量、運(yùn)算符放在變量之前:變量、變量變量,先使變量的值增
31、(或減),然后再以變化后的值先使變量的值增(或減),然后再以變化后的值參與其它運(yùn)算,即參與其它運(yùn)算,即先增、減先增、減, 后運(yùn)算后運(yùn)算。 (2)后置運(yùn)算后置運(yùn)算運(yùn)算符放在變量之后:變量、變運(yùn)算符放在變量之后:變量、變量,變量先參與其它運(yùn)算,然后再使變量的值增(或量,變量先參與其它運(yùn)算,然后再使變量的值增(或減),即減),即先運(yùn)算,后增、減先運(yùn)算,后增、減。(3)結(jié)合方向:右結(jié)合方向:右左左3.自增、自減運(yùn)算說(shuō)明自增、自減運(yùn)算說(shuō)明(1)自增、自減運(yùn)算符,不能用于常量和表達(dá)自增、自減運(yùn)算符,不能用于常量和表達(dá)式。式。 例如,例如,5+、-(a+b) 等都是非法等都是非法的。的。(2)自增、自減運(yùn)算
32、,常用于循環(huán)語(yǔ)句中,使自增、自減運(yùn)算,常用于循環(huán)語(yǔ)句中,使循環(huán)控制變量加(或減),以及指針變量中,使指循環(huán)控制變量加(或減),以及指針變量中,使指針指向下(或上)一個(gè)地址。針指向下(或上)一個(gè)地址。 (3)在表達(dá)式中,連續(xù)使同一變量進(jìn)行自增或在表達(dá)式中,連續(xù)使同一變量進(jìn)行自增或自減運(yùn)算時(shí),很容易出錯(cuò),所以最好避免這種用法。自減運(yùn)算時(shí),很容易出錯(cuò),所以最好避免這種用法。例如:例如:a+a+a+b例例4.6 求下列表達(dá)式的值求下列表達(dá)式的值設(shè)設(shè) int a, b; a=3; b=4; (1) +a + b+ 變量變量a: 4 , 表達(dá)式值:表達(dá)式值:8 , 變量變量b: 5 (2) a+a+a 等
33、價(jià)于等價(jià)于 (a+)+(a+)+a 表達(dá)式值:表達(dá)式值: 9 , 變量變量a: 5(3) a + (+a) + (+a) 變量變量a: 5 , 表達(dá)式值表達(dá)式值: 15二級(jí)考題:二級(jí)考題:a+=a-=a*a 例例4.7 自增自減運(yùn)算符的用法與運(yùn)算規(guī)則示例自增自減運(yùn)算符的用法與運(yùn)算規(guī)則示例main() int x=6, y; printf(x=%dn,x); /*輸出輸出x的初值的初值*/ y =+x; /*前置運(yùn)算前置運(yùn)算*/ printf(y=+x: x=%d,y=%dn,x,y); y = x + ; /*后置運(yùn)算后置運(yùn)算*/ printf(y=x+: x=%d,y=%dn,x,y); 程
34、序運(yùn)行結(jié)果程序運(yùn)行結(jié)果: x=6 y=+x: x=7,y=7 y=x-: x=8, y=7 1. 條件運(yùn)算符條件運(yùn)算符 : : ? : 2條件表達(dá)式一般格式:條件表達(dá)式一般格式: 表達(dá)式表達(dá)式1 1 ? 表達(dá)式表達(dá)式2 2 : 表達(dá)式表達(dá)式3 3 條件表達(dá)式中的條件表達(dá)式中的“表達(dá)式表達(dá)式1”1”、“表達(dá)式表達(dá)式2”2”、“表表達(dá)式達(dá)式3”3”的類(lèi)型,可以各不相同。的類(lèi)型,可以各不相同。 int x, y,a,b; char c ; x=56; y=34; a=23; b=32; xy ? C=# : x=a+b 4.7 4.7 其其 它它 運(yùn)運(yùn) 算算3條件運(yùn)算規(guī)則條件運(yùn)算規(guī)則 : : 如果如
35、果“表達(dá)式表達(dá)式1”的值為非的值為非0 0值值( (即邏輯真即邏輯真) ),運(yùn)算結(jié),運(yùn)算結(jié)果等于果等于“表達(dá)式表達(dá)式2”的值;否則,運(yùn)算結(jié)果等于的值;否則,運(yùn)算結(jié)果等于“表達(dá)式表達(dá)式3”的值。的值。4條件運(yùn)算符優(yōu)先級(jí)與結(jié)合性條件運(yùn)算符優(yōu)先級(jí)與結(jié)合性 條件運(yùn)算符的優(yōu)先級(jí),高于賦值運(yùn)算符,但低于關(guān)條件運(yùn)算符的優(yōu)先級(jí),高于賦值運(yùn)算符,但低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符。系運(yùn)算符和算術(shù)運(yùn)算符。其其結(jié)合性為結(jié)合性為“從右到左從右到左”。 例如:例如: xy ? x+y : ab ? a *b :a+b等價(jià)于等價(jià)于: xy ? x+y : (ab ? a - b :a+b) 設(shè)設(shè) x=5 y=8 a=34 b=12 表達(dá)式的表達(dá)式的值:值:22 例例4.84.8從鍵盤(pán)上輸入一個(gè)字符,如果它是大寫(xiě)字
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)動(dòng)品牌在市場(chǎng)中的角色定位與營(yíng)銷(xiāo)策略
- 2025屆吉林省四平市雙遼市數(shù)學(xué)三下期末學(xué)業(yè)水平測(cè)試試題含解析
- 2025年扎魯特旗數(shù)學(xué)四下期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 2025年四川省成都市彭州市數(shù)學(xué)四下期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試題含解析
- 2025年02月山東煙臺(tái)市棲霞市事業(yè)單位公開(kāi)招聘筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 課題開(kāi)題報(bào)告:創(chuàng)新創(chuàng)業(yè)教育現(xiàn)代化與中國(guó)式現(xiàn)代化
- 課題開(kāi)題報(bào)告:殘疾學(xué)生職業(yè)教育研究
- 老年腎病的護(hù)理
- 合作經(jīng)營(yíng)土地流轉(zhuǎn)與管理協(xié)議
- 毛布拖鞋企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 機(jī)械加工企業(yè)安全生產(chǎn)應(yīng)急預(yù)案(6篇)
- GB/T 23025-2024信息化和工業(yè)化融合管理體系生產(chǎn)設(shè)備運(yùn)行管控信息模型分類(lèi)與應(yīng)用指南
- 2025年上半年安徽合肥高新區(qū)管委會(huì)招聘工作人員筆試重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 學(xué)校食堂廚師崗位職責(zé)
- 職業(yè)生涯規(guī)劃的步驟與方法課件
- 2024解析:第十五章電流和電路-講核心(解析版)
- 米勒黑曼策略銷(xiāo)售培訓(xùn)
- 2024年下半年?yáng)|方電氣長(zhǎng)三角(杭州)創(chuàng)新研究院限公司第二批招聘易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 【重點(diǎn)易錯(cuò)題每日一練小紙條】二年級(jí)數(shù)學(xué)下冊(cè)
- 2024年小紅書(shū)初級(jí)營(yíng)銷(xiāo)師題庫(kù)
- 2022年公務(wù)員多省聯(lián)考《申論》真題(重慶二卷)及答案解析
評(píng)論
0/150
提交評(píng)論