收藏 分销(赏)

程序流控制.ppt

上传人:pc****0 文档编号:13876941 上传时间:2026-04-29 格式:PPT 页数:20 大小:321.50KB 下载积分:10 金币
下载 相关 举报
程序流控制.ppt_第1页
第1页 / 共20页
程序流控制.ppt_第2页
第2页 / 共20页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四章,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,”);,复合语句:用,括起来的一组语句,一般形式:,数据说明部分;,执行语句部分;,说明:,“,”,后不加分号,语法上和单一语句相同,复合语句可嵌套,例,:,z=x+y;,t=z/100;,pritnf(“%f”,t,);,4.2,赋值语句定义:由赋值表达式加上一个分号构成注意事项()“”是运算符()赋值表达式可以包括在其它表达式之中例,if(a=b)0)t=a,格式,:,putchar,(c),参数,:,c,为字符常量、变量或表达式,功能:把字符,c,输出到显示器上,返值:正常,为显示的代码值;出错,为,EOF(-1),4.3,数据输入与输出,在中的实现,C,语言无,I/O,语句,,I/O,操作由函数实现,#,include,数据输出,字符输出函数,/*,ch3_1.c*/,#include,main(),int,c;,char a;,c=65;a=B;,putchar(c,);,putchar(n,);,putchar(a,);,运行结果:,A,B,例,格式:,printf,(,“,格式控制串,”,,输出表),功能:按指定格式向显示器输出数据,返值:正常,返回输出字节数;出错,返回,EOF(-1),格式输出函数,输出表:要输出的数据(可以没有,多个时以“,”分隔),格式控制串:包含两种信息,格式说明:,%,修饰符,格式字符,,用于指定输出格式,普通字符或转义序列:原样输出,格式字符,d,i,x,X,o,u,c,s,e,E,f,g,%,格式字符:,十六进制无符号整数,不带符号十进制整数,十进制整数,指数形式浮点小数,单一字符,字符串,八进制无符号整数,小数形式浮点小数,e,和,f,中较短一种,百分号本身,int,a=567;printf(“%d”,a);,int,a=255;printf(“%x”,a);,int,a=65;printf(“%o”,a);,int,a=567;printf(“%u”,a);,char a=65;printf(“%c”,a);,printf(“%s”,“,ABC,”);,float a=567.789;printf(“%e”,a);,float a=567.789;printf(“%f”,a);,float a=567.789;printf(“%g”,a);,printf,(“%”);,567,ff,101,567,A,ABC,5.677890,e+02,567.789000,567.789,%,说明,格式字符要用小写,格式字符与输出项个数应相同,按先后顺序一一对应,输出转换,:,格式字符与输出项类型不一致,自动按指定格式输出,例,main(),unsigned,int,u=65535;,printf(”u,=%dn,u);,输出结果:,u=-1,例,int,a=3,b=4;,printf(,“,%d,%dn,”,a,b);,printf(,“,a,=%d,b=%dn,”,a,b);,例,int,a=3,b=4;,printf(“%d,%dn”,a,b);,printf(“a,=%d,b=%dn”,a,b);,输出结果,:,3 4,a=3,b=4,11,11,11,11,11,11,11,11,65535,附加格式说明符(修饰符),.n,对实数,指定小数点后位数,(,四舍五入,),对字符串,指定实际输出位数,修饰符,功 能,m,输出数据域宽,数据长度,m,左补空格,;,否则按实际输出,输出数据在域内左对齐(缺省右对齐,),-,指定在有符号数,的正数前显示正号(+),+,输出数值时指定左面不使用的空位置自动填,0,0,在八进制和十六进制数前显示前导0,0,x,#,在,d,o,x,u,前,指定输出精度为,long,型,在,e,f,g,前,指定输出精度为,double,型,l,例,int,a=1234;,float f=123.456;,char,ch,=a;,printf(“%8d,%2dn”,a,a);printf(“%f,%8f,%8.1f,%.2f,%.2en”,f,f,f,f,f);,printf(“%3cn”,ch);,运行,1234,1234,结果:,123.456000,123.456000,123.5,123.46,1.23,e+02,a,例,static char a=“Hello,world!”,printf(“%sn%15sn%10.5sn%2.5sn%.3sn”,a,a,a,a,a);,运行结果:,Hello,world!,Hello,world!,Hello,Hello,Hel,例,m.n,例,int,a=1234;,float f=123.456;,static char c=“Hello,world!”;,printf(“%8d,%-8dn”,a,a);,printf(“%10.2f,%-10.1fn”,f,f);,printf(“%10.5s,%-10.3sn”,c,c);,运行结果:,1234,1234,123.46,123.5,Hello,Hel,例,-,例,int,a=1234;,float f=123.456;,printf(“%08dn”,a);,printf(“%010.2fn”,f);,printf(“%0+8dn”,a);,printf(“0+10.2fn”,f);,例,0、+,例,int,a=123;,printf(“%o,%#o,%X,%#Xn”,a,a,a,a,);,例,#,例,long a=65536;,printf(“%d,%8ldn”,a,a);,例,l,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,/00001234,/0000123.46,/000+1234,/000+123.46,/173,0173,7B,0X7B,/0,65536,格式,:,getchar,(),功能:从键盘读一字符,返值:正常,返回读取的代码值;出错,返回,EOF(-1),数据输入,字符输入函数,例,/*,ch3_4.c*/,#include,main(),int,c;,printf(Enter,a character:);,c=,getchar,();,printf(%c,-hex%xn,c,c);,运行结果:,Enter a character:A,A-hex41,格式输入函数,格式,:,scanf,(,“,格式控制串,”,,地址表),功能:按指定格式从键盘读入数据,存入地址表指定的,存储单元中,并按回车键结束,返值:正常,返回输入数据个数,地址表:变量的地址,常用取地址运算符,&,格式字符,:,d,i,o,x,u,c,s,f,e,例,scanf(“%d”,&a,);,输入:10,则,a=10,例,scanf(“%x”,&a,);,输入:11,则,a=17,附加格式说明符(修饰符),l,修饰符,功 能,h,m,*,用于,d,o,x,前,指定输入为,short,型整数,用于,d,o,x,前,指定输入为,long,型整数,用于,e,f,前,指定输入为,double,型实数,指定输入数据宽度,遇空格或不可转换字符则结束,抑制符,指定输入项读入后不赋给变量,例,scanf(“%4d%2d%2d”,输入 19991015,则1999,yy,10 mm,15,dd,例,scanf(“%3d%*4d%f”,输入 12345678765.43,则123,k,8765.43f,例,scanf(“%2d,%*3d,%2d”,输入 12,345,67,则12,a,67b,例,scanf(“%3c%2c”,输入,abcde,则,ac1,d c2,输入分隔符的指定,一般以空格、,TAB,或回车键作为分隔符,其它字符做分隔符:格式串中两个格式符间字符,例,scanf(“%d%o%x”,&a,&b,&c,);,printf(“a,=%d,b=%d,c=%dn”,a,b,c);,输入 123 123 123,输出,a=123,b=83,c=291,例,scanf(“%d:%d:%d”,&h,&m,&s,);,输入 12:30:45,则12,h,30 m,45 s,例,scanf(“%d,%d”,&a,&b,),输入 3,4,则3,a,4 b,例,scanf(“a,=%d,b=%d,c=%d”,输入,a=12,b=24,c=36,说明:,用“%,c”,格式符时,空格和转义字符作为有效字符输入,如,scanf(“%c%c%c”,若输入,a,b,c,则,ac1,c2,b c3,输入数据时,遇以下情况认为该数据结束:,遇空格、,TAB、,或回车,遇宽度结束,遇非法输入,如,scanf(“%d%c%f”,&a,&b,&c,);,若输入1234,a123,o,.26,则 1234,a,a b,123 c,输入函数留下的“垃圾”:,例,int,x;,char,ch,;,scanf(“%d”,&x,);,ch,=,getchar,();,printf(“x,=%,d,ch,=%,dn”,x,ch,);,执行:123,输出:,x=123,ch=10,例,int,x;,char,ch,;,scanf(“%d”,&x,);,scanf(“%c”,&ch,);,printf(“x,=%,d,ch,=%,dn”,x,ch,);,执行:123,输出:,x=123,ch=10,解决方法:,(,1,)用,getchar,(),清除,(2)用函数,fflush(stdin,),清除全部剩余内容,(3)用格式串中空格或,“,%*,c,”,来,“,吃掉,”,例,int,x;,char,ch,;,scanf(“%d”,&x,);,scanf,(“%,c”,&ch,);,或,scanf,(“%*,c%c”,&ch,);,程序举例,/*,ch3_12.c*/,#include,#include,main(),float a,b,c,s,area;,scanf(%f,%f,%f,&a,&b,&c,);,s=1.,0,/2*(a+b+c);,area=,sqrt,(s,*(s-a)*(s-b)*(s-c);,printf(a,=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn,a,b,c,s);,printf(area,=%7.2fn,area);,例 输入三角形边长,求面积,输入:,3,4,6,输出:,a=3.00,b=4.00,c=6.00 s=6.50,area=5.33,文件包含预处理命令,变量定义,输入数据,输出数据,例 从键盘输入大写字母,用小写字母输出,/*,ch3_13.c*/,#include,stdio.h,main(),char c1,c2;,c1=,getchar,();,printf(%c,%dn,c1,c1);,c2=c1+32;,printf(%c,%dn,c2,c2);,输入:,A,输出:,A,65,a,97,goto,语句及用,goto,构成循环,goto,语句一般格式:,goto,语句标号,;,.,标号:语句,;,Goto,语句,功能:无条件转移语句,说明:,不能用整数作标号,只能出现在,goto,所在函数内,且唯一,只能加在可执行语句前面,限制使用,goto,语句,/*,ch5_1.c*/,#include,main(),int,i,sum=0;,i=1;,loop:,if(i=100),sum+=i;,i+;,goto,loop,;,printf(%d,sum,);,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服