《流程控制语句 》PPT课件.ppt

上传人:wuy****n92 文档编号:71795935 上传时间:2023-02-06 格式:PPT 页数:57 大小:357KB
返回 下载 相关 举报
《流程控制语句 》PPT课件.ppt_第1页
第1页 / 共57页
《流程控制语句 》PPT课件.ppt_第2页
第2页 / 共57页
点击查看更多>>
资源描述

《《流程控制语句 》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《流程控制语句 》PPT课件.ppt(57页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第八章流程控制语句第八章流程控制语句nC语言的语句可分为五类:表达式语句,函数语言的语句可分为五类:表达式语句,函数调用语句,控制语句,复合语句,空语句。调用语句,控制语句,复合语句,空语句。1表达式语句表达式语句由一个表达式组成一个语句。其组成为:由一个表达式组成一个语句。其组成为:表达式;表达式;n注意:位于尾部的分号注意:位于尾部的分号“;”是语句中不可缺是语句中不可缺少的部分,任何表达式都可以加上分号构成语少的部分,任何表达式都可以加上分号构成语句。句。8.1 C语言语句语言语句一、基本语句一、基本语句第八章第八章 流程控制语句流程控制语句执行表达式语句就是计算表达式的值。执行表达式语

2、句就是计算表达式的值。如:如:sum=0;/*赋值表达式加分号赋值表达式加分号*/i;/*自增运算表达式加分号自增运算表达式加分号*/a=bc;/*复合赋值表达式加分号复合赋值表达式加分号*/8.1 C语言语句语言语句一、基本语句一、基本语句第八章第八章 流程控制语句流程控制语句2函数调用语句函数调用语句由一个函数调用加上分号由一个函数调用加上分号“;”组成。其组成组成。其组成为:函数名为:函数名(实参列表实参列表);如:如:printf(“C Programn”);/*调用调用C系统标准库函数,输出字符串系统标准库函数,输出字符串*/getchar();/*调用调用C系统标准库函数,字符输入

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

4、、基本语句一、基本语句第八章第八章 流程控制语句流程控制语句do while语句:语句:do while()语句语句for语句:语句:for()语句语句(3)转向语句转向语句无条件转向语句:无条件转向语句:goto语句语句结束本次循环语句:结束本次循环语句:continue语句语句终止执行终止执行switch或循环语句:或循环语句:break语句语句函数返回语句:函数返回语句:return语句语句8.1 C语言语句语言语句一、基本语句一、基本语句第八章第八章 流程控制语句流程控制语句 4复合语句复合语句 把多条语句用大括号把多条语句用大括号“”括起来组成的一括起来组成的一条语句称复合语句。在语

5、法上将复合语句看成条语句称复合语句。在语法上将复合语句看成是单条语句,而不是多条语句。是单条语句,而不是多条语句。如以下程序段:如以下程序段:z=xy;c=a*b;printf(%d%dn,z,c);8.1 C语言语句语言语句一、基本语句一、基本语句第八章第八章 流程控制语句流程控制语句 5空语句空语句 仅由一个分号仅由一个分号“;”组成的语句称为组成的语句称为空语句。空语句不执行的任何操作。空空语句。空语句不执行的任何操作。空语句的作用,一是在循环语句中使用空语句的作用,一是在循环语句中使用空语句提供一个不执行操作的空循环体;语句提供一个不执行操作的空循环体;二是为有关语句提供标号,用以说明

6、程二是为有关语句提供标号,用以说明程序执行的位置。序执行的位置。8.1 C语言语句语言语句一、基本语句一、基本语句第八章第八章 流程控制语句流程控制语句C语言本身无输入语言本身无输入/出语句出语句,由函数实由函数实现现,如如printf等。等。一般:一般:C语言提供了一些标准的输入语言提供了一些标准的输入/出出函数函数系统函数。系统函数。8.1 C语言语句语言语句二、数据输入与输出二、数据输入与输出第八章第八章 流程控制语句流程控制语句1、字符输入输出函数、字符输入输出函数形式形式:getchar()功能功能:从终端从终端(键盘键盘)上输入一个字符上输入一个字符 要求要求:有有#include

7、 stdio.h预编译命预编译命令令一般形式为:一般形式为:c=getchar();输入字符时以回车确认,函数的返回值就是输入字符时以回车确认,函数的返回值就是输入的字符。输入的字符。8.1 C语言语句语言语句二、数据输入与输出二、数据输入与输出(1)getchar()函数函数第八章第八章 流程控制语句流程控制语句n说明:说明:getchar函数只能接受单个字符,输入数字也函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第按字符处理。输入多于一个字符时,只接收第一个字符。一个字符。通常把输入的字符赋予一个字符变量或整型通常把输入的字符赋予一个字符变量或整型变量,构成赋值语

8、句。也可以不赋给任何变量,变量,构成赋值语句。也可以不赋给任何变量,作为表达式的一部分。作为表达式的一部分。在在Turbo C下运行含下运行含getchar函数的程序时,函数的程序时,将退出将退出Turbo C 屏幕进入用户屏幕等待用户输屏幕进入用户屏幕等待用户输入。输入完毕按入。输入完毕按“回车回车”后再返回后再返回Turbo C屏屏幕。幕。8.1 C语言语句语言语句二、数据输入与输出二、数据输入与输出第八章第八章 流程控制语句流程控制语句例例:#include stdio.h main()char c;c=getchar();putchar(c);第八章第八章 流程控制语句流程控制语句形式

9、形式:putchar(c);功能功能:向终端向终端(一般为显示器一般为显示器)输出一个字输出一个字符符,其中其中c为为 字符型或整型变量字符型或整型变量注意注意:用该函数时用该函数时,须用预编译命令须用预编译命令:#include stdio.h(一)(一)putchar 函数函数 字符输出函数字符输出函数第八章第八章 流程控制语句流程控制语句例例:#include stdio.h main()char a,b,c;a=B;b=O;c=Y;putchar(a);putchar(b);putchar(c);BOY结果结果:第八章第八章 流程控制语句流程控制语句 putchar(a);putcha

10、r(n);putchar(b);putchar(n);putchar(c);putchar(n);*利用利用putchar还可输出其它转义字符还可输出其它转义字符结果结果:B O Y putchar(101);输出Aputchar();输出putchar(015);输出*若将最后一行改为若将最后一行改为:第八章第八章 流程控制语句流程控制语句例例:#include stdio.h main()char ch1=N,ch2=E,ch3=W;putchar(ch1);putchar(ch2);putchar(ch3);putchar(n);putchar(ch1);putchar(n);putch

11、ar(E);putchar(n);putchar(ch3);putchar(n);结果:结果:NEWNEW第八章第八章 流程控制语句流程控制语句(一)(一)printf 函数函数格式输出函格式输出函数数1、printf的一般形式的一般形式 是是C语言中使用得最多的一种输出函数语言中使用得最多的一种输出函数,它可一它可一次按格式输出多个不同类型的数据。次按格式输出多个不同类型的数据。printf(格式控制格式控制,输出表列输出表列);输出表列输出表列 用用“,”号隔开的变量或表达式号隔开的变量或表达式序列序列,其变量的值按对应的格式控制其变量的值按对应的格式控制符所指定的格式输出。符所指定的格式

12、输出。三、格式输入输出三、格式输入输出printf(“%d%d”,x,y*3);第八章第八章 流程控制语句流程控制语句main()int a,b;a=97;b=98;printf(“%c,%cn”,a,b);printf(“%d,%dn”,a,b);格式控制格式控制用双引号用双引号“”括起来的格式符括起来的格式符序列。序列。格式控制由格式说明符和普通字符组成。格式控制由格式说明符和普通字符组成。2.普通字符普通字符 原样输出原样输出1.格式说明符格式说明符:由由%接接格式字符组成格式字符组成 如如:%f,%d等等格式控制格式控制输出表列输出表列a,b97,98第八章第八章 流程控制语句流程控制

13、语句例例: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);强调:强调:“格式字符串格式字符串”中中的格式指示符,必须与的格式指示符,必须与“输出表列输出表列”中输出项的数中输出项的数据类型一致,否则会引起据类型一致,否则

14、会引起输出错误。输出错误。第八章第八章 流程控制语句流程控制语句2、格式字符、格式字符不同类型的数据输出不同类型的数据输出,用不同格式字符用不同格式字符:1)d格式符格式符十进制整数输出。十进制整数输出。(1)%d:按数据的实际长度输出。按数据的实际长度输出。(2)%md:m表示输出字段宽度。若实际位数表示输出字段宽度。若实际位数m,左边补空格(右对齐)。左边补空格(右对齐)。(3)%-md:m表示输出字段宽度。若实际位数表示输出字段宽度。若实际位数 m,则则m自动自动取取n值,即保证值,即保证n个字符正常输出。个字符正常输出。(2)%ms,如果串长小于如果串长小于m,则在则在m列范围内,字列

15、范围内,字符串向左靠,右补空格。符串向左靠,右补空格。第八章第八章 流程控制语句流程控制语句例例:main()printf(%s,%5s,%-10s,Internet,Internet,Internet);printf(%10.5s,%-10.5s,%4.5sn,Internet,Internet,Internet);程序运行结果如下:程序运行结果如下:Internet,Internet,Internet,Inter,Inter,Inter注意:系统输出字符和字符串时,不输出注意:系统输出字符和字符串时,不输出单引号和双引号。单引号和双引号。第八章第八章 流程控制语句流程控制语句7)f格式符格

16、式符以小数形式输出单、双精度实数,以小数形式输出单、双精度实数,有以下几种形式有以下几种形式:%m.nf,指定输出的数据共占指定输出的数据共占m列,其中有列,其中有n位小位小数。如果值长度小于数。如果值长度小于m,则左端补空格。,则左端补空格。%mn.f,与与%m.nf基本相同,只是使输出的数值基本相同,只是使输出的数值 向左端靠,右端补空格。向左端靠,右端补空格。%f,不指定字段宽度不指定字段宽度,由系统自动指定由系统自动指定,使整数使整数部分全部如数输出部分全部如数输出,并输出并输出6位小数。位小数。%f%m.nf%m.nf第八章第八章 流程控制语句流程控制语句例例:main()float

17、 f=123.456;double d1,d2;d2=2222222222222.222222222;printf(%f,%12f,%12.2f,%-12.2f,%.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都是无意义的,因为它们超出了有效数字的都是无意义

18、的,因为它们超出了有效数字的范围。范围。第八章第八章 流程控制语句流程控制语句表表 printf格式字符总结格式字符总结格式字符格式字符d以带符号的十进制形式输出整数以带符号的十进制形式输出整数(正数不输出符号正数不输出符号)oxucsfeg以以8进制无符号形式输出整数进制无符号形式输出整数(不输出前导符不输出前导符0)。以以16进制无符号形式输出整数进制无符号形式输出整数(不输出前导符不输出前导符0 x)。以无符号以无符号10进制形式输出整数。进制形式输出整数。以字符形式输出,只输出一个字符。以字符形式输出,只输出一个字符。说说明明输出字符串。输出字符串。以小数形式输出单、双精度数以小数形式

19、输出单、双精度数,隐含输出隐含输出6位小数。位小数。以标准形式输出单以标准形式输出单.双精度数双精度数,数字部分小数位数为数字部分小数位数为6位。位。选用选用f或或%e格式中输出宽度较短的一种格式,不输出格式中输出宽度较短的一种格式,不输出无意义的无意义的0。第八章第八章 流程控制语句流程控制语句2、scanf函数格式输出函数函数格式输出函数功能功能:从终端从终端(键盘键盘)上按指定格式输入各种上按指定格式输入各种 类型的数据类型的数据地址表列地址表列变量的地址或字符串首地址。变量的地址或字符串首地址。变量首地址的表示方法:变量首地址的表示方法:&变量名变量名形式形式:scanf(格式控制格式

20、控制,地址表列地址表列)格式控制格式控制同同printf(.)第八章第八章 流程控制语句流程控制语句例例:main()int a,b,c;scanf(%d%d%d,&a,&b,&c);printf(%d,%d,%dn,a,b,c);运行运行,机器等待你输入机器等待你输入:3 4 5 结果结果 3,4,5第八章第八章 流程控制语句流程控制语句注意注意:(1)scanf函数使用地址量接受数据。函数使用地址量接受数据。(2)输入数据的间隔为输入数据的间隔为,Tab.空格空格,不能为不能为“,”.(3)允许在格式符中插入附加字符。格式允许在格式符中插入附加字符。格式字符及附加字符的定义如下表。字符及附

21、加字符的定义如下表。第八章第八章 流程控制语句流程控制语句表表 scanf格式字符格式字符格式字符d用来输入十进制整数。oxcsfe用来输入八进制整数。用来输入十六进制整数。用来输入单个字符。说明用来输入字符串,将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志 0作为其最后一个字符。用来输入实数,可以用小数形式或指数形式输入。以f作用相同,e与f可以互相替换。第八章第八章 流程控制语句流程控制语句表表 scanf附加的格式说明字符附加的格式说明字符字符说明用于输入长整型数据(可用ld,%lo,%lx),以及double型数据(用%lf或%le)。用

22、于输入短整型数据(可用%hd,%ho,%hx)。指定输入数据所占宽度(列数)。表示本输入项在读入后不赋给相应的变量。h域宽(为一正整数)*l第八章第八章 流程控制语句流程控制语句(4)对于输入对于输入unsigned型数据型数据,可用可用%u、%d、%o、%x格式输入。格式输入。(5)指定数据长度时指定数据长度时,系统自动截取。系统自动截取。则当输入则当输入123456时时,scanf(%3d%3d,&a,&b);a123,b456第八章第八章 流程控制语句流程控制语句(7)输入数据不能规定精度输入数据不能规定精度.(6)在在%后加后加“*”表示跳过相应的数据表示跳过相应的数据则当输入为则当输

23、入为12 345 67 则则a12 b67scanf(%2d%*3d%2d,&a,&b);scanf(%7.2f,&a);是错误的是错误的第八章第八章 流程控制语句流程控制语句(8)在格式控制中除格式说明符外若还有其它在格式控制中除格式说明符外若还有其它字符字符,则应按顺序原样输入。则应按顺序原样输入。例例:scanf(%d,%d,&a,&b);则必须输入则必须输入 21,28 又如又如:scanf(a=%d,b=%d,c=%d,&a,&b,&c);则输入则输入:a=34,b=58,c=100第八章第八章 流程控制语句流程控制语句(9 9)输入数据时,遇到以下情况,系统认为该)输入数据时,遇到

24、以下情况,系统认为该数据结束:数据结束:1 1)遇到空格,或者回车键,或者)遇到空格,或者回车键,或者TabTab键。键。2 2)遇到输入域宽度结束。例如)遇到输入域宽度结束。例如“%3d”“%3d”,只,只取取3 3列。列。3 3)遇到非法输入。例如,在输入数值数据)遇到非法输入。例如,在输入数值数据时,遇到字母等非数值符号时,遇到字母等非数值符号(数值符号仅由数字数值符号仅由数字字符字符0-90-9、小数点和正负号构成、小数点和正负号构成)。第八章第八章 流程控制语句流程控制语句 4)4)使用格式说明符使用格式说明符“%c”“%c”输入单个字符时,输入单个字符时,空格和转义字符均作为有效字

25、符被输入。空格和转义字符均作为有效字符被输入。例如,例如,scanf(%c%c%c,&ch1,&ch2,&ch3);scanf(%c%c%c,&ch1,&ch2,&ch3);printf(ch1=%c,ch2=%c,ch3=%cn,printf(ch1=%c,ch2=%c,ch3=%cn,ch1,ch2,ch3);ch1,ch2,ch3);假设输入:假设输入:ABCABC,则系统将字母,则系统将字母AA赋赋值给值给ch1ch1,空格,空格赋值给赋值给ch2ch2,字母,字母BB赋值给赋值给ch3ch3。第八章第八章 流程控制语句流程控制语句例:改错例:改错(1)main()float a1=1

26、23.456;printf(“%d”,a1);(2)main()x=213.82631;printf(“%-4.2f”,x);第八章第八章 流程控制语句流程控制语句(3)main()(4)int x1,x2,x3;(5)printf(“input x1,x2,x3:”);(6)scanf(“%d%d%d”,x1,x2,x3);(7)第八章第八章 流程控制语句流程控制语句例:写出程序运行结果例:写出程序运行结果(1)main(2)int a=4,b=7;(3)printf(“%dn”,(a=a+1,a+b,b+1);(4)8(2)int a=0,b=0,c=0;c=(a-=a-5),(a=b,b

27、+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”,&x,&y,&z);printf(“x+y+z=%dn”,x+y+z);输入:输入:25,13,10不确定不确定输入数据时遇到非输入数据时遇到非法字符输入结束。法字符输入结束。第八章第八章 流程控制语句流程控制语句例:由终端输入两个整数给变量例:由终端输入两个整数给变量x和和y,然后,然后输出输出x和和y,在交换,在

28、交换x和和y中的值后,再输出中的值后,再输出x和和y,验证两个变量中的数是否正确地进行了交,验证两个变量中的数是否正确地进行了交换。换。5x8y分析:交换分析:交换x和和y的值:的值:第八章第八章 流程控制语句流程控制语句例:由终端输入两个整数给变量例:由终端输入两个整数给变量x和和y,然后,然后输出输出x和和y,在交换,在交换x和和y中的值后,再输出中的值后,再输出x和和y,验证两个变量中的数是否正确地进行了交,验证两个变量中的数是否正确地进行了交换。换。分析:交换分析:交换a和和b的值:的值:8y5x 9t第八章第八章 流程控制语句流程控制语句例:由终端输入两个整数给变量例:由终端输入两个

29、整数给变量x和和y,然后,然后输出输出x和和y,在交换,在交换x和和y中的值后,再输出中的值后,再输出x和和y,验证两个变量中的数是否正确地进行了交,验证两个变量中的数是否正确地进行了交换。换。分析:交换分析:交换a和和b的值:的值:xy58 9t585main()int x,y,t;printf(“input x,y”);scanf(“%d%d”,&x,&y);printf(“x=%d,y=%dn”,x,y);t=x;x=y;y=t;printf(“x=%d,y=%dn”,x,y);第八章第八章 流程控制语句流程控制语句四、顺序结构程序设计四、顺序结构程序设计 在顺序结构程序中,各语句(或命

30、令)是按照位置在顺序结构程序中,各语句(或命令)是按照位置的先后次序,顺序执行的,且每个语句都会被执行到。的先后次序,顺序执行的,且每个语句都会被执行到。main()int num1,num2,num3,sum;float aver;printf(Please input three numbers:);scanf(%d%d%d,&num1,&num2,&num3);sum=num1+num2+num3;aver=sum/3.0;printf(num1=%d,num2=%d,num3=%dn,num1,num2,num3);printf(sum=%d,aver=%7.2fn,sum,aver)

31、;例:输入任意三个整数,求它们的和及平均值。例:输入任意三个整数,求它们的和及平均值。第八章第八章 流程控制语句流程控制语句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=

32、j+;printf(“%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=c

33、1-32;/*将大写字母转换成对应的小写字母将大写字母转换成对应的小写字母*/printf(%c,%dn,c2,c2);例:例:从键盘输入一个小写字母,要求用大小写从键盘输入一个小写字母,要求用大小写字母形式输出该字母及对应的字母形式输出该字母及对应的ASCII码值。码值。Input a lowercase letter:a a,97 A,65程序运行情况如下:程序运行情况如下:第八章第八章 流程控制语句流程控制语句在顺序结构程序中,一般包括以下几个部分:在顺序结构程序中,一般包括以下几个部分:1 1程序开头的编译预处理命令。程序开头的编译预处理命令。在程序中要使用标准函数(又称库函数),在程

34、序中要使用标准函数(又称库函数),除除printf()printf()和和scanf()scanf()外,其它的都必须使用编外,其它的都必须使用编译预处理命令,将相应的头文件包含进来。译预处理命令,将相应的头文件包含进来。2 2顺序结构程序的函数体中,是完成具体顺序结构程序的函数体中,是完成具体功能的各个语句和运算,主要包括:功能的各个语句和运算,主要包括:(1 1)变量类型的说明。)变量类型的说明。(2 2)提供数据语句。)提供数据语句。(3 3)运算部分。)运算部分。(4 4)输出部分。)输出部分。第八章第八章 流程控制语句流程控制语句书面作业:4.8、4.9上机作业:4.4、4.5、4.6第八章第八章 流程控制语句流程控制语句第八章第八章 流程控制语句流程控制语句

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com