測(cè)繪C語(yǔ)言程序設(shè)計(jì)課件(下)_第1頁(yè)
測(cè)繪C語(yǔ)言程序設(shè)計(jì)課件(下)_第2頁(yè)
測(cè)繪C語(yǔ)言程序設(shè)計(jì)課件(下)_第3頁(yè)
測(cè)繪C語(yǔ)言程序設(shè)計(jì)課件(下)_第4頁(yè)
測(cè)繪C語(yǔ)言程序設(shè)計(jì)課件(下)_第5頁(yè)
已閱讀5頁(yè),還剩218頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、測(cè)繪測(cè)繪C C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)章章2 一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式三、三、 if語(yǔ)句語(yǔ)句四、四、 switch語(yǔ)句語(yǔ)句五、程序舉例五、程序舉例3 一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式在現(xiàn)實(shí)生活中在現(xiàn)實(shí)生活中如果你在家,我去拜訪你如果你在家,我去拜訪你如果考試不及格,要補(bǔ)考如果考試不及格,要補(bǔ)考如果遇到紅燈,要停車(chē)等待如果遇到紅燈,要停車(chē)等待周末我們?nèi)ソ加沃苣┪覀內(nèi)ソ加?0歲以上的老年人,入公園免票歲以上的老年人,入公園免票p處理這些問(wèn)題,關(guān)鍵在于進(jìn)處理這些問(wèn)題,關(guān)鍵在于進(jìn)行條件判斷行條件判斷p由

2、于程序處理問(wèn)題的需要,由于程序處理問(wèn)題的需要,在大多數(shù)程序中都會(huì)包含選擇在大多數(shù)程序中都會(huì)包含選擇結(jié)構(gòu),需要在進(jìn)行下一個(gè)操作結(jié)構(gòu),需要在進(jìn)行下一個(gè)操作之前先進(jìn)行條件判斷之前先進(jìn)行條件判斷4 一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式例 求ax2+bx+c=0方程的根。 輸入輸入a,b,c計(jì)算計(jì)算discdisc0計(jì)算計(jì)算x1,x2輸出無(wú)實(shí)根輸出無(wú)實(shí)根輸出輸出x1,x2真真假假5 一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式1、關(guān)系運(yùn)算符及其優(yōu)先級(jí)、關(guān)系運(yùn)算符及其優(yōu)先級(jí)優(yōu)先級(jí)相同優(yōu)先級(jí)相同 (高高):(小于小于)=(小于或等于小于或等于)(大于大于)=(大于或等于大于或等于)優(yōu)

