《C程序流程设计》PPT课件

上传人:lisu****2020 文档编号:245254088 上传时间:2024-10-08 格式:PPT 页数:37 大小:600KB
返回 下载 相关 举报
《C程序流程设计》PPT课件_第1页
第1页 / 共37页
《C程序流程设计》PPT课件_第2页
第2页 / 共37页
《C程序流程设计》PPT课件_第3页
第3页 / 共37页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,你现在所处的位置:,首页,C语言教学,幻灯片版,第四章 C程序流程设计,*,第四章 C程序流程设计,C语句概述,程序的三种基本结构,选择型程序设计,循环型程序设计,辅助控制语句,4.1,C语句概述,C语句:以“;”作分隔符,编译后产生机器指令.,C语句分类,表达式语句:表达式加分号构成。,空语句:;,程序控制语句(9种):,if()else,switch,for(),while(),dowhile(),continue,break,goto,return,分支,循环,辅助控制,如 total=total+limit;,a=3;,func();,printf(“Hello,world!n”);,:用 括起来的一组语句,一般形式:,数据说明部分;,执行语句部分;,说明:,“”后不加分号,语法上和单一语句相同,复合语句可嵌套,复合语句,结构化程序设计,基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto),结构化程序:由三种基本结构反复嵌套构成的程序叫,优点:结构清晰,易读,提高程序设计质量和效率,三种基本结构,顺序结构,A,B,A,B,流程图,N-S图,4.2,程序的三种基本结构,P,A,B,真,假,P,B,A,真,假,A1,A2,Ai,An,k=k2,k=k1,k=kn,k=ki,.,.,二分支选择结构,多分支选择结构,选择结构,当型循环结构,直到型循环结构,P,A,假,真,当P为真,A,A,P,真,假,A,直到P为真,注:A,B,A1.An可以是一个简单语句,也可以是一个基本结构,循环结构,if语句,(条件选择语句),if语句的三种形式,形式一:,格式:,if(expression),statement,执行过程:,expr,statement,非0,=0,例:if(xy),printf(“%d”,x);,expr,statement1,statement2,非0,=0,形式二,:,格式,:,if(expression),statement1,else,statement2,执行过程:,例:if(xy)max=x;,else max=y;,4.3,选择型程序设计,三:,格式:,if(expr1)statement1,else if(expr2)statement2,else if(expr3)statement3,.,else statementn ,expr1,statemnt1,非0,=0,expr2,expr3,statemntn,statemnt3,statemnt2,非0,非0,=0,=0,执行过程:,例: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;,选择型程序设计形式,如:if(a=b,if(3)printf(“OK”);,if(a)printf(“%d”,a);,if,后面的表达式类型任意,语句可以是复合语句,if(x),if(x!=0),if(!x),if(x=0),例 考虑下面程序的输出结果:,#include,main(),int x,y;,scanf(“%d,%d”,if(xy),x=y;y=x;,else,x+;y+;,printf(“%d,%dn”,x,y);,Compile Error!,说明:,:,一般形式:,if(expr1),if(expr2)statement1,else statement2,else,if(expr3)statement3,else statement4,内嵌if,内嵌if,if(expr1),if(expr2),statement1,else,statement2,内嵌if,if(expr1),if(expr2),statement1,else,statement3,内嵌if,if(expr1),statement1,else,if(expr3),statement3,else,statement4,内嵌if,if语句嵌套,/*ch4_4.c*/,#include,main(),int x,y;,printf(Enter integer x,y:);,scanf(%d,%d,if(x!=y),if(xy)printf(XYn);,else printf(XYn);,else,printf(X=Yn);,运行:Enter integer x,y:12,23,XY,Enter integer x,y:12,12,X=Y,例 输入两数并判断其大小关系,缺省 时,else总是和它上面离它最近的未配对的if配对,if(),if(),if(),else.,else.,else.,if else 配对原则:,例:if(a=b),if(b=c),printf(“a=b=c”);,else,printf(“a!=b”);,修改:if(a=b),if(b=c),printf(“a=b=c”);,else,printf(“a!=b”);,实现if else 正确配对方法:加,实现if else 正确配对方法,一般形式:,switch(表达式),case E1:,语句组 1;,break;,case E2:,语句组 2;,break;,.,case En:,语句组 n;,break;,default:,语句组;,break;,执行过程,:,switch,表达式,语句组1,语句组2,语句组n,语句组,.,E 1,E 2,En,default,case,switch语句,(,开关分支语句,),:,E1,E2,En,是,常量表达式,且值必须互不相同,语句标号作用,必须用,break,跳出,case,后可包含多个可执行语句,且不必加,switch,可嵌套,多个,case,可共用一组执行语句,如:,case A:,case B:,case C:,printf(“score60n”);,break;,.,说明:,例 switch(score),case 5:printf(“Very good!”);,case 4:printf(“Good!”);,case 3:printf(“Pass!”);,case 2:printf(“Fail!”);,default :printf(“data error!”);,运行结果:score为5时,输出:,Very good!Good!Pass!Fail!data error!,例子(1),/*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)根据输入字母输出字符串,概述,C语言可实现循环的语句:,用goto 和 if 构成循环,while 语句,do while 语句,for 语句,goto语句及用goto构成循环,goto语句一般格式:,goto,语句标号,;,.,标号:语句,;,4.4,循环型程序设计,功能:无条件转移语句,说明:,不能用整数作标号,只能出现在,goto,所在函数内,且唯一,只能加在可执行语句前面,限制使用,goto,语句,4.4,循环型程序设计(1),/*ch5_1.c*/,#include,main(),int i,sum=0;,i=1;,loop:,if(i=100),sum+=i;,i+;,goto loop,;,printf(%d,sum);,sum=0+1,sum=1+2=3,sum=3+3=6,sum=6+4,sum=4950+100=5050,循环初值,循环终值,循环变量增值,循环条件,循环体,例 用if 和goto语句构成循环,一般形式,:,while(表达式),循环体语句;,执行流程,:,expr,循环体,假(0),真(非0),while,while,语句,一般形式,:,while(表达式),循环体语句;,执行流程,:,expr,循环体,假(0),真(非0),while,while,语句形式和执行流程,特点:先判断表达式,后执行循环体,说明:,循环体有可能一次也不执行,循环体可为任意类型语句,下列情况,退出,while,循环,条件表达式不成立(为零),循环体内遇,break,return,goto,无限循环,:while(1),循环体,;,While语句特点和说明,用while循环求,/*ch5_2.c*/,#include,main(),int i,sum=0;,i=1;,while(i=100),sum=sum+i;,i+;,printf(%d,sum);,循环初值,循环终值,循环变量增值,循环条件,循环体,例子,/*ch5_21.c*/,#include,main(),int i=1;,while(i=10),printf(%d*%d=%dn,i,i,i*i);,i+;,运行结果:,1*1=1,2*2=4,3*3=9,4*4=16,5*5=25,6*6=36,7*7=49,8*8=64,9*9=81,10*10=100,例 显示110的平方,一般形式:,do,循环体语句;,while(表达式);,执行流程,:,do,循环体,expr,假(0),真(非0),while,dowhile,语句,特点:先执行循环体,后判断表达式,说明:,至少执行一次循环体,dowhile,可转化成,while,结构,expr,循环体,假(0),真(非0),循环体,While循环,dowhile,语句特点和说明,一般形式:,for(,expr1,;,expr2,;,expr3,),循环体语句;,执行流程,:,expr2,循环体,假(0),真(非0),for,expr1,expr3,for,语句,:,for(循环变量赋初值;循环条件;循环变量增值),循环体语句;,说明:,for,语句中,expr1,expr2,expr3,类型任意,都可省略,但分号;不可省,无限循环,:for(;),for,语句可以转换成,while,结构,expr1;,while(expr2),循环体语句;,expr3;,for,语句一般应用形式,例,:,#include,main(),int i=0;,for(i=0;i10;i+),putchar(a+i);,运行结果: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+),;,例子,0,y,x,a,a+h,a+ih,a+(i+1)h,b,f(x),例 (f0r)梯形法求数值积分,三种循环可互相嵌套,层数不限,外层循环可包含两个以上内循环,但不能相互交叉,嵌套循环的执行流程,(1)while(),while(),.,(2)do,do,while();,.,while();,(3)while(),do,while();,.,(4)for(;),do,while();,while(),.,内循环,外循环,内循环,嵌套循环的跳转,禁止:,从外层跳入内层,跳入同层的另一循环,向上跳转,循环的嵌套,i10,printf,假(0),真(非0),i=1,j+,j=1,j10,真(非0),假(0),i+,for(i=1;i10
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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