C语言程序设计(第三版)课件:学生成绩统计分析-循环结构程序设计_第1页
C语言程序设计(第三版)课件:学生成绩统计分析-循环结构程序设计_第2页
C语言程序设计(第三版)课件:学生成绩统计分析-循环结构程序设计_第3页
C语言程序设计(第三版)课件:学生成绩统计分析-循环结构程序设计_第4页
C语言程序设计(第三版)课件:学生成绩统计分析-循环结构程序设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

知识目标:

掌握C语言的基本循环结构;深刻理解goto语句和if语句构成的循环、while语句、do-while语句、和for语句之间的区别及使用方法;理解各种循环之间的相同点和不同点。能力目标:能正确设计“学生成绩管理系统”中学生成绩的统计和循环结构程序的设计。学生成绩统计分析-循环结构程序设计工作任务任务1

学生成绩统计分析——总分、平均分的计算

循环结构是程序中一种很重要的结构,其特点是在判定条件成立时,反复执行某程序段,直到条件成立为止。所给的判定条件称为循环条件,反复执行的程序段称为循环体。它主要处理如学校学生成绩,求若干个数的和,求一个数的阶乘等等。C语言提供了多种循环语句以实现各种不同形式的循环结构。循环语句有goto语句和if语句构成的循环、while语句、do-while语句和for语句。并且各个语句之间还可以进行嵌套使用。“学生成绩管理系统”中我们需要给学生的成绩进计算,其中将用到循环语句。但是在对各种信息进行处理时,将有多种循环结构供我们选择,那么我们要根据实际情况选择适合的循环结构任务2

用循环语句实现项目主菜单的选择执行设计任务目标:能设计“班级学生成绩管理系统”中所涉及到的多种循环结构。

学生成绩管理系统中有很多程序的语句是从上至下地被执行的。程序的控制结构在本系统中占有很大一部分,因此如何在本系统中采用合适的逻辑控制结构,选择合适的循环结构,是设计的重点。1.1任务情境

“班级学生成绩管理系统”中该项目实现如果输入0~3之间的整型数字,将在屏幕上显示学生的总成绩和平均成绩。具体如图5-1所示。本任务的主要内容是对总分和平均分的计算,那么用什么方法才是得当,简便又利于计算呢,这是本次任务需要掌握的要点。分数的计算是有规律、需要重复执行某些操作的。因此利用循环语句是最好的选择。1.2知识必备

循环结构是程序中一种很重要的结构。其特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。C语言提供了多种循环语句,可以组成各种不同形式的循环结构。用goto语句和if语句构成循环;

goto语句以及用goto语句构成循环

goto语句是一种无条件转移语句,与BASIC中的goto语句相似。goto语句的使用格式为:goto语句标号;其中标号是一个有效的标识符,这个标识符加上一个“:”一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。另外标号必须与goto语句同处于一个函数中,但可以不在一个循环层中。通常goto语句与if条件语句连用,当满足某一条件时,程序跳到标号处运行。

goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时,用goto语句则比较合理。1.2.1用goto语句和if语句构成循环,求

for语句在C语言中,for语句使用最为灵活,它完全可以取代while语句。它的一般形式为:for(表达式1;表达式2;表达式3)语句它的执行过程如下:先求解表达式1。求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3)步;若其值为假(0),则结束循环,转到第5)步。求解表达式3。转回上面第2)步继续执行。循环结束,执行for语句下面的一个语句。1.2.2嵌套for循环求九九乘法表1.3任务实施

通过相关理论学习后,我们可以对“学生成绩管理系统”中学生课程的总分和平均分进行计算。并将现实中的数据处理成C语言能够理解的数据。接下来我们来看一个系统执行的流程图1.4知识扩展

1、break语句

break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break语句,则将成为一个死循环而无法退出。break在switch中的用法已在前面介绍开关语句时的例子中碰到,这里不再举例。当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环。

2、continue语句

continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。其执行过程可用下图表示。

while(表达式1){……if(表达式2)break;……}while(表达式1){……if(表达式2)continue;……}2.1任务情境

本任务主要是实现项目主菜单的选择执行,在这里需利用多重循环即多重循环结构,也称循环嵌套层,是指一个循环结构的内部又包含另一个完整的循环结构。这节重点掌握循环语句的执行过程,内外循环语句的位置安排等。循环控制结构(又称重复结构)是程序中的另一个基本结构。在实际问题中,常常需要进行大量的重复处理,循环结构可以使我们只写很少的语句,而让计算机反复执行,从而完成大量类同的计算。“班级学生成绩管理系统”中该项目实现如果输入0~6之间的整型数字,将在屏幕上打印一句话或显示相应的子菜单,可用多种循环语句实现。

2.2知识必备

除了上一任务中讲的for循环和goto循环外还有另外两种循环.例如:while语句当我们确定循环重复执行的次数时,会使用for循环。但是对于有些问题,无法事先知道循环该执行多少次才够,此时,就可以考虑使用while循环及dowhile循环。

while语句的一般形式为:

while(表达式)语句其中表达式是循环条件,语句为循环体。

while语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。2.2.1用while语句求