3、先級(jí)相同優(yōu)先級(jí)相同 (低低):= = (等于等于)!=(不等于不等于)說(shuō)明:說(shuō)明: 關(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)算符 ca+b 等效于等效于 c(a+b)ab=c 等效于等效于 (ab)=ca=bc 等效于等效于 a=(bc 等效于等效于 a=(bc)6 一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式2、關(guān)系表達(dá)式、關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(可以是算術(shù)表達(dá)式或可以是算術(shù)表達(dá)式或關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表

4、達(dá)式表達(dá)式)連接起來(lái)的式子連接起來(lái)的式子關(guān)系表達(dá)式的值是一個(gè)邏輯值,即關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真真”或或“假假”在在C的邏輯運(yùn)算中,以的邏輯運(yùn)算中,以“”代表代表“真真”,以,以“”代表代表“假假”C語(yǔ)言中沒(méi)有語(yǔ)言中沒(méi)有專(zhuān)用的邏輯值專(zhuān)用的邏輯值 ab,a+bb+c,(a=3)(b=5),ab)(bb的值為的值為“真真”,表達(dá)式,表達(dá)式的值為的值為1p對(duì)字符比較對(duì)字符比較:比較其比較其ASCIIp不可比較字符串不可比較字符串7二、邏輯運(yùn)算符和邏輯表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式1、邏輯運(yùn)算符及其優(yōu)先級(jí)、邏輯運(yùn)算符及其優(yōu)先級(jí)3種邏輯運(yùn)算符:種邏輯運(yùn)算符:& (邏輯與邏輯與) 相當(dāng)于

5、其他語(yǔ)言中的相當(dāng)于其他語(yǔ)言中的AND| (邏輯或邏輯或) 相當(dāng)于其他語(yǔ)言中的相當(dāng)于其他語(yǔ)言中的OR! (邏輯非邏輯非) 相當(dāng)于其他語(yǔ)言中的相當(dāng)于其他語(yǔ)言中的NOTa&b 若若a,b為真,則為真,則a&b為真。為真。a|b 若若a,b之一為真,則之一為真,則a|b為真。為真。!a 若若a為真,則為真,則!a為假。為假。雙目雙目(元元)運(yùn)算符運(yùn)算符一目一目(元元)運(yùn)算符運(yùn)算符8二、邏輯運(yùn)算符和邏輯表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式1、邏輯運(yùn)算符及其優(yōu)先級(jí)、邏輯運(yùn)算符及其優(yōu)先級(jí)3種邏輯運(yùn)算符:種邏輯運(yùn)算符:9二、邏輯運(yùn)算符和邏輯表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式1、邏輯運(yùn)算符及其優(yōu)先級(jí)、

6、邏輯運(yùn)算符及其優(yōu)先級(jí)邏輯運(yùn)算符優(yōu)先級(jí):邏輯運(yùn)算符優(yōu)先級(jí):!(非非) &(與與) | (或或)邏輯運(yùn)算符中的邏輯運(yùn)算符中的“&”和和“|”低于低于關(guān)系運(yùn)算符,關(guān)系運(yùn)算符,“!”高于算術(shù)運(yùn)算符高于算術(shù)運(yùn)算符(ab) & (xy) 可寫(xiě)成可寫(xiě)成ab & xy (a=b)|(x=y) 可寫(xiě)成可寫(xiě)成a=b|x=y (!a)|(ab) 可寫(xiě)成可寫(xiě)成 !a|ab10二、邏輯運(yùn)算符和邏輯表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式2、邏輯表達(dá)式、邏輯表達(dá)式邏輯表達(dá)式邏輯表達(dá)式: 用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的式子接起來(lái)的式子邏輯表達(dá)式的值應(yīng)該是

7、一個(gè)邏輯量邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量“真真”(1)或或“假假”(0)設(shè)設(shè)a=4,b=5:!a的值為的值為 a&b的的值為值為a|b的值為的值為 !a|b的的值為值為4&0|2的值為的值為p在判斷一個(gè)量是否為在判斷一個(gè)量是否為“真真”時(shí),以時(shí),以0代表代表“假假”,以非,以非0代表代表“真真”。0111111二、邏輯運(yùn)算符和邏輯表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式2、邏輯表達(dá)式、邏輯表達(dá)式在一個(gè)表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是在一個(gè)表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作為數(shù)值運(yùn)算或關(guān)系運(yùn)算的對(duì)象,哪些作為邏輯運(yùn)作為數(shù)值運(yùn)算或關(guān)系運(yùn)算的對(duì)象,哪些作為邏輯運(yùn)算的對(duì)象。算的

8、對(duì)象。53&84-!01&0邏輯值為邏輯值為083邏輯值為邏輯值為1表達(dá)式值為表達(dá)式值為012二、邏輯運(yùn)算符和邏輯表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式2、邏輯表達(dá)式、邏輯表達(dá)式13二、邏輯運(yùn)算符和邏輯表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式2、邏輯表達(dá)式、邏輯表達(dá)式在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都要被執(zhí)行要被執(zhí)行 a&b&c 只有只有a為真時(shí),才需要判斷為真時(shí),才需要判斷b的值,只有的值,只有a和和b都為真時(shí),才需要判斷都為真時(shí),才需要判斷c的值。的值。 a|b|c 只要只要a為真,就不必判斷為真,就不必判斷b和和

9、c的值,只有的值,只有a為假,為假,才判斷才判斷b。a和和b都為假才判斷都為假才判斷c設(shè)設(shè): a=1,b=2,c=3,d=4,m=1,n=1(m=ab)&(n=cd)說(shuō)明:說(shuō)明: 由于由于ab的值為的值為0,因此,因此m=0,而,而n=cd不被執(zhí)行,因此不被執(zhí)行,因此n的值不是的值不是0而仍保而仍保持原值持原值1。14二、邏輯運(yùn)算符和邏輯表達(dá)式二、邏輯運(yùn)算符和邏輯表達(dá)式2、邏輯表達(dá)式、邏輯表達(dá)式例 用邏輯表達(dá)式來(lái)表示閏年的條件。 分析:閏年條件分析:閏年條件能被能被4整除,但不能被整除,但不能被100整除。整除。能被能被4整除,又能被整除,又能被400整除。整除。(year%4=0&a

10、mp;year%100!=0)|year%400=0 !(year4=0 & year100!=0)|year400=0) 如果表達(dá)式值為如果表達(dá)式值為1,則閏年;,則閏年;否則為非閏年否則為非閏年 如果表達(dá)式值為如果表達(dá)式值為1,則非閏年;,則非閏年;否則為閏年否則為閏年 (year4!=0)|(year100=0 & year400!=0) 如果表達(dá)式值為如果表達(dá)式值為1,則非閏年;,則非閏年;否則為閏年否則為閏年 15三、三、 if語(yǔ)句語(yǔ)句1、 if語(yǔ)句的三種形式語(yǔ)句的三種形式if(表達(dá)式表達(dá)式)語(yǔ)句語(yǔ)句if(表達(dá)式表達(dá)式) 語(yǔ)句語(yǔ)句1 else 語(yǔ)句語(yǔ)句2if(表達(dá)式表

11、達(dá)式1) 語(yǔ)句語(yǔ)句1 else if(表達(dá)式表達(dá)式2) 語(yǔ)句語(yǔ)句2 else if(表達(dá)式表達(dá)式3)語(yǔ)句語(yǔ)句3 else if(表達(dá)式表達(dá)式m)語(yǔ)句語(yǔ)句m else語(yǔ)句語(yǔ)句np關(guān)系表達(dá)式關(guān)系表達(dá)式p邏輯表達(dá)式邏輯表達(dá)式p數(shù)值表達(dá)式數(shù)值表達(dá)式if(a=b & x=y) printf(“a=b, x=y”)if(3) printf(K);if(a)printf(d, a)p整個(gè)整個(gè)if語(yǔ)句可寫(xiě)在多行上語(yǔ)句可寫(xiě)在多行上,也可寫(xiě)也可寫(xiě)在一行上在一行上 ,但都是一個(gè)整體,屬于但都是一個(gè)整體,屬于同一個(gè)語(yǔ)句同一個(gè)語(yǔ)句16三、三、 if語(yǔ)句語(yǔ)句1、 if語(yǔ)句的三種形式語(yǔ)句的三種形式if(表達(dá)式表達(dá)式

12、)語(yǔ)句語(yǔ)句if(表達(dá)式表達(dá)式) 語(yǔ)句語(yǔ)句1 else 語(yǔ)句語(yǔ)句2if(xy) printf(“d”, x);if (xy) printf(d, x);else printf(d, y);17三、三、 if語(yǔ)句語(yǔ)句1、 if語(yǔ)句的三種形式語(yǔ)句的三種形式if(表達(dá)式表達(dá)式1) 語(yǔ)句語(yǔ)句1 else if(表達(dá)式表達(dá)式2) 語(yǔ)句語(yǔ)句2 else if(表達(dá)式表達(dá)式3)語(yǔ)句語(yǔ)句3 else if(表達(dá)式表達(dá)式m)語(yǔ)句語(yǔ)句m else語(yǔ)句語(yǔ)句np“語(yǔ)句語(yǔ)句1”“語(yǔ)句語(yǔ)句m”是是if中的內(nèi)嵌中的內(nèi)嵌語(yǔ)句語(yǔ)句, 內(nèi)嵌語(yǔ)句也可以是一個(gè)內(nèi)嵌語(yǔ)句也可以是一個(gè)if語(yǔ)句語(yǔ)句18三、三、 if語(yǔ)句語(yǔ)句1、 if語(yǔ)句的三

13、種形式語(yǔ)句的三種形式if(number500)cost=0.15;else if(number300)cost=0.10;else if(number100)cost=0.075;else if(number50)cost=0.05;else cost=0;if (number 500) cost = 0.15;else if (number 300) cost = 0.10; else if (number 100) cost = 0.075; else if (number 50) cost = 0.05; else cost = 0;19三、三、 if語(yǔ)句語(yǔ)句1、 if語(yǔ)句的三種形式語(yǔ)句

