九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類(lèi) > PPT文檔下載  

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

  • 資源ID:15475635       資源大?。?span id="24d9guoke414" class="font-tahoma">571.50KB        全文頁(yè)數(shù):63頁(yè)
  • 資源格式: PPT        下載積分:14.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要14.9積分
郵箱/手機(jī):
溫馨提示:
用戶(hù)名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢(xún)和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類(lèi)文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

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

第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)算符稱(chēng)為關(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)系成立為“真”,不成立則為“假” C語(yǔ)言中用 “1” 表示 “真” ; “0” 表示 “假”,如 56 x=3 xc)a!=(c=b) (a=3)(b=5),又如:當(dāng) a=5, b=4 時(shí) a+=3<b,-False(0),-True(1),-False(0),-6,4. 1. 2 邏輯運(yùn)算符與邏輯表達(dá)式,1、邏輯運(yùn)算符 ! 非運(yùn)算 執(zhí)行過(guò)程:若表達(dá)式的值為真(非0)則執(zhí)行其后的語(yǔ)句, (0)否則不執(zhí)行該語(yǔ)句。,判斷0或非0可以是: 關(guān)系表達(dá)式 邏輯表達(dá)式 數(shù)學(xué)表達(dá)式 等等,只能是一個(gè)語(yǔ)句,若要執(zhí)行多個(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ǔ)句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<y) t=x; x=y; y=t; ,if(ab) max=a;,5if語(yǔ)句的嵌套,當(dāng)if語(yǔ)句中的執(zhí)行語(yǔ)句又是if語(yǔ)句時(shí),則構(gòu)成了if 語(yǔ)句嵌套的情形。如:,if(表達(dá)式1) if (表達(dá)式2) 語(yǔ)句;,if (表達(dá)式1) if (表達(dá)式2) 語(yǔ)句1; 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的值為真,則以表達(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ǔ)句),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: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后的各常量表達(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; 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)程序舉例,例:小學(xué)數(shù)學(xué)題,要求: 隨機(jī)產(chǎn)生兩道數(shù)學(xué)題(參加運(yùn)算的數(shù)在110之間),一道加法,一道減法。 產(chǎn)生一道題后,讓用戶(hù)輸入答案;判斷答案的正確性,并給出提示。 記錄用戶(hù)答對(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è)概念: 給定的條件稱(chēng)為循環(huán)條件 反復(fù)執(zhí)行的程序段稱(chēng)為循環(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á)式是循環(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í)行的程序,稱(chēng)為“循環(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) 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 ,n=20 的最大公約數(shù). if (m<n) t=m; m=n; n=t; r=m%n; while (r!= 0) m=n; n=r; r= m%n; ,循環(huán) m n r 賦好初值時(shí):28 20 8 第一次結(jié)束:20 8 4 第二次結(jié)束: 8 4 0,注意以下幾點(diǎn):,在if語(yǔ)句,while語(yǔ)句中,表達(dá)式后面都不能加分號(hào),而在 do-while語(yǔ)句的表達(dá)式后面則必須加分號(hào)。 當(dāng)循環(huán)體由多個(gè)語(yǔ)句組成時(shí),也必須用括起來(lái)組成一個(gè)復(fù)合語(yǔ)句。 如果循環(huán)至少要執(zhí)行一次, while和do-while語(yǔ)句可以相互替換。,4.3.3 for循環(huán)語(yǔ)句,一般形式為: for(表達(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; printf(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)表達(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),則稱(chēng)為多重循環(huán) 嵌套一層稱(chēng)為二重循環(huán),嵌套二層稱(chēng)為三重循環(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)合使用,例:車(chē)牌抽取程序,要求,用戶(hù)可以有5次機(jī)會(huì)選擇。 若選到中意的號(hào)碼,可以使用鍵盤(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( square=%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ì)中一般不主張使用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)前次循環(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(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);,迭代法求平方根部分代碼,

注意事項(xiàng)

本文(《C語(yǔ)言程序設(shè)計(jì)》第4章控制結(jié)構(gòu).ppt)為本站會(huì)員(xin****828)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




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