程序和流程控制编程及应用教材

上传人:544dd****4sss 文档编号:253024030 上传时间:2024-11-27 格式:PPTX 页数:98 大小:806.06KB
返回 下载 相关 举报
程序和流程控制编程及应用教材_第1页
第1页 / 共98页
程序和流程控制编程及应用教材_第2页
第2页 / 共98页
程序和流程控制编程及应用教材_第3页
第3页 / 共98页
点击查看更多>>
资源描述
华中科技大学信息学院C语言程序设计,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第1、2章回,顾,顾,C程序,结,结构:,C程序,由,由main函,数,数和若,干,干个其,他,他子函,数,数(标,准,准函数,和,和自定,义,义函数,等,等)构,成,成。函,数,数包括,函,函数头,和,和函数,体,体,C,程,程序语,句,句以分,号,号作为,结,结束标,志,志。,语法单,位,位(单,词,词):关键字,、,、标识,符,符、分,隔,隔符、,常,常量、,变,变量、,运,运算符。,数据类,型,型的规,定,定以及,表,表达式,运,运算规,则,则。,输入输,出,出函数getchar,putchar,scanf,printf的使,用,用。,第3章,程,程序,和,和流程,控,控制,3.1C,语,语言程,序,序的版,式,式及语,句,句,3.2,结,结,构,构化程,序,序设计,和,和流程,控,控制,3.3if语句,3.4switch多,分,分支选,择,择语句,3.5,循,循,环,环控制,3.6,辅,辅,助,助控制,语,语句,3.7,典,典,型,型程序,编,编写方,法,法举例,3.8,小,小,结,结,C语言,流,流程控,制,制语句,3.1C,语,语言程,序,序的版,式,式及语,句,句,3.1.1C,语,语言,程,程序,的,的版,式,式,3.1.2C,语,语言,的,的语,句,句,例3.1/*,求,求,二,二整,数,数之,和,和的,程,程序*/,#include/,预,预处,理,理,voidmain()/,函,函数,定,定义,inta,b;/,变,变量,说,说明,intsum;,scanf(%d%d,/,数,数,据,据输,入,入,sum=a+b;/,执,执行,部,部分,printf(sum=%d,sum);/,信,信息,输,输出,该程,序,序的,运,运行,结,结果,为,为:,78/,输,输入,sum=15,3.1.1C,语,语言,程,程序,的,的版,式,式特,征,征,程序,设,设计,主要,任,任务,输入,处理,输出,编写C语,言,言程,序,序一,般,般应,包,包含,如,如下,几,几个,部,部分,(1,),),注释,部,部分,:格,式,式为*注,释,释内,容,容*,或,或/,注,注释,内,内容;,在,在函,数,数的,最,最上,端,端,,一,一般,都,都应,有,有一,段,段注,释,释信,息,息,,主,主要,说,说明,函,函数,的,的功,能,能,,输,输入,、,、输,出,出及,其,其限,制,制;,如,如是,商,商品,软,软件,还,还应,包,包含,版,版权,信,信息,,,,在,程,程序,的,的其,他,他部,分,分也,可,可加,注,注释,。,。编,程,程者,要,要养,成,成一,边,边编,程,程序,、,、一,边,边加,注,注释,的,的习,惯,惯。,一,一般,长,长段,的,的注,释,释用*注,释,释内,容,容*,形,式,式,,短,短段,的,的注,释,释用/注,释,释内,容,容,形,形式,。,。,(2,),),预处,理,理块,、,、全,局,局变,量,量说,明,明等,。(,参,参见,后,后面,章,章节,),),(3,),),函数,定,定义,部,部分,,包,括,括函,数,数类,型,型,,函,函数,名,名及,参,参数,表,表,,由,由于,只,只有,一,一个,函,函数,故,故取,名,名main(,),),,由,由于,无,无返,回,回值,故,故类,型,型为void,,,,无,参,参数,输,输入,时,时,main,(,(),内,内参,数,数表,为,为空,。,。,(4,),),变量,说,说明,部,部分,,对,所,所用,的,的变,量,量进,行,行说,明,明;,(5,),),数据,输,输入,部,部分,,对,要,要使,用,用的,变,变量,赋,赋初,值,值,,可,可直,接,接或,间,间接,输,输入,,,,有,些,些是,在,在第,(,(4,),)部,分,分完,成,成(,即,即变,量,量直,接,接初,始,始化,),);,(6,),),执行,部,部分,,它,是,是整,个,个程,序,序的,核,核心,,,,一,般,般是,对,对程,序,序算,法,法用,结,结构,化,化程,序,序设,计,计方,法,法进,行,行描,述,述,,然,然后,将,将其,转,转化,成,成对,应,应的C语,言,言语,句,句;,(7,),),信息,输,输出,部,部分,,根,据,据要,求,求输,出,出所,求,求的,信,信息,或,或返,回,回结,果,果;,有,有些,是,是在,第,第(6),部,部分,一,一边,执,执行,一,一边,输,输出,。,。,如上,述,述程,序,序的,执,执行,部,部分,采,采用,函,函数,调,调用,则,则上,述,述程,序,序应,为,为,例3.2/*,求,求,二,二整,数,数之,和,和的,程,程序*/,#include/,预,预处,理,理,intadd(intx,inty);/,函,函数,声,声明,voidmain()/,函,函数,定,定义,inta,b;/,变,变量,说,说明,intsum;,scanf(%d%d,/,数,数据,输,输入,sum=add(a,b);/,执,执行,部,部分,printf(sum=%d,sum);/信息,输,输出,/*求和,函,函数,输,入,入参数为,二,二整数,,返,返回值为,其,其和*/,intadd(intx, int y)/函数,定,定义,intz;/ 变,量,量说明,z =x +y;/执行,部,部分,return z;/返回,结,结果,输入:,7 8,该程序的,运,运行结果,为,为:,sum=15,语句是C,语,语言程序,的,的基本元,素,素,语句,以,以分号为,结,结束标志,。,。程序中的,各,各函数模,块,块都是由,一,一定含义,的,的语句组,成,成的。,例:,charch=,H,;,/*分号,为,为语句结,束,束标志*/,inty= 7;,c=a+b;,printf(,“,“hello !,”,”),;,;,语句的分,类,类:,说明语句,用来对程,序,序中所使,用,用的各种,类,类型变量,及,及属性进,行,行说明,,按,按其所起,作,作用有时,也,也称为定,义,义语句。,执行语句,包括,表达式语,句,句、流程,控,控制语句,、,、函数调,用,用语句等,完,完成一定,运,运算操作,功,功能的语,句,句。,3.1.2 C,语,语言的语,句,句,说明语句,用来对程,序,序中所使,用,用的各种,类,类型变量,进,进行说明,,,,也称为,定,定义语句,。,。,说明语句,的,的格式: 数,据,据类型,变,变量名,列,列表;,例:inti,j ;/说,明,明了两个,整,整型变量i和j,说明语句,同,同时也可,以,以进行初,始,始化赋值,,,,如:,charch=,H,;,unsignedlongy =0x35847412 ;,执行语句,中,中所使用,的,的每一个,变,变量都必,须,须在此前,说,说明过。,2. 执,行,行语句。,一,一般包含,四,四大类:,表达式语,句,句(包括,空,空语句),复合语句,流程控制,语,语句,辅助控制,语,语句,(1)表,达,达式语句,任何一个,表,表达式加,上,上一个分,号,号就是一,条,条表达式,语,语句;,/表达,式,式语句,,通,通常是赋,值,值表达式,或,或函数调,用,用表达式,。,。,例: c=a+b;,sum= add( a, b),; /,赋,赋值语句,printf(,“,“hello !,”,”),;,; /函数调,用,用语句,;/空语句,(2)复,合,合语句,将若干语,句,句用一对,大,大括号括起,来,来就构成,了,了复合语,句,句。复合,语,语句的一,般,般格式为:,说明语句;,可执行语,句,句;,复合语句,在,在程序结,构,构上是以,整,整体出现,,,,相当于,程,程序块(,BLOCK),,当一个功,能,能必须用,多,多条语句,才,才能完成,时,时,就需,要,要使用复,合,合语句。,采,用,用,可,可,以,以,清,清,晰,晰,地,地,表,表,达,达,程,程,序,序,的,的,层,层,次,次,结,结,构,构,。,。,3.2,结,结,构,构,化,化,程,程,序,序,设,设,计,计,和,和,流,流,程,程,控,控,制,制,3.2.1结,构,构,化,化,程,程,序,序,设,设,计,计,3.2.2C,语,语,言,言,的,的,流,流,程,程,控,控,制,制,语,语,句,句,和,和,辅,辅,助,助,控,控,制,制,语,语,句,句,3.2.1,结,结,构,构,化,化,程,程,序,序,设,设,计,计,结,构,构,化,化,程,程,序,序,设,设,计,计,的,的,基,基,本,本,思,思,想,想,,,,任,何,何,程,程,序,序,都,都,可,可,以,以,用,用,三,三,种,种,基,基,本,本,结,结,构,构,表,表,示,示,:,:,顺,序,序,结,结,构,构,选,择,择,结,结,构,构,循,环,环,结,结,构,构,。,。,采,用,用,这,这,三,三,种,种,基,基,本,本,结,结,构,构,编,编,写,写,程,程,序,序,的,的,设,设,计,计,风,风,格,格,称,称,为,为,结,结,构,构,化,化,程,程,序,序,设,设,计,计,。,。,图,3.1,顺,序,序,结,结,构,构,示,示,意,意,图,图,顺,序,序,结,结,构,构:,按,按,语,语,句,句,顺,顺,序,序,依,依,次,次,执,执,行,行,。,。,/,通,过,过,语,语,句,句,书,书,写,写,顺,顺,序,序,自,自,然,然,实,实,现,现,inta,b;/,变,变,量,量,说,说,明,明,intsum;,scanf(,“,“%d%d,”,”,&a,&b,);/,输,输,入,入,sum=a+b;/,执,执,行,行,运,运,算,算,printf(,“,“sum=%d,”,”,sum);/,输,输,出,出,选,择,择,结,结,构,构,根,据,据,条,条,件,件,选,选,择,择,两,两,支,支,或,或,多,多,支,支,程,程,序,序,中,中,的,的,一,一,支,支,执,执,行,行,。,。,图3.2,选,择,择,结,结,构,构,示,示,意,意,图,图,由,两,两,分,分,支,支,选,选,择,择,结,结,构,构,可,可,以,以,派,派,生,生,出,出,另,另,一,一,种,种,基,基,本,本,结,结,构,构,,,,,多,多,分,分,支,支,选,选,择,择,结,结,构,构,。,。,/if,switch,语,语,句,句,选,选,择,择,运,运,算,算,符,符,实,实,现,现,if(a=0),printf(comein!);,else,printf(goaway!);,循,环,环,结,结,构,构,在,判,判,断,断,条,条,件,件,成,成,立,立,的,的,情,情,况,况,下,下,,,,,反,反,复,复,执,执,行,行,某,某,个,个,程,程,序,序,段,段,。,。,图3.3,循,环,环,结,结,构,构,示,示,意,意,图,图,/while,dowhile,以,以,及,及,/for,语,语,句,句,来,来,实,实,现,现,while(i=90&a=90&a=100)printf(,“,“A!);,elseprintf(,“,“b!);,2if单路,分,分支形式(,选,选择性执行,语,语该分支),scanf(“%f”,if (i60),printf(“不,及格,”);,printf(“%f,”,”,i);,在C语言程,序,序中,还常,用,用如下书写,形,形式:,if(x)等价于 if(x!=0),if(!x)等价于 if(x=0),如变量x为float,或,或double实型变,量,量,则与0,比,比较的if,语,语句建议如,下,下:,if (fabs(x)=90),grade= A;,elseif (i=70),grade=B;,elseif (i=60),grade=C;,elseif (i=0),grade=D;,putchar(grade);/输出,该,该生成绩等,级,级 也,可,可用 printf(,“,“%c/n,”,”,grade);,90100分,A,7090分,B,6070分,C,060分,D,例3.3,给,给某班学,生,生的一次考,试,试成绩分等,级,级. 90,分,分以上的为A,70分,到,到90分之,间,间的为B,60分到70分之间的,为,为C,60,分,分以下的得D。,Sample-3-3-1.c,算法2:,;,floati;/定义i表,示,示学生成绩,,,,,chargrade;/grade表示等,级,级,。,scanf(“%f”,/,输,输入学生成,绩,绩,if (i60),grade= D;,elseif (i70),grade=C;,elseif (i=90),grade= A;,elseif (i=70),grade=B;,elseif (i=60),grade=C;,elseif (i=0),grade=D;,putchar(grade);/输出,该,该生成绩等,级,级 也,可,可用 printf(,“,“%c/n,”,”,grade);,90100分,A,7090分,B,6070分,C,060分,D,例3.3,给,给某班学,生,生的一次考,试,试成绩分等,级,级. 90,分,分以上的为A,70分,到,到90分之,间,间的为B,60分到70分之间的,为,为C,60,分,分以下的得D。,Sample-3-3-1.c,例3.4,求,求一元二次,方,方程 ax,2,+bx+c=0的根,,实,实系数a,b,c从终,端,端输入。,算法分析:,先判断输入,的,的系数是否,满,满足方程是,二,二次方程,,判,判断a是否,为,为0。接着,应,应考虑两个,不,不同实根,,相,相同实根,,和,和复根三种,情,情况讨论:,当b,2,-4ac0时,有两,个,个不同的实,根,根,其中x1,x2为,其,其两个根;,当b,2,-4ac0时,有两,个,个相同的实,根,根,其中x1,x2为,其,其两个等根,;,;,当b,2,-4ac4*a*c),x1=(-b+sqrt(b*b-4*a*c)/(2*a);,x2=(-b-sqrt(b*b-4*a*c)/(2*a);printf(x1=%.2f,x2=%.2fn,x1,x2);,elseif,(b*b=4*a*c),x1=x2=(-b+sqrt(b*b-4*a*c)/(2*a);,printf(x1=x2=%.2fn,x1);,else,x3=-b/(2*a);,x4=sqrt(4*a*c-b*b)/(2*a);,printf(x1=%.2f+%.2fin,x3,x4);,printf(x2=%.2f-%.2fin,x3,x4);,Sample-3-4.c,该程,序,序的,运,运行,结,结果,(,(分5种,情,情况,),)为,:,:,(1,),)014/输入,x=-4/输出,(2,),)004/输入,theinputiserror/输出,(3,),)143/输入,x1=-1.00,x2=-3.00/输出,(4,),)144/输入,x1=x2=-2.00/输出,(5,),)124/输入,x1=-1+1.73i/输出,x2=-1-1.73i,if,多,多条,件,件分,支,支下,的,的流,程,程控,制,制,if,语,语,句,句的,不,不足,条件,表,表达,式,式的,结,结果,只,只有,真,真或,假,假两,种,种结,果,果,由,一,一个,条,条件,语,语句,只,只能,提,提供,两,两个,分,分支,供,供选,择,择。,多重if,语,语句,可,可以,实,实现,多,多重,分,分支,,,,但程序,结,结构,显,显得,繁,繁琐,欠,清,清晰,执,行,行效,率,率也,比,比较,低,低。,图3.8switch语,句,句的,流,流程,控,控制,3.4switch多,分,分支,选,选择,语,语句,switch,分,分支,选,选择,语,语句,,,,它,可,可以,结,结构,清,清晰,地,地直,接,接表,达,达多,分,分支,选,选择,执,执行,效,效率,更,更高,。,switch(表,达,达式),case判断,值,值1:,语句,组,组1;,break;,case判断,值,值2:,语句,组,组2;,break;,case判断,值,值n:,语句,组,组n;,default:,语句,组,组n+1;,break;,printf(“theend”);,使用switch,语,语句,注,注意,事,事项,1.switch(),后,后面,圆,圆括,号,号中,的,的表,达,达式,要,要求,结,结果,是,是整,数,数,,各,各个case,判,判断,值,值要,求,求是,整,整形,常,常量;switch,语,语句,比,比较,表,表达,式,式的,值,值与,某,某个case,后,后常,量,量值,相,相等,,,,则,从,从该case,后,后面,的,的第,一,一个,语,语句,开,开始,依,依次,执,执行,2.,各,各个case,和,和及,其,其下,面,面的,语,语句,组,组的,顺,顺序,是,是任,意,意的,,,,但,各,各个case,后,后面,的,的判,断,断值,必,必须,是,是不,同,同值,default,后,后无,判,判断,值,值,其,其功,能,能相,当,当与if,语,语句,中,中的else,。,。,switch,语,语句,形,形式,switch(表,达,达式),case,判,判断,值,值1:,语句,组,组1;,break;,case,判,判,断,断值2:,语句,组,组2;,break;,case,判,判,断,断值n-1:,case,判,判,断,断值n:,语句,组,组n;,default:,语句,组,组n+1;,break;,printf(“theend”);,switch语句,使,使用注意,事,事项,3. break,语,语句起着,退,退出switch-case结构的,作,作用,若,无,无此语句,,,,程序将,顺,顺序执行,下,下一个case语,句,句组。,当表达式,的,的结果值,与,与所有的case,的,的判断值,都,都不一致,时,时,程序,才,才执行default部分,的,的语句组,。,。default,部,部分不是,必,必须的。,5.对于,表,表达式的,多,多个结果,值,值执行相,同,同语句组,时,时,程序,的,的形式是,多,多个case重叠,。,。,switch语句,形,形式,#include,voidmain( ),floata,b,c;,intn;,printf(“,请,请输入两,数,数据:”);,scanf(“%f%f”,printf(“,请,请选择运,算,算种类:1 加法,;,;2 减,法,法;3,乘,乘法;4,除,除法”);,scanf(“%d”,switch (n),case1:c=a+b;break;,case2:c=a-b;break;,case3:c=a*b;break;,case4:if(b!=0) c=a/b;,elseprintf(,“,“data error”);,break;,default:printf(“,选,选择无效,”,”);,printf(“,结,结果为:%.2f,”,”,c);,例3.5.0,编,编程实现,:,:用户输,入,入两个数,据,据,选择,执,执行某种,四,四则运算,,,,输出结,果,果。,Sample 3-5-0.c,#defineESC0x11b;,#defineF10x3b00/F1键的键,值,值为0x3b00,#defineF20x3c00,#defineF30x3d00,#defineF40x3e00,#defineF50x3f00,#defineF60x4000,#include,#include,voidmain( ),unsignedint key_value;,key_value =bioskey(0);,switch (key_value),caseF1:F1功能处,理,理程序;,break;,caseF2:F2功能处,理,理程序;,break;,caseF3:,caseF4:F3,F4,相,相同功能,处,处理程序;,break;,caseF5:F5功能处,理,理程序;,break;,caseF6:F6功能处,理,理程序;,break;,default:,默,默认处,理,理程序;,break;,例3.5,编,编一,示,示意性的,菜,菜单处理,程,程序,,按,按下一功,能,能键,,执,执行响应,的,的功能处,理,理。,例3.6,分,分段函,数,数计算,,输,输入变量,数,数值x,,计,计算结果,。,。,注意:,面对问题,应按计,算,算机程序,设,设计的方,式,式来思考,对,对问题的,描,描述和解,决,决方案:,考,考虑变,量,量的定义(几个变,量,量,数据,类,类型),流,流程,控,控制语句,的,的选用,再,再编,程,程实现.,#include,void main( ),floatx,y;,printf(input thenumberx=);,scanf(%f,if(x=0 & x=2&x=4&x =6 & x8),y=4*x+4;,elseprintf(error in input datan);,printf(y=,.2f,y);,该程序,的,的运行,结,结果为,:,:,1.00/输,入,入,2.00/,输,输出,分析:,利,利用多,分,分支的if,语,语句形,式,式来编,写,写:,#include,voidmain(),floatx,y;,printf(inputthenumber x=);,scanf(%f,switch(int)x),case 0:,case 1:,y =x+ 1;,break;,case 2:,case 3:,y =2* x+2;,break;,case 4:,case 5:,y =3* x+3;,break;,case 6:,case 7:,y =4* x+4;,break;,default:,printf(errorinputdatan);,printf(y=%.2f , y);,Sample3-6-2.cpp,利用switch语,句,句同样,可,可以实,现,现上述,功,功能:,/输入学,生,生成绩,,,,判别,所,所属等,级,级Sample-3-3-2.c,#include,voidmain(),floatx,y;,printf(inputthenumber x=);,scanf(%f,switch,( (int) x/2 ),case 0:,y =x+ 1;,break;,case 1:,y =2* x+2;,break;,case 2:,y =3* x+3;,break;,case 3:,y =4* x+4;,break;,default:,printf(errorinputdatan);,break;,printf(y=%.2f , y);,更精巧,的,的程序:,3.5,循,循,环,环语句,3.5.1while,语,语句,3.5.2for语句,3.5.3do-while,语,语句,3.5.4循环语,句,句的嵌,套,套(多重循,环,环),循环控,制,制结构,是,是在条,件,件成立,时,时,反,复,复执行,循,循环体,内,内的程,序,序段.,C语言,中,中三种,循,循环流,程,程控制,语,语句:,3.5.1while,语,语句,while循,环,环语句,是,是首先,判,判断循,环,环执行,条,条件,当,当其成,立,立(非0值),时,时,,则反复,执,执行循,环,环体内,的,的程序,段,段.,图3.9 while语句,的,的流程,及,及语句,形,形式,while循,环,环的表,达,达式是,循,循环进,行,行的条,件,件。当,条,条件表,达,达式值,为,为真(,非,非零),时,时,执,行,行循环,体,体,为,假,假(等,于,于0),则,则循环,结,结束;,while(x),等,等价于while(x!=0);while(!x),等,等价于while(x = 0);,条件表达,式,式中一般,包,包括一个,能,能够改变,表,表达式的,变,变量,这,个,个变量称,为,为循环变,量,量。对于,循,循环变量,的,的初始化,应,应在while()语句,之,之前进行,。,。,3. 当,循,循环体不,需,需要实现,任,任何功能,时,时,可用,空,空语句作,为,为循环体,。,。while(ch=getchar()!=,A);,4. 循,环,环语句应,有,有出口。(通过循,环,环语句的,条,条件判断,或,或循环体,中,中break语句,退,退出循环)。,6. while,语,语句中条,件,件表达式,与,与if语,句,句中条件,表,表达式都,可,可以为各,种,种表达式,。,。,inti ,sum;,sum= 0;i= 1;,while (i =100),sum= sum +i ;,i +;,While语句使,用,用注意事,项,项,例3.7,用,用 while循,环,环语句编,写,写一求和,程,程序,#include,voidmain(),inti ,sum;,sum= 0;i= 1;,while (i =100),sum= sum +i ;,i +;,printf(sum= %dn, sum);,该程序的,运,运行结果,为,为:,sum=5050,要求1.n之和?,奇数之和?,十位数为3的数之,和,和?,并输出这,些,些数?,Sample-3-7,3.5.3 do-while语,句,句,图3.11 do-while语,句,句的流程,与,与语句形,式,式,先执行一,次,次循环体,再,再判断是,否,否循环下,一,一次!,例: inti=0;,do,printf(%3d, i+);,while(i5);,输出:012 34,while语句:,inti=0;,while(i5);,printf(%3d, i+);,输出:012 34,当inti=6; while语,句,句do.while语句,分,分别输出:?,(1)do-while循,环,环类似于while循环,,区,区别在于循环条件,判,判断位置,不,不同。do-while是在执,行,行一次循,环,环体结束,时,时判断是,否,否继续循,环,环。,(2)能,用,用while循环,和,和for,循,循环描述,的,的程序大多数情,况,况下都能用do-while循,环,环描述,比,比如上,节,节中的例,子,子也可用do-while,来,来编写。,(3)能,用,用do-while循环描,述,述的程序,一,一定能用while和for循环描,述,述。,do-while,语,语句与while,的,的比较,例3.9,利,利用dowhile,循,循环编写,求,求和程序,#include,voidmain(),inti=1, sum =0;,do,sum= sum +i ;,i +;, while( i=100);,printf(sum= %dn, sum);,该程序的,运,运行结果,为,为:,sum=5050,3.5.2 for语句,图3.10 for语句,的,的流程和,语,语句形式,使用说明:,for( i=0 ;i100; i+=5),printf(%dn,i);,等价于:,i=0;,for(; i100;),printf(%dn,i);,i+=5;,for循,环,环通常用,于,于描述循,环,环范围比,较,较明确。,循,循环变量,变,变化满足,“,“初值,、,、终值、,步,步长”型,变,变化规律.,如:for( i=0 ;i100;i+=5),printf(%dn,i);,for循,环,环中表达,式,式1和表,达,达式3还,可,可包含逗,号,号运算表,达,达式。,如:for (a=0,b=10; a100;a+=b),printf(%dn,a);,for(,表,表达式1; 表达,式,式2;,表,表达式3) 语句,注,注意事项:,表达式1,,,,表达式2和表达,式,式3可以,全,全部或部,分,分省掉,,但,但是分号,不,不能省,当省略,表,表达式2,时,时相当于,永,永真条件,(,(条件永,远,远成立),,,,即for(;)等同于for( ;1 ;),此种情,况,况下,只,有,有通过循,环,环体中使,用,用break或return语句来,控,控制循环,的,的结束。,当for,语,语句省略,了,了表达式1和3时,等效于while(表达,式,式2)循,环,环.,(2),循,循环体也,可,可以为空,语,语句,起,延,延迟一段,时,时间的作,用,用;如:,for(inti=0; i10000 ;i+);或for(int i=0 ;i10000; i+) ,(3)在for,循,循环体,内,内一般不,要,要操作循,环,环变量,以防for 循,环,环失控。,(4)注意for语句循,环,环量取值,区,区间以及条件,表,表达式2,的,的终止循,环,环条件。,Sample-3-7,如下2种写,法,法功能是相,同,同的,都是,循,循环N次,。,for (x=0,a=0 ; xN ; x+),a+=x;,for (x=0,a=0 ; x=N-1 ;x+),a+=x;,示例(a),循,循环变量,属,属于半开半,闭,闭区间示例(b),循,循环变量,属,属于闭区间,for (x=1,a=0; x=N ;x+),a+=x;,循环语句编,程,程注意:条,件,件表达式的,初,初始状态和,终,终止条件,,在编写程序,时,时应仔细推,敲,敲, 验算,程,程序执行到,此,此处时各有,关,关参数取值,情,情况.,例3.8,我,我们还是,用,用上一节的,例,例子,利用for循环,语,语句编写程,序,序求1到100 的和;,#include ,voidmain( ),inti ;,int sum ;,for (i = 1, sum = 0; i= 100; i+),sum += i ;,printf(sum = %d n, sum);,i=1,sum=0;,for (; i= 100; ),sum += i ;,i+;,i=1,sum=0;,while( i= 100 ),sum += i ;,i+;, Sample-3-7.cpp修改得,循环体部分,又,又包含循环,结,结构时,就,形,形成了多重,循,循环.,例如while循环语,句,句如下:,while(条件表达,式,式),循环体部分;,多重循环:,while(条件表达,式,式1),while(条件表达,式,式2),循环体部分2;,3.5.4,循,循环语,句,句的嵌套-,多,多重循环,循环语句组,合,合形成二重,循,循环的几种,形,形式:,(1) while(,)(2) while(),while( )for( ; ;,),(3) for( ; ;,)(4)for(, ; ; ),for (, ; ; )while(),编写多重循,环,环时应注意,以,以下问题:,(1) 对,于,于多重循环,,,,特别要注意循环有,关,关的变量赋,初,初值的位置:只需执行一,次,次的赋初值,操,操作应放在,最,最外层循环,开,开始执行之,前,前。,(2)内外循环变,量,量不应该同,名,名,否则将造,成,成循环控制,混,混乱,导致,死,死循环或计,算,算结果错误,。,。,(3)正确地区分,内,内外循环体,在内循环,执,执行的所有,语,语句必须用 括起,来,来组成复合,语,语句作为内,层,层循环体;,属,属于外循环,的,的语句应放,在,在内层循环,体,体之外,外,循,循环之中。,(4) 不,应,应该在循环,中,中执行的操,作,作应放在最,外,外层循环进,入,入之前或最,外,外层循环结,束,束后。,例:输出下,列,列由 *,组,组成的图,案,案,*,*,*,*,*,Sample 3-10-0,例3.10,编,编程显示输,出,出如下所示,的,的三角形的,程,程序,*,*,*,*,*,*,算法分析:,输出6行*,循环i=16,逐行输出字,符,符个数2*i-1,字符前空格,数,数6-i,#include ,voidmain(),int i,j;,for (i =0 ; i 6; i +)/共输出n行*字符,printf(“n,”,”);/回车,换,换行,for(j= 0; j 5-i; j +)/每行先,输,输出n-i,个,个空格, printf( );,for(j=0 ;j2*i+1 ;j+)/输出2i+1个字,符,符*, printf(*);,Sample3-10,例3.11,打,打印九九乘,法,法表,page77,Sample3-11,3.6,辅,辅助控制语,句,句,3.6.1break语句,3.6.2continue,语,语句,goto,语,语句和标号,return语句,3.6.1break语句,break,语,语句用于循,环,环语句和switch,语,语句。可使流程跳,出,出switch结构或,循,循环体,执行后面,的,的语句。,break,语,语句只能跳出一,层,层循环。,break,语,语句不能用,于,于循环体语,句,句和switch 语,句,句之外的任,何,何其它语句,。,。,for(int i=1;i=5;i+),sum2=0,for(int j=i;j32767),break;,sum1+=sum2;,if(sum232767|sum132767),break;,3.6.2continue,语,语句,结束本次循,环,环,即跳过,循,循环体后续,的,的语句,进,行,行下一次的,循,循环判定。,continue语句,和,和break语句的区,别,别是:,continue语句,只,只结束本次,循,循环体后续,语,语句的执行,,,,而不是跳,出,出循环。break语,句,句则是结束,整,整个循环语,句,句,执行程,序,序中后续语,句,句。,for(inti=1;i32767),break;,printf(,“,“End”);,for(inti=1;i32767),sum2=0;continue;,printf(,“,“End”);,例3.13,把,把0,100,之,之间,能,能被5整,除,除的,数,数输,出,出。,voidmain(),intn;,for(n=0;n=100;n+)/n从,数,数字0到100逐,个,个进,行,行测,试,试,if(n%5!=0)/,是,是否,能,能整,除,除,continue;/,不,不能,整,整除,则,则执,行,行下,一,一次,循,循环,printf(%dt,n);,printf(“ntheend);,if(n%5=0),printf(%dt,n);,Sample3-13,例3.14.,输,输入,一,一个,圆,圆的,半,半径,,,,输,出,出圆,的,的面,积,积。,要求:,(1).,允,允许,反,反复,的,的输,入,入半,径,径,,计,计算,并,并显,示,示圆,的,的面,积,积,,直,直到,输,输入,的,的半,径,径是0时,为,为止;,(2).,对,对输,入,入的,半,半径,进,进行,检,检查,,,,若,发,发现,是,是负,数,数将,提,提示,操,操作,者,者重,新,新输,入,入。,#include,#include,#definePI3.1415926,voidmain(),doubler,area;,while(1),printf(inputtheradius:);,scanf(%lf,if(fabs(r)1e-5),break;,elseif(r0),printf(theinputiserrorn);,continue;,area=PI*r*r;,printf(theareais:%lfn,area);,该程,序,序的,运,运行,结,结果,为,为:,inputtheradius:-1/输入,theinputiserror,inputtheradius:1,3.1415926,inputtheradius:0/,退出,整,整个do-while,循,循环。,Sample3-14.cpp,goto,语,语,句,句和,标,标号,page81,程序,中,中使,用,用goto语,句,句时,要,要求,和,和标,号,号配,合,合,,一,一般,形,形式,:,:,goto,标,标,号,号;,标号:,语,语句;,goto,语,语,句,句的,功,功能,是,是,,把,把程,序,序控,制,制转,移,移到,标,标号,指,指定,的,的语,句,句处,。,。既,执,执行goto,语,语句,之,之后,,,,程,序,序从,指,指定,标,标号,处,处的,语,语句,继,继续,执,执行,。,。,注,意,意:goto,语,语,句,句,常,常,用,用,的,的,用,用,法,法,是,是,用,用,它,它,退,退,出,出,多,多,重,重,循,循,环,环。,用goto,语,语,句,句,设,设,计,计,程,程,序,序,存,存,在,在,的,的,问,问,题,题,:,:,1.,破,破,坏,坏,结,结,构,构,化,化,设,设,计,计,风,风,格,格,。,。,2.goto,语,语,句,句,经,经,常,常,带,带,来,来,错,错,误,误,或,或,隐,隐,患,患,。,。,所,以,以,不,不,提,提,倡,倡,使,使,用,用goto,语,语,句,句,3.7,典,典,型,型,问,问,题,题,程,程,序,序,设,设,计,计,举,举,例,例,程,序,序,设,设,计,计,宗,宗,旨,旨,:,:,结,结,构,构,化,化,程,程,序,序,设,设,计,计,是,是,通,通,过,过,三,三,种,种,流,流,程,程,控,控,制,制,语,语,句,句,的,的,组,组,合,合,来,来,解,解,决,决,将,将,各,各,种,种,问,问,题,题.,算,算,法,法,设,设,计,计,灵,灵,活,活,多,多,样,样,,,,,要,要,熟,熟,练,练,掌,掌,握,握,和,和,应,应,用,用C,语,语,言,言,规,规,则,则,。,。,具,体,体,编,编,程,程,思,思,路,路,:,:分,析,析,问,问,题,题,中,中,涉,涉,及,及,的,的,数,数,据,据,信,信,息,息,设,设,计,计,数,数,据,据,输,输,入,入,接,接,口,口,定,定,义,义,所,所,需,需,变,变,量,量,;,;再,设,设,计,计,数,数,据,据,处,处,理,理,程,程,序,序,流,流,程,程,选,选,择,择,合,合,适,适,的,的,语,语,句,句,书,书,写,写,程,程,序,序,;,;,最,最,后,后输,出,出,处,处,理,理,结,结,果,果,定,义,义,变,变,量,量,时,时,注,注,意,意,数,数,据,据,类,类,型,型,取,取,值,值,范,范,围,围,,,,,运,运,算,算,处,处,理,理,过,过,程,程,也,也,要,要,注,注,意,意,数,数,据,据,类,类,型,型,的,的,自,自,动,动,转,转,换,换,等,等,规,规,则,则,,,,算,法,法,设,设,计,计,要,要,灵,灵,活,活,运,运,用,用,三,三,种,种,流,流,程,程,结,结,构,构,的,的,组,组,合,合,、,、,嵌,嵌,套,套,。,。,一典型问,题,题1-(求数列,和,和),例3.15,1,3,5,7,9
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!