【教学课件】第八章流程控制语句.ppt

上传人:小飞机 文档编号:5663167 上传时间:2023-08-07 格式:PPT 页数:57 大小:355.50KB
返回 下载 相关 举报
【教学课件】第八章流程控制语句.ppt_第1页
第1页 / 共57页
【教学课件】第八章流程控制语句.ppt_第2页
第2页 / 共57页
【教学课件】第八章流程控制语句.ppt_第3页
第3页 / 共57页
【教学课件】第八章流程控制语句.ppt_第4页
第4页 / 共57页
【教学课件】第八章流程控制语句.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《【教学课件】第八章流程控制语句.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第八章流程控制语句.ppt(57页珍藏版)》请在三一办公上搜索。

1、第八章流程控制语句,C语言的语句可分为五类:表达式语句,函数调用语句,控制语句,复合语句,空语句。1表达式语句由一个表达式组成一个语句。其组成为:表达式;注意:位于尾部的分号“;”是语句中不可缺少的部分,任何表达式都可以加上分号构成语句。,8.1 C语言语句一、基本语句,执行表达式语句就是计算表达式的值。如:sum=0;/*赋值表达式加分号*/i;/*自增运算表达式加分号*/a=bc;/*复合赋值表达式加分号*/,8.1 C语言语句一、基本语句,2函数调用语句由一个函数调用加上分号“;”组成。其组成为:函数名(实参列表);如:printf(“C Programn”);/*调用C系统标准库函数,

2、输出字符串*/getchar();/*调用C系统标准库函数,字符输入函数*/max(a,b);/*调用自定义函数*/,8.1 C语言语句一、基本语句,3控制语句控制语句用于控制程序的流程,以实现程序的各种结构。语言有9条控制语句。可分为以下三类:(1)条件判断语句条件语句:if()else 语句多分支选择语句:switch 语句(2)循环执行语句 while语句:while()语句,8.1 C语言语句一、基本语句,do while语句:do while()语句for语句:for()语句(3)转向语句无条件转向语句:goto语句结束本次循环语句:continue语句终止执行switch或循环语句

3、:break语句函数返回语句:return语句,8.1 C语言语句一、基本语句,4复合语句 把多条语句用大括号“”括起来组成的一条语句称复合语句。在语法上将复合语句看成是单条语句,而不是多条语句。如以下程序段:z=xy;c=a*b;printf(%d%dn,z,c);,8.1 C语言语句一、基本语句,5空语句 仅由一个分号“;”组成的语句称为空语句。空语句不执行的任何操作。空语句的作用,一是在循环语句中使用空语句提供一个不执行操作的空循环体;二是为有关语句提供标号,用以说明程序执行的位置。,8.1 C语言语句一、基本语句,C语言本身无输入/出语句,由函数实现,如printf等。,一般:C语言提

4、供了一些标准的输入/出函数系统函数。,8.1 C语言语句二、数据输入与输出,1、字符输入输出函数,形式:getchar(),功能:从终端(键盘)上输入一个字符,要求:有#include stdio.h预编译命令,一般形式为:c=getchar();输入字符时以回车确认,函数的返回值就是输入的字符。,8.1 C语言语句二、数据输入与输出,(1)getchar()函数,说明:getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。通常把输入的字符赋予一个字符变量或整型变量,构成赋值语句。也可以不赋给任何变量,作为表达式的一部分。在Turbo C下运行含get

5、char函数的程序时,将退出Turbo C 屏幕进入用户屏幕等待用户输入。输入完毕按“回车”后再返回Turbo C屏幕。,8.1 C语言语句二、数据输入与输出,例:#include stdio.h main()char c;c=getchar();putchar(c);,形式:putchar(c);,功能:向终端(一般为显示器)输出一个字符,其中c为 字符型或整型变量,注意:用该函数时,须用预编译命令:#include stdio.h,(一)putchar 函数 字符输出函数,例:#include stdio.h main()char a,b,c;a=B;b=O;c=Y;putchar(a);

6、putchar(b);putchar(c);,BOY,结果:,putchar(a);putchar(n);putchar(b);putchar(n);putchar(c);putchar(n);,*利用putchar还可输出其它转义字符,结果:B O Y,putchar(101);输出A,putchar();输出,putchar(015);输出,*若将最后一行改为:,例:#include stdio.h main()char ch1=N,ch2=E,ch3=W;putchar(ch1);putchar(ch2);putchar(ch3);putchar(n);putchar(ch1);putc

7、har(n);putchar(E);putchar(n);putchar(ch3);putchar(n);,结果:,NEWNEW,(一)printf 函数格式输出函数,1、printf的一般形式,是C语言中使用得最多的一种输出函数,它可一次按格式输出多个不同类型的数据。,printf(格式控制,输出表列);,输出表列 用“,”号隔开的变量或表达式序列,其变量的值按对应的格式控制符所指定的格式输出。,三、格式输入输出,printf(“%d%d”,x,y*3);,main()int a,b;a=97;b=98;printf(“%c,%cn”,a,b);printf(“%d,%dn”,a,b);,格

