C语言0506C程序流程设计.ppt

上传人:max****ui 文档编号:3377394 上传时间:2019-12-12 格式:PPT 页数:41 大小:873.31KB
返回 下载 相关 举报
C语言0506C程序流程设计.ppt_第1页
第1页 / 共41页
C语言0506C程序流程设计.ppt_第2页
第2页 / 共41页
C语言0506C程序流程设计.ppt_第3页
第3页 / 共41页
点击查看更多>>
资源描述
第五、六章C程序流程设计,选择型程序设计(ifelse,switch)循环型程序设计(for,while)辅助控制语句(break,continue,goto,return),2019/12/12,2,5.1关系运算符和表达式功能:比较两个常量、变量或表达式的值的大小符号:=!=结合方向:从左向右优先级:=(6)=!=(7)关系表达式的值:逻辑“真”和“假”,用1和0表示用途:循环语句和选择语句中,例ca+b/c(a+b)ab!=c/(ab)!=ca=bc/a=(bc),例inta=3,b=2,c=1,d,f;ab(ab)=cb+cbf=abc,例inta=3,b=2,c=1,d,f;ab/表达式值1(ab)=cb+cbf=abc,例inta=3,b=2,c=1,d,f;ab/表达式值1(ab)=c/表达式值1b+cbf=abc,例inta=3,b=2,c=1,d,f;ab/表达式值1(ab)=c/表达式值1b+cbf=abc,例inta=3,b=2,c=1,d,f;ab/表达式值1(ab)=c/表达式值1b+cb/d=1f=abc,例inta=3,b=2,c=1,d,f;ab/表达式值1(ab)=c/表达式值1b+cb/d=1f=abc/f=0,例:若a=0;b=0.5;x=0.3;则a=x=b的值为,例:若a=0;b=0.5;x=0.3;则a78在C中是允许的,值为,例:5278在C中是允许的,值为0,例:inti=1,j=7,a;a=i+(j%4!=0);则a=,例:inti=1,j=7,a;a=i+(j%4!=0);则a=2,例a0结果为A100结果为,例a0结果为1A100结果为0,关系运算请注意:(1)应避免对实数作相等或不等的判断如1.0/3.0*3.0=1.0结果为,关系运算请注意:(1)应避免对实数作相等或不等的判断如1.0/3.0*3.0=1.0结果为0,关系运算请注意:(1)应避免对实数作相等或不等的判断如1.0/3.0*3.0=1.0结果为0可改写为:fabs(1.0/3.0*3.0-1.0)ya=b|x=y!a|ab,例abb=5;!aa,例:if(xy)max=x;elsemax=y;,2019/12/12,5,5.3选择程序设计if语句(条件选择语句)if语句的三种形式形式一:格式:if(expression)statement执行过程:形式二:格式:if(expression)statement1elsestatement2执行过程:形式三:格式:执行过程:,if(expr1)statement1elseif(expr2)statement2elseif(expr3)statement3.elsestatementn,例:if(salary1000)index=0.4;elseif(salary800)index=0.3;elseif(salary600)index=0.2;elseif(salary400)index=0.1;elseindex=0;,2019/12/12,6,如:if(a=b,例考虑下面程序的输出结果:#includemain()intx,y;scanf(“%d,%d”,例考虑下面程序的输出结果:#includemain()intx,y;scanf(“%d,%d”,关于if语句的说明:if后面的表达式类型任意语句可以是复合语句if(x)if(x!=0)if(!x)if(x=0),CompileError!,2019/12/12,7,/*ch4_1.c*/#includemain()intx,y;printf(Enteraninteger:);scanf(%d,例1求一个数的绝对值,运行:Enteraninteger:-12integer:-12-absolutevalue:12,2019/12/12,8,/*ch4_2.c*/#includemain()inta,b;printf(Enterintegera:);scanf(%d,例2输入两个数并判断两数相等否,运行:Enterintegera:12Enterintegerb:12a=b,运行:Enterintegera:12Enterintegerb:9a!=b,2019/12/12,9,/*ch4_3.c*/#includemain()charc;printf(Enteracharacter:);c=getchar();if(c=0,例3判断输入字符种类,运行:Enteracharacter:Thecharacterisacontrolcharacter,运行:Enteracharacter:8Thecharacterisadigit,运行:Enteracharacter:DThecharacterisacapitalletter,运行:Enteracharacter:hThecharacterisalowerletter,运行:Enteracharacter:*Thecharacterisothercharacter,2019/12/12,10,if语句嵌套:,2019/12/12,11,例输入两数并判断其大小关系,/*ch4_4.c*/#includemain()intx,y;printf(Enterintegerx,y:);scanf(%d,%d,运行:Enterintegerx,y:12,23XYEnterintegerx,y:12,12X=Y,ifelse配对原则:缺省时,else总是和它上面离它最近的未配对的if配对,2019/12/12,12,例:if(a=b)if(b=c)printf(“a=b=c”);elseprintf(“a!=b”);,修改:if(a=b)if(b=c)printf(“a=b=c”);elseprintf(“a!=b”);,实现ifelse正确配对方法:加,例考虑下面程序输出结果:main()intx=100,a=10,b=20;intv1=5,v2=0;if(a0?a+b:a-b);,例x0?1:(x=0)?x:-x(c=ax60n”);break;.,例switch(score)case5:printf(“Verygood!”);case4:printf(“Good!”);case3:printf(“Pass!”);case2:printf(“Fail!”);default:printf(“dataerror!”);,运行结果:score为5时,输出:Verygood!Good!Pass!Fail!dataerror!,例voidmain()intx=1,y=0,a=0,b=0;switch(x)case1:switch(y)case0:a+;break;case1:b+;break;case2:a+;b+;break;case3:a+;b+;printf(“na=%d,b=%d”,a,b);,运行结果:a=2,b=1,2019/12/12,16,/*ch4_5.c*/#includemain()intc;printf(Entermornorhorother:);c=getchar();switch(c)casem:printf(nGoodmorning!n);break;casen:printf(nGoodnight!n);break;caseh:printf(nHello!n);break;default:printf(n?n);break;,例根据输入字母输出字符串,2019/12/12,17,6.1循环程序设计C语言中可以实现循环的语句if和goto构成循环while语句dowhile()语句for语句goto语句及用goto构成循环一般形式:功能:无条件转移,goto语句标号;.标号:语句;,警告:不能用整数作标号只能出现在goto所在函数内,且唯一只能加在可执行语句前面限制使用goto语句,2019/12/12,18,例用if和goto语句构成循环,求,/*ch5_1.c*/#includemain()inti,sum=0;i=1;loop:if(i=100)sum+=i;i+;gotoloop;printf(%d,sum);,sum=0+1sum=1+2=3sum=3+3=6sum=6+4sum=4950+100=5050,2019/12/12,19,例从键盘输入一组数据,以0结束输入,求数据和,/*ch5_11.c*/#includemain()intnumber,sum=0;read_loop:scanf(%d,2019/12/12,20,6.3循环程序设计while语句一般形式:执行流程:判断表达式,后执行循环体,while(表达式)循环体语句;,循环体有可能一次也不执行循环体可为任意类型语句下列情况,退出while循环条件表达式不成立(为零)循环体内遇break,return,goto无限循环:while(1)循环体;,2019/12/12,21,例while语句构成循环,求,/*ch5_2.c*/#includemain()inti,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%d,sum);,2019/12/12,22,例显示110的平方,/*ch5_21.c*/#includemain()inti=1;while(i=10)printf(%d*%d=%dn,i,i,i*i);i+;,运行结果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=100,2019/12/12,23,6.4循环程序设计dowhile()语句一般形式:执行流程:特点:先执行循环体,再判断至少执行一次循环体可转化为while循环,do循环体语句;while(表达式);,2019/12/12,24,例dowhile语句构成循环,求,/*ch5_3.c*/#includemain()inti,sum=0;i=1;dosum+=i;i+;while(i=100);printf(%d,sum);,2019/12/12,25,例while和dowhile比较,/*ch5_4.c*/#includemain()inti=1,sum=0;scanf(%d,#includemain()inti=1,sum=0;scanf(%d,2019/12/12,26,6.5循环程序设计for语句一般形式:执行流程:一般应用方式:,for(exp1;exp2;exp3)循环体语句;,for(循环变量赋初值;循环条件;循环变量增值)循环体语句;,expr1,expr2,expr3类型任意exp1,exp2,exp3都可省略,但分号不可省无限循环:for(;)for语句可以转换成while结构,2019/12/12,27,例1#includemain()inti=0;for(i=0;i10;i+)putchar(a+i);,运行结果:abcdefghij,例2#includemain()inti=0;for(;i10;i+)putchar(a+i);,例3#includemain()inti=0;for(;i10;)putchar(a+(i+);,例4#includemain()inti=0;for(;i10;putchar(a+i),i+);,例:多种方式连续输出多个字符,2019/12/12,28,例:打印加法表#includemain()inti,j,k;for(i=0,j=100;i=j;i+,j-)k=i+j;printf(%d+%d=%dn,i,j,k);,例:打印输入的多个字符#includemain()charc;for(;(c=getchar()!=n;)printf(%c,c);,例:根据输入打印多个字符#includemain()inti,c;for(i=0;(c=getchar()!=n;i+=3)printf(%c,i+c);,2019/12/12,29,例梯形法求数值积分,#includemain()floata,b;doubles,h;doublef(doublex);intn,i;printf(Inputintegralareaa,b:);scanf(%f,%f,doublef(doublex)return(sqrt(4.0-x*x);,2019/12/12,30,(1)while()while().,(2)dodowhile();.while();,(3)while()dowhile();.,(4)for(;)dowhile();while().,循环的嵌套三种循环可互相嵌套,层数不限外层循环可包含两个以上内循环,但不能相互交叉嵌套循环的执行流程嵌套循环的跳转禁止事项:从外层跳入内层跳入同层的另一循环向上跳转,2019/12/12,31,例循环嵌套,输出九九表,/*ch5_5.c*/#includemain()inti,j;for(i=1;i10;i+)printf(%4d,i);printf(n-n);for(i=1;i10;i+)for(j=1;j10;j+)printf(j=9)?%4dn:%4d,i*j);,2019/12/12,32,for(i=1;i10;i+)for(j=1;j=a,2019/12/12,36,6.8辅助控制语句continue语句功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断说明:只能用于循环语句中,2019/12/12,37,例求输入的十个整数中正数的个数及其平均值,/*ch5_12.c*/#includemain()inti,num=0,a;floatsum=0;for(i=0;i=1e-6)pi=pi+t;n=n+2;s=-s;t=s/n;pi=pi*4;printf(pi=%10.6fn,pi);,2019/12/12,39,例2求Fibonacci数列1,1,2,3,5,8,的前40个数,/*ch5_7.c*/#includemain()longintf1,f2;inti;f1=1;f2=1;for(i=1;i=a,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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