欧美精品一二区,性欧美一级,国产免费一区成人漫画,草久久久久,欧美性猛交ⅹxxx乱大交免费,欧美精品另类,香蕉视频免费播放

《C語(yǔ)言程序設(shè)計(jì)》第4章控制結(jié)構(gòu).ppt

上傳人:xin****828 文檔編號(hào):15475635 上傳時(shí)間:2020-08-12 格式:PPT 頁(yè)數(shù):63 大小:571.50KB
收藏 版權(quán)申訴 舉報(bào) 下載
《C語(yǔ)言程序設(shè)計(jì)》第4章控制結(jié)構(gòu).ppt_第1頁(yè)
第1頁(yè) / 共63頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》第4章控制結(jié)構(gòu).ppt_第2頁(yè)
第2頁(yè) / 共63頁(yè)
《C語(yǔ)言程序設(shè)計(jì)》第4章控制結(jié)構(gòu).ppt_第3頁(yè)
第3頁(yè) / 共63頁(yè)

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《《C語(yǔ)言程序設(shè)計(jì)》第4章控制結(jié)構(gòu).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《C語(yǔ)言程序設(shè)計(jì)》第4章控制結(jié)構(gòu).ppt(63頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、第4章 控制結(jié)構(gòu),,本章要求:,掌握選擇控制語(yǔ)句if語(yǔ)句、switch語(yǔ)句以及他們的嵌套應(yīng)用; 掌握循環(huán)控制語(yǔ)句for語(yǔ)句、while語(yǔ)句、dowhile語(yǔ)句以及他們的嵌套應(yīng)用; 掌握break語(yǔ)句、continue語(yǔ)句的應(yīng)用; 能夠運(yùn)用3種結(jié)構(gòu)進(jìn)行綜合程序設(shè)計(jì)。,4.1 關(guān)系運(yùn)算與邏輯運(yùn)算,例子: 三個(gè)數(shù)中找最大 判斷是否是閏年 判斷密碼的正確與否 關(guān)鍵點(diǎn):判斷的條件如何確立?,選擇結(jié)構(gòu),4.1.1 關(guān)系運(yùn)算符與關(guān)系表達(dá)式,比較兩個(gè)量的運(yùn)算符稱為關(guān)系運(yùn)算符: ,= , == ,!= 關(guān)系運(yùn)算符的優(yōu)先級(jí): “、=、 關(guān)系運(yùn)算符 賦值運(yùn)算符 一般形式為:表達(dá)式 關(guān)系運(yùn)算符 表達(dá)式其值: 關(guān)系成

2、立為“真”,不成立則為“假” C語(yǔ)言中用 “1” 表示 “真” ; “0” 表示 “假”,如 56 x=3 xc)a!=(c==b) (a=3)(b=5),又如:當(dāng) a=5, b=4 時(shí) a+=3