14、的三種形式在在if和和else后面可以只含一個(gè)內(nèi)嵌的操作語(yǔ)句,也可以后面可以只含一個(gè)內(nèi)嵌的操作語(yǔ)句,也可以有多個(gè)操作語(yǔ)句,此時(shí)用花括號(hào)有多個(gè)操作語(yǔ)句,此時(shí)用花括號(hào)“”將幾個(gè)語(yǔ)將幾個(gè)語(yǔ)句括起來(lái)成為一個(gè)復(fù)合語(yǔ)句句括起來(lái)成為一個(gè)復(fù)合語(yǔ)句if(abc & bca & cab) s=0.5*(a+b+c); area=sqrt(S*(S-a)*(S-b)*(S-c); printf(area=6.2f,area);else printf(It is not a trilateral);20三、三、 if語(yǔ)句語(yǔ)句例5.1 輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大的次序輸出這兩個(gè)數(shù)。 AB互換前AB互

15、換后分析:分析:只需要做一次比較,然后進(jìn)行一次只需要做一次比較,然后進(jìn)行一次交換即可交換即可用用if語(yǔ)句實(shí)現(xiàn)條件判斷語(yǔ)句實(shí)現(xiàn)條件判斷關(guān)鍵是怎樣實(shí)現(xiàn)兩個(gè)變量值的互換關(guān)鍵是怎樣實(shí)現(xiàn)兩個(gè)變量值的互換21三、三、 if語(yǔ)句語(yǔ)句例5.1 輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大的次序輸出這兩個(gè)數(shù)。 分析:分析:只需要做一次比較,然后進(jìn)行一次只需要做一次比較,然后進(jìn)行一次交換即可交換即可用用if語(yǔ)句實(shí)現(xiàn)條件判斷語(yǔ)句實(shí)現(xiàn)條件判斷關(guān)鍵是怎樣實(shí)現(xiàn)兩個(gè)變量值的互換關(guān)鍵是怎樣實(shí)現(xiàn)兩個(gè)變量值的互換ABC22三、三、 if語(yǔ)句語(yǔ)句例5.1 輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大的次序輸出這兩個(gè)數(shù)。 分析:分析:只需要做一次比較,然后進(jìn)行

16、一次只需要做一次比較,然后進(jìn)行一次交換即可交換即可用用if語(yǔ)句實(shí)現(xiàn)條件判斷語(yǔ)句實(shí)現(xiàn)條件判斷關(guān)鍵是怎樣實(shí)現(xiàn)兩個(gè)變量值的互換關(guān)鍵是怎樣實(shí)現(xiàn)兩個(gè)變量值的互換ABC23三、三、 if語(yǔ)句語(yǔ)句例5.1 輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大的次序輸出這兩個(gè)數(shù)。 分析:分析:只需要做一次比較,然后進(jìn)行一次只需要做一次比較,然后進(jìn)行一次交換即可交換即可用用if語(yǔ)句實(shí)現(xiàn)條件判斷語(yǔ)句實(shí)現(xiàn)條件判斷關(guān)鍵是怎樣實(shí)現(xiàn)兩個(gè)變量值的互換關(guān)鍵是怎樣實(shí)現(xiàn)兩個(gè)變量值的互換ABC24三、三、 if語(yǔ)句語(yǔ)句例5.1 輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大的次序輸出這兩個(gè)數(shù)。#includevoid main() float a, b, t; sca

17、nf(“%f,%f,&a,&b); if(ab) t=a; a=b; b=t; printf(“%5.2f, %5.2f“, a, b); 說(shuō)明:說(shuō)明:if(ab): 判斷兩數(shù)大小,選擇結(jié)構(gòu),判斷兩數(shù)大小,選擇結(jié)構(gòu),用用if語(yǔ)句實(shí)現(xiàn)的語(yǔ)句實(shí)現(xiàn)的t=a; a=b; b=t;:將將a和和b的值互換的值互換25三、三、 if語(yǔ)句語(yǔ)句例5.2輸入3個(gè)數(shù)a,b,c,要求按由小到大的順序輸出。#include int main() float a,b,c,t; scanf(%f,%f,%f,&a,&b,&c); if(ab) t=a; a=b; b=t; if(ac

18、) t=a; a=c; c=t; if(bc) t=b; b=c; c=t; printf(%5.2f,%5.2f,%5.2fn,a,b,c); return 0; 分析:分析:if ab,a和和b對(duì)換對(duì)換 (a是是a、b中的小者)中的小者)if ac,a和和c對(duì)換對(duì)換 (a是三者中最小者)是三者中最小者)if bc,b和和c對(duì)換對(duì)換 (b是三者中次小者)是三者中次小者)順序輸出順序輸出a,b,c26三、三、 if語(yǔ)句語(yǔ)句2、 if語(yǔ)句的嵌套語(yǔ)句的嵌套在在if語(yǔ)句中又包含一個(gè)或多個(gè)語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱(chēng)為語(yǔ)句稱(chēng)為if語(yǔ)句的嵌套語(yǔ)句的嵌套if() if()語(yǔ)句語(yǔ)句1 else 語(yǔ)句語(yǔ)句

19、2else if()語(yǔ)句語(yǔ)句3 else 語(yǔ)句語(yǔ)句4 p 注意注意if與與else的配對(duì)關(guān)系的配對(duì)關(guān)系p else總是與它上面的最近的未配總是與它上面的最近的未配對(duì)對(duì)if配對(duì)配對(duì)if() if()語(yǔ)句語(yǔ)句1else if()語(yǔ)句語(yǔ)句2else 語(yǔ)句語(yǔ)句3內(nèi)內(nèi)嵌嵌if內(nèi)內(nèi)嵌嵌if內(nèi)內(nèi)嵌嵌if分析:分析:第一個(gè)第一個(gè)else是與第二個(gè)是與第二個(gè)if配對(duì)配對(duì)最好使內(nèi)嵌最好使內(nèi)嵌if語(yǔ)句也包含語(yǔ)句也包含else部分,這樣部分,這樣if的數(shù)目和的數(shù)目和else的數(shù)目相同的數(shù)目相同,從內(nèi)層到從內(nèi)層到外層一一對(duì)應(yīng)外層一一對(duì)應(yīng),不致出錯(cuò)。不致出錯(cuò)。如果如果if與與else的數(shù)目不一樣的數(shù)目不一樣, 加花括弧來(lái)

20、加花括弧來(lái)確定配對(duì)關(guān)系確定配對(duì)關(guān)系27三、三、 if語(yǔ)句語(yǔ)句2、例5.3有一函數(shù):編一程序, 輸入一個(gè)x值,輸出y值。#include void main() int x,y; scanf(%d,&x); if(x0) y=-1; if(x=0) y=0;if(x0) y=1; printf(x=%d,y=%dn, x, y); 分析:分析: 輸入輸入x若若 x 0 y = 1;輸出輸出y1 (0)0 (0)1 (0)xxx 28三、三、 if語(yǔ)句語(yǔ)句2、例5.3有一函數(shù):編一程序, 輸入一個(gè)x值,輸出y值。#include void main() int x,y; scanf(d,&

21、amp;x); if(x0) y=-1; else if(x=0) y=0;else y=1; printf(x=d,y=dn,x,y); 分析:分析:輸入輸入x若若 x 0 y = 1;輸出輸出y1 (0)0 (0)1 (0)xxx 29三、三、 if語(yǔ)句語(yǔ)句2、例5.3有一函數(shù):編一程序, 輸入一個(gè)x值,輸出y值。#include void main() int x,y; scanf(d,&x); if(x=0) if(x0) y=1; else y=0 else y=-1; printf(x=d,y=dn,x,y); 1 (0)0 (0)1 (0)xxx 30三、三、 if語(yǔ)句語(yǔ)

