版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C語言程序設計項目5學生成績的分組匯總目標TARGET知識目標掌握while,do…while和for三種循環(huán)語句。學會使用continue、break語句。掌握循環(huán)的嵌套使用。能夠使用循環(huán)語句進行程序設計。目標TARGET技能目標掌握while語句、do…while語句、for語句,三種語句的表示形式。掌握while語句、do…while語句、for語句應用于循環(huán)結構程序設計。掌握嵌套循環(huán)結構程序設計。掌握continue、break語句的應用。計算一個小組學生成績的總分及平均分任務5.1
計算每個小組學生成績的總分及平均分任務5.2任務5.1計算一個小組學生成績的總分及平均分
任務描述一個班進行了一次考試,現要輸入第一小組學生的成績,編寫一個程序,連續(xù)輸入10名學生得成績,并計算總分和平均分。任務分析輸入10名學生的成績,求解總分及平均分。需要利用C語言循環(huán)語句進行計算。算法設計(1)定義float變量sum、average用來表示總分和平均分;(2)定義int變量i用來表示循環(huán)次數。任務5.1計算一個小組學生成績的總分及平均分
實現在線測試系統主頁面的布局和美化某班級需要一個學生成績管理系統,該系統應具有學生成績的添加、刪除、查詢、修改、插入和排序等處理功能,提供數字按鍵菜單操作方式,如圖0-1所示。程序代碼#include<stdio.h>intmain(){
inta,i;
floatsum=0,average;
printf("pleaseinput10numbers:");
for(i=1;i<=10;i++)
{scanf("%d",&a);sum=sum+a;}average=sum/10;printf("averageis%f\n",average);}任務5.1計算一個小組學生成績的總分及平均分
執(zhí)行結果1循環(huán)結構程序設計及其應用Part◎do…while語句◎for循環(huán)語句◎三種循環(huán)語句的比較◎while循環(huán)while循環(huán)
1.while語句的一般形式while語句是當型循環(huán)控制語句,其一般格式為:while(表達式){語句體;}while循環(huán)
說明:1)表達式為循環(huán)的條件,可以是C語言中任意合法的表達式,一般為關系或者邏輯表達式。2)語句體即為重復執(zhí)行的操作,也可以把它稱為循環(huán)體。通常語句體可以是一個語句,也可以是多個語句。當只有一個語句時,外層的大括號可以省略,如果語句體是多個語句時,一定要用“{}”括起來,以復合語句的形式出現。3)while循環(huán)的特點是先判斷條件后執(zhí)行語句體。因此,語句體可能一次也不會被執(zhí)行到。4)循環(huán)體內一定要有改變循環(huán)條件的語句,使循環(huán)趨于結束,否則就會形成死循環(huán),即循環(huán)將無休止地執(zhí)行下去。while循環(huán)
2.while語句的執(zhí)行過程
首先計算表達式的值,如果表達式的值為非0(真),則執(zhí)行循環(huán)體語句,然后重新計算表達式的值,并再次判斷值是否為真,如為真,再執(zhí)行循環(huán)體內的語句,如此循環(huán)往復。如果表達式的值為0(假),則退出循環(huán)結構,條件語句體NY
while語句執(zhí)行流程while循環(huán)
1)定義一個累加變量并賦初值為0。
2)每次累加的數比前一個數增加一個。
3)將累加數累加到累加變量中。
4)輸出總數。例5-1編寫程序計算1+2+…+100,然后輸出結果。計算1~100的和可以使用循環(huán)控制,完成重復加1個數的操作。
問題分析
算法設計while循環(huán)
流程圖算法
程序代碼#include<stdio.h>voidmain(){inti=1,iSum=0;while(i<=100){iSum=iSum+i;i++;}printf("thesumis%d\n",iSum);}
程序執(zhí)行的結果while循環(huán)
1)定義一個變量存放每個月的煤氣費用。
2)循環(huán)輸入12個月的煤氣費用。
3)計算12個月費用的總和。
4)輸出總費用。例5-2計算一個住戶一年的煤氣費用的總和(每月煤氣費由鍵盤輸入)一年12個月,需要用循環(huán)控制依次輸入每月的費用,并且進行累加。
問題分析
算法設計while循環(huán)
流程圖算法
程序代碼#include<stdio.h>voidmain(){ floatfCost,fSum=0.0; inti=1; while(i<=12) { scanf("%f",&fCost); fSum=fSum+fCost; i++; }printf("\nthesumofgascostis%.1f\n",fSum);}
程序執(zhí)行的結果while循環(huán)
1)定義一個變量i為循環(huán)控制變量。
2)循環(huán)輸出表達式i*i及表達式的值。例5-3用while語句顯示1~10的二次方。需要用循環(huán)控制依次輸出1~10的二次方。
問題分析
算法設計while循環(huán)
流程圖表達式i<=100NY表達式1i=1語句體i++輸出表達式i*i及其值while循環(huán)
程序代碼#include<stdio.h>voidmain(){inti=1;while(i<=10){printf("%d*%d=%d\n",i,i,i*i);i++;}}
程序執(zhí)行的結果
1.do…while語句一般格式句do…while循環(huán)又稱直到型循環(huán),其一般格式為:do{語句體;}while(表達式);do…while循環(huán)
說明:1)表達式為循環(huán)的條件,可以是C語言中任意合法的表達式,一般為關系或者邏輯表達式。2)語句體即為重復執(zhí)行的操作,也可以把它稱為循環(huán)體。通常語句體可以是一個語句,也可以是多個語句。當只有一個語句時,外層的大括號可以省略,如果語句體是多個語句時,一定要用“{}”括起來,以復合語句的形式出現。3)do…while循環(huán)的特點是先執(zhí)行一次語句體然后判斷條件。因此,語句體至少會執(zhí)行一次。4)do…while最后的分號“;”不能省略。do…while循環(huán)
2.do...while語句的執(zhí)行過程
首先執(zhí)行do后面的語句體,然后計算while后面表達式的值,如果表達式的值為非0(真),則繼續(xù)執(zhí)行循環(huán)體語句,如此循環(huán)往復。如果表達式的值為0(假),則退出循環(huán)結構.
do...while語句執(zhí)行流程條件語句體NYdo…while循環(huán)
與例5-1相似,這里不再敘述。例5-4用do…while語句構成循環(huán),求1+2+…+100,然后輸出結果。計算1~100的和可以使用循環(huán)控制,完成重復加1個數的操作,與例5-1相似。
問題分析
算法設計do…while循環(huán)
流程圖do…while循環(huán)
程序代碼#include<stdio.h>voidmain(){inti,iSum=0;scanf("%d",&i);do{iSum+=i;i++;}while(i<=100);printf("%d",iSum);}do…while循環(huán)
注意1)do…while循環(huán)語句特點是先執(zhí)行循環(huán)體后判斷條件,因此不管條件是否成立,循環(huán)體語句都至少被執(zhí)行一次,這是它與while循環(huán)語句的本質區(qū)別。2)不論循環(huán)體是一個語句還是多個語句,最好都用花括號括起來。3)避免出現“死循環(huán)”。4)do…while語句與while語句的不同之處①執(zhí)行流程不同。do…while語句先執(zhí)行一次循環(huán)體,再判斷表達式;而while語句先判斷表達式,后執(zhí)行循環(huán)體。②執(zhí)行循環(huán)體的次數可能不同。do…while語句的循環(huán)體至少執(zhí)行一次;而while語句的循環(huán)體可能一次也不執(zhí)行。do…while循環(huán)For循環(huán)語句
1.for循環(huán)語句的一般格式for循環(huán)語句又稱計數循環(huán),其一般格式為:for(表達式1;表達式2;表達式3){語句體;}for循環(huán)語句
說明:1)表達式1一般用來給循環(huán)變量賦初值,因此常為賦值表達式,指定循環(huán)的起點。也可以在for語句外給循環(huán)變量賦初值,這是可以省略該表達式。2)表達式2一般用來表示循環(huán)的條件,決定循環(huán)的繼續(xù)或者結束,一般為關系或者邏輯表達式。3)表達式3一般用來修改循環(huán)變量的值,控制變量每循環(huán)一次按什么方式變化,從而改變表達式2的真假性(即改變循環(huán)的條件),一般為賦值語句。4)根據上述for語句的3個表達式的用法,for語句的常用形式如下:for(初始表達式;循環(huán)條件表達式;循環(huán)變量增值表達式){語句體;}for循環(huán)語句
5)for循環(huán)相當于下面的while循環(huán):表達式1;While(表達式2){語句體;表達式3;}
6)for語句的3個表達式,他們之間用分號“;”隔開。不能使用其它符號。for循環(huán)語句
2.for循環(huán)語句的執(zhí)行過程(1)先執(zhí)行表達式1。(2)計算表達式2,若為非0(真),則執(zhí)行循環(huán)體;若為0(假),則結束循環(huán)。(3)計算表達式3,然后重復執(zhí)行第二步。表達式1i=1語句體i++表達式i<=100NY表達式3圖5-7for語句執(zhí)行流程for循環(huán)語句
請參看例5-1。例5-5用for語句計算1+2+???+100的值。計算1~100的和可以使用循環(huán)控制,完成重復加1個數的操作,請參看例5-1。
問題分析
算法設計for循環(huán)語句
程序代碼#include<stdio.h>voidmain(){inti,iSum;for(i=1,iSum=0;i<=100;i++){iSum=iSum+i;}printf("iSum=%d\n",iSum);}for循環(huán)語句
for循環(huán)語句的幾種形式for語句中的3個表達式都可以根據需要任意省略,但是分號不能省。因此,for循環(huán)語句可以有如下形式:(1)省略表達式1:應在for之前為變量賦初值。如例5-4可改寫為:inti=1,iSum=0;for(;i<=100;i++){iSum=iSum+i;}printf("iSum=%d\n",iSum);for循環(huán)語句
for循環(huán)語句的幾種形式(2)省略表達式2:循環(huán)條件始終為“真”,循環(huán)不終止。如例5-4可改寫為:inti,iSum=0;for(i=1;;i++){if(i>100)break;iSum=iSum+i;}printf("iSum=%d\n",iSum);for循環(huán)語句
for循環(huán)語句的幾種形式(3)省略表達式3:應另外設法使程序能夠結束。如例5-4可改寫為:inti,iSum=0;for(i=1;i<=100;){iSum=iSum+i;i++;}printf("iSum=%d\n",iSum);for循環(huán)語句
for循環(huán)語句的幾種形式(4)省略表達式1、3:完全等同于while語句。如例5-4可改寫為:inti=1,iSum=0;for(;i<=100;){iSum=iSum+i;i++;}printf("iSum=%d\n",iSum);for循環(huán)語句
for循環(huán)語句的幾種形式(5)三個表達式都省略:無初值,不判斷條件,循環(huán)變量不增值,死循環(huán)。如例5-4可改寫為:inti=1,iSum=0;for(;;){if(i>100)break;iSum=iSum+i;i++;}printf("iSum=%d\n",iSum);三種循環(huán)語句的比較
(1)三種循環(huán)都可以用來處理同一類問題,一般情況下它們可以互相替代。(2)三種循環(huán)都能用break結束循環(huán),用continue開始下一次循環(huán)。(3)while和do…while只判斷循環(huán)條件。循環(huán)變量的初值化要放在循環(huán)語句之前(如i=0,s=1等),在循環(huán)體中還應包含修改循環(huán)條件的語句(如i++,j++等)。(4)for語句本身除了包含循環(huán)條件之外,還可以給循環(huán)變量賦初值。當然也允許省略其中某些部分。如果省略前后兩項成為for(;循環(huán)條件;)時,完全與while(循環(huán)條件)等效。(5)while和for都是先判斷后循環(huán),而do…while是先循環(huán)后判斷。三種循環(huán)語句的比較
任務5.2計算每個小組學生成績的總分及平均分
任務描述一個班進行了一次考試,現要輸入4個小組學生的成績,編寫一個程序,連續(xù)輸入4個小組,每個小組10名學生得成績,并計算總分和平均分。任務分析輸入4小組學生的成績,求解總分及平均分。需要利用C語言循環(huán)嵌套語句進行計算。算法設計(1)定義float變量sum、average用來表示總分和平均分;(2)定義int變量j用來表示4個小組,int變量i用來表示每個小組10名學生。任務5.2計算每個小組學生成績的總分及平均分
程序代碼#include<stdio.h>intmain(){intscore,i,sum;floataverage;intj=1;for(;j<=4;j++){sum=0;printf("請輸入第%d小組學生的成績:");for(i=1;i<=10;i++){任務5.2計算每個小組學生成績的總分及平均分
程序代碼scanf("%d",&score);sum=sum+score;}average=sum/10;printf("本小組10名學生的總分為:%d\n",sum);printf("本小組10名學生的平均分為:%2f\n",average);}}任務5.2計算每個小組學生成績的總分及平均分
程序執(zhí)行結果2循環(huán)嵌套的應用Part◎break語句和continue語句◎循環(huán)的嵌套循環(huán)的嵌套
一個循環(huán)的循環(huán)體內包含另外一個循環(huán)語句,稱為循環(huán)的嵌套。圖5-8是一個循環(huán)嵌套的例子。循環(huán)嵌套時,外層循環(huán)執(zhí)行一次,內層循環(huán)從頭到尾執(zhí)行一遍。3種循環(huán)不僅可以自身嵌套,而且還可以互相嵌套。循環(huán)的嵌套
1)定義行變量、列變量。
2)循環(huán)輸出行乘列的值。
3)每行最后輸出一個換行符。例5-6打印九九乘法表九九乘法表一共九行九列,一共輸出45個式子,每個式子的被乘數和乘數都按一定規(guī)律進行變化,外循環(huán)控制行(被乘數的變化),內循環(huán)來控制列(乘數的變化)。
問題分析
算法設計循環(huán)的嵌套
流程圖循環(huán)的嵌套
程序代碼#include<stdio.h>voidmain(){intiRow,iCol;for(iRow=1;iRow<=9;iRow++) { for(iCol=1;iCol<=iRow;iCol++) printf("%d*%d=%-5d",iRow,iCol,iRow*iCol); printf("\n"); }}循環(huán)的嵌套
執(zhí)行結果break語句和continue語句
一般格式:break;continue;說明:1)break:強行結束循環(huán),轉向執(zhí)行循環(huán)語句的下一條語句。2)continue:結束本次循環(huán)。對于while和do…while循環(huán),跳過循環(huán)體其余語句,轉向循環(huán)終止條件的判斷;而對for循環(huán),跳過循環(huán)體其余語句,轉向循環(huán)變量增值量表達式的計算,如圖5-11所示。break語句和continue語句圖5-11break和continue語句對循環(huán)控制的影響拓展案例案例5-1趣味古典數學問題問題描述求Fibonacci數列:1、1、2、3、5、8……前40個數。Fibonacci數列可以用一個有趣的古典數學問題來描述:有一對兔子,出生三個月后每個月都生一對兔子。小兔子長到三個月后每個月又生一對兔子。假設所有的兔子都不死,問每個月的兔子總數是多少對?拓展案例算法設計1)設f1、f2為數列的第1、2項,f為前兩個數的和。2)i為循環(huán)次數,每行輸出7個數然后換行,滿足i能被7整除時換行。拓展案例程序代碼#include<stdio.h>voidmain(){inti;longf1=1,f2=1,f;printf("%6ld%6ld",f1,f2);for(i=3;i<=21;i++){拓展案例f=f1+f2;//由前兩項的f1,f2求得當前項fprintf("%6ld",f);//輸出fif(i%7==0)printf("\n");//每行限輸出7個fibonacci數f1=f2;f2=f;//修改f1,f2的值,被下次循環(huán)遞推}}拓展案例案例5-2判斷n是否為素數問題描述任意輸入一個正整數,判斷其是否為素數。拓展案例算法設計參考第1章拓展案例1-2。拓展案例程序代碼include<stdio.h>#include<math.h>voidmain(){intn,i,k;scanf("%d",&n);k=sqrt(n);for(i=2;i<=k;i++)if(n%i==0)拓展案例break;if(i>k)printf("%disaprimenumber\n",m);elseprintf("%disnotaprimenumber
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 道路智能化監(jiān)控系統方案
- 涂裝安全知識培訓
- 2026年人工智能算法工程師進階練習題庫
- 2025年社交媒體五年廣告效果報告
- 婦幼保健院停車管理系統方案
- 2026年新能源技術創(chuàng)新趨勢報告
- 道路施工分包單位管理方案
- 2026年心理咨詢師資格心理診斷與治療考試題庫
- 小學英語趣味教學法實踐研究-基于故事情境的聽說能力培養(yǎng)教學研究課題報告
- 水資源利用優(yōu)化方案
- 酒店治安安全管理制度范本
- 專家咨詢委員會建立方案
- 兼職剪輯外包合同范本
- 物業(yè)入戶維修標準及流程
- 生物濾池除臭裝置設計計算實例
- 選煤廠安全規(guī)程培訓考核試題帶答案
- 八年級上冊道德與法治全冊知識點(2025年秋新版)
- 消防設備故障和維修的應急響應預案
- 護理安全隱患與防范措施課件
- 瀘州市龍馬潭區(qū)三叉河山洪溝治理項目環(huán)評報告
- 人教版小學數學五年級下冊《因數與倍數》單元測試卷3套含答案
評論
0/150
提交評論