8、式控制用双引号“”括起来的格式符序列。,格式控制由格式说明符和普通字符组成。,2.普通字符 原样输出,1.格式说明符:由%接格式字符组成 如:%f,%d等,a,b97,98,例:a=3;b=4;printf(a=%d,b=%d,a,b);,结果:a=3,b=4,输出项表是可选的。如果要输出的数据不止1个,相邻2个之间用逗号分开。下面的printf()函数都是合法的:(1)printf(I am a student.n);(2)printf(%d,3+2);(3)printf(a=%f b=%5dn,a,a+3);,强调:“格式字符串”中的格式指示符,必须与“输出表列”中输出项的数据类型一致,否

9、则会引起输出错误。,2、格式字符,不同类型的数据输出,用不同格式字符:,1)d格式符十进制整数输出。,(1)%d:按数据的实际长度输出。,(2)%md:m表示输出字段宽度。若实际位数m,左边补空格(右对齐)。,(3)%-md:m表示输出字段宽度。若实际位数 m,右边补空格(左对齐)。,(4)%ld:输出长整数,也可以指定宽度%mld.,例:类型转换字符d的使用。main()int num1=123;long num2=123456;printf(num1=%d,num1=%5d,num1=%-5d,num1=%2dn,num1,num1,num1,num1);printf(num2=%ld,n

10、um2=%8ld,num2=%5ldn,num2,num2,num2);printf(num1=%ldn,num1);,num1=123,num1=123,num1=123,num1=123num2=123456,num2=123456,num2=123456num1=16908411,2)o格式符 按八进制形式输出.,以-1的补码形式,int a=1;printf(%d,%o,a,a);,则输出结果:1,177777,注:将内存单元中的各位的值按八进制形式输出,包括符号位。,特例:1存于int单元,3)x格式符以十六进制形式输出整数.,例:int a=1;printf(%x,%o,%d”,a

11、,a,a);,输出结果:ffff,177777,1,例:main()unsigned int a=65535;int b=2;printf(a=%d,%o,%x,%un,a,a,a,a);printf(b=%d,%o,%x,%un,b,b,b,b);,a=1,177777,ffff,65535,a=65535,b=2,4)u格式符无符号格式输出整数.,b=2,177776,fffe,65534,运行结果为:,5)c格式符输出一个字符.,注:若有一整型变量,其值在0255之间,则可以字符形式输出.,一个字符型变量亦可以一个整型数据输出.,char c=a;printf(%c,c);,也可以指定输

12、出字符宽度,如果有,则输出:a,即c变量输出占3列,前2列补空格.,print(%3c,c),例:main()char c=A;int i=65;printf(c=%c,%5c,%dn,c,c,c);printf(i=%d,%c,i,i);,程序运行结果如下:c=A,A,65 i=65,A,6)s格式符用来输出一个字符串.,(1)%ms,输出的字符串占m列,如字符串本身长度大于m,则突破m的限制,将字符串全部输出。若串长小于m,则左补空格。,允许一定的编辑即允许%ms,%ms,%m.ns,%m.ns四种形式,每一形式的意义如下:,例:printf(%s,CHINA);,结果:CHINA,(3)

13、%m.ns,输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。,(4)%m.ns,其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果nm,则m自动取n值,即保证n个字符正常输出。,(2)%ms,如果串长小于m,则在m列范围内,字符串向左靠,右补空格。,例:main()printf(%s,%5s,%-10s,Internet,Internet,Internet);printf(%10.5s,%-10.5s,%4.5sn,Internet,Internet,Internet);,程序运行结果如下:Internet,Internet,Internet,Int

