




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计项目5学生成绩的分组汇总创建第一个C语言程序项目1“学生成绩管理系统”中相关数据设计及简单处理项目2项目中的数据处理及封面与菜单的初步设计项目3项目中学生成绩的等级判定项目4学生成绩的分组汇总程序项目5利用数组完善项目中数据的处理项目6利用函数进行项目的整体框架设计项目7利用结构体实现项目项目8利用指针优化项目项目9利用文件完善项目项目10目标TARGET知识目标掌握while,do…while和for三种循环语句。学会使用continue、break语句。掌握循环的嵌套使用。能够使用循环语句进行程序设计。目标TARGET技能目标掌握while语句、do…while语句、for语句,三种语句的表示形式。掌握while语句、do…while语句、for语句应用于循环结构程序设计。掌握嵌套循环结构程序设计。掌握continue、break语句的应用。计算一个小组学生成绩的总分及平均分任务5.1
计算每个小组学生成绩的总分及平均分任务5.2任务5.1计算一个小组学生成绩的总分及平均分
任务描述一个班进行了一次考试,现要输入第一小组学生的成绩,编写一个程序,连续输入10名学生得成绩,并计算总分和平均分。任务分析输入10名学生的成绩,求解总分及平均分。需要利用C语言循环语句进行计算。算法设计(1)定义float变量sum、average用来表示总分和平均分;(2)定义int变量i用来表示循环次数。任务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计算一个小组学生成绩的总分及平均分
执行结果1循环结构程序设计及其应用Part◎do…while语句◎for循环语句◎三种循环语句的比较◎while循环while循环
1.while语句的一般形式while语句是当型循环控制语句,其一般格式为:while(表达式){语句体;}while循环
说明:1)表达式为循环的条件,可以是C语言中任意合法的表达式,一般为关系或者逻辑表达式。2)语句体即为重复执行的操作,也可以把它称为循环体。通常语句体可以是一个语句,也可以是多个语句。当只有一个语句时,外层的大括号可以省略,如果语句体是多个语句时,一定要用“{}”括起来,以复合语句的形式出现。3)while循环的特点是先判断条件后执行语句体。因此,语句体可能一次也不会被执行到。4)循环体内一定要有改变循环条件的语句,使循环趋于结束,否则就会形成死循环,即循环将无休止地执行下去。while循环
2.while语句的执行过程
首先计算表达式的值,如果表达式的值为非0(真),则执行循环体语句,然后重新计算表达式的值,并再次判断值是否为真,如为真,再执行循环体内的语句,如此循环往复。如果表达式的值为0(假),则退出循环结构。
条件语句体NY
while语句执行流程while循环
1)定义一个累加变量并赋初值为0。
2)每次累加的数比前一个数增加一个。
3)将累加数累加到累加变量中。
4)输出总数。例5-1编写程序计算1+2+…+100,然后输出结果。计算1~100的和可以使用循环控制,完成重复加1个数的操作。
问题分析
算法设计while循环
流程图算法
程序代码#include<stdio.h>voidmain(){inti=1,iSum=0;while(i<=100){iSum=iSum+i;i++;}printf("thesumis%d\n",iSum);}
程序执行的结果while循环
1)定义一个变量存放每个月的煤气费用。
2)循环输入12个月的煤气费用。
3)计算12个月费用的总和。
4)输出总费用。例5-2计算一个住户一年的煤气费用的总和(每月煤气费由键盘输入)一年12个月,需要用循环控制依次输入每月的费用,并且进行累加。
问题分析
算法设计while循环
流程图算法
程序代码#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);}
程序执行的结果while循环
1)定义一个变量i为循环控制变量。
2)循环输出表达式i*i及表达式的值。例5-3用while语句显示1~10的二次方。需要用循环控制依次输出1~10的二次方。
问题分析
算法设计while循环
流程图i<=10NYi=1i++输出表达式i*i及其值while循环
程序代码#include<stdio.h>voidmain(){inti=1;while(i<=10){printf("%d*%d=%d\n",i,i,i*i);i++;}}
程序执行的结果
1.do…while语句一般格式句do…while循环又称直到型循环,其一般格式为:do{语句体;}while(表达式);do…while循环
说明:1)表达式为循环的条件,可以是C语言中任意合法的表达式,一般为关系或者逻辑表达式。2)语句体即为重复执行的操作,也可以把它称为循环体。通常语句体可以是一个语句,也可以是多个语句。当只有一个语句时,外层的大括号可以省略,如果语句体是多个语句时,一定要用“{}”括起来,以复合语句的形式出现。3)do…while循环的特点是先执行一次语句体然后判断条件。因此,语句体至少会执行一次。4)do…while最后的分号“;”不能省略。do…while循环
2.do...while语句的执行过程
首先执行do后面的语句体,然后计算while后面表达式的值,如果表达式的值为非0(真),则继续执行循环体语句,如此循环往复。如果表达式的值为0(假),则退出循环结构。
do...while语句执行流程条件语句体NYdo…while循环
与例5-1相似,这里不再叙述。例5-4用do…while语句构成循环,求1+2+…+100,然后输出结果。计算1~100的和可以使用循环控制,完成重复加1个数的操作,与例5-1相似。
问题分析
算法设计do…while循环
流程图do…while循环
程序代码#include<stdio.h>voidmain(){inti,iSum=0;scanf("%d",&i);do{iSum+=i;i++;}while(i<=100);printf("%d",iSum);}do…while循环
注意1)do…while循环语句特点是先执行循环体后判断条件,因此不管条件是否成立,循环体语句都至少被执行一次,这是它与while循环语句的本质区别。2)不论循环体是一个语句还是多个语句,最好都用花括号括起来。3)避免出现“死循环”。4)do…while语句与while语句的不同之处①执行流程不同。do…while语句先执行一次循环体,再判断表达式;而while语句先判断表达式,后执行循环体。②执行循环体的次数可能不同。do…while语句的循环体至少执行一次;而while语句的循环体可能一次也不执行。do…while循环For循环语句
1.for循环语句的一般格式for循环语句又称计数循环,其一般格式为:for(表达式1;表达式2;表达式3){语句体;}for循环语句
说明:1)表达式1一般用来给循环变量赋初值,因此常为赋值表达式,指定循环的起点。也可以在for语句外给循环变量赋初值,这是可以省略该表达式。2)表达式2一般用来表示循环的条件,决定循环的继续或者结束,一般为关系或者逻辑表达式。3)表达式3一般用来修改循环变量的值,控制变量每循环一次按什么方式变化,从而改变表达式2的真假性(即改变循环的条件),一般为赋值语句。4)根据上述for语句的3个表达式的用法,for语句的常用形式如下:for(初始表达式;循环条件表达式;循环变量增值表达式){语句体;}for循环语句
5)for循环相当于下面的while循环:表达式1;While(表达式2){语句体;表达式3;}
6)for语句的3个表达式,他们之间用分号“;”隔开。不能使用其它符号。for循环语句
2.for循环语句的执行过程(1)先执行表达式1。(2)计算表达式2,若为非0(真),则执行循环体;若为0(假),则结束循环。(3)计算表达式3,然后重复执行第二步。表达式1语句体i++表达式2,NY表达式3图5-7for语句执行流程for循环语句
请参看例5-1。例5-5用for语句计算1+2+•••+100的值。计算1~100的和可以使用循环控制,完成重复加1个数的操作,请参看例5-1。
问题分析
算法设计for循环语句
程序代码#include<stdio.h>voidmain(){inti,iSum;for(i=1,iSum=0;i<=100;i++){iSum=iSum+i;}printf("iSum=%d\n",iSum);}for循环语句
for循环语句的几种形式for语句中的3个表达式都可以根据需要任意省略,但是分号不能省。因此,for循环语句可以有如下形式:(1)省略表达式1:应在for之前为变量赋初值。如例5-4可改写为:inti=1,iSum=0;for(;i<=100;i++){iSum=iSum+i;}printf("iSum=%d\n",iSum);for循环语句
for循环语句的几种形式(2)省略表达式2:循环条件始终为“真”,循环不终止。如例5-4可改写为:inti,iSum=0;for(i=1;;i++){if(i>100)break;iSum=iSum+i;}printf("iSum=%d\n",iSum);for循环语句
for循环语句的几种形式(3)省略表达式3:应另外设法使程序能够结束。如例5-4可改写为:inti,iSum=0;for(i=1;i<=100;){iSum=iSum+i;i++;}printf("iSum=%d\n",iSum);for循环语句
for循环语句的几种形式(4)省略表达式1、3:完全等同于while语句。如例5-4可改写为:inti=1,iSum=0;for(;i<=100;){iSum=iSum+i;i++;}printf("iSum=%d\n",iSum);for循环语句
for循环语句的几种形式(5)三个表达式都省略:无初值,不判断条件,循环变量不增值,死循环。如例5-4可改写为:inti=1,iSum=0;for(;;){if(i>100)break;iSum=iSum+i;i++;}printf("iSum=%d\n",iSum);三种循环语句的比较
(1)三种循环都可以用来处理同一类问题,一般情况下它们可以互相替代。(2)三种循环都能用break结束循环,用continue开始下一次循环。(3)while和do…while只判断循环条件。循环变量的初值化要放在循环语句之前(如i=0,s=1等),在循环体中还应包含修改循环条件的语句(如i++,j++等)。(4)for语句本身除了包含循环条件之外,还可以给循环变量赋初值。当然也允许省略其中某些部分。如果省略前后两项成为for(;循环条件;)时,完全与while(循环条件)等效。(5)while和for都是先判断后循环,而do…while是先循环后判断。三种循环语句的比较
任务5.2计算每个小组学生成绩的总分及平均分
任务描述一个班进行了一次考试,现要输入4个小组学生的成绩,编写一个程序,连续输入4个小组,每个小组10名学生得成绩,并计算总分和平均分。任务分析输入4小组学生的成绩,求解总分及平均分。需要利用C语言循环嵌套语句进行计算。算法设计(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计算每个小组学生成绩的总分及平均分
程序执行结果2循环嵌套的应用Part◎break语句和continue语句◎循环的嵌套循环的嵌套
一个循环的循环体内包含另外一个循环语句,称为循环的嵌套。图5-8是一个循环嵌套的例子。循环嵌套时,外层循环执行一次,内层循环从头到尾执行一遍。3种循环不仅可以自身嵌套,而且还可以互相嵌套。循环的嵌套
1)定义行变量、列变量。
2)循环输出行乘列的值。
3)每行最后输出一个换行符。例5-6打印九九乘法表九九乘法表一共九行九列,一共输出45个式子,每个式子的被乘数和乘数都按一定规律进行变化,外循环控制行(被乘数的变化),内循环来控制列(乘数的变化)。
问题分析
算法设计循环的嵌套
流程图循环的嵌套
程序代码#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"); }}循环的嵌套
执行结果break语句和continue语句
一般格式:break;continue;说明:1)break:强行结束循环,转向执行循环语句的下一条语句。2)continue:结束本次循环。对于while和do…while循环,跳过循环体其余语句,转向循环终止条件的判断;而对for循环,跳过循环体其余语句,转向循环变量增值量表达式的计算,如图5-11所示。break语句和continue语句图5-11break和continue语句对循环控制的影响拓展案例案例5-1趣味古典数学问题问题描述求Fibonacci数列:1、1、2、3、5、8……前40个数。Fibonacci数列可以用一个有趣的古典数学问题来描述:有一对兔子,出生三个月后每个月都生一对兔子。小兔子长到三个月后每个月又生一对兔子。假设所有的兔子都不死,问每个月的兔子总数是多少对?拓展案例算法设计1)设f1、f2为数列的第1、2项,f为前两个数的和。2)i为循环次数,每行输出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的值,被下次循环递推}}拓展案例案例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("%dis
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防器材选购策略试题及答案
- 定期消防演练重要性试题及答案
- 掌握健康管理师考试策略试题及答案
- 公司运营的法律法规风险控制
- 动物医疗教育与科研发展试题及答案
- 小动物护理技能试题及答案
- 金融投资领域的商务谈判策略
- 宠物丧失后的情感支持试题及答案
- 如何预防新冠病毒感染及其变异病毒传播风险防范措施科普介绍
- 生态灾害的成因与影响研究试题及答案
- 铁路站段年度消防知识试卷及(答案)
- GB/T 41028-2021航空航天流体系统液压软管、管道和接头组件的脉冲试验要求
- GB/T 41-2000六角螺母C级
- GB/T 31334.1-2015浸胶帆布试验方法第1部分:粘合强度
- 以结果为导向的思维培训课件
- 材料力学第9章应力状态分析和强度理论课件
- 如何上好一节思政课综述课件
- 2021年四川凉山小升初数学真题及答案A卷
- 春季电力安全生产大检查检查大纲
- 外资银行在华发展研究报告
- 第五届云南省科技兴乡贡献奖人员评议结果
评论
0/150
提交评论