




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)項(xiàng)目5學(xué)生成績的分組匯總創(chuàng)建第一個(gè)C語言程序項(xiàng)目1“學(xué)生成績管理系統(tǒng)”中相關(guān)數(shù)據(jù)設(shè)計(jì)及簡單處理項(xiàng)目2項(xiàng)目中的數(shù)據(jù)處理及封面與菜單的初步設(shè)計(jì)項(xiàng)目3項(xiàng)目中學(xué)生成績的等級(jí)判定項(xiàng)目4學(xué)生成績的分組匯總程序項(xiàng)目5利用數(shù)組完善項(xiàng)目中數(shù)據(jù)的處理項(xiàng)目6利用函數(shù)進(jìn)行項(xiàng)目的整體框架設(shè)計(jì)項(xiàng)目7利用結(jié)構(gòu)體實(shí)現(xiàn)項(xiàng)目項(xiàng)目8利用指針優(yōu)化項(xiàng)目項(xiàng)目9利用文件完善項(xiàng)目項(xiàng)目10目標(biāo)TARGET知識(shí)目標(biāo)掌握while,do…while和for三種循環(huán)語句。學(xué)會(huì)使用continue、break語句。掌握循環(huán)的嵌套使用。能夠使用循環(huán)語句進(jìn)行程序設(shè)計(jì)。目標(biāo)TARGET技能目標(biāo)掌握while語句、do…while語句、for語句,三種語句的表示形式。掌握while語句、do…while語句、for語句應(yīng)用于循環(huán)結(jié)構(gòu)程序設(shè)計(jì)。掌握嵌套循環(huán)結(jié)構(gòu)程序設(shè)計(jì)。掌握continue、break語句的應(yīng)用。計(jì)算一個(gè)小組學(xué)生成績的總分及平均分任務(wù)5.1
計(jì)算每個(gè)小組學(xué)生成績的總分及平均分任務(wù)5.2任務(wù)5.1計(jì)算一個(gè)小組學(xué)生成績的總分及平均分
任務(wù)描述一個(gè)班進(jìn)行了一次考試,現(xiàn)要輸入第一小組學(xué)生的成績,編寫一個(gè)程序,連續(xù)輸入10名學(xué)生得成績,并計(jì)算總分和平均分。任務(wù)分析輸入10名學(xué)生的成績,求解總分及平均分。需要利用C語言循環(huán)語句進(jìn)行計(jì)算。算法設(shè)計(jì)(1)定義float變量sum、average用來表示總分和平均分;(2)定義int變量i用來表示循環(huán)次數(shù)。任務(wù)5.1計(jì)算一個(gè)小組學(xué)生成績的總分及平均分
實(shí)現(xiàn)在線測(cè)試系統(tǒng)主頁面的布局和美化某班級(jí)需要一個(gè)學(xué)生成績管理系統(tǒng),該系統(tǒng)應(yīng)具有學(xué)生成績的添加、刪除、查詢、修改、插入和排序等處理功能,提供數(shù)字按鍵菜單操作方式,如圖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);}任務(wù)5.1計(jì)算一個(gè)小組學(xué)生成績的總分及平均分
執(zhí)行結(jié)果1循環(huán)結(jié)構(gòu)程序設(shè)計(jì)及其應(yīng)用Part◎do…while語句◎for循環(huán)語句◎三種循環(huán)語句的比較◎while循環(huán)while循環(huán)
1.while語句的一般形式while語句是當(dāng)型循環(huán)控制語句,其一般格式為:while(表達(dá)式){語句體;}while循環(huán)
說明:1)表達(dá)式為循環(huán)的條件,可以是C語言中任意合法的表達(dá)式,一般為關(guān)系或者邏輯表達(dá)式。2)語句體即為重復(fù)執(zhí)行的操作,也可以把它稱為循環(huán)體。通常語句體可以是一個(gè)語句,也可以是多個(gè)語句。當(dāng)只有一個(gè)語句時(shí),外層的大括號(hào)可以省略,如果語句體是多個(gè)語句時(shí),一定要用“{}”括起來,以復(fù)合語句的形式出現(xiàn)。3)while循環(huán)的特點(diǎn)是先判斷條件后執(zhí)行語句體。因此,語句體可能一次也不會(huì)被執(zhí)行到。4)循環(huán)體內(nèi)一定要有改變循環(huán)條件的語句,使循環(huán)趨于結(jié)束,否則就會(huì)形成死循環(huán),即循環(huán)將無休止地執(zhí)行下去。while循環(huán)
2.while語句的執(zhí)行過程
首先計(jì)算表達(dá)式的值,如果表達(dá)式的值為非0(真),則執(zhí)行循環(huán)體語句,然后重新計(jì)算表達(dá)式的值,并再次判斷值是否為真,如為真,再執(zhí)行循環(huán)體內(nèi)的語句,如此循環(huán)往復(fù)。如果表達(dá)式的值為0(假),則退出循環(huán)結(jié)構(gòu)。
條件語句體NY
while語句執(zhí)行流程while循環(huán)
1)定義一個(gè)累加變量并賦初值為0。
2)每次累加的數(shù)比前一個(gè)數(shù)增加一個(gè)。
3)將累加數(shù)累加到累加變量中。
4)輸出總數(shù)。例5-1編寫程序計(jì)算1+2+…+100,然后輸出結(jié)果。計(jì)算1~100的和可以使用循環(huán)控制,完成重復(fù)加1個(gè)數(shù)的操作。
問題分析
算法設(shè)計(jì)while循環(huán)
流程圖算法
程序代碼#include<stdio.h>voidmain(){inti=1,iSum=0;while(i<=100){iSum=iSum+i;i++;}printf("thesumis%d\n",iSum);}
程序執(zhí)行的結(jié)果while循環(huán)
1)定義一個(gè)變量存放每個(gè)月的煤氣費(fèi)用。
2)循環(huán)輸入12個(gè)月的煤氣費(fèi)用。
3)計(jì)算12個(gè)月費(fèi)用的總和。
4)輸出總費(fèi)用。例5-2計(jì)算一個(gè)住戶一年的煤氣費(fèi)用的總和(每月煤氣費(fèi)由鍵盤輸入)一年12個(gè)月,需要用循環(huán)控制依次輸入每月的費(fèi)用,并且進(jìn)行累加。
問題分析
算法設(shè)計(jì)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í)行的結(jié)果while循環(huán)
1)定義一個(gè)變量i為循環(huán)控制變量。
2)循環(huán)輸出表達(dá)式i*i及表達(dá)式的值。例5-3用while語句顯示1~10的二次方。需要用循環(huán)控制依次輸出1~10的二次方。
問題分析
算法設(shè)計(jì)while循環(huán)
流程圖i<=10NYi=1i++輸出表達(dá)式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í)行的結(jié)果
1.do…while語句一般格式句do…while循環(huán)又稱直到型循環(huán),其一般格式為:do{語句體;}while(表達(dá)式);do…while循環(huán)
說明:1)表達(dá)式為循環(huán)的條件,可以是C語言中任意合法的表達(dá)式,一般為關(guān)系或者邏輯表達(dá)式。2)語句體即為重復(fù)執(zhí)行的操作,也可以把它稱為循環(huán)體。通常語句體可以是一個(gè)語句,也可以是多個(gè)語句。當(dāng)只有一個(gè)語句時(shí),外層的大括號(hào)可以省略,如果語句體是多個(gè)語句時(shí),一定要用“{}”括起來,以復(fù)合語句的形式出現(xiàn)。3)do…while循環(huán)的特點(diǎn)是先執(zhí)行一次語句體然后判斷條件。因此,語句體至少會(huì)執(zhí)行一次。4)do…while最后的分號(hào)“;”不能省略。do…while循環(huán)
2.do...while語句的執(zhí)行過程
首先執(zhí)行do后面的語句體,然后計(jì)算while后面表達(dá)式的值,如果表達(dá)式的值為非0(真),則繼續(xù)執(zhí)行循環(huán)體語句,如此循環(huán)往復(fù)。如果表達(dá)式的值為0(假),則退出循環(huán)結(jié)構(gòu)。
do...while語句執(zhí)行流程條件語句體NYdo…while循環(huán)
與例5-1相似,這里不再敘述。例5-4用do…while語句構(gòu)成循環(huán),求1+2+…+100,然后輸出結(jié)果。計(jì)算1~100的和可以使用循環(huán)控制,完成重復(fù)加1個(gè)數(shù)的操作,與例5-1相似。
問題分析
算法設(shè)計(jì)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)語句特點(diǎn)是先執(zhí)行循環(huán)體后判斷條件,因此不管條件是否成立,循環(huán)體語句都至少被執(zhí)行一次,這是它與while循環(huán)語句的本質(zhì)區(qū)別。2)不論循環(huán)體是一個(gè)語句還是多個(gè)語句,最好都用花括號(hào)括起來。3)避免出現(xiàn)“死循環(huán)”。4)do…while語句與while語句的不同之處①執(zhí)行流程不同。do…while語句先執(zhí)行一次循環(huán)體,再判斷表達(dá)式;而while語句先判斷表達(dá)式,后執(zhí)行循環(huán)體。②執(zhí)行循環(huán)體的次數(shù)可能不同。do…while語句的循環(huán)體至少執(zhí)行一次;而while語句的循環(huán)體可能一次也不執(zhí)行。do…while循環(huán)For循環(huán)語句
1.for循環(huán)語句的一般格式for循環(huán)語句又稱計(jì)數(shù)循環(huán),其一般格式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){語句體;}for循環(huán)語句
說明:1)表達(dá)式1一般用來給循環(huán)變量賦初值,因此常為賦值表達(dá)式,指定循環(huán)的起點(diǎn)。也可以在for語句外給循環(huán)變量賦初值,這是可以省略該表達(dá)式。2)表達(dá)式2一般用來表示循環(huán)的條件,決定循環(huán)的繼續(xù)或者結(jié)束,一般為關(guān)系或者邏輯表達(dá)式。3)表達(dá)式3一般用來修改循環(huán)變量的值,控制變量每循環(huán)一次按什么方式變化,從而改變表達(dá)式2的真假性(即改變循環(huán)的條件),一般為賦值語句。4)根據(jù)上述for語句的3個(gè)表達(dá)式的用法,for語句的常用形式如下:for(初始表達(dá)式;循環(huán)條件表達(dá)式;循環(huán)變量增值表達(dá)式){語句體;}for循環(huán)語句
5)for循環(huán)相當(dāng)于下面的while循環(huán):表達(dá)式1;While(表達(dá)式2){語句體;表達(dá)式3;}
6)for語句的3個(gè)表達(dá)式,他們之間用分號(hào)“;”隔開。不能使用其它符號(hào)。for循環(huán)語句
2.for循環(huán)語句的執(zhí)行過程(1)先執(zhí)行表達(dá)式1。(2)計(jì)算表達(dá)式2,若為非0(真),則執(zhí)行循環(huán)體;若為0(假),則結(jié)束循環(huán)。(3)計(jì)算表達(dá)式3,然后重復(fù)執(zhí)行第二步。表達(dá)式1語句體i++表達(dá)式2,NY表達(dá)式3圖5-7for語句執(zhí)行流程for循環(huán)語句
請(qǐng)參看例5-1。例5-5用for語句計(jì)算1+2+???+100的值。計(jì)算1~100的和可以使用循環(huán)控制,完成重復(fù)加1個(gè)數(shù)的操作,請(qǐng)參看例5-1。
問題分析
算法設(shè)計(jì)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個(gè)表達(dá)式都可以根據(jù)需要任意省略,但是分號(hào)不能省。因此,for循環(huán)語句可以有如下形式:(1)省略表達(dá)式1:應(yīng)在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)省略表達(dá)式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)省略表達(dá)式3:應(yīng)另外設(shè)法使程序能夠結(jié)束。如例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)省略表達(dá)式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)三個(gè)表達(dá)式都省略:無初值,不判斷條件,循環(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結(jié)束循環(huán),用continue開始下一次循環(huán)。(3)while和do…while只判斷循環(huán)條件。循環(huán)變量的初值化要放在循環(huán)語句之前(如i=0,s=1等),在循環(huán)體中還應(yīng)包含修改循環(huán)條件的語句(如i++,j++等)。(4)for語句本身除了包含循環(huán)條件之外,還可以給循環(huán)變量賦初值。當(dāng)然也允許省略其中某些部分。如果省略前后兩項(xiàng)成為for(;循環(huán)條件;)時(shí),完全與while(循環(huán)條件)等效。(5)while和for都是先判斷后循環(huán),而do…while是先循環(huán)后判斷。三種循環(huán)語句的比較
任務(wù)5.2計(jì)算每個(gè)小組學(xué)生成績的總分及平均分
任務(wù)描述一個(gè)班進(jìn)行了一次考試,現(xiàn)要輸入4個(gè)小組學(xué)生的成績,編寫一個(gè)程序,連續(xù)輸入4個(gè)小組,每個(gè)小組10名學(xué)生得成績,并計(jì)算總分和平均分。任務(wù)分析輸入4小組學(xué)生的成績,求解總分及平均分。需要利用C語言循環(huán)嵌套語句進(jìn)行計(jì)算。算法設(shè)計(jì)(1)定義float變量sum、average用來表示總分和平均分;(2)定義int變量j用來表示4個(gè)小組,int變量i用來表示每個(gè)小組10名學(xué)生。任務(wù)5.2計(jì)算每個(gè)小組學(xué)生成績的總分及平均分
程序代碼#include<stdio.h>intmain(){intscore,i,sum;floataverage;intj=1;for(;j<=4;j++){sum=0;printf("請(qǐng)輸入第%d小組學(xué)生的成績:");for(i=1;i<=10;i++){任務(wù)5.2計(jì)算每個(gè)小組學(xué)生成績的總分及平均分
程序代碼scanf("%d",&score);sum=sum+score;}average=sum/10;printf("本小組10名學(xué)生的總分為:%d\n",sum);printf("本小組10名學(xué)生的平均分為:%2f\n",average);}}任務(wù)5.2計(jì)算每個(gè)小組學(xué)生成績的總分及平均分
程序執(zhí)行結(jié)果2循環(huán)嵌套的應(yīng)用Part◎break語句和continue語句◎循環(huán)的嵌套循環(huán)的嵌套
一個(gè)循環(huán)的循環(huán)體內(nèi)包含另外一個(gè)循環(huán)語句,稱為循環(huán)的嵌套。圖5-8是一個(gè)循環(huán)嵌套的例子。循環(huán)嵌套時(shí),外層循環(huán)執(zhí)行一次,內(nèi)層循環(huán)從頭到尾執(zhí)行一遍。3種循環(huán)不僅可以自身嵌套,而且還可以互相嵌套。循環(huán)的嵌套
1)定義行變量、列變量。
2)循環(huán)輸出行乘列的值。
3)每行最后輸出一個(gè)換行符。例5-6打印九九乘法表九九乘法表一共九行九列,一共輸出45個(gè)式子,每個(gè)式子的被乘數(shù)和乘數(shù)都按一定規(guī)律進(jìn)行變化,外循環(huán)控制行(被乘數(shù)的變化),內(nèi)循環(huán)來控制列(乘數(shù)的變化)。
問題分析
算法設(shè)計(jì)循環(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í)行結(jié)果break語句和continue語句
一般格式:break;continue;說明:1)break:強(qiáng)行結(jié)束循環(huán),轉(zhuǎn)向執(zhí)行循環(huán)語句的下一條語句。2)continue:結(jié)束本次循環(huán)。對(duì)于while和do…while循環(huán),跳過循環(huán)體其余語句,轉(zhuǎn)向循環(huán)終止條件的判斷;而對(duì)for循環(huán),跳過循環(huán)體其余語句,轉(zhuǎn)向循環(huán)變量增值量表達(dá)式的計(jì)算,如圖5-11所示。break語句和continue語句圖5-11break和continue語句對(duì)循環(huán)控制的影響拓展案例案例5-1趣味古典數(shù)學(xué)問題問題描述求Fibonacci數(shù)列:1、1、2、3、5、8……前40個(gè)數(shù)。Fibonacci數(shù)列可以用一個(gè)有趣的古典數(shù)學(xué)問題來描述:有一對(duì)兔子,出生三個(gè)月后每個(gè)月都生一對(duì)兔子。小兔子長到三個(gè)月后每個(gè)月又生一對(duì)兔子。假設(shè)所有的兔子都不死,問每個(gè)月的兔子總數(shù)是多少對(duì)?拓展案例算法設(shè)計(jì)1)設(shè)f1、f2為數(shù)列的第1、2項(xiàng),f為前兩個(gè)數(shù)的和。2)i為循環(huán)次數(shù),每行輸出7個(gè)數(shù)然后換行,滿足i能被7整除時(shí)換行。拓展案例程序代碼#include<stdio.h>voidmain(){inti;longf1=1,f2=1,f;printf("%6ld%6ld",f1,f2);for(i=3;i<=21;i++){拓展案例f=f1+f2;//由前兩項(xiàng)的f1,f2求得當(dāng)前項(xiàng)fprintf("%6ld",f);//輸出fif(i%7==0)printf("\n");//每行限輸出7個(gè)fibonacci數(shù)f1=f2;f2=f;//修改f1,f2的值,被下次循環(huán)遞推}}拓展案例案例5-2判斷n是否為素?cái)?shù)問題描述任意輸入一個(gè)正整數(shù),判斷其是否為素?cái)?shù)。拓展案例算法設(shè)計(jì)參考第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("%dis
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 城軌行業(yè)的綠色低碳發(fā)展
- 2024年份第2季度裝修合同窗臺(tái)外沿防水斜坡施工標(biāo)準(zhǔn)爭議
- DB14T 1666-2024肉羊中獸藥保健技術(shù)規(guī)程
- 開展校園教研活動(dòng)總結(jié)
- 物業(yè)個(gè)人工作總結(jié)
- 車間工程勞務(wù)大清包施工合同
- 沈陽市種子買賣合同
- 2025年黔南貨運(yùn)從業(yè)資格證好考嗎
- 2025年迪慶c1貨運(yùn)上崗證模擬考試
- 疫情防控家長培訓(xùn)會(huì)課件
- 西方文論概覽(第二版)-第九章課件
- 國家計(jì)量院計(jì)量器具檢定收費(fèi)標(biāo)準(zhǔn)
- 2024年領(lǐng)導(dǎo)干部任前廉政知識(shí)測(cè)試試卷題庫及答案
- 糖尿病足潰瘍創(chuàng)面治療專家共識(shí)
- 機(jī)電金結(jié)設(shè)備安裝自檢報(bào)告
- 2024年紅十字應(yīng)急救護(hù)知識(shí)競賽考試題庫500題(含答案)
- 陜西省2024年高中學(xué)業(yè)水平合格考數(shù)學(xué)試卷試題(含答案)
- 文言文閱讀訓(xùn)練:《遼史-馬得臣傳》(附答案解析與譯文)
- 平面直角坐標(biāo)系-(2)課件
- 2024年社區(qū)工作者考試必考1000題附完整答案【典優(yōu)】
- ti-84計(jì)算器說明書
評(píng)論
0/150
提交評(píng)論