22、句2、例5.3有一函數(shù):編一程序, 輸入一個(gè)x值,輸出y值。#include void main() int x,y; scanf(d,&x); y=-1; if(x!=0) if(x0)y=1; else y=0; printf(x=d,y=dn,x,y); 1 (0)0 (0)1 (0)xxx if(x0)y=1;31三、三、 if語(yǔ)句語(yǔ)句3、 條件運(yùn)算符條件運(yùn)算符若若if語(yǔ)句中,在表達(dá)式為語(yǔ)句中,在表達(dá)式為“真真”和和“假假”時(shí),且都只時(shí),且都只執(zhí)行一個(gè)賦值語(yǔ)句給同一個(gè)變量賦值時(shí),可以用簡(jiǎn)執(zhí)行一個(gè)賦值語(yǔ)句給同一個(gè)變量賦值時(shí),可以用簡(jiǎn)單的條件運(yùn)算符來(lái)處理單的條件運(yùn)算符來(lái)處理三目三目

23、(元元)運(yùn)算符,運(yùn)算符, C語(yǔ)言中唯一的一個(gè)三目運(yùn)算符語(yǔ)言中唯一的一個(gè)三目運(yùn)算符if (ab) max=a;else max=b;max=(ab)? a: b;表達(dá)式表達(dá)式1? 表達(dá)式表達(dá)式2: 表達(dá)式表達(dá)式3p 數(shù)值表達(dá)式數(shù)值表達(dá)式p 賦值表達(dá)式賦值表達(dá)式p 函數(shù)表達(dá)式函數(shù)表達(dá)式32三、三、 if語(yǔ)句語(yǔ)句3、 條件運(yùn)算符條件運(yùn)算符優(yōu)先級(jí)和結(jié)合性優(yōu)先級(jí)和結(jié)合性:條件運(yùn)算符優(yōu)先于賦值運(yùn)算符條件運(yùn)算符優(yōu)先于賦值運(yùn)算符條件運(yùn)算符的優(yōu)先級(jí)別比關(guān)系運(yùn)算符和算術(shù)運(yùn)算符都條件運(yùn)算符的優(yōu)先級(jí)別比關(guān)系運(yùn)算符和算術(shù)運(yùn)算符都低低條件運(yùn)算符的結(jié)合方向?yàn)闂l件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷笞杂抑磷蟆眒ax=(ab)? a:

24、 bmax=ab? a: bab?a:b+1ab?a:(b+1)(ab?a:b)+133三、三、 if語(yǔ)句語(yǔ)句3、 條件運(yùn)算符條件運(yùn)算符條件表達(dá)式中,表達(dá)式條件表達(dá)式中,表達(dá)式1的類(lèi)型可以與表達(dá)式的類(lèi)型可以與表達(dá)式2和表達(dá)和表達(dá)式式3的類(lèi)型不同的類(lèi)型不同例5.4 用條件表達(dá)式來(lái)處理,當(dāng)字母是大寫(xiě)時(shí),轉(zhuǎn)換成小寫(xiě)字母,否則不轉(zhuǎn)換。#include void main() char ch; scanf(%c,&ch); ch=(ch=A & ch=Z )?(ch+32):ch; printf(%cn,ch); 34四、四、 switch語(yǔ)句語(yǔ)句學(xué)生成績(jī)分類(lèi)學(xué)生成績(jī)分類(lèi)85分以上為分以

25、上為 A等等7084分為分為 B等等6069分為分為 C等等人口統(tǒng)計(jì)分類(lèi)人口統(tǒng)計(jì)分類(lèi) : 按年齡分為老、中、青、少、兒童按年齡分為老、中、青、少、兒童35四、四、 switch語(yǔ)句語(yǔ)句Switch語(yǔ)句語(yǔ)句:多分支選擇語(yǔ)句多分支選擇語(yǔ)句switch語(yǔ)句的作用是根據(jù)表達(dá)式的值,使流程跳轉(zhuǎn)到不語(yǔ)句的作用是根據(jù)表達(dá)式的值,使流程跳轉(zhuǎn)到不同的語(yǔ)句同的語(yǔ)句執(zhí)行完一個(gè)執(zhí)行完一個(gè)case后面的語(yǔ)句后,流程控制轉(zhuǎn)移到下一后面的語(yǔ)句后,流程控制轉(zhuǎn)移到下一個(gè)個(gè)case繼續(xù)執(zhí)行繼續(xù)執(zhí)行switch(表達(dá)式表達(dá)式) case常量表達(dá)式常量表達(dá)式1: 語(yǔ)句語(yǔ)句1 case常量表達(dá)式常量表達(dá)式2: 語(yǔ)句語(yǔ)句2 case常量

26、表達(dá)式常量表達(dá)式n: 語(yǔ)句語(yǔ)句n default : 語(yǔ)句語(yǔ)句n+1 p 整型整型p 字符型字符型p 枚舉型枚舉型不能相同不能相同36四、四、 switch語(yǔ)句語(yǔ)句Switch語(yǔ)句語(yǔ)句:多分支選擇語(yǔ)句多分支選擇語(yǔ)句break語(yǔ)句語(yǔ)句:在執(zhí)行一個(gè)在執(zhí)行一個(gè)case分支后,使流程跳出分支后,使流程跳出switch結(jié)構(gòu),終止結(jié)構(gòu),終止switch語(yǔ)句的執(zhí)行語(yǔ)句的執(zhí)行多個(gè)多個(gè)case可以共用一組執(zhí)行語(yǔ)句可以共用一組執(zhí)行語(yǔ)句casea:caseb:casec:printf(60n);break;37四、四、 switch語(yǔ)句語(yǔ)句switch(grade) case A: printf(85100n);b

27、reak; case B: printf(7084n);break; case C: printf(6069n);break; case D: printf(60n);break; default: printf(Enter data error!n);值為值為A38四、四、 switch語(yǔ)句語(yǔ)句switch(grade) case A: printf(85100n);break; case B: printf(7084n);break; case C: printf(6069n);break; case D: printf(60n);break; default: printf(Enter

28、data error!n);值為值為C39四、四、 switch語(yǔ)句語(yǔ)句switch(grade) case A: printf(85100n);break; case B: printf(7084n);break; case C: printf(6069n);break; case D: printf(60n);break; default: printf(Enter data error!n);值為值為F40四、四、 switch語(yǔ)句語(yǔ)句switch(grade) case A: printf(85100n);break; case B: printf(7084n);break; case

29、 C: printf(6069n);break; case D: printf(60n);break; default: printf(Enter data error!n);值為值為A851007084606960Enter data error!41五、程序舉例五、程序舉例例5.5 判斷某一年是否閏年。#include void main()int year,leap; printf(enter year:); scanf(%d,&year); if (year%4=0) if(year%100=0) if(year%400=0) leap=1; else leap=0; else

