C语言教学课件.ppt

上传人:陆** 文档编号:4855696 上传时间:2021-11-18 格式:PPT 页数:291 大小:1.84MB
返回 下载 相关 举报
C语言教学课件.ppt_第1页
第1页 / 共291页
C语言教学课件.ppt_第2页
第2页 / 共291页
点击查看更多>>
资源描述

《C语言教学课件.ppt》由会员分享,可在线阅读,更多相关《C语言教学课件.ppt(291页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1,C语言程序设计,2,教学内容,第一章C语言概述第二章算法第三章数据类型、运算符与表达式第四章最简单的C程序设计第五章选择结构程序设计第六章循环控制第七章数组第八章函数第九章预处理命令第十章指针第十一章 结构体第十三章 文件,3,前 言,前 言,一、计算机语言,1、机器语言2、汇编语言3、高级语言,4、高级语言向机器语言的过渡,机器指令的集合,符号化的机器语言,通用自然的算法语言,4,前 言,二、程序与程序设计,完成某一功能的计算机指令的有序集合,1、程序,2、程序设计,设计、编制、调试程序的过程,5,3、程序设计的基本步骤,(1) 分析问题,(2) 确定解题思路和算法,(3) 编制流程图,

2、(4) 编写源程序,(5) 静态检查,(6) 上机调试,(7) 正式运行,前 言,6,本章内容1.1 C语言发展史1.2 C语言特点1.3 简单C程序分析,第一章 C语言概述,返回,7,第一章 C语言概述,第一章 C语言概述,1.1 C语言发展史,1960 ALGOL60 (Algorithmic Language),1987 87 ANSI C 1990 ISO C,1972 C (取BCPL第二个字母),1970 B (取BCPL第一个字母),1978 标准C 1983 ANSI C,1967 BCPL (Basic Combined,Programming Language),跳转,8,

3、第一章 C语言概述,1.2 C语言特点,1、简练、自由、结构化 (32个关键字、9种控制语句),2、运算符丰富(附录)34种,3、数据结构丰富,4、可直接对硬件进行操作,5、目标程序质量高,6、可移植性好,9,第一章 C语言概述,1.3 简单C程序分析,例1.1 打印(显示)一串字符。,运行结果: This is an example.,/* example1.1 */ main( ) printf(“This is an example. n”); ,10,第一章 C语言概述,例1.2 已知角度值45, 求正弦值的2倍。,/*example 1.2*/ #include “math.h” m

4、ain( ) float x, y; x=45; y=2*sin(x*3.14/180); printf(“Y=%f n”, y);,运行结果: Y=1.413650,11,第一章 C语言概述,例1.3 已知三角形三边 a, b, c, 求面积。,/*example 1.3*/ #include “math.h” main( ) float a, b, c, p, s; scanf(“%f, %f, %f ”, ,输入:4,5,6 ,输出:P=7.500000S=9.921567,12,第一章 C语言概述,max( int x , int y ) main( ) /*max number*/

5、int z ; int a , b , c ; if(xy) z=x ; scanf(“%d,%d”, ,例1.4 已知整数 a, b, 求其中的最大数。,13,第一章 C语言概述,C程序结构,1、C程序由函数构成,C程序=,一个主函数(main函数)一个主函数+若干其他函数(子或库),Turbo C有300多个,跳转,3、语句书写自由,后带分号“;”,4、可用 /*/ 对C程序作注释,前一页,14,本章内容2.1 算法的概念2.4 算法的表示2.5 结构化程序设计,第二章 算法,返回,15,第二章 算法,第二章 算法,程序 = 数据结构 + 算法,程序=数据结构+算法+程序设计方法+语言工具

6、和环境,数据结构:对数据的描述,算法:对操作的描述,#include “math.h” main( ) float x, y; x=45; y=2*sin(x*3.14/180); printf(“Y=%f n”, y);,16,例如:1+2+3+100=5050 或100+1+99+2+98+49+51+50=100+49*100+50=5050,第二章 算法,2.1 算法的概念,算法:为解决一个问题而采取的方法和步骤。,17,第二章 算法,2.4 算法的表示(用流程图表示算法),起止框,处理框,判断框,输入/出框,流程线,连接点,注释框,18,第二章 算法,例2.1 计算265的平方根,顺

7、序结构,NS图,19,第二章 算法,例2.2 打印X的绝对值,分支结构,NS图,X=0,y n,打印x 打印 -x,20,第二章 算法,例2.3 计算1到100的和,循环结构,i=100,n,NS图,i=1,s=0,s=s+i,i=i+1,打印s,y,i=1,s=0,s=s+i,i=i+1,打印s,当i=100,21,(1)自顶向下 (2)逐步细化(3)模块化设计 (4)结构化编码,第二章 算法,2.5 结构化程序设计方法(了解内容),结构化程序便于编写、阅读、修改和维护。可以减少程序出错的机会,提高程序的可靠性,保证程序的质量。 结构化程序设计方法的基本思路是:把一个复杂问题的求解过程分阶段

8、进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。,22,本章内容3.1 C的数据类型3.2 常量与变量3.3 整型数据3.4 实型数据3.5 字符型数据3.6 变量赋初值3.8 算术运算符与算术表达式3.9 赋值运算符和赋值表达式3.10 逗号运算符和逗号表达式,第三章 数据类型、运算符与表达式,返回,23,第三章 数据类型、运算符与表达式,空类型 void(无return的函数),C数据类型,基本类型,构造类型,指针类型,整型实型字符型枚举型,数组型结构体型共用体型,单精度双精度,第三章 数据类型、运算符与表达式,3.1 C的数据类型,24,第三章 数据类型、运算符与表达式,3.

9、2 常量与变量,一、常量,1、整型常量 0和正负整数,4、字符串常量“”括起来的字符串,5、符号常量 #define 符号名 常量,2、实型常量,3、字符型常量,跳转,25,第三章 数据类型、运算符与表达式,#define PI 3.1415926,例3.2 定义一个符号常量 PI,其值为,26,第三章 数据类型、运算符与表达式,二、变量,1、变量名以标识符命名,由字母、数字或下划线组成首字符为字母或下划线用来标识变量、符号常量、数组、函数、文件等,标识符,例:sum good123 student_name,27,第三章 数据类型、运算符与表达式,2、变量的定义,用变量定义语句定义变量及其类

10、型,(1) 变量定义语句的格式,类型关键字 变量名或赋值表达式表;,实型,字符型,(2) 类型关键字,整型,基本型 int短整型 short长整型 long无符号型 unsigned,单精度型 float双精度型 double,char,28,第三章 数据类型、运算符与表达式,(3) 说明, 必须在程序执行部分之前对程序 中的所有变量进行定义, C语言中整型和字符型数据通用,可在定义变量的同时给其赋初值,例: int a=3, b=4, c=5 ; float x, y, z=0.5; char w=a;,变量名不能用关键字, 变量区分大小写,29,第三章 数据类型、运算符与表达式,(4) 举

11、例3.3,#define PI 3.1415926#include “ math.h”main() float x , y ; x=67 ; y=2*sin(x*PI/180) ; printf(“y=%f” , y ) ; ,返回,30,第三章 数据类型、运算符与表达式,1、常量: 十进制 567 ,-789 ,0 八进制 0567, -0753 十六进制 0 x567 , -0 xa12、变量: int i , j ; i=10 ; j= -10 ;,3.3 整型数据,31,第三章 数据类型、运算符与表达式,3、整型变量数的表示范围:(-3276832767)4、整型变量的分类:,有符号基

12、本整型 signed int无符号基本整型 unsigned int有符号短整型 signed short int无符号短整型 unsigned short int有符号长整型 signed long int无符号长整型 unsigned long int,32,第三章 数据类型、运算符与表达式,a,0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,b,5、无符号和有符号数的比较:int a ; (-3276832767)unsigned int b ; (065535),符号位,数据位,32767,65535,2152142132122112102928272625242322

13、2120,32768、16384、8192、4096、2048、1024 ,33,第三章 数据类型、运算符与表达式,举例3.4main()int a , b , c , d ; unsigned int u ; a=12 ; b= -24 ; u=10 ; c=a+u ; d=b+u ; printf(“a+u=%d , b+u=%dn” , c , d ) ; 运行结果:a+u=22 , b+u= -14,34,第三章 数据类型、运算符与表达式,a,0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1,6、整型数据的溢出:,符号位,32767,a+1,1 0 0 0 0 0 0 0

14、 0 0 0 0 0 0 0 0,符号位,-32768,35,第三章 数据类型、运算符与表达式,举例3.5main()int a , b ; a=32767 ; b=a+1 ; printf(“a=%d , b=%dn” , a , b ) ; 运行结果:a=32767 , b= -32768,36,第三章 数据类型、运算符与表达式,7、整型常量的类型使用整型常量时应注意以下几点:在(-3276832767)范围内的整数赋给int型或long型变量如: int a ; long b ; a=0 xb4 ; b=12 ;在(-21474836482147483647)范围内的整数赋给long型变

15、量如: long b ; b=50000 ;如果机器中短整型和基本整型所占字节数相同,则同等对待 如: int a ; short b ; a=0576 ; b=a ;常量无unsigned型,赋值时注意溢出问题一个整型常量后面加一个 l 或 L则认为是long 型常量(虚实对应)如: int a ; long b ; a=1234 ; b=12L ;,37,第三章 数据类型、运算符与表达式,1、常量:小数形式 .567 ,-789. ,0.0 , 5.0 指数形式 123e4 , -753E-5 (输出时规范化 1.23000e+06)2、变量:float x ; double y ; lo

16、ng double z ; x=3.14159 ; y=7.86e12,3.4 实型数据(浮点数),38,第三章 数据类型、运算符与表达式,main( )float a , b ; a=123456.789e5 ; b= a+20 ; printf(“a=%f , b=%fn” , a , b ) ; 运行结果:a=12345678848.000000 , b= 12345678848.000000,3、实型数据的舍入误差举例3.6,39,第三章 数据类型、运算符与表达式,4、实型常量的类型 许多编译系统均将实型常量按照双精度数处理,结果存入单精度变量,降低了运算速度,可以在实型常量的后边加一

17、个 f 或 F 以表示单精度数。 如:float f ; f=2.45678 f * 4523.65 f ;5、单精度变量有6 7位有效数字(10-37 1038) 双精度变量有15 16位有效数字(10-307 10308),40,第三章 数据类型、运算符与表达式,1、常量: (a) a、 x、 ?、 $ (b) n 、 t 、 (c) 101、 x41 (d) 0 或000 ASCII值为0的空操作字符2、变量: char c1 , c2 ; c1=a ; c2=b ;3、内存中的存储形式,c1 97 0110 0001,c2 98 0110 0010,八进制,十六进制,3.5 字符型数据

18、,A,41,第三章 数据类型、运算符与表达式,4、字符型数据的使用举例3.7main()char c1 , c2 ; c1=97 ; c2=98 ; printf(“c1=%c , c2=%cn” , c1,c2 ) ; printf(“c1=%d , c2=%dn” , c1,c2 ) ; 运行结果:c1=a , c2= bc1=97,c2=98,42,第三章 数据类型、运算符与表达式,举例3.8main()char c1 , c2 ; c1=a ; c2=b ; c1=c1-32 ; c2=c2-32; printf(“c1=%c , c2=%cn” , c1,c2 ) ; printf(

19、“c1=%d , c2=%dn” , c1,c2 ) ; 运行结果:c1=A , c2=Bc1=65, c2=66,43,第三章 数据类型、运算符与表达式,举例3.9main()int i ; char c ; i=a ; c=97 ; printf(“c=%c , c=%dn” , c , c ) ; printf(“i=%c , i=%dn” , i , i ) ; 运行结果:c=a , c=97i=a , i=97,44,第三章 数据类型、运算符与表达式,5、字符串常量“How do you do.”、“CHINA”、“a”、“$123.45” 注意:(1)没有字符串变量(可用字符数组存

20、储) (2)字符串常量在内存中的存储形式,(3)在输出语句中的应用 printf(“How do you do.”) ; printf(“c=%c , c=%dn” , c , c ) ;,45,第三章 数据类型、运算符与表达式,int a=3 ;float f=3.14 ;char c=a ;int a ,b=3 ,c ;int a=3 ,b=3 ,c=3 ; 注意:变量的初始化不是在编译阶段完成的,而是在程序运行时执行本函数时赋予初始值的。,3.6 变量赋初值,46,第三章 数据类型、运算符与表达式,3.8 算术运算符与算术表达式,一、C运算符简介(13类),算术运算符 + - * / %

21、 + - -关系运算符 = = !=逻辑运算符 ! & |赋值运算符 =条件运算符 ? :逗号运算符 , 指针运算符 * & 强制类型转换运算符 (类型关键字),47,第三章 数据类型、运算符与表达式,二、算术表达式,1、定义:用算术运算符和括号将运算对象连接起来且符合C语法规则的式子,2、运算顺序 a*b/c-1.5+a,48,3、运算类型( 3.7混合运算 ),(1) 同类型运算结果类型不变,不同类型运算先按类型级 别低向高转换成同一类型, 再计算,double floatlongunsignedint char, short,高低,10+a+ i * f - d/l,4、

22、优先级和结合性,第三章 数据类型、运算符与表达式,49,第三章 数据类型、运算符与表达式,(类型关键字)(表达式),例: (int) a (float)(5%3) (double)(x+y),三、强制类型转换运算,注意: (int) x+y 只转换 x的类型后与y相加 (int) x 不等同于int (x),50,第三章 数据类型、运算符与表达式,举例3.10main()int i ; float x ; x=3.6 ; i=(int)x ; printf(“x=%f , i=%dn” , x , i ) ; 运行结果:x=3.600000 , i=3,51,第三章 数据类型、运算符与表达式,

23、四、自增、自减运算,1、运算规则,+i -i 使用前使i值加(减) 1i+ i- 使用后使i值加(减) 1,2、注意,(1) 只能用于变量,(2) 右结合方向,(3) 使用时谨防出错,52,第三章 数据类型、运算符与表达式,3、例,53,第三章 数据类型、运算符与表达式,3.9 赋值运算符和赋值表达式,一、赋值运算符及其操作,= 将一个表达式的值赋给一个变量,二、赋值表达式, ,说明:(1) 发生类型转换(自学60-61页) (2) 右结合,例:x= -b/(2*a) a=b=c=5 a= (b=4)+(c=6) 那么a=5=b=c?,54,第三章 数据类型、运算符与表达式,三、复合赋值运算,

24、复合赋值运算符=运算符+赋值号,55,第三章 数据类型、运算符与表达式,3.10 逗号运算符和逗号表达式,1、逗号表达式,表达式1,表达式2,表达式n,2、运算规则,从左到右依次计算各表达式的值,以表达式n的值作为最终值(其优先级最低),56,第三章 数据类型、运算符与表达式,举例3.11main()int i ; float f=7.2 ; printf(“i=%d n” ,(f+=4 , i=f) ; printf(“f=%f n” , f ) ; 运行结果:i=11f=11.200000,57,本章内容4.1 C语句概述4.2 赋值语句4.3 I/O的概念及在C语言中的实现4.4 字符数

25、据的输入/输出4.5 格式输入与输出,第四章 最简单的C程序设计,返回,58,第四章 最简单的C程序设计,4.1 C语句概述,第四章 最简单的C程序设计,C语句,控制语句(条件、分支、循环)函数调用语句(函数加分号)表达式语句(表达式加分号)空语句(一个单独的分号)复合语句(用 将若干语句括起),59,第四章 最简单的C程序设计,4.2 赋值语句,语句格式:赋值表达式;,例如:if ( ( a=b ) 0 ) t=a ; if ( ( a=b ) ) x=a; if (a=b ) y=a;在 if 后面的小括号内必须是表达式,60,C 程序最基本的成分是语句 目前我们已掌握的语句: 变量说明语

26、句: int a,b,c; 表达式语句: x+y; 特别地: a=5; 赋值语句,61,可以编写简单程序如: main() int x,y; x=5; y=2*x*x+3*x-1; 该程序语法上完整,但还缺少输出。,62,数据的输出 用输出函数实现,其中的两种输出函数: 1.putchar 函数 (字符输出函数) 用于输出一个字符。 如: putchar (a); putchar (100); char c=b; putchar (c);,63,例:输出单词Boy的完整程序: #include “stdio.h” 注意该语句的作用 main() char a, b, c; a=B; b=o;

27、c=y; putchar (a); putchar (b); putchar (c); ,64,2. printf函数(格式输出函数) 任意类型、任意格式、任意个数。 例如: int a=100,b=56; printf(“a=%d,b=%d”,a,b); 普通字符 格式说明 格式控制 输出表列 输出结果:a=100,b=56“%” 后的字符称格式字符,不同格式字符对应不同的数据类型。,65,d格式符:按整数格式输出 几种用法: %d 不指定宽度,按实际宽度输出 %md 按指定宽度输出,m为宽度 %ld 用于输出长整型数,66,例: int a=125,b=453; long c=65535;

28、 printf(“a=%d,b=%5d,c=%ld”,a,b,c); 输出结果: a=125,b= 453,c=65535,67,c格式符:用于输出字符 char c=A; printf(“c=%c,%c”,c,B); 输出结果:c=A,B 输出对象既可以是字符变量、字符常量,还可以是整型表达式。,68,如: int a=100; char b=A; printf(“n%d,%c”,a,a); printf(“n%c,%d”,b,b); 输出结果: 100,d A,65,69,完整前面的程序:,main() int x,y; x=5; y=2*x*x+3*x-1; printf(“n y=%d

29、”,y);,70,例4.1 已知三角形三边 a, b, c, 求面积,#include “math.h”main( ) float a, b, c, p, s; scanf(“%f, %f, %f ”, ,第四章 最简单的C程序设计,71,第四章 最简单的C程序设计,例4.2 已知整型变量x,y的值分别是3和5, 试将它们的值互换。,int x=3, y=5, z;z=x; x=y; y=z;,y,3,5,x,72,第四章 最简单的C程序设计,4.3字符数据的输入/输出,2、语句功能:从指定设备,读一个字符输出c的值(字符),1、语句格式,输入:getchar( );输出:putchar(c)

30、;,字符变量,73,第四章 最简单的C程序设计,例4.3 输入一个字符并把它输出出来,#include “stdio.h” main( ) char c; c=getchar( ); putchar(c); ,74,第四章 最简单的C程序设计,1、语句格式,输入 scanf(格式控制,地址表列);输出 printf(格式控制,输出表列);,2、语句功能,按格式控制描述的格式给地址表列中的量 输入值或输出输出表列中各量的值,3、格式控制,“”括起来的一串格式字符和其它字符,4.4 格式输入与输出,75,第四章 最简单的C程序设计,4、格式字符,指定输出宽度在格式符中插入:m.n例: %10d %

31、10.4f %12.5e,76,本章内容5.1 关系运算符和关系表达式5.2 逻辑运算符和逻辑表达式5.3 if 语句5.4 switch 语句4.5 格式输入与输出,第五章 选择结构程序设计,返回,77,第五章 逻辑运算和判断选取控制,第五章 选择结构程序设计,5.1 关系运算符和关系表达式,算术运算 关系运算 赋值运算,高,低,78,第五章 逻辑运算和判断选取控制,二、关系表达式,2、关系表达式的值,1 真0 假,79,第五章 逻辑运算和判断选取控制,5.2 逻辑运算符和逻辑表达式,一、运算符与优先级,! 算术运算 关系运算 & |,高,低,逻辑运算真值表,80,第五章 逻辑运算和

32、判断选取控制,二、逻辑表达式,例:设 a=4 , b=5 , 则 !a 为 0 (假) a&b-1 为 1 (真),5 3 & 2 | 2 4 - ! 0 结果为 1,逆波兰表达式计算过程:从左到右,运算符和其后面的比较,级别底的和前面的数一起进栈,级别高的运算,最后全部出栈同时完成计算。,81,第五章 逻辑运算和判断选取控制,(m=ab)&(n=cd) 当a=1,b=2,c=3,d=4,m=1,n=1时,执行结 果m=0, (n=cd)不被执行, n 仍然为1,2、逻辑运算的对象并非仅限于逻辑量,例 if (-5) x=10; else x=0;,思考题: 上式去掉括

33、号后m=ab & n=cd 结果如何?,82,第五章 逻辑运算和判断选取控制,5.3 if 语句(条件语句),一、语句格式,任意表达式,可以是复合语句,格式1:if (e) 语句格式2:if (e) 语句1 else 语句2格式3:if (e1 ) 语句1 else if (e2 ) 语句2 else if (e3 ) 语句3 . else if (em ) 语句m else 语句n,83,第五章 逻辑运算和判断选取控制,二、语句功能,84,第五章 逻辑运算和判断选取控制,格式3:if (e ) 语句1 else if (e ) 语句2 else if (e ) 语句3 . else

34、if (e ) 语句m else 语句n,1,2,3,m,计算 e1 的值并判断,其值非0执行语句1;否则,判断 e2 的值,其值非0执行语句2; 否则,判断 e3 的值, 其值非0执行语句3;否则,. 判断em 的值,其值非0执行语句m ;否则,执行语句n,85,第五章 逻辑运算和判断选取控制,例5.1 从键盘输入两个整型数,输出最大数。,main() int a ,b ; scanf(“%d,%d”,86,第五章 逻辑运算和判断选取控制,例5.1 从键盘输入两个整型数,输出最大数。,main() int a ,b ; scanf(“%d,%d”,87,第五章 逻辑运算和判断选取控制,例5.

35、2 输入两个整型数,按大小输出。,main() int a ,b ,temp ; scanf(“%d,%d”,88,第五章 逻辑运算和判断选取控制,例5.3 输入互不相等的三个数,按从小到大 顺序输出它们。,分析:设已知的三个数为a, b, c。(1)可直接通过逻辑表达式和条件语句 设计程序。(2)可通过条件语句和互换变量值设计 程序,即经过处理后使:abc,89,第五章 逻辑运算和判断选取控制,方法(1):,main( )float a, b, c; scanf(“%f %f %f ”,90,第五章 逻辑运算和判断选取控制,方法(2):,main( )float a, b, c, t; sc

36、anf(“%f %f %f ”,91,例5.4 求一元二次方程 ax2+bx+c=0 的解,第五章 逻辑运算和判断选取控制,92,第五章 逻辑运算和判断选取控制,#include main( ) float a, b, c, d, x1, x2; scanf(“%f %f %f ”, ,93,第五章 逻辑运算和判断选取控制,例5.5某运输公司吨公里基本运费为p,根 据距离s的远近计费标准如下: s250km没有折扣 250 s500 2% 折扣500 s1000 5% 折扣 1000 s2000 8% 折扣 2000 s300010%折扣 3000 s 15%折扣 根据货物重量w和运距s,求运

37、费f。,返回,94,第五章 逻辑运算和判断选取控制,main( ) float p,s,w,d,f; scanf(“%f %f %f ”, ,95,第五章 逻辑运算和判断选取控制,三、if 语句的嵌套,嵌套 if 的一般形式,if ( ) if ( ) 语句1 else 语句2else if ( ) 语句3 else 语句4,内嵌 if,内嵌 if,注意:else 总是与它上面最近的 if 配对,96,第五章 逻辑运算和判断选取控制,if ( ) if ( ) 语句1else if ( ) 语句2 else 语句3,内嵌 if,if ( ) if ( ) 语句1 else if ( ) 语句2

38、 else 语句3,内嵌 if,if ( ) if ( ) 语句1else 语句2,if ( ) if ( ) 语句1 else 语句2,97,第五章 逻辑运算和判断选取控制,分析:a=0 不是二次方程。 b2-4ac=0 有两个相等实根。 b2-4ac0 有两不等实根。 b2-4ac0 有两共轭复根。,#include “math.h” main( ) float a,b,c,d,x,x1,x2,xr,xi; scanf(“%f %f %f ”,编程:,例5.6 求一元二次方程 ax2+bx+c=0 的解,98,第五章 逻辑运算和判断选取控制,求x1、x2,x,求xr、xi,x1、x2,xr

39、、xi,NO!,d=0,d0,求x,y,y,n,n,y,n,a=0,开 始,a,b,c,end,99,第五章 逻辑运算和判断选取控制,if ( fabs(a)0 ) x1=(-b+sqrt(d)/(2*a); x2=(-b -sqrt(d)/(2*a); printf(“Two real roots:%f,%f ”,x1,x2); else xr= -b/(2*a); xi=sqrt(-d)/(2*a); printf(“Complex roots:%f,%f ”, xr,xi); ,100,第五章 逻辑运算和判断选取控制,四、条件运算符与条件表达式,3、优先级,算术 关系 逻辑运算(!除外)

40、 条件运算 赋值运算,高,低,右结合,101,第五章 逻辑运算和判断选取控制,(1)输出x和y当中的最大值 z=xy ? x : y ; printf(“max=%d”,z);或 printf(“max=%d”,xy?x:y); 或 xy?printf (“%d”,x) : printf (“%d”,y);,举例:,(2)ab?a:b+1等价于ab?a:(b+1)而不是(ab?a:b)+1(3)ab?a:cd?c:d等价于ab?a:(cd?c:d)(4)xy?1:5.6 表达式的值的类型取高的(5)ch=(ch=A,102,第五章 逻辑运算和判断选取控制,5.4 switch 语句,103,第

41、五章 逻辑运算和判断选取控制,三、break 语句,使流程跳出switch结构,终止switch语句的执行。,104,第五章 逻辑运算和判断选取控制,例5.7 用switch语句设计“例5.5运费程序”,跳转,s 1 d=0 1 s 2 d=0.2 2 s 4 d=0.05 4 s 8 d=0.08 8 s 12 d=0.112 s d=0.15,105,第五章 逻辑运算和判断选取控制,main( )float p, w, s, d,f; int c; scanf(“%f”, case 4 :,case 5 : case 6 : case 7 : d=0.08; break; case 8 :

42、 case 9 : case 10: case 11: d=0.1; break; case 12: d=.15; break; f=p*w*s*(1-d); printf(“f=%15.2f ”, f); ,106,第五章作业,第111页 5.3 、 5.5、 5.7,上机调试作业,第111-112页 5.6、 5.7,第五章 逻辑运算和判断选取控制,107,第五章 逻辑运算和判断选取控制,习题5.5 已知x,求分段函数值y,main() float x, y; scanf(“%f”, ,程序1:,108,第五章 逻辑运算和判断选取控制,main() float x, y; scanf(“%

43、f”, ,程序2:,109,第五章 逻辑运算和判断选取控制,习题5.6,分析:设百分制成绩为x, 成绩等级为y,110,第五章 逻辑运算和判断选取控制,习题5.10,分析:设坐标为(x, y), 高度为h设:a=(x-2) + (y-2) 1b=(x+2) + (y-2) 1c=(x+2) + (y+2) 1d=(x-2) + (y+2) 1,2,2,2,2,2,2,2,2,111,本章内容6.1 概述6.2 goto语句6.3 while语句6.4 do-while语句6.5 for语句6.6 循环的嵌套6.7 几种循环的比较6.8 break语句和continue语句,第六章 循环控制,返

44、回,112,第六章 循环控制,第六章 循环控制,C 循环控制,if - goto循环(6.2) while循环(6.3)do - while循环(6.4)for循环(6.5),6.1 概述,113,第六章 循环控制,6.2 goto语句及其构成的循环,一、goto语句,114,第六章 循环控制,二、用法,1、与if语句联合使用构成循环,2、用来实现从多重循环体内转出,L1: if(e) 循环体 goto L1; (当型循环),L2: 循环体 if(e) goto L2; (直到型循环),115,第六章 循环控制,例6.1 求 s=1+2+3+.+n 的值。,main( ) int i=1, s

45、um=0, n; scanf(“%d”, ,main( ) int i=1, sum=0, n; scanf(“%d”, ,116,第六章 循环控制,6.3 while语句“当型”循环,一、语句格式,while(e)循环体,二、执行过程(先判断后执行),当表达式 e 值为非0时,执行循环体,然后重复执行while语句;当e 的值为0 时,结束循环,执行后继语句。,单语句或复合语句,117,第六章 循环控制,例6.2 求 s=1+2+3+.+n 的值(用while循环n=100)。,main( ) int i=1, s=0, n; scanf(“%d”,main( ) int i=1, s=0,

46、 n; scanf(“%d”,118,第六章 循环控制,6.4 do-while语句“直到型”循环,一、语句格式,do 循环体while(e);,二、执行过程(先执行后判断),先执行do后的循环体,然后判断表达式e 的值,若为非0,重复执行循环体,直到while中的表达式e 为0,结束循环。,单语句或复合语句,119,第六章 循环控制,例6.3 求 s=1+2+.+n 的值(用do-while循环n=100)。,main( ) int i=1, s=0, n; scanf(“%d”,main( ) int i=1, s=0, n; scanf(“%d”,120,第六章 循环控制,6.5 for

47、语句及其构成的循环,二、执行过程,1、计算表达式1。2、判断表达式2。 若非0,执行循环体,转3; 否则,结束循环,转4。3、计算表达式3。转2。4、执行for语句的下一条语句。,121,第六章 循环控制,三、说明,例6.4 求 s=1+2+.+n 的值(用for循环n=100)。,main( ) int i, s=0, n; scanf(“%d”, ,122,第六章 循环控制,2、for语句中的三个表达式均可省略 注意:(1) 分号不能省略。 (2) 应保证循环正确执行。,main( ) int i=1, s=0, n; scanf(“%d”,main( ) int i=1, s=0, n;

48、 scanf(“%d”,123,第六章 循环控制,例6.5 给一年级的小学生出10道100以内的加法练习题。,分析:1、出题 2、回答 3、判断对错,#include “stdlib.h” main( ) int i , x , y , z ; randomize(); for(i=1; i=10; i+) x=random(99); y=random(99); printf(“%d+%d=”, x , y ); scanf(“%d”, ,思考:1、做对几题 2、总成绩,#include “stdlib.h” main( ) int i ,x ,y ,z ; int count=0 ,scor

49、e=0 ; randomize(); for(i=1; i=10; i+) x=random(99); y=random(99); printf(“%d+%d=”, x , y ); scanf(“%d”, ,124,第六章 循环控制,例6.6 求Fibonacci数列:1, 1, 2, 3, 5, 8, .的前30项。,分析:f1=f2=1, fn=fn-1+f n-2 (n=3) (注:一行打印3个数字),main( ) long i=1, j=1, k ; int n ; printf(“%8ld%8ld”, i , j) ; for(n=3; n=30; n+) k=i+j ; pri

50、ntf(“%8ld”, k) ; if(n%3= =0) printf(“n”) ; i=j ; j=k ; ,125,第六章 循环控制,例6.7 求分数序列:1/2,2/3,3/5,5/8,8/13, 13/21, .的前20项之和。,main() int k ; float i=1 , j=2 , s=0; for(k=1 ; k=20 ; k+) s=s+i/j ; j=i+j ; i=j-i ; printf(“sum=%10.6fn ”, s); ,126,第六章 循环控制,1、循环的嵌套概念对各种循环结构是一样的, 即某一循环的循环体内包含另一循环结构。,2、各种循环结构可以互相嵌套。,for-while嵌套for( ; ; ) . w

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

当前位置:首页 > 技术资料 > 其他杂项

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