第八章流程控制语句.ppt

上传人:本田雅阁 文档编号:2571715 上传时间:2019-04-10 格式:PPT 页数:57 大小:428.51KB
返回 下载 相关 举报
第八章流程控制语句.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函数调用语句 由一个函数调用加上分号“;”组成。其组成

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

3、控制语句,do while语句: do while ( )语句 for语句: for ( )语句 (3) 转向语句 无条件转向语句: goto语句 结束本次循环语句: continue语句 终止执行switch或循环语句: break语句 函数返回语句: return语句,8.1 C语言语句 一、基本语句,第八章 流程控制语句,4复合语句 把多条语句用大括号“”括起来组成的一条语句称复合语句。在语法上将复合语句看成是单条语句,而不是多条语句。 如以下程序段: z=xy ; c=a*b ; printf(“%d%dn“,z,c) ; ,8.1 C语言语句 一、基本语句,第八章 流程控制语句,5空

4、语句 仅由一个分号“;”组成的语句称为空语句。空语句不执行的任何操作。空语句的作用,一是在循环语句中使用空语句提供一个不执行操作的空循环体;二是为有关语句提供标号,用以说明程序执行的位置。,8.1 C语言语句 一、基本语句,第八章 流程控制语句,C语言本身无输入/ 出语句, 由函数实现,如printf等。,一般:C语言提供了一些标准的输入/出函数系统函数。,8.1 C语言语句 二、数据输入与输出,第八章 流程控制语句,1、字符输入输出函数,形式: getchar( ),功能: 从终端(键盘)上输入一个字符,要求: 有#include “stdio.h“预编译命令,一般形式为:c=getchar

5、(); 输入字符时以回车确认,函数的返回值就是输入的字符。,8.1 C语言语句 二、数据输入与输出,(1) getchar( )函数,第八章 流程控制语句,说明: getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。 通常把输入的字符赋予一个字符变量或整型变量,构成赋值语句。也可以不赋给任何变量,作为表达式的一部分。 在Turbo C下运行含getchar函数的程序时,将退出Turbo C 屏幕进入用户屏幕等待用户输入。输入完毕按“回车”后再返回Turbo C屏幕。,8.1 C语言语句 二、数据输入与输出,第八章 流程控制语句,例: #include

6、 “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); putchar(b); putchar ( c); ,BOY,结

7、果:,第八章 流程控制语句,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); putch

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

9、a,b; a=97; b=98; printf(“%c,%cn”,a,b); printf(“%d,%dn”,a,b); ,格式控制用双引号“ ”括起来的格式符序列。,格式控制由格式说明符和普通字符组成。,2. 普通字符 原样输出,1. 格式说明符: 由%接格式字符组成 如: %f, %d等,a,b 97,98,第八章 流程控制语句,例: a=3; b=4; printf(“a=%d, b=%d“, a, b); ,结果: a=3,b=4,输出项表是可选的。如果要输出的数据不止1个,相邻2个之间用逗号分开。下面的printf()函数都是合法的: (1)printf(“I am a studen

10、t.n“); (2)printf(“%d“,3+2); (3)printf(“a=%f b=%5dn“, a, a+3);,强调:“格式字符串”中的格式指示符,必须与“输出表列”中输出项的数据类型一致,否则会引起输出错误。,第八章 流程控制语句,2、格式字符,不同类型的数据输出,用不同格式字符:,1) d格式符十进制整数输出。,(1) %d: 按数据的实际长度输出。,(2) %md: m表示输出字段宽度。若实际位数m,左边补空格(右对齐)。,(3) %-md: m表示输出字段宽度。若实际位数 m,右边补空格(左对齐)。,(4) %ld: 输出长整数,也可以指定宽度%mld.,第八章 流程控制语

11、句,例:类型转换字符d的使用。 main() int num1=123; long num2=123456; printf(“num1=%d,num1=%5d,num1=%-5d, num1=%2dn“,num1,num1,num1,num1); printf(“num2=%ld,num2=%8ld,num2=%5ldn“, num2,num2,num2); printf(“num1=%ldn“,num1); ,num1=123,num1=123,num1=123,num1=123 num2=123456,num2=123456,num2=123456 num1=16908411,第八章 流程

12、控制语句,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, a, a);,输出结果: ffff, 177777, 1,第八章 流程控制语句,例: main( ) unsigned int a=65535; int b= 2; printf (“a=%d, %o,%x,%

13、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);,也可以指定输出字符宽度,如果有,则输出: a, 即c变量输出占3列,前2列补空格.,print

14、(“%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“);,结果:

15、 CHINA,第八章 流程控制语句,(3) %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“,“Intern

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

17、 ) float f=123.456; double d1,d2; d1=1111111111111.111111111; 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.46 d1+d2=3333333333333.333010,本程序的输出结果中,数据123.456001和3333333333333.333010中的001和010都

18、是无意义的,因为它们超出了有效数字的范围。,第八章 流程控制语句,表 printf格式字符总结,第八章 流程控制语句,2、scanf函数格式输出函数,功能: 从终端(键盘)上按指定格式输入各种 类型的数据,地址表列变量的地址或字符串首地址。 变量首地址的表示方法: &变量名,形式: scanf(格式控制, 地址表列),格式控制同printf(),第八章 流程控制语句,例: main( ) int a, b, c; scanf(“ %d%d%d “, ,运行,机器等待你输入: 3 4 5,结果 3, 4, 5,第八章 流程控制语句,注意: (1)scanf函数使用地址量接受数据。,(2) 输入数

19、据的间隔为,Tab. 空格, 不能为“ ,”.,(3) 允许在格式符中插入附加字符。格式字符及附加字符的定义如下表。,第八章 流程控制语句,表 scanf格式字符,第八章 流程控制语句,表 scanf附加的格式说明字符,第八章 流程控制语句,(4) 对于输入unsigned型数据,可用%u、%d、%o、 %x格式输入。,(5) 指定数据长度时,系统自动截取。,则当输入123456时,scanf(“ %3d%3d “, ,a123, b456,第八章 流程控制语句,(7) 输入数据不能规定精度.,(6) 在%后加“ *”表示跳过相应的数据,则当输入为12 345 67,则a12 b67,scan

20、f(“%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)遇到非法输入。例如,在输入数值数据时,遇到字母等非数值符号(数值符号仅由

21、数字字符0-9、小数点和正负号构成)。,第八章 流程控制语句,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:”); sca

22、nf(“%d%d%d”,x1,x2,x3); ,第八章 流程控制语句,例:写出程序运行结果,main int a=4,b=7; printf(“%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,不确定,输入数

23、据时遇到非法字符输入结束。,第八章 流程控制语句,例:由终端输入两个整数给变量x和y,然后输出x和y,在交换x和y中的值后,再输出x和y,验证两个变量中的数是否正确地进行了交换。,5,x,8,y,分析:交换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,

24、8,5,main() int x,y,t; printf(“input x,y”); scanf(“%d%d”, ,第八章 流程控制语句,四、顺序结构程序设计,在顺序结构程序中,各语句(或命令)是按照位置的先后次序,顺序执行的,且每个语句都会被执行到。,main() int num1,num2,num3,sum; float aver; printf(“Please input three numbers:“); scanf(“%d%d%d“, ,例:输入任意三个整数,求它们的和及平均值。,第八章 流程控制语句,1、写出以下程序的运行结果: #include “stdio.h” main()

25、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+; 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

26、%=2),n的值为5 (6)a+=a-=a*=a,第八章 流程控制语句,#include “stdio.h“ main() 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备18001539号-1