3、行多個(gè)語(yǔ)句,可以使用 ,例:輸入任意兩個(gè)整數(shù)x , y,比較后,確保x要大于等于y,再輸出。 void main() int x, y, t; printf(Enter x and y:n); scanf(%d%d, ,2雙分支結(jié)構(gòu)ifelse.語(yǔ)句 使用格式: if (表達(dá)式) ; else ; 語(yǔ)句的執(zhí)行過(guò)程: 當(dāng)表達(dá)式的值為非0(條件成立)時(shí)執(zhí)行, 否則執(zhí)行else后面。,例:輸入三個(gè)數(shù),然后輸出其中最大的數(shù)。 void main() int a, b, c, max; scanf(“%d%d%d”, ,3ifelse if語(yǔ)句(多分支結(jié)構(gòu)) 語(yǔ)句形式: if (表達(dá)式1) 語(yǔ)

4、句1; else if (表達(dá)式2) 語(yǔ)句2; .. else if (表達(dá)式n) 語(yǔ)句n; else 語(yǔ)句塊n+1;,例:簡(jiǎn)單計(jì)算器,,例:已知百分制成績(jī)x,顯示對(duì)應(yīng)的五級(jí)制成績(jī),下列哪些正確。,4. 使用if語(yǔ)句中應(yīng)注意以下問(wèn)題,if(a=5) 語(yǔ)句; if(b) 語(yǔ)句; 都是允許的。,if(x

5、else 語(yǔ)句2; else if (表達(dá)式3) 語(yǔ)句3;,,,要特別注意if和else的配對(duì)問(wèn)題。例如: 其中的else究竟是與哪一個(gè)if配對(duì)呢? if(表達(dá)式1) if(表達(dá)式1) if(表達(dá)式2) if(表達(dá)式2) 語(yǔ)句1; 語(yǔ)句1; else else 語(yǔ)句2; 語(yǔ)句2;,,,語(yǔ)言規(guī)定:else 總是與它前面最近的if配對(duì),4.2.2 條件運(yùn)算符和條件表達(dá)式,條件運(yùn)算符為 ? : 它是一個(gè)三目運(yùn)算符。 條件表達(dá)式的一般形式為: 表達(dá)式1 ? 表達(dá)式2 :表達(dá)式3 其求值規(guī)則為:如果表達(dá)式1的值為真,則以表

6、達(dá)式2 的值作為條件表達(dá)式的值,否則以表達(dá)式3的值作為整個(gè)條件表達(dá)式的值。 條件表達(dá)式通常用于賦值語(yǔ)句之中。例如:,if(ab) max=a; else max=b;,max=(ab)?a:b;,,條件運(yùn)算符的說(shuō)明:,運(yùn)算優(yōu)先級(jí):低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,高于賦值符。如:max=ab?a:b 條件運(yùn)算符? :是一對(duì)運(yùn)算符,不能分開(kāi)單獨(dú)使用。 結(jié)合方向:自右至左。例如:,ab?a:cd?c:d,cd?c:d,例:若輸入的大寫(xiě)字母轉(zhuǎn)換成相應(yīng)的小寫(xiě)字母,否則原樣輸出。,void main() char ch; scanf(%c, ,if (ch=A ,,,4.2.3 switch語(yǔ)句(開(kāi)關(guān)語(yǔ)句

7、),switch語(yǔ)句使用的一般形式為: switch(表達(dá)式) case 常量表達(dá)式1: 語(yǔ)句1; case 常量表達(dá)式2: 語(yǔ)句2; case 常量表達(dá)式n: 語(yǔ)句n; default : 語(yǔ)句n+1; ,計(jì)算表達(dá)式的值k,若k等于常量表達(dá)式的值,則執(zhí)行對(duì)應(yīng)語(yǔ)句,,若k與上訴常量均不相同,執(zhí)行該語(yǔ)句,例:使用switch語(yǔ)句實(shí)現(xiàn)百分制成績(jī)化五級(jí)制成績(jī)。,switch(x/10) case 10: case 9: printf(A); case 8: printf(B); case 7: printf(C); case 6: printf(D); default

8、:printf(E); ,,break; break; break; break;,使用switch語(yǔ)句的通常形式為:,switch(表達(dá)式) case 常量表達(dá)式1: 語(yǔ)句1; break; case 常量表達(dá)式2: 語(yǔ)句2; break; case 常量表達(dá)式n: 語(yǔ)句n; break; default : 語(yǔ)句n+1; ,添加break;后:,例:輸入17(分別代表星期一到星期天),輸出相應(yīng)的內(nèi)容。,void main() int a; printf(input integer number: ); scanf(%d, ,說(shuō)明:,在case后

9、的各常量表達(dá)式的值不能相同,否則會(huì)出現(xiàn)錯(cuò)誤。 在case后,允許有多個(gè)語(yǔ)句,可以不用括起來(lái)。 各case和default子句的先后順序可以變動(dòng),而不會(huì)影響程序執(zhí)行結(jié)果。但需要配合“break;”使用。 default子句可以省略不用。,4.2.3 選擇結(jié)構(gòu)的嵌套,if (表達(dá)式1) 語(yǔ)句1; else if (表達(dá)式2) 語(yǔ)句2; .. else if (表達(dá)式n) 語(yǔ)句n; else 語(yǔ)句n+1;,switch(表達(dá)式) case 常量表達(dá)式1: 語(yǔ)句1; break; case 常量表達(dá)式2: 語(yǔ)句2; break; case 常量表達(dá)式n: 語(yǔ)句n;

10、break; default : 語(yǔ)句n+1; ,這些語(yǔ)句部分,都可以包含另一個(gè)完整的if語(yǔ)句或switch語(yǔ)句,例:輸入三個(gè)數(shù),從小到大排列,if(ab) t=a; a=b; b=t; if(bc) t=b; b=c; c=t; if(ab) t=a; a=b; b=t; ,,,,說(shuō)明:,嵌套只能在一個(gè)分支內(nèi)嵌套,不出現(xiàn)交叉。其嵌套的形式將有很多種,嵌套層次也可以任意多。 在swicth結(jié)構(gòu)中,每一個(gè)case分支可以完整包含另一個(gè)ifelse結(jié)構(gòu),也可完整包含另一個(gè)swicth結(jié)構(gòu)。 提示:為了便于閱讀和維護(hù),建議在寫(xiě)含有多層嵌套的程序時(shí),使用縮進(jìn)對(duì)齊方式。,4.2.5 選擇結(jié)構(gòu)程序

11、舉例,例:小學(xué)數(shù)學(xué)題,要求: 隨機(jī)產(chǎn)生兩道數(shù)學(xué)題(參加運(yùn)算的數(shù)在110之間),一道加法,一道減法。 產(chǎn)生一道題后,讓用戶輸入答案;判斷答案的正確性,并給出提示。 記錄用戶答對(duì)的題數(shù),并對(duì)最終的成績(jī)作出評(píng)價(jià)。 可以使用if語(yǔ)句,或switch語(yǔ)句。,,4.3 循環(huán)結(jié)構(gòu),循環(huán)結(jié)構(gòu)的特點(diǎn): 在給定條件成立時(shí),反復(fù)執(zhí)行某程序段, 直到條件不成立為止。 注意兩個(gè)概念: 給定的條件稱為循環(huán)條件 反復(fù)執(zhí)行的程序段稱為循環(huán)體 在C語(yǔ)言中,實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)句主要有3種: while doWhile for語(yǔ)句,4.3.1 while語(yǔ)句,while語(yǔ)句的一般形式為: while(表達(dá)式) 語(yǔ)句;表達(dá)式是循

12、環(huán)條件,語(yǔ)句為循環(huán)體 執(zhí)行過(guò)程:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí), 執(zhí)行循環(huán)體語(yǔ)句。否則,退出,例:在屏幕上打印110,,說(shuō)明:,計(jì)算的值,若表達(dá)式的值為真(非0)時(shí),則執(zhí)行循環(huán)體語(yǔ)句;不斷反復(fù),直到表達(dá)式的值為假(0),則不執(zhí)行循環(huán)體語(yǔ)句,而直接轉(zhuǎn)向循環(huán)體外的第一條語(yǔ)句。 是循環(huán)反復(fù)執(zhí)行的程序,稱為“循環(huán)體”,當(dāng)需要執(zhí)行多條語(yǔ)句時(shí),應(yīng)使用“ ”括起來(lái)組成一個(gè)復(fù)合語(yǔ)句。 while語(yǔ)句是先判斷條件,后執(zhí)行循環(huán)體,為“當(dāng)型”循環(huán),因此若條件不成立,有可能一次也不執(zhí)行循環(huán)體。,例: 編程序求:s=1+2+3++100,main() int s=0,n=1; while (n<=100)

13、s=s+n; n++; printf(S=%d,s); ,,4.3.2 do...while語(yǔ)句,一般形式為: do 語(yǔ)句; while (表達(dá)式); 執(zhí)行過(guò)程:先執(zhí)行循環(huán)體語(yǔ)句一次,再判別表達(dá)式的值,若為真(非0)則繼續(xù)循環(huán),否則終止循環(huán)。,例: 編程序求:s=1+2+3++100,void main() int s=0,n=1; do s=s+n; n++; while (n<=100); printf(S=%d,s); ,while (n<=100) s=s+n; n++; ,用輾轉(zhuǎn)相除法求兩自然數(shù)m,n的最大公約數(shù)和最小公倍數(shù)。 例 求 m=28

14、 ,n=20 的最大公約數(shù). if (m

15、達(dá)式1;表達(dá)式2;表達(dá)式3) 語(yǔ)句; 表達(dá)式1(控制變量的初始化):用來(lái)給循環(huán)變量賦初值,也允許在for語(yǔ)句外給循環(huán)變量賦初值,此時(shí)可以省略該表達(dá)式。 表達(dá)式2(循環(huán)的條件):循環(huán)條件,一般為關(guān)系表達(dá)式或邏輯表達(dá)式。 表達(dá)式3(循環(huán)控制變量的更新 ):用來(lái)修改循環(huán)變量的值,一般是賦值語(yǔ)句。,當(dāng)循環(huán)體由多個(gè)語(yǔ)句組成時(shí),也必須用 ,for語(yǔ)句的執(zhí)行過(guò)程:,注意:在整個(gè)for循環(huán)過(guò)程中,表達(dá)式1只計(jì)算一次,表達(dá)式2和表達(dá)式3則可能計(jì)算多次。,例: 編程序求:s=1+2+3++100,void main() int n,s=0; for(n=1;n<=100;n++) s=s+n; p

16、rintf(s=%dn,s); getch(); ,void main() int s=0,n=1; while (n<=100) s=s+n; n++; printf(“s=%d,s); ,,例:打印20個(gè)1020的隨機(jī)數(shù)在屏幕上。,for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 語(yǔ)句;,表達(dá)式1; while(表達(dá)式2) 語(yǔ)句; 表達(dá)式3; ,,,有關(guān)for語(yǔ)句的幾點(diǎn)說(shuō)明:,for語(yǔ)句中的“表達(dá)式1”、“表達(dá)式2”和“表達(dá)式3”都可以省略,但兩個(gè)分號(hào)不能省略。 若 “表達(dá)式2”省略了,則判定循環(huán)控制條件為真(非0) “表達(dá)式1”和 “表達(dá)式3”,可以是一個(gè)簡(jiǎn)單的表達(dá)式,也可以是逗號(hào)表

17、達(dá)式。 注意:三個(gè)表達(dá)式都可以是任何表達(dá)式。,4.3.4 循環(huán)的嵌套多重循環(huán)結(jié)構(gòu),一個(gè)循環(huán)內(nèi)完整地包含另一個(gè)循環(huán)結(jié)構(gòu),則稱為多重循環(huán) 嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán) 例子: 打印九九乘法表 打印由數(shù)字組成的如下所示金字塔圖案,,4.3.5 三種循環(huán)語(yǔ)句比較,4.4 其它控制語(yǔ)句,4.4.1 break語(yǔ)句 作用范圍:switch 語(yǔ)句或循環(huán)語(yǔ)句 功能:跳出switch語(yǔ)句或跳出本層循環(huán), 轉(zhuǎn)去執(zhí)行后面的程序。 break語(yǔ)句的一般形式為: break; 注意:break語(yǔ)句用于循環(huán)體中,一般與if語(yǔ)句聯(lián)合使用,例:車牌抽取程序,要求,用戶可以有5次機(jī)會(huì)選擇。 若選到中意的號(hào)

18、碼,可以使用鍵盤(pán)中的Y鍵來(lái)確定 若已確定選中號(hào)碼,則無(wú)需再繼續(xù)選擇了。 若5次都沒(méi)有選中,進(jìn)行提示,表示選中失敗。,,4.4.2 continue語(yǔ)句,作用范圍:只能用在循環(huán)體中 功能:結(jié)束本次循環(huán),轉(zhuǎn)入下一次循環(huán)條件的判斷與執(zhí)行。 其一般格式是: continue; 注意:本語(yǔ)句只結(jié)束本層本次的循環(huán),并不跳出循環(huán)。,例,計(jì)算半徑為1到15的圓的面積,僅打印出超過(guò)50的圓面積。,void main() int r; float area; for(r=1;r<=15;r++) area=3.141593*r*r; if(area<50.0) continue; printf( squar

19、e=%fn,area); ,,break與continue的區(qū)別,continue:結(jié)束本次循環(huán),即不再執(zhí)行循環(huán)體中continue 語(yǔ)句之后的語(yǔ)句,轉(zhuǎn)入下一次循環(huán)條件的判斷與執(zhí)行。應(yīng)注意的是, 本語(yǔ)句只結(jié)束本層本次的循環(huán),并不跳出循環(huán)。,break:語(yǔ)句只能用在switch 語(yǔ)句或循環(huán)語(yǔ)句中, 其作用是跳出switch語(yǔ)句或跳出本層循環(huán),轉(zhuǎn)去執(zhí)行后面的程序。,4.4.3 goto語(yǔ)句(無(wú)條件轉(zhuǎn)移語(yǔ)句),一般格式: goto 語(yǔ)句標(biāo)號(hào); 如: label: i++; goto label1; 注意:語(yǔ)言不限制程序中使用標(biāo)號(hào)的次數(shù),但不得重名。 注意:在結(jié)構(gòu)化程序設(shè)計(jì)中一般不主

20、張使用goto語(yǔ)句, 以免造成程序流程的混亂,使理解和調(diào)試程序都產(chǎn)生困難。,,,4.5 應(yīng)用程序舉例 4.5.1 素?cái)?shù)與哥德巴赫猜想,例:判斷一個(gè)給定的整數(shù)是否為素?cái)?shù) 基本思想: 把m作為被除數(shù),將2Int(Sqrt(m))作為除數(shù),如果都除不盡,m就是素?cái)?shù),否則就不是。可用以下程序段實(shí)現(xiàn),k=sqrt(m); for(i=2;i=k) printf(Yesn); else printf(Non);,例:編一程序驗(yàn)證哥德巴赫猜想,,,,,for(n1=3;n1k) printf(%d=%d+%dn,n,n1,n2); ,,,發(fā)現(xiàn)n1不是素?cái)?shù)后無(wú)需判斷n2了,執(zhí)行continue;后,當(dāng)