30、 leap=1; else leap=0; if (leap) printf(%d is ,year); else printf(%d is not ,year); printf(a leap year.n);標(biāo)志變量標(biāo)志變量與與if (leap!=0)含義相同含義相同采取鋸齒形式采取鋸齒形式if(year%4!=0) leap=0;else if (year%100!=0) leap=1;else if(year%400!=0) leap=0;else leap=1;if(year%4=0 & year%100!=0) | (year%400=0) leap=1;else leap=

31、0;42五、程序舉例五、程序舉例例5.6 求ax2+bx+c=0 方程的解。#include #include void main() float a, b, c, disc, x1, x2, realpart, imagpart; scanf(“%f,%f,%f, &a, &b, &c); printf(The equation ); if(fabs(a)0 ,有兩個(gè)不等實(shí)根,有兩個(gè)不等實(shí)根; b2-4ac0 ,有兩個(gè)共軛復(fù)根,有兩個(gè)共軛復(fù)根; 應(yīng)當(dāng)以應(yīng)當(dāng)以p+qi和和p-qi的形式輸出的形式輸出復(fù)根復(fù)根:其中其中, p=-b/2a,q=( )/2a2|4|bac實(shí)型

32、不能用實(shí)型不能用if (a=0)43五、程序舉例五、程序舉例 else disc=b*b-4*a*c; if(fabs(disc)1e-6) x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(has distinct real roots:%8.4f and %8.4fn,x1,x2); else realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf( has complex roots:n); printf(%8.4f+%8.4fin, realpart, imagpart)

33、; printf(%8.4f-%8.4fin, realpart, imagpart); 先算先算disc,以減少重復(fù)計(jì)算,以減少重復(fù)計(jì)算不能用不能用if (disc=0)44五、程序舉例五、程序舉例例5.7 運(yùn)輸公司對(duì)用戶計(jì)算運(yùn)輸費(fèi)用。分析:分析: 標(biāo)準(zhǔn)如下標(biāo)準(zhǔn)如下: s 250 沒(méi)有折扣沒(méi)有折扣250s 500 2%折扣折扣500s 1000 5%折扣折扣1000s 2000 8%折扣折扣2000s 3000 10%折扣折扣3000s 15%折扣折扣 解題思路解題思路:(1)設(shè)每噸每千米貨物的基本運(yùn)費(fèi)為設(shè)每噸每千米貨物的基本運(yùn)費(fèi)為p,貨物重為,貨物重為w,距離為,距離為s,折,折扣為扣為d

34、(2)總運(yùn)費(fèi)總運(yùn)費(fèi)f的計(jì)算公式為的計(jì)算公式為f=pws(1-d)45五、程序舉例五、程序舉例例5.7 運(yùn)輸公司對(duì)用戶計(jì)算運(yùn)輸費(fèi)用。分析:分析: 折扣的變化規(guī)律(參見(jiàn)教材圖折扣的變化規(guī)律(參見(jiàn)教材圖5.15) : 折扣的折扣的“變化點(diǎn)變化點(diǎn)”都是都是250的倍數(shù)的倍數(shù) 在橫軸上加一種坐標(biāo)在橫軸上加一種坐標(biāo)c,c的值為的值為s/250, c代表代表250的倍數(shù)的倍數(shù)當(dāng)當(dāng)c1時(shí),表示時(shí),表示s250,無(wú)折扣,無(wú)折扣當(dāng)當(dāng)1c2時(shí),表示時(shí),表示250s500,折扣,折扣d=2 %當(dāng)當(dāng)2c4時(shí),時(shí),d=5 % 當(dāng)當(dāng)4c8時(shí),時(shí),d=8 %當(dāng)當(dāng)8c12時(shí),時(shí),d=10 % 當(dāng)當(dāng)c12時(shí),時(shí),d=15%46五

35、、程序舉例五、程序舉例#include void main() int c, s; float p,w,d,f; printf(Please enter price, weight, distance:); scanf(%f,%f,%d,&p,&w,&s); if(s=3000) c=12; else c=s/250; 說(shuō)明:說(shuō)明: int c, s: 將將c和和s定義為定義為整型,保證整型,保證c的值為的值為整數(shù)整數(shù) if(s=3000) c=12: 保證保證c不隨不隨s的增大而增大的增大而增大47五、程序舉例五、程序舉例switch(c) case 0: d=0;

36、break; case 1: d=2; break; case 2: case 3: d=5; break; case 4: case 5: case 6: case 7: d=8; break; case 8: case 9: case 10: case 11: d=10; break; case 12: d=15; break; f = p * w * s * (1 - d / 100.0); printf(freight=%15.2fn,f); 當(dāng)當(dāng)c1時(shí),時(shí), d=0 %當(dāng)當(dāng)1c2時(shí),時(shí),d=2 %當(dāng)當(dāng)2c4時(shí),時(shí),d=5 % 當(dāng)當(dāng)4c8時(shí),時(shí),d=8 %當(dāng)當(dāng)8c12時(shí),時(shí),d=10%

37、 當(dāng)當(dāng)c12時(shí),時(shí),d=15%48補(bǔ)充補(bǔ)充: 這不是這不是Bug, 而是語(yǔ)言特性而是語(yǔ)言特性 Bugs are by far the largest and most successful class of entity, with nearly a million known species. In this respect they outnumber all the other known creatures about four to one. Professor Snopes Encyclopedia of Animal life Bug是迄今為止地球上最龐大最成功的實(shí)體類(lèi)型,有近百

38、萬(wàn)種已知的是迄今為止地球上最龐大最成功的實(shí)體類(lèi)型,有近百萬(wàn)種已知的品種。在這個(gè)方面,它比其他任何已知的生物種類(lèi)的總和還要多,而且至品種。在這個(gè)方面,它比其他任何已知的生物種類(lèi)的總和還要多,而且至少多出少多出4倍。倍。摘自摘自Snope教授的教授的Encyclopedia of Animal life49補(bǔ)充補(bǔ)充: 這不是這不是Bug, 而是語(yǔ)言特性而是語(yǔ)言特性50習(xí)題 5.6#include main() main() float score; char grade; printf(請(qǐng)輸入學(xué)生成績(jī):); scanf(%f,&score); while(score100|score0)

39、printf(n輸入有誤,請(qǐng)重新輸入:); scanf(%f,&score); switch(int)(score/10) case 10: case 9: grade=A;break; case 8: grade=B;break; case 7: grade=C;break; case 6: grade=D;break; case 5: case 4: case 3: case 2: case 1: case 0: grade=E; printf(成績(jī)是成績(jī)是%5.1f,相應(yīng)的等級(jí)是,相應(yīng)的等級(jí)是%c。n,score,grade); 習(xí)題 5.7#include main() lon

40、g int num; int indiv,ten,hundred,thousand,ten_thousand,place; /*分別代表個(gè)位、十位、百位、千位、萬(wàn)位和位數(shù)*/ printf(請(qǐng)輸入一個(gè)整數(shù)(099999):); scanf(%ld,&num); if (num9999) place=5; else if(num999) place=4; else if(num99) place=3; else if(num9) place=2; else place=1; printf(place =%dn, place); ten_thousand=num/10000; thousa

41、nd=num/1000%10; hundred=num/100%10; ten=num%100/10; indiv=num%10; switch(place) case 5: printf(%d,%d,%d,%d,%d,ten_thousand,thousand,hundred,ten,indiv); printf(n反序數(shù)字為;); printf(%d%d%d%d%dn,indiv,ten,hundred,thousand,ten_thousand); break; case 4: printf(%d,%d,%d,%d,thousand,hundred,ten,indiv); printf(

42、n反序數(shù)字為:反序數(shù)字為:); printf(%d%d%d%dn,indiv,ten,hundred,thousand); break; case 3: printf(%d,%d,%d,hundred,ten,indiv); printf(n反序數(shù)字為:反序數(shù)字為:); printf(%d%d%dn,indiv,ten,hundred); break; case 2: printf(%d,%d,ten,indiv); printf(n反序數(shù)字為:反序數(shù)字為:); printf(%d%dn,indiv,ten); break; case 1: printf(%d,indiv); printf(n

43、反序數(shù)字為:反序數(shù)字為:); printf(%dn,indiv); break; 測(cè)繪測(cè)繪C C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)第六章第六章55 一、概述一、概述二、用二、用while語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)三、用三、用dowhile語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)四、用四、用for 語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)五、循環(huán)的嵌套五、循環(huán)的嵌套六、幾種循環(huán)的比較六、幾種循環(huán)的比較七、七、break語(yǔ)句和語(yǔ)句和continue語(yǔ)句語(yǔ)句八、程序舉例八、程序舉例56 一、概述一、概述在現(xiàn)實(shí)生活中或是在程序所處理的問(wèn)題中常常遇到需要重在現(xiàn)實(shí)生活中或是在程序所處理的問(wèn)題中常常遇到需要重復(fù)處理的問(wèn)題復(fù)處理的問(wèn)題要向計(jì)算機(jī)輸入測(cè)繪