注:使用while语句应注意以下几点:while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非0)即可继续循环。循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。do-while语句do-while语句的一般形式为:do

语句

while(表达式);这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。

2.2.2用do-while语句求

2.3任务实施

由于实现循环选择执行项目菜单是一种比较复杂结构,为了便于学习,我们首先用三种方法实现主菜单的循环选择执行,即主菜单实现循环选择,而子菜单暂时不实现循环选择。1.用for循环实现已知循环次数的循环。该循环规定了循环执行的次数,当循环达到规定的次数后将会退出循环。学习者不要理解成for循环只能实现已知循环次数的循环,实际上for循环也能够实现未知循环次数的循环。2.用while循环实现未知循环次数的循环。该循环只有输入了0才会退出循环,但不能显示“退出程序!”,即当输入0后,循环再不执行,从而退出循环。3.用do~while循环实现未知次数的循环

该循环只有输入0后循环才会结束,但可以显示“退出程序!”,当输入0后循环还是执行了最后一次

2.4知识扩展

一、while与do----while嵌套循环1、do----while嵌套循环do----while循环先执行,然后再判断while后面的条件是不是成立do{do{...}while(...);}while(...);上面的语句相当与先执行一次外层do然后接着执行内曾的do-while循环体,当执行然内层的循环体之后,判断外层的while条件2、while嵌套循环While(…)循环先判断while后面的条件是不是成立{ While(…)如果外面的条件成立此时判断这个while后面的条件是否成立.{};};上面的语句相当与先执行一次外层while然后接着执行判断内曾的while后面的条件,如果为真执行内层的循环体.2.5任务小结

通过本章的学习,要求能够掌握while,do---while循环及while,do--while的嵌套循环结构。本次任务和上一任务均讲述不同在循环结构。那么这几种循环结构又有什么相同点和不同点呢?下面我们就来对几种循环做详细在比较。四种循环都可以用来处理同一个问题,一般可以互相代替。但一般不提倡用goto型循环。while和do-while循环,循环体中应包括使循环趋于结束的语句。for语句功能最强。用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成,而for语句可以在表达式1中实现循环变量的初始化。根据需要找到合适的循环:循环特性循环种类forwhiledowhile前端测试条件判断是是否后端测试条件判断否否是在循环主体中,需要自己更改循环控制变量的值是否否循环重复的次数已知已知已知最少执行循环主体的次数0次0次1次何时重复执行循环条件成立条件成立条件成立练习题一、选择题1、循环语句for(i=0,j=0;(j!=25)&&(i<3);i++)的循环执行次数是()A.无限循环B.2次C.3次D.4次

2、循环语句for(i=0,j=0;(j!=4)||(i<3);j++,i++)的循环执行次数是()

A.无限循环B.2次C.3次D.4次

3、在与switch语句配套的case语句中所使用的表达式()

A只能是常量

B可以是变量或常量

C只能是常量或常量表达式

D无论是常量还是变量,只要在执行时已经有确定的值就可以了

4、if语句中用来作为判断条件的表达式是()

A逻辑表达式B关系表达式C算术表达式D以上都是二、 填空题1. 在C语言中,单目运算符的结合方向(运算方向)是____________;唯一的一个三目运算符是____________。2. 能正确表示“当ch为小写字母为真,否则为假”的表达式是。3. 循环语句for(;;)printf("OK\n");和do{printf("OK\n");}while(0);执行完毕循环,循环次数分别是________________和________________。4. 若有说明inti,j,k;则表达式i=10,j=20,k=30,k*=i+j的值为________________.结构化程序设计的三种基本结构是:选择结构、循环结构和________________。三、 阅读程序,写出程序的运行结果1. 运行结果:_______________intfunc(intn){if(n==0)return0;elseif(n==1)return1;elsereturnn*n+func(n-2);}main(){printf("%5d%5d\n",func(4),func(5));}change(&a,b);printf("a=%d,b=%d\n",a,b);}2. 运行结果:_______________main(){inti=1;while(i<=10)if(++i%2!=0)continue;elseprintf(“%3d”,i);}运行结果:_______________Main(){intj;for(j=4;j>=2;j--)switch(j){case0:printf("%4s","ABC");case1:printf("%4s","DEF");case2:printf("%4s","GHI");breakcase3:printf("%4s","JKL");default:printf("%4s","MNO");}printf("\n");}五、 编程题1、编写程序实现符号函数,即

1(x>0)

y= 0(x=0) -1(x<0)2、编写程序输出100以内的素数。3、编写一个读入两个正整数值a和b,并显示大于a小于b的所有偶数的程序。1.2.1用goto语句和if语句构成循环,求

010203040506070809101112Voidmain(){inti,sum=0;i=1;loop:if(i<=100){sum=sum+i;

i++;

gotoloop;}printf("%d\n",sum);}代码贴士本程序中首先声说了一个main()函数说明,这是写C程序最基本的步骤。想必在前面的学习中大家已经明白!本程序定义一个Loop,以便后面的Goto进行调用。以此构成一个循环,直到条件不成立即i>100时停止循环。1.2.2嵌套for循环求九九乘法表01020304050607080910111213#include<stdio.h>intmain(void){inti,j;

for(i=1;i<=9;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论