21、前次循環(huán)的后半部分無(wú)需執(zhí)行,4.5.2 窮舉法,基本思想:一一列舉各種可能的情況,并判斷哪一種可能是符合要求 例:將一張面值為100元的人民幣等值換成100張5元、1元和0.5元的零鈔,要求每種零鈔不少于1張,問(wèn)有哪幾種組合? 分析:5元的最少1張,最多100張 1元的最少1張,最多100張 0.5元的最少1張,最多100張列出所有的情況,把真正符合要求的情況打印出來(lái)。,void main() int x, y, z, n; printf( 5yuan 1yuan 0.5yuann); n=0; for(x=1; x<=100;x++) for(y=1;y<=100;y++) for(

22、z=1;z<=100;z++) if(x+y+z==100 ,,,,,,4.5.3 迭代法,遞推法:有一只猴子,撿到了一框桃子。它每天吃現(xiàn)存桃子的一半再多一個(gè)。到了第7天,它只有一個(gè)桃子了,問(wèn)它第一天撿到了幾個(gè)桃子? 解:注意后一天和前一天的桃子數(shù)的關(guān)系。 x=(x+1)*2;,,例,用迭代法求平方根,已知迭代公式為: 編程分析: 可假定一個(gè)初值x0=a/2(估計(jì)值), 根據(jù)迭代公式得到一個(gè)新的值x1,這個(gè)新值x1比初值x0更接近要求的值x; 再以新值作為初值,即:x1x0,重新按原來(lái)的方法求x1, 重復(fù)這一過(guò)程直到|x1-x0|<(某一給定的精度)。此時(shí)可將x1作為問(wèn)題的解。,,x0 = a / 2; /* 取迭代初值 */ x1 = 0.5 * (x0 + a / x0); while (fabs(x1 - x0) 0.00001) x0 = x1; /* 為下一次迭代作準(zhǔn)備 */ x1 = 0.5 * (x0 + a / x0); printf(%f s sqrt is:%fn, a, x1);,迭代法求平方根部分代碼,,

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!