44、要向計(jì)算機(jī)輸入測(cè)繪C程序設(shè)計(jì)課程程序設(shè)計(jì)課程61個(gè)學(xué)生的成績(jī)個(gè)學(xué)生的成績(jī)分別統(tǒng)計(jì)測(cè)繪分別統(tǒng)計(jì)測(cè)繪1301、1302、地信、地信1301班的平均成績(jī)班的平均成績(jī)教師檢查教師檢查84個(gè)學(xué)生的成績(jī)是否及格個(gè)學(xué)生的成績(jī)是否及格大多數(shù)的應(yīng)用程序都會(huì)包含循環(huán)結(jié)構(gòu)大多數(shù)的應(yīng)用程序都會(huì)包含循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)和順序結(jié)構(gòu)、選擇結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的三種循環(huán)結(jié)構(gòu)和順序結(jié)構(gòu)、選擇結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu),它們是各種復(fù)雜程序的基本構(gòu)造單元基本結(jié)構(gòu),它們是各種復(fù)雜程序的基本構(gòu)造單元57 一、概述一、概述用用goto語(yǔ)句和語(yǔ)句和if語(yǔ)句構(gòu)成循環(huán)語(yǔ)句構(gòu)成循環(huán)用用while語(yǔ)句語(yǔ)句用用dowhile語(yǔ)句語(yǔ)句用用for語(yǔ)

45、句語(yǔ)句58二、用二、用while語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)while語(yǔ)句的一般形式如下語(yǔ)句的一般形式如下while循環(huán)的特點(diǎn)是:先判斷條件表達(dá)式,后執(zhí)行循環(huán)的特點(diǎn)是:先判斷條件表達(dá)式,后執(zhí)行循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句while (表達(dá)式表達(dá)式) 語(yǔ)句語(yǔ)句“真真”時(shí)執(zhí)行循環(huán)體語(yǔ)句時(shí)執(zhí)行循環(huán)體語(yǔ)句“假假”時(shí)不執(zhí)行時(shí)不執(zhí)行59二、用二、用while語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)例6.2 求 。 分析:分析:這是累加問(wèn)題,需要先后將這是累加問(wèn)題,需要先后將100個(gè)數(shù)相加個(gè)數(shù)相加要重復(fù)要重復(fù)99次加法運(yùn)算,可用循環(huán)次加法運(yùn)算,可用循環(huán)實(shí)現(xiàn)實(shí)現(xiàn)后一個(gè)數(shù)是前一個(gè)數(shù)加后一個(gè)數(shù)是前一個(gè)數(shù)加1而得而得加完上一個(gè)數(shù)加完上一個(gè)數(shù)i

46、后,使后,使i加加1可得到可得到下一個(gè)數(shù)下一個(gè)數(shù)1001nn60二、用二、用while語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)例6.2#include void main() int i=1,sum=0; while (i=100) sum=sum+i; i+; printf(sum=%dn,sum); 說(shuō)明:說(shuō)明:循環(huán)體如果包含一個(gè)以上的語(yǔ)循環(huán)體如果包含一個(gè)以上的語(yǔ)句,應(yīng)該用花括弧括起來(lái),句,應(yīng)該用花括弧括起來(lái),以復(fù)合語(yǔ)句形式出現(xiàn)。如果以復(fù)合語(yǔ)句形式出現(xiàn)。如果不加花括弧,則不加花括弧,則while語(yǔ)句的語(yǔ)句的范圍只到范圍只到while后面第一個(gè)分后面第一個(gè)分號(hào)處。號(hào)處。在循環(huán)體中應(yīng)有使循環(huán)趨向于在循環(huán)體中應(yīng)

47、有使循環(huán)趨向于結(jié)束的語(yǔ)句。結(jié)束的語(yǔ)句。不能少不能少?gòu)?fù)合語(yǔ)句復(fù)合語(yǔ)句不能丟,否則循不能丟,否則循環(huán)永不結(jié)束環(huán)永不結(jié)束61三、用三、用dowhile語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)do-while語(yǔ)句的一般形式為:語(yǔ)句的一般形式為:dowhile語(yǔ)句的特點(diǎn)語(yǔ)句的特點(diǎn):先無(wú)條件地執(zhí)行循環(huán)體,然先無(wú)條件地執(zhí)行循環(huán)體,然后判斷循環(huán)條件是否成立后判斷循環(huán)條件是否成立do 語(yǔ)語(yǔ)句句while (表達(dá)式表達(dá)式);表達(dá)式表達(dá)式Y(jié)N循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句62三、用三、用dowhile語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)例6.3用dowhile語(yǔ)句求 。 1001nni 100YNsum=sum+ii=i+1sum=0i=1 i=1;

