程序流程设计2实用教案_第1页
程序流程设计2实用教案_第2页
程序流程设计2实用教案_第3页
程序流程设计2实用教案_第4页
程序流程设计2实用教案_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、 :用 括起来的一组语句 一般形式(xngsh): 数据说明部分; 执行语句部分; 说明: “”后不加分号 语法上和单一语句相同 复合语句可嵌套复合(fh)语句第1页/共36页第一页,共37页。 结构化程序设计 基本思想:任何程序都可以用三种基本结构表示,限制(xinzh)使用无条件转移语句(goto) 结构化程序:由三种基本结构反复嵌套构成的程序叫 优点:结构清晰,易读,提高程序设计质量和效率 三种基本结构 顺序结构ABAB流程图N-S图4.2 4.2 程序的三种基本程序的三种基本(jbn)(jbn)结构结构第2页/共36页第二页,共37页。PAB真假PBA真假kA1A2AiAnk=k2k=

2、k1k=knk=ki.l二分支选择二分支选择(xunz)结构结构l多分支多分支(fnzh)选择结构选择结构选择选择(xunz)结构结构第3页/共36页第三页,共37页。l当型循环(xnhun)结构l直到(zhdo)型循环结构PA假真当P为真AAP真假A直到P为真注:A,B,A1.An可以是一个简单语句(yj),也可以是一个基本结构循环结构循环结构第4页/共36页第四页,共37页。 if语句(yj)(条件选择语句(yj)) if语句(yj)的三种形式 形式一: 格式:if (expression) statement 执行过程:exprstatement非0=0例:if (xy) printf(

3、“%d”,x);exprstatement1statement2非0=0l形式二:l格式(g shi):if (expression) l statement1l elsel statement2l执行过程:例:if (xy) max=x; else max=y;4.3 4.3 选择选择(xunz)(xunz)型程序设计型程序设计第5页/共36页第五页,共37页。 三: 格式(g shi):if ( expr1 ) statement1else if (expr2 ) statement2else if (expr3 ) statement3. else statementn expr1sta

4、temnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0u执行(zhxng)过程: 例:if (salary1000) index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400) index=0.1; else index=0; 选择(xunz)型程序设计形式第6页/共36页第六页,共37页。如:if(a=b&x=y) printf(“a=b,x=y”); if(3) printf(“OK”); if(a)

5、printf(“%d”,a);lif后面的表达式类型(lixng)任意u语句(yj)可以是复合语句(yj)u if(x) if(x!=0)u if(!x) if(x=0)例 考虑下面程序的输出(shch)结果: #include main() int x,y; scanf(“%d,%d”,&x,&y); if(xy) x=y; y=x; else x+; y+; printf(“%d,%dn”,x,y);Compile Error!说明:说明:第7页/共36页第七页,共37页。v :v 一般(ybn)形式:if (expr1) if (expr2) statement1 els

6、e statement2else if(expr3) statement3 else statement4内嵌if内嵌ifif (expr1) if (expr2) statement1 else statement2内嵌ifif (expr1) if (expr2) statement1else statement3 内嵌ifif (expr1) statement1else if(expr3) statement3 else statement4内嵌ifif语句语句(yj)嵌套嵌套第8页/共36页第八页,共37页。/*ch4_4.c*/#include main() int x,y; pr

7、intf(Enter integer x,y:); scanf(%d,%d,&x,&y); if(x!=y) if(xy) printf(XYn); else printf(XYn); else printf(X=Yn);运行(ynxng):Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Y例 输入(shr)两数并判断其大小关系第9页/共36页第九页,共37页。 缺省 时,else总是和它上面(shng min)离它最近的未配对的if配对if()if()if()else.else.else.if else 配对(pi d

8、u)原则:第10页/共36页第十页,共37页。例: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);修改(xigi): if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);实现if else 正确(zhngqu)配对方法:加 实现实现if else 正确正确(zhngqu)配对方法配对方法第11页/共36页第十一页,共37页。一般(ybn)形式:switch( 表达式) case E1: 语句(yj)组 1; break; case E2: 语句(yj)组 2; break; .

9、 case En: 语句(yj)组 n; break; default: 语句(yj)组 ; break; v执行(zhxng)过程:switch表达式语句组1语句组2语句组n语句组.E 1E 2Endefaultcase switch语句语句(开关分支语句开关分支语句)第12页/共36页第十二页,共37页。v:vE1,E2,En是常量表达式,且值必须互不相同v语句(yj)标号作用,必须用break跳出vcase后可包含多个可执行语句(yj),且不必加 vswitch可嵌套v多个case可共用一组执行语句(yj)如: case A: case B: case C: printf(“score6

10、0n”); break; .说明说明(shumng)(shumng):第13页/共36页第十三页,共37页。例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); 运行结果(ji gu):score为5时,输出: Very good! Good! Pass! Fail! data error!例子(l zi)(1)第14页/共36页第十四页,共3

11、7页。/*ch4_5.c*/#include main() int c; printf(Enter m or n or h or other:); c=getchar(); switch(c) case m: printf(nGood morning!n);break; case n: printf(nGood night!n); break; case h: printf(nHello!n); break; default : printf(n?n); break; 例子(2) 根据输入(shr)字母输出字符串第15页/共36页第十五页,共37页。 概述 C语言可实现(shxin)循环的语句