14、er,Inter,Inter,注意:系统输出字符和字符串时,不输出单引号和双引号。,7)f格式符以小数形式输出单、双精度实数,有以下几种形式:,%m.nf,指定输出的数据共占m列,其中有n位小数。如果值长度小于m,则左端补空格。,%mn.f,与%m.nf基本相同,只是使输出的数值 向左端靠,右端补空格。,%f,不指定字段宽度,由系统自动指定,使整数部分全部如数输出,并输出6位小数。,%f%m.nf%m.nf,例:main()float f=123.456;double d1,d2;d2=2222222222222.222222222;printf(%f,%12f,%12.2f,%-12.2f,

15、%.2fn,f,f,f,f,f);printf(d1+d2=%fn,d1+d2);程序运行结果如下:,123.456001,123.456001,123.46,123.46,123.46d1+d2=3333333333333.333010,本程序的输出结果中,数据123.456001和3333333333333.333010中的001和010都是无意义的,因为它们超出了有效数字的范围。,表 printf格式字符总结,2、scanf函数格式输出函数,功能:从终端(键盘)上按指定格式输入各种 类型的数据,地址表列变量的地址或字符串首地址。变量首地址的表示方法:&变量名,形式:scanf(格式控制,

16、地址表列),格式控制同printf(.),例:main()int a,b,c;scanf(%d%d%d,运行,机器等待你输入:3 4 5,结果 3,4,5,注意:(1)scanf函数使用地址量接受数据。,(2)输入数据的间隔为,Tab.空格,不能为“,”.,(3)允许在格式符中插入附加字符。格式字符及附加字符的定义如下表。,表 scanf格式字符,表 scanf附加的格式说明字符,(4)对于输入unsigned型数据,可用%u、%d、%o、%x格式输入。,(5)指定数据长度时,系统自动截取。,则当输入123456时,scanf(%3d%3d,a123,b456,(7)输入数据不能规定精度.,(

17、6)在%后加“*”表示跳过相应的数据,则当输入为12 345 67,则a12 b67,scanf(%2d%*3d%2d,scanf(%7.2f,是错误的,(8)在格式控制中除格式说明符外若还有其它字符,则应按顺序原样输入。,例:scanf(%d,%d,则必须输入 21,28,又如:scanf(a=%d,b=%d,c=%d,则输入:a=34,b=58,c=100,(9)输入数据时,遇到以下情况,系统认为该数据结束:1)遇到空格,或者回车键,或者Tab键。2)遇到输入域宽度结束。例如“%3d”,只取3列。3)遇到非法输入。例如,在输入数值数据时,遇到字母等非数值符号(数值符号仅由数字字符0-9、小

18、数点和正负号构成)。,4)使用格式说明符“%c”输入单个字符时,空格和转义字符均作为有效字符被输入。例如,scanf(%c%c%c,假设输入:ABC,则系统将字母A赋值给ch1,空格赋值给ch2,字母B赋值给ch3。,例:改错,(1)main()float a1=123.456;printf(“%d”,a1);(2)main()x=213.82631;printf(“%-4.2f”,x);,main()int x1,x2,x3;printf(“input x1,x2,x3:”);scanf(“%d%d%d”,x1,x2,x3);,例:写出程序运行结果,main int a=4,b=7;prin

19、tf(“%dn”,(a=a+1,a+b,b+1);,8,(2)int a=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%d”,a,b,c);,0,0,5,(3)main()int a=2,b=5;printf(“a=%d,b=%d”,a,b);,a=%d,b=%d,(4)main()int x,y,z;scanf(“%d%d%d”,输入:25,13,10,不确定,输入数据时遇到非法字符输入结束。,例:由终端输入两个整数给变量x和y,然后输出x和y,在交换x和y中的值后,再输出x和y,验证两个变量中的数是否正确地进行了交换。,5,x,8,y,分析:交

20、换x和y的值:,例:由终端输入两个整数给变量x和y,然后输出x和y,在交换x和y中的值后,再输出x和y,验证两个变量中的数是否正确地进行了交换。,分析:交换a和b的值:,例:由终端输入两个整数给变量x和y,然后输出x和y,在交换x和y中的值后,再输出x和y,验证两个变量中的数是否正确地进行了交换。,分析:交换a和b的值:,x,y,5,8,9,t,5,8,5,main()int x,y,t;printf(“input x,y”);scanf(“%d%d”,四、顺序结构程序设计,在顺序结构程序中,各语句(或命令)是按照位置的先后次序,顺序执行的,且每个语句都会被执行到。,main()int num

21、1,num2,num3,sum;float aver;printf(Please input three numbers:);scanf(%d%d%d,例:输入任意三个整数,求它们的和及平均值。,1、写出以下程序的运行结果:#include“stdio.h”main()char c1=a,c2=b,c3=c,c4=101,c5=116;printf(“a%c b%ct%ctabcn”,c1,c2,c3);printf(“tb%c%cn”,c4,c5);,2、写出下面程序的运行结果#include“stdio.h”main()int i,j,m,n;i=8;j=10;m=+i;n=j+;prin

22、tf(“%d,%d,%d,%dn”,i,j,m,n);,3、写出下面赋值表达式运算后a的值,设原来a=12:(1)a+=a(2)a-=a(3)a*=2+3(4)a/=a+a(5)a%=(n%=2),n的值为5(6)a+=a-=a*=a,#include stdio.hmain()char c1,c2;printf(Input a lowercase letter:);c1=getchar();putchar(c1);printf(,%dn,c1);c2=c1-32;/*将大写字母转换成对应的小写字母*/printf(%c,%dn,c2,c2);,例:从键盘输入一个小写字母,要求用大小写字母形式输出该字母及对应的ASCII码值。,Input a lowercase letter:a a,97 A,65,程序运行情况如下:,在顺序结构程序中,一般包括以下几个部分:1程序开头的编译预处理命令。在程序中要使用标准函数(又称库函数),除printf()和scanf()外,其它的都必须使用编译预处理命令,将相应的头文件包含进来。2顺序结构程序的函数体中,是完成具体功能的各个语句和运算,主要包括:(1)变量类型的说明。(2)提供数据语句。(3)运算部分。(4)输出部分。,书面作业:,4.8、4.9,上机作业:,4.4、4.5、4.6,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号