48、sum=0; do sum=sum+i; i+; while(i=100); 63三、用三、用dowhile語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)例6.3用dowhile語(yǔ)句求 。#include void main() int i=1,sum=0; do sum=sum+i; i+; while(i=100); printf(sum=%dn,sum); 1001nn說(shuō)明:說(shuō)明:對(duì)同一個(gè)問(wèn)題可以用對(duì)同一個(gè)問(wèn)題可以用while語(yǔ)句語(yǔ)句處理,也可以用處理,也可以用dowhile語(yǔ)語(yǔ)句處理。句處理。 dowhile語(yǔ)句結(jié)語(yǔ)句結(jié)構(gòu)可以轉(zhuǎn)換成構(gòu)可以轉(zhuǎn)換成while結(jié)構(gòu)。結(jié)構(gòu)。64例6.4 while和dowhile循

49、環(huán)的比較。 #include void main()int i, sum=0;printf(“i=?”);scanf(“%d”,&i);while(i=10) sum=sum+i; i+;printf(“sum=%dn,sum);#include void main()int i, sum=0;printf(“i=?”);scanf(“%d”,&i);do sum=sum+i; i+;while(i=10);printf(“sum=%dn,sum);i=?1sum=55 i=? 11sum=0 i=?1sum=55 i=? 11sum=11 當(dāng)當(dāng)while后面的表達(dá)式的第一次的

50、值后面的表達(dá)式的第一次的值為為“真真”時(shí),兩種循環(huán)得到的結(jié)果相時(shí),兩種循環(huán)得到的結(jié)果相同;否則不相同同;否則不相同65四、用四、用for 語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)for語(yǔ)句不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,語(yǔ)句不僅可以用于循環(huán)次數(shù)已經(jīng)確定的情況,還可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束還可以用于循環(huán)次數(shù)不確定而只給出循環(huán)結(jié)束條件的情況條件的情況for語(yǔ)句完全可以代替語(yǔ)句完全可以代替while語(yǔ)句語(yǔ)句for語(yǔ)句的一般形式為:語(yǔ)句的一般形式為: for(表達(dá)式表達(dá)式1;表達(dá)式表達(dá)式2;表達(dá)表達(dá)式式3) 語(yǔ)句語(yǔ)句設(shè)置初始條件,只執(zhí)行一設(shè)置初始條件,只執(zhí)行一次??梢詾榱銈€(gè)、一個(gè)或次。可以為零個(gè)、一個(gè)

51、或多個(gè)變量設(shè)置初值執(zhí)行多個(gè)變量設(shè)置初值執(zhí)行循環(huán)條件表達(dá)式,用來(lái)判定是否繼續(xù)循環(huán)條件表達(dá)式,用來(lái)判定是否繼續(xù)循環(huán)。在每次執(zhí)行循環(huán)體前先執(zhí)行此循環(huán)。在每次執(zhí)行循環(huán)體前先執(zhí)行此表達(dá)式,決定是否繼續(xù)執(zhí)行循環(huán)表達(dá)式,決定是否繼續(xù)執(zhí)行循環(huán)作為循環(huán)的調(diào)整器,例如作為循環(huán)的調(diào)整器,例如使循環(huán)變量增值,它是在使循環(huán)變量增值,它是在執(zhí)行完循環(huán)體后才進(jìn)行的執(zhí)行完循環(huán)體后才進(jìn)行的66四、用四、用for 語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)for語(yǔ)句的執(zhí)行過(guò)程:語(yǔ)句的執(zhí)行過(guò)程:(1) 求解表達(dá)式求解表達(dá)式1(2) 求解表達(dá)式求解表達(dá)式2,若其值為真,執(zhí)行循環(huán)體,然后,若其值為真,執(zhí)行循環(huán)體,然后執(zhí)行第執(zhí)行第(3)步。若為假,則結(jié)束

52、循環(huán),轉(zhuǎn)到第步。若為假,則結(jié)束循環(huán),轉(zhuǎn)到第(5)步步(3) 求解表達(dá)式求解表達(dá)式3(4) 轉(zhuǎn)回上面步驟轉(zhuǎn)回上面步驟(2)繼續(xù)執(zhí)行繼續(xù)執(zhí)行(5) 循環(huán)結(jié)束,執(zhí)行循環(huán)結(jié)束,執(zhí)行for語(yǔ)句下面的一個(gè)語(yǔ)句語(yǔ)句下面的一個(gè)語(yǔ)句 for(表達(dá)式表達(dá)式1;表達(dá)式表達(dá)式2;表達(dá)表達(dá)式式3) 語(yǔ)句語(yǔ)句67四、用四、用for 語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)表達(dá)式表達(dá)式1省略:省略:表達(dá)式表達(dá)式1與循環(huán)變量無(wú)關(guān)與循環(huán)變量無(wú)關(guān) for(表達(dá)式表達(dá)式1;表達(dá)式表達(dá)式2;表達(dá)表達(dá)式式3) 語(yǔ)句語(yǔ)句一個(gè)或兩個(gè)或三個(gè)表達(dá)式均一個(gè)或兩個(gè)或三個(gè)表達(dá)式均可以省略可以省略for (; i=100; i+) sum=sum+i; for (s

53、um=0; i=100; i+) sum=sum+i; 68四、用四、用for 語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)表達(dá)式表達(dá)式2省略:省略: for(表達(dá)式表達(dá)式1;表達(dá)式表達(dá)式2;表達(dá)表達(dá)式式3) 語(yǔ)句語(yǔ)句一個(gè)或兩個(gè)或三個(gè)表達(dá)式均一個(gè)或兩個(gè)或三個(gè)表達(dá)式均可以省略可以省略for (i=1; ; i+) sum=sum+i; 69四、用四、用for 語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)表達(dá)式表達(dá)式3省略:省略: for(表達(dá)式表達(dá)式1;表達(dá)式表達(dá)式2;表達(dá)表達(dá)式式3) 語(yǔ)句語(yǔ)句一個(gè)或兩個(gè)或三個(gè)表達(dá)式均一個(gè)或兩個(gè)或三個(gè)表達(dá)式均可以省略可以省略for (i=1; i=100; ) sum=sum+i; for (i=1;

54、 i=100; ) sum=sum+i; i+; 當(dāng)表達(dá)式當(dāng)表達(dá)式3省略時(shí),省略時(shí),此時(shí)程序設(shè)計(jì)者應(yīng)此時(shí)程序設(shè)計(jì)者應(yīng)另外設(shè)法保證循環(huán)另外設(shè)法保證循環(huán)能正常結(jié)束能正常結(jié)束for (i=1, sum=0; i=100; i+) sum=sum+i; 70四、用四、用for 語(yǔ)句實(shí)現(xiàn)循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán) 表達(dá)式表達(dá)式1和表達(dá)式和表達(dá)式3可以是一個(gè)簡(jiǎn)單的表達(dá)式,也可以是一個(gè)簡(jiǎn)單的表達(dá)式,也可以是逗號(hào)表達(dá)式可以是逗號(hào)表達(dá)式表達(dá)式可以為關(guān)系表達(dá)式、邏輯表達(dá)式,也可以表達(dá)式可以為關(guān)系表達(dá)式、邏輯表達(dá)式,也可以是數(shù)值表達(dá)式或字符表達(dá)式,只要其值為非零,是數(shù)值表達(dá)式或字符表達(dá)式,只要其值為非零,就執(zhí)行循環(huán)體就執(zhí)行循