12、: 用goto 和 if 构成循环 while 语句 do while 语句 for 语句 goto语句及用goto构成循环 goto语句一般格式: goto 语句(yj)标号; .标号:语句(yj); 4.4 4.4 循环型程序设计循环型程序设计(chn x sh j)(chn x sh j)第16页/共36页第十六页,共37页。v功能:无条件转移(zhuny)语句v说明:v不能用整数作标号v只能出现在goto所在函数内,且唯一v只能加在可执行语句前面v限制使用goto语句4.4 循环型程序设计(chn x sh j)(1)第17页/共36页第十七页,共37页。1001nn/*ch6_1.c

13、*/#include main() int i,sum=0; i=1;loop: if(i=100) sum+=i; i+; goto loop; printf(%d,sum);sum=0+1sum=1+2=3sum=3+3=6sum=6+4sum=4950+100=5050循环初值循环终值循环变量增值循环条件循环体例 用if 和goto语句构成(guchng)循环第18页/共36页第十八页,共37页。一般(ybn)形式:while(表达式) 循环体语句(yj);v执行(zhxng)流程:expr循环体假(0)真(非0)whilewhile语句语句第19页/共36页第十九页,共37页。一般(y

14、bn)形式:while(表达式) 循环体语句(yj);v执行(zhxng)流程:expr循环体假(0)真(非0)whilewhile语句形式和执行流程语句形式和执行流程第20页/共36页第二十页,共37页。v特点:先判断表达式,后执行循环体v说明:v循环体有可能一次也不执行v循环体可为任意类型语句(yj)v下列情况,退出while循环v条件表达式不成立(为零)v循环体内遇break,return,gotov无限循环: while(1)v 循环体;While语句语句(yj)特点和说明特点和说明第21页/共36页第二十一页,共37页。用while循环求 1001nn/*ch6_2.c*/#incl

15、ude main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum);循环初值循环终值循环变量增值循环条件循环体例子(l zi)第22页/共36页第二十二页,共37页。/*ch5_21.c*/#include main() int i=1; while(i=10) printf(%d*%d=%dn,i,i,i*i); i+; 运行(ynxng)结果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=100例 显示(xinsh)110的平方第23页/共36页第

16、二十三页,共37页。一般(ybn)形式:do 循环体语句(yj); while(表达式);v执行(zhxng)流程:do循环体expr假(0)真(非0)whiledowhile语句语句第24页/共36页第二十四页,共37页。v特点:先执行循环体,后判断表达式v说明:v至少(zhsho)执行一次循环体vdowhile可转化成while结构expr循环体假(0)真(非0)循环体While循环dowhile语句语句(yj)特点和说明特点和说明第25页/共36页第二十五页,共37页。v一般(ybn)形式:for(expr1 ; expr2 ; expr3) 循环体语句(yj);v执行(zhxng)流程

17、:expr2循环体假(0)真(非0)forexpr1expr3for语句语句第26页/共36页第二十六页,共37页。v:for(循环变量(binling)赋初值;循环条件;循环变量(binling)增值)循环体语句;v说明:vfor语句中expr1, expr2 ,expr3 类型任意,都可省略,但分号;不可(bk)省v无限循环: for(;)vfor语句可以转换成while结构expr1;while(expr2)循环体语句(yj);expr3;for语句一般应用形式语句一般应用形式第27页/共36页第二十七页,共37页。例:#include main( ) int i; for(i=0;i1

18、0;i+) putchar(a+i); 运行(ynxng)结果:abcdefghij例:#include main( ) int i=0; for(;i10;i+) putchar(a+i); 例:#include main( ) int i=0; for(;i10;) putchar(a+(i+); 例:#include main( ) int i=0; for(;i10;putchar(a+i),i+) ; 例子(l zi)第28页/共36页第二十八页,共37页。); 1; 1()*(*)()(*5 . 0)()()(2) 1()(2) 1()(21110iniihiafhssbfafhs

19、ihafhbfafhhiafihafhShiafihafhsnabhninii迭代:0yxa a+ha+iha+(i+1)hbf(x)dxxxfba24)(例 (f0r)梯形(txng)法求数值积分第29页/共36页第二十九页,共37页。v三种循环可互相嵌套,层数不限v外层循环可包含(bohn)两个以上内循环,但不能相互交叉v嵌套循环的执行流程(1) while() while() . (2) do do while( ); . while( );(3) while() do while( ); . (4) for( ; ;) do while(); while() .内循环外循环内循环v嵌套

20、循环的跳转v禁止:v从外层跳入内层(ni cn)v跳入同层的另一循环v向上跳转循环循环(xnhun)(xnhun)的嵌套的嵌套第30页/共36页第三十页,共37页。i10printf假(0)真(非0)i=1j+j=1j10真(非0)假(0)i+for(i=1;i10;i+) for(j=1;j10;j+) printf(j=9)?%4dn:%4d,i*j);外循环内循环循环循环(xnhun)(xnhun)的嵌的嵌套(图解)套(图解)第31页/共36页第三十一页,共37页。 4.5 4.5 辅助辅助(fzh)(fzh)控制语句控制语句 break语句 功能(gngnng):在循环语句和switch语句中,终止并跳出循环体或开关体 说明: break只能终止并跳出最近一层的结构 break不能用于循环语句和switch语句之外的任何其它语句之中第32页/共36页第三十二页,共37页。4.5 4.5 辅助控制语句辅助控制语句(

温馨提示

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

评论

0/150

提交评论