55、環(huán)體 for(i=0,j=100; i=j; i+, j- ) k=i+j; for( ; (c=getchar()!=n; ) printf(%c,c); for(i=0; (c=getchar()!=n; i+=c) ; 71五、循環(huán)的嵌套五、循環(huán)的嵌套一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱(chēng)一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱(chēng)為循環(huán)的嵌套為循環(huán)的嵌套內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)3種循環(huán)種循環(huán)(while循環(huán)、循環(huán)、dowhile循環(huán)和循環(huán)和for循環(huán)循環(huán))可可以互相嵌套以互相嵌套while( ) while( ) do do

56、 while( );while( );for(;) for(; ;) while( ) do while( ); for(; ;) while( ) do for (; ;) while( );72六、幾種循環(huán)的比較六、幾種循環(huán)的比較一般情況下一般情況下,3種循環(huán)可以互相代替種循環(huán)可以互相代替在在while和和dowhile循環(huán)中,循環(huán)體應(yīng)包含使循環(huán)循環(huán)中,循環(huán)體應(yīng)包含使循環(huán)趨于結(jié)束的語(yǔ)句。趨于結(jié)束的語(yǔ)句。 用用while和和dowhile循環(huán)時(shí),循環(huán)變量初始化的操循環(huán)時(shí),循環(huán)變量初始化的操作應(yīng)在作應(yīng)在while和和dowhile語(yǔ)句之前完成。而語(yǔ)句之前完成。而for語(yǔ)語(yǔ)句可以在表達(dá)式句可以在

57、表達(dá)式1中實(shí)現(xiàn)循環(huán)變量的初始化。中實(shí)現(xiàn)循環(huán)變量的初始化。while循型、循型、dowhile循環(huán)和循環(huán)和for循環(huán),可以用循環(huán),可以用break語(yǔ)句跳出循環(huán),用語(yǔ)句跳出循環(huán),用continue語(yǔ)句結(jié)束本次循環(huán)語(yǔ)句結(jié)束本次循環(huán)73七、七、break語(yǔ)句和語(yǔ)句和continue語(yǔ)句語(yǔ)句1、break語(yǔ)句語(yǔ)句break語(yǔ)句可以用來(lái)從循環(huán)體內(nèi)跳出循環(huán)體,即提前語(yǔ)句可以用來(lái)從循環(huán)體內(nèi)跳出循環(huán)體,即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語(yǔ)句結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語(yǔ)句break語(yǔ)句不能用于循環(huán)語(yǔ)句和語(yǔ)句不能用于循環(huán)語(yǔ)句和switch語(yǔ)句之外的任語(yǔ)句之外的任何其他語(yǔ)句中何其他語(yǔ)句中for(r=1;r100)

58、break; printf(%f, area);74七、七、break語(yǔ)句和語(yǔ)句和continue語(yǔ)句語(yǔ)句2、 continue語(yǔ)句語(yǔ)句continue語(yǔ)句只提前結(jié)束本次循環(huán),而接著執(zhí)行下次語(yǔ)句只提前結(jié)束本次循環(huán),而接著執(zhí)行下次循環(huán)循環(huán)continue語(yǔ)句和語(yǔ)句和break語(yǔ)句的區(qū)別語(yǔ)句的區(qū)別: continue語(yǔ)句只結(jié)語(yǔ)句只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行。而束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行。而break語(yǔ)句則是結(jié)束整個(gè)循環(huán)過(guò)程,不再判斷執(zhí)行循環(huán)語(yǔ)句則是結(jié)束整個(gè)循環(huán)過(guò)程,不再判斷執(zhí)行循環(huán)的條件是否成立的條件是否成立while(表達(dá)式表達(dá)式1) if(表達(dá)式表達(dá)式2) break;

59、while(表達(dá)式表達(dá)式1) if(表達(dá)式表達(dá)式2) continue; 75七、七、break語(yǔ)句和語(yǔ)句和continue語(yǔ)句語(yǔ)句N(xiāo)表達(dá)式表達(dá)式1Y表達(dá)式表達(dá)式2NYN表達(dá)式表達(dá)式1Y表達(dá)式表達(dá)式2NYbreak語(yǔ)句語(yǔ)句continue語(yǔ)句語(yǔ)句強(qiáng)行退出循環(huán)強(qiáng)行退出循環(huán)只結(jié)束本次循環(huán)只結(jié)束本次循環(huán)76七、七、break語(yǔ)句和語(yǔ)句和continue語(yǔ)句語(yǔ)句例6.5 輸出100200之間的不能被3整除的數(shù)。 分析:分析:對(duì)對(duì)100到到200之間的每一個(gè)之間的每一個(gè)整數(shù)進(jìn)行檢查整數(shù)進(jìn)行檢查如果不能被如果不能被3整除,輸出,整除,輸出,否則不輸出否則不輸出無(wú)論是否輸出此數(shù),都要無(wú)論是否輸出此數(shù),都要接

60、著檢查下一個(gè)數(shù)接著檢查下一個(gè)數(shù)(直到直到200為止為止)。Nn=100n200Yn能被能被3整除整除Nn=n+1輸出輸出nYfor(n=100;n=200;n+) if (n%3=0) continue; printf(%d ,n);分析:分析: 每項(xiàng)的分子都是每項(xiàng)的分子都是1 后一項(xiàng)的分母是前一項(xiàng)后一項(xiàng)的分母是前一項(xiàng)的分母加的分母加2 第第1項(xiàng)的符號(hào)為正,從第項(xiàng)的符號(hào)為正,從第2項(xiàng)起,每一項(xiàng)的符號(hào)項(xiàng)起,每一項(xiàng)的符號(hào)與前一項(xiàng)的符號(hào)相反與前一項(xiàng)的符號(hào)相反77八、程序舉例八、程序舉例例6.6 用計(jì)算公式求的近似值,直到發(fā)現(xiàn)某一項(xiàng)的絕對(duì)值小于10-6 為止(該項(xiàng)不累計(jì)加) 。 71513114n121nsign=1,pi=0,n=1,term=1當(dāng)當(dāng)term 10-6pi=pi+termn=n+2sing=-signterm=sign/npi=pi*4輸出輸出pi說(shuō)明:說(shuō)明: fabs():求絕對(duì)值的函數(shù)求絕對(duì)值的函數(shù)78八、程序舉例八、程序舉例#include #include void main() int sign=1; double pi=0,n=1,term=1;

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論