C语言教程基础篇课件.ppt

上传人:飞****2 文档编号:69315340 上传时间:2023-01-01 格式:PPT 页数:185 大小:1.78MB
返回 下载 相关 举报
C语言教程基础篇课件.ppt_第1页
第1页 / 共185页
C语言教程基础篇课件.ppt_第2页
第2页 / 共185页
点击查看更多>>
资源描述

《C语言教程基础篇课件.ppt》由会员分享,可在线阅读,更多相关《C语言教程基础篇课件.ppt(185页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、一、教学对象 计算机科学与技术系新生(第二学期)二、教学目标 程序设计的重要性 程序设计的基本概念与基本方法 编程解题的思路与典型方法 数学模型简介 算法及算法步骤 程序结构与相应语句 编码与上机调试绪论绪论绪论绪论 三、教学重点三、教学重点三、教学重点三、教学重点 1.1.1.1.程序设计的基本概念,基本方法;程序设计的基本概念,基本方法;程序设计的基本概念,基本方法;程序设计的基本概念,基本方法;2.2.2.2.在在在在 C C C C语言的环境下,学会如何针对问题进行分析,语言的环境下,学会如何针对问题进行分析,语言的环境下,学会如何针对问题进行分析,语言的环境下,学会如何针对问题进行分

2、析,得出数学模型,理出算法并编程实现;得出数学模型,理出算法并编程实现;得出数学模型,理出算法并编程实现;得出数学模型,理出算法并编程实现;3.3.3.3.有条有理有根有据的编程实践;有条有理有根有据的编程实践;有条有理有根有据的编程实践;有条有理有根有据的编程实践;4.4.4.4.养成良好的编程风格与习惯;养成良好的编程风格与习惯;养成良好的编程风格与习惯;养成良好的编程风格与习惯;5.5.5.5.重在思维方法的学习,鼓励创新。重在思维方法的学习,鼓励创新。重在思维方法的学习,鼓励创新。重在思维方法的学习,鼓励创新。绪论绪论绪论绪论四、指导思想四、指导思想1.1.立足改革,以培养高素质有创造

3、精神的人才为这门课立足改革,以培养高素质有创造精神的人才为这门课的教学目标。的教学目标。2.2.以学生为中心,采用与现实生活贴切和具有趣味性的以学生为中心,采用与现实生活贴切和具有趣味性的实例进行讲解,有利于调动学生学习的积极性,引导学生实例进行讲解,有利于调动学生学习的积极性,引导学生主动学习。主动学习。3.3.强化实践,这门课主张程序设计是高强度的脑力劳强化实践,这门课主张程序设计是高强度的脑力劳动,不是听会的、也不是看会的,而是练会的。引导学生动,不是听会的、也不是看会的,而是练会的。引导学生在解题编程的实践中探索其中带规律性的认识。将感性认在解题编程的实践中探索其中带规律性的认识。将感

4、性认识升华到理性高度。识升华到理性高度。绪论绪论绪论绪论五、学习方法五、学习方法 1.1.动手动脑,理论指导下的实践动手动脑,理论指导下的实践 有条有理的实践。有条有理的实践。2.2.在编写大量程序之后,才能感到运用自如。在编写大量程序之后,才能感到运用自如。绪论绪论绪论绪论六、教学内容安排六、教学内容安排 1.1.简单简单C C程序设计;程序设计;2.2.分支结构程序设计;分支结构程序设计;3.3.循环结构程序设计;循环结构程序设计;4.4.数组;数组;5.5.函数;函数;6.6.递归及其实现方法递归及其实现方法 7.7.指针;指针;8.8.结构体与链表。结构体与链表。绪论绪论绪论绪论1.1

5、 1.1 认识认识C C语言程序语言程序 1.1.程序实例程序实例#include /#include /预编译命令预编译命令,将标准输入输出函数将标准输入输出函数 /作为头文件包扩到用户源文件中作为头文件包扩到用户源文件中#include /#include /预编译命令预编译命令,将系统提供的数学函数将系统提供的数学函数 /作为头文件包扩到用户源文件中作为头文件包扩到用户源文件中 main()main()/主函数,名为主函数,名为mainmain,/函数体函数体.开始开始 float a,b,c;float a,b,c;/声明部分声明部分.定义变量类型定义变量类型 b=30.0;b=30.

6、0;/执行部分执行部分.赋值语句赋值语句 a=sin(b*3.14159/180);/a=sin(b*3.14159/180);/执行部分执行部分.赋值语句赋值语句 printf(printf(“%fn%fn”,a);,a);/执行部分执行部分.输出语句输出语句 /函数体函数体.结束结束第一讲第一讲 简单的简单的C C程序设计程序设计1.2 实例总结实例总结 1.C程序结构程序结构预编译命令预编译命令主函数主函数main()函数体开始函数体开始声明部分声明部分执行部分执行部分函数体结束函数体结束第一讲第一讲 简单的简单的C C程序设计程序设计2.2.变量的类型变量的类型 整型:整型:int i

7、nt 长整型:长整型:longlong 浮点型:浮点型:floatfloat 双精度型:双精度型:doubledouble 字符型:字符型:charchar 用户自定义类型用户自定义类型第一讲第一讲 简单的简单的C C程序设计程序设计 3.3.声明的作用声明的作用 为变量分配内存单元,变量名作为内存单元的为变量分配内存单元,变量名作为内存单元的符号地址,这件事是在程序编译链接时完成的。符号地址,这件事是在程序编译链接时完成的。4.变量变量 其值可以改变的量,是内存单元的符号地址。其值可以改变的量,是内存单元的符号地址。通过符号通过符号b可以找到相应的存储单元地址,假设可以找到相应的存储单元地址

8、,假设为为1000。语句语句 b=30.0b=30.0;是将值是将值30.030.0存放在地址存放在地址为为1000的的存储单元存储单元。第一讲第一讲 简单的简单的C C程序设计程序设计5.5.对变量的赋值对变量的赋值 赋值符号赋值符号“=”b=30.0;/读作将表达式的值读作将表达式的值30.0赋给变量赋给变量b a=sin(b*3.14159/180);/读作将表达式(正弦函数)的值赋给变量读作将表达式(正弦函数)的值赋给变量a 第一讲第一讲 简单的简单的C C程序设计程序设计6.6.变量赋值特点变量赋值特点 (1)先定义,后使用)先定义,后使用 int d,e,f;定义三个变量为整数类型

9、定义三个变量为整数类型 如未定义,则在编译时被查出,认为非法如未定义,则在编译时被查出,认为非法 (2)变量未被赋值前,值为)变量未被赋值前,值为未知未知(3)对变量赋值过程是)对变量赋值过程是“覆盖覆盖”过程,用新值去替换旧过程,用新值去替换旧(4)读出变量的值,该变量保持不变)读出变量的值,该变量保持不变 (5)参与表达式运算的所有变量都保持原来的值不变)参与表达式运算的所有变量都保持原来的值不变第一讲第一讲 简单的简单的C C程序设计程序设计变量赋值过程变量赋值过程 d e fd e f未赋值前未赋值前执行执行d=7执行执行 e=d 执行执行 f=d+e执行执行 d=d+1 000-12

10、349723431607234316077077148714第一讲第一讲 简单的简单的C C程序设计程序设计7.7.输出语句输出语句 printfprintf函数(格式输出函数)函数(格式输出函数)一般形式为一般形式为 printf(printf(参数参数1 1,参数,参数2 2,参数,参数3 3,参数,参数n n)其中参数其中参数1 1格式控制格式控制 参数参数2 2,参数,参数3 3,参数,参数n n输出表列输出表列 举例:举例:float a;float a;int b;int b;a=85.56;a=85.56;b=100;b=100;printf(%f%d,a,b);printf(%

11、f%d,a,b);第一讲第一讲 简单的简单的C C程序设计程序设计格式控制是用双引号括起来的字符串,称格式控制是用双引号括起来的字符串,称“转换控制字转换控制字符串符串”%f 第一个输出表列的格式说明,以小数形式输出第一个输出表列的格式说明,以小数形式输出单、双精度实数,隐含输出单、双精度实数,隐含输出6位小数位小数%d 第二个输出表列的格式说明,以带有符号的十第二个输出表列的格式说明,以带有符号的十进制形式输出整数(正数不输出符号)进制形式输出整数(正数不输出符号)显然,显然,%f是控制实数是控制实数a的;的;%d是控制整数是控制整数b的的第一讲第一讲 简单的简单的C C程序设计程序设计为了

12、醒目,格式控制项中除格式说明之外可以有为了醒目,格式控制项中除格式说明之外可以有普通字符普通字符例例:printf(:printf(“a=%f b=%d,a,b);a=%f b=%d,a,b);输出结果为:输出结果为:a=85.560000 b=100a=85.560000 b=100换行符号换行符号 例例:printf(:printf(“a=%fnb=%da=%fnb=%d”,a,b);,a,b);输出结果为:输出结果为:a=85.560000a=85.560000 b=100 b=100域宽和精度域宽和精度例:例:printfprintf(”%5.3f%5.3f”,a a);第一讲第一讲

13、简单的简单的C C程序设计程序设计8.数学函数数学函数 sin(x)x x为弧度,为弧度,double xdouble x,double sin(x)double sin(x)cos(x)cos(x)exp(x)exlog(x)logexlog10(x)log10 xfabs(x)xfmod(x,y)整除整除x/y的余数的余数floor(x)求不大于求不大于x的最大整数的最大整数pow(x,y)xysqrt(x)x1/2第一讲第一讲 简单的简单的C C程序设计程序设计9.算术运算符算术运算符 加加 减减 *乘乘 /除除%模(取余数)模(取余数)第一讲第一讲 简单的简单的C C程序设计程序设计1

14、.3 1.3 作业作业第一讲第一讲 简单的简单的C C程序设计程序设计 我们在日常生活中经常需要处理具有两个分支的问题,我们在日常生活中经常需要处理具有两个分支的问题,例例如,如果明天下雨,则在教室内组织活动,否则去野游。如,如果明天下雨,则在教室内组织活动,否则去野游。在在C C语言中,这类问题需要使用语言中,这类问题需要使用ifif语句解决,而判断操语句解决,而判断操作通常使用关系运算符。作通常使用关系运算符。关系运算符和关系表达式关系运算符和关系表达式 大于大于 =大于等于大于等于 =小于等于小于等于 =等于等于 !=!=不等于不等于第二讲第二讲 分支结构分支结构2.1 2.1 掌握掌握

15、ifif语句的使用方法语句的使用方法【实例实例】编写程序,判断输入的整数是否为编写程序,判断输入的整数是否为6 6,若是,显示,若是,显示“RightRight!”和和“Great!Great!”,否则显示,否则显示“WrongWrong!”和和“SorrySorry!”。1编程思路:编程思路:要显示要显示“RightRight!”和和“GreatGreat!”,应执行两条语句,应执行两条语句“printf(printf(”RightRight!nn“););”和和“printf(printf(”GreatGreat!nn“););”,要显示,要显示“WrongWrong!”和和“SorryS

16、orry!”,执行两条语,执行两条语句句“printf(printf(”WrongWrong!nn“););”和和“printf(printf(”SorrySorry!nn“););”。本题需要根据所输入的值(假设赋给。本题需要根据所输入的值(假设赋给a a)是否为)是否为6 6来选择执行相应的两条语句。来选择执行相应的两条语句。在在C C语言中判断语言中判断a a中的值是否为中的值是否为6 6,使用,使用“if(a=6)if(a=6)”形式。形式。第二讲第二讲 分支结构分支结构本实例的流程图如图所示 开始输入a值a=6显 示“Right!”显 示“Great!”显 示“Wrong!”显 示“

17、Sorry!”结束假真第二讲第二讲 分支结构分支结构本实例的N-S流程图如图所示输入a的值a=6显示“Right!”显示“Great!”显示“Wrong!”显示“Sorry!”第二讲第二讲 分支结构分支结构2 2程序代码程序代码:#include main()int a=0;printf(Input a:);scanf(%d,&a);printf(a=%dn,a);if(a=6)/*if语句开始语句开始*/printf(Right!n);printf(Great!n);else printf(Wrong!n);printf(Sorry!n);/*if语句结束语句结束*/第二讲第二讲 分支结构分

18、支结构3 3运行结果:运行结果:第第1 1次运行结果:次运行结果:Input a:6Input a:6 a=6 a=6 Right Right!GreatGreat!第第2 2次运行结果:次运行结果:Input a:5Input a:5 a=5 a=5 Wrong Wrong!SorrySorry!第二讲第二讲 分支结构分支结构4 4归纳分析:归纳分析:(1 1)程序中的)程序中的“a=6a=6”是关系表达式。是关系表达式。用用关关系系运运算算符符把把两两个个C C语语言言表表达达式式连连接接起起来来的的表表达达式式称称为为关关系系表表达达式式。关关系系运运算算的的判判断断结结果果只只有有“真

19、真”或或“假假”两两种种可可能,关系成立时为能,关系成立时为“真真”,不成立时为,不成立时为“假假”。关关系系表表达达式式的的值值只只能能是是1 1或或0 0,当当关关系系运运算算的的判判断断结结果果为为“真真”时时,关关系系表表达达式式的的值值为为 1 1,否否则则,关关系系表表达达式式的的值值为为0 0。例例如如,当当a a的的值值为为6 6时时,关关系系表表达达式式“a=6a=6”的的值值为为1 1,当当a a的的值为值为5 5时,关系表达式时,关系表达式“a=6a=6”的值为的值为0 0。第二讲第二讲 分支结构分支结构(2 2)程序中的)程序中的“if(a=6)if(a=6)”是是if

20、if语句的开始部分。语句的开始部分。本本例例题题需需要要根根据据“a=6a=6”是是否否为为“真真”来来选选择择执执行行不不同同的的两两个个输输出出语语句句。处处理理两两个个分分支支的的问问题题时时常常使使用用ifif语语句句。ifif语语句根据其后面括号中表达式的结果,选择执行某个分支程序段。句根据其后面括号中表达式的结果,选择执行某个分支程序段。ifif语句的一般形式如下:语句的一般形式如下:if(if(表达式表达式)语句组语句组1 1 else else 语句组语句组2 2 “ifif”和和“elseelse”是关键字。当表达式结果为是关键字。当表达式结果为“真真”(即(即不等不等于于0

21、 0)时,执行语句组)时,执行语句组1 1,表达式结果为,表达式结果为“假假”(即等于(即等于0 0)时,)时,执行语句组执行语句组2 2。在语句组。在语句组1 1和语句组和语句组2 2中只能选择执行一组,而中只能选择执行一组,而后执行整个后执行整个ifif语句后面的语句。语句后面的语句。第二讲第二讲 分支结构分支结构(3)C语言中允许程序中的if语句不带else部分。省略else的if语句一般形式如下:if(表达式)语句组 此if语句的执行过程:当表达式结果为“真”时,执行语句组,表达式结果为“假”时,不处理。第二讲第二讲 分支结构分支结构2.2学会使用逻辑运算符 处理问题时经常需要同时判断

22、多个条件。例如,在某学生数学和英语成绩中判断是否至少有一门课程是不及格。这时使用逻辑运算符。逻辑运算符共有三种:&逻辑与|逻辑或 !逻辑非这3个运算符按高到低的优先级顺序是“!”、“&”、“|”一般而言,单目运算符优先级较高,赋值运算符优先级低。算术运算符优先级较高,关系和逻辑运算符优先级较低。第二讲第二讲 分支结构分支结构【实例】编写程序,判断某人的体重是否在50公斤至55公斤之间,若在此范围之内,显示“Ok”,否则显示“No”。1编程思路:先将体重存放在变量w中,要使w的值在50至55范围内,应同时满足“w=50”和“w=50&w=50”和“w=50&w=50&w=55显示“Ok”显示“N

23、o”第二讲第二讲 分支结构分支结构2 2程序代码:程序代码:#include main()float w=0.0;printf(Input w:);scanf(%f,&w);printf(w=%.1fn,w);if(w=50&w=55)printf(Okn);else printf(Non);第二讲第二讲 分支结构分支结构3.运行结果:第1次运行结果:Input w:53.5w=53.5Ok第2次运行结果:Input w:60.7w=60.7No第二讲第二讲 分支结构分支结构4 4归纳分析归纳分析:程序中的“w=50&w0且w0&w0&w=50 w=50 w=55)/*/*内嵌内嵌ifif语句

24、开始语句开始*/*/printf(printf(“OkOkn);n);elseelseprintf(Non);/*printf(Non);/*内嵌内嵌ifif语句结束语句结束*/*/elseelseprintf(Data over!n);/*printf(Data over!n);/*外嵌外嵌ifif语句结束语句结束*/*/第二讲第二讲 分支结构分支结构3 3运行结果运行结果:第第1 1次运行结果次运行结果:Input w:Input w:53.553.5 w=53.5w=53.5OkOk第第2 2次运行结果次运行结果:Input w:Input w:60.760.7 w=60.7w=60.7

25、NoNo第第3 3次运行结果次运行结果:Input w:Input w:201.7201.7 w=201.7w=201.7Data over!Data over!第二讲第二讲 分支结构分支结构4归纳分析:(1)本程序在一个if语句中包含了另一个if语句。在if语句的语句组1或语句组2中又包含另一个分支结构的if语句称为嵌套的if语句。(2)本程序中出现了两次else。C语法规定,在if语句中,若多次出现else,则每一个else总是与前面最近的if配对,所以本例题中第一个else与内嵌的if配对,第二个else与最上面的if配对。程序中由于采用了缩进格式,if与else的配对关系一目了然。第二

26、讲第二讲 分支结构分支结构2.42.4学会使用学会使用if-else ifif-else if形式的嵌套形式的嵌套ifif语句语句 【实例实例】编写程序,求下面分段函数的值,要求编写程序,求下面分段函数的值,要求x x的值从键盘的值从键盘输入。输入。x+2 (0 x5)y=0 (x0)x2-3 (5x10)10 (x10)第二讲第二讲 分支结构分支结构1 1编程思路:编程思路:开始开始输入输入x值值x00结束结束假假真真真真假假显示显示x x和和y y的值的值x55真真假假x1010y=x+2y=10y=x2-3y=0第二讲第二讲 分支结构分支结构2 2程序代码:程序代码:#include#i

27、nclude main()main()float x=0,y=0;float x=0,y=0;printf(Input x:);printf(Input x:);scanf(%f,&x);scanf(%f,&x);if(x0)if(x0)y=0;y=0;else else if(x5)y=x+2;if(x5)y=x+2;else else if(x10)y=x*x-3;if(x10)y=x*x-3;else y=10;else y=10;printf(x=%f,y=%fn,x,y);printf(x=%f,y=%fn,x,y);第二讲第二讲 分支结构分支结构2.5 switch语句 在日常生活

28、中经常遇到菜单选择操作,例如,用ATM自动取款机取钱时,从菜单中可以选择语种、取款额;用自动服务系统给手机充值时,可以选择查余额还是充值,对本机充值还是对其他号码充值等。这些问题一般使用switch语句解决。总之,这些问题都是多分支情况。第二讲第二讲 分支结构分支结构【实实例例】编编写写程程序序,在在如如下下菜菜单单中中选选择择一一个个运运算算类类型型,并进行相应的运算。如选择了加法,则进行求和运算。并进行相应的运算。如选择了加法,则进行求和运算。Please choose Please choose+:addition+:addition-:subtraction-:subtraction*

29、:multiplication*:multiplication/:division/:division第二讲第二讲 分支结构分支结构1 1程序代码:程序代码:#include#include main()main()float a=5.0,b=2.0,c=0.0;float a=5.0,b=2.0,c=0.0;char sym=0;char sym=0;printf(Please choosen);printf(Please choosen);printf(+:additionn);printf(+:additionn);printf(-:subtractionn);printf(-:subt

30、ractionn);printf(*:multiplicationn);printf(*:multiplicationn);printf(/:divisionn);printf(/:divisionn);sym=getchar();sym=getchar();printf(%f%c%f=,a,sym,b);printf(%f%c%f=,a,sym,b);/*/*显示算式显示算式*/第二讲第二讲 分支结构分支结构switch(sym)switch(sym)/*/*计算算式计算算式*/case+:c=a+b;break;case+:c=a+b;break;case-:c=a-b;break;cas

31、e-:c=a-b;break;case*:c=a*b;break;case*:c=a*b;break;case/:c=a/b;break;case/:c=a/b;break;printf(%fn,c);printf(%fn,c);/*/*显示结果显示结果*/第二讲第二讲 分支结构分支结构2 2运行结果:运行结果:Please choosePlease choose+:addition+:addition-:subtraction-:subtraction*:multiplication*:multiplication/:division/:division/5.000000/2.000000=

32、2.5000005.000000/2.000000=2.500000 第二讲第二讲 分支结构分支结构3 3归纳分析归纳分析:switchswitch语句的一般形式为:语句的一般形式为:switch(switch(表达式表达式)case case 表达式表达式1:1:语句组语句组1 break;1 break;case case 表达式表达式2:2:语句组语句组2 break;2 break;case case 表达式表达式n:n:语句组语句组n break;n break;default:default:语句组语句组n+1 break;n+1 break;其中其中switchswitch、ca

33、secase、defaultdefault和和breakbreak是关键字,所有表达式均是关键字,所有表达式均为整型或字符型。在表达式为整型或字符型。在表达式1 1、表达式、表达式2 2、表达式、表达式n n中只能中只能出现常量和运算符,而且每个表达式的值不能相等。出现常量和运算符,而且每个表达式的值不能相等。第二讲第二讲 分支结构分支结构2.6 2.6 条件运算符及其表达式条件运算符及其表达式 C C语语言言中中条条件件运运算算符符由由“?”和和“:”组组成成,例例如如“ab ab?a a:b:b”。条件表达式的一般形式为:条件表达式的一般形式为:表达式表达式1 1?表达式?表达式2 2:表

34、达式:表达式3 3当当表表达达式式1 1的的值值为为非非0 0时时,以以表表达达式式2 2的的值值作作为为条条件件表表达达式式的的值值,否否则则,以以表表达达式式3 3的的值值作作为为条条件件表表达达式式的的值值。例例如如,当当abab成成立立时时,条条件件表表达达式式“ab ab?a a:b b”的的值值为为a a中中的的值值,否则为否则为b b中的值。中的值。使用条件表达式也可以实现分支结构。使用条件表达式也可以实现分支结构。第二讲第二讲 分支结构分支结构课堂讨论:谁做的好事?课堂讨论:谁做的好事?忻州师院有四位同学中的一位做了好事,不留名,表扬信忻州师院有四位同学中的一位做了好事,不留名

35、,表扬信来了之后,校长问这四位是谁做的好事。来了之后,校长问这四位是谁做的好事。A说:不是我。说:不是我。B说:是说:是C。C说:是说:是D。D说:说:C胡说。胡说。已知三个人说的已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。画出了好事的人。画出N-S流程图并写出程序。流程图并写出程序。第二讲第二讲 分支结构分支结构1 1 1 1、编程思路:、编程思路:、编程思路:、编程思路:如何找到该人,一定是如何找到该人,一定是如何找到该人,一定是如何找到该人,一定是“先假设该人是做好事者,然先假设该人是做好事者,然先假设

36、该人是做好事者,然先假设该人是做好事者,然后到每句话中去测试看有几句是真话后到每句话中去测试看有几句是真话后到每句话中去测试看有几句是真话后到每句话中去测试看有几句是真话”。“有三句是真话就有三句是真话就有三句是真话就有三句是真话就确定是该人,否则换下一人再试确定是该人,否则换下一人再试确定是该人,否则换下一人再试确定是该人,否则换下一人再试”。比如,先假定是比如,先假定是比如,先假定是比如,先假定是A A A A同学,让同学,让同学,让同学,让 thisman=A;thisman=A;thisman=A;thisman=A;代入到四句话中代入到四句话中代入到四句话中代入到四句话中 A A A

37、 A说:说:说:说:thisman!=thisman!=thisman!=thisman!=A A A A;A A A A!=!=!=!=A A A A 假,值为假,值为假,值为假,值为0 0 0 0。B B B B说:说:说:说:thisman=thisman=thisman=thisman=C C C C;A A A A=C C C C 假,值为假,值为假,值为假,值为0 0 0 0。C C C C说:说:说:说:thisman=thisman=thisman=thisman=D D D D;A A A A=D D D D 假,值为假,值为假,值为假,值为0 0 0 0。D D D D说:

38、说:说:说:thisman!=thisman!=thisman!=thisman!=D D D D;A A A A!=!=!=!=D D D D 真,值为真,值为真,值为真,值为1 1 1 1。显然,不是显然,不是AA做的好事(四个关系表达式值的和为做的好事(四个关系表达式值的和为1 1)第二讲第二讲 分支结构分支结构再试再试再试再试B B B B同学,让同学,让同学,让同学,让thisman=thisman=thisman=thisman=B B B B;代入到四句话中代入到四句话中代入到四句话中代入到四句话中A A A A说:说:说:说:thisman!=thisman!=thisman!

39、=thisman!=A A A A;B B B B!=!=!=!=A A A A 真,值为真,值为真,值为真,值为1 1 1 1。B B B B说:说:说:说:thisman=thisman=thisman=thisman=C C C C;B B B B=C C C C 假,值为假,值为假,值为假,值为0 0 0 0。C C C C说:说:说:说:thisman=thisman=thisman=thisman=D D D D;B B B B=D D D D 假,值为假,值为假,值为假,值为0 0 0 0。D D D D说:说:说:说:thisman!=thisman!=thisman!=thi

40、sman!=D D D D;B B B B!=!=!=!=D D D D 真,值为真,值为真,值为真,值为1 1 1 1。显然,不是显然,不是BB所为(四个关系表达式值的和为所为(四个关系表达式值的和为2 2)第二讲第二讲 分支结构分支结构再试再试再试再试C C C C同学,让同学,让同学,让同学,让thisman=thisman=thisman=thisman=C C C C;代入到四句话中代入到四句话中代入到四句话中代入到四句话中A A A A说:说:说:说:thisman!=thisman!=thisman!=thisman!=A A A A;C C C C!=!=!=!=A A A A

41、 真,值为真,值为真,值为真,值为1 1 1 1。B B B B说:说:说:说:thisman=thisman=thisman=thisman=C C C C;C C C C=C C C C 真,值为真,值为真,值为真,值为1 1 1 1。C C C C说:说:说:说:thisman=thisman=thisman=thisman=D D D D;C C C C=D D D D 假,值为假,值为假,值为假,值为0 0 0 0。D D D D说:说:说:说:thisman!=thisman!=thisman!=thisman!=D D D D;C C C C!=!=!=!=D D D D 真,值

42、为真,值为真,值为真,值为1 1 1 1。显然,就是显然,就是C C做了好事(四个关系表达式值之和为做了好事(四个关系表达式值之和为3 3)这时,我可以理出头绪,要用所谓枚举法,一个人一个人地这时,我可以理出头绪,要用所谓枚举法,一个人一个人地去试,去试,四句话中有三句为真,该人即所求。四句话中有三句为真,该人即所求。第二讲第二讲 分支结构分支结构 循环结构是程序中一种很重要的结构。其特点循环结构是程序中一种很重要的结构。其特点是,是,在给定条件成立时,反复执行某程序段,直到在给定条件成立时,反复执行某程序段,直到条件不成立为止。条件不成立为止。给定的条件称为循环条件,反复给定的条件称为循环条

43、件,反复执行的程序段称为循环体。执行的程序段称为循环体。语言提供了三种循环语言提供了三种循环语句,可以组成各种不同形式的循环结构语句,可以组成各种不同形式的循环结构,它们是它们是:语句语句 语句语句 语句语句第三讲第三讲 循环结构循环结构3.1 3.1 简单循环简单循环【实例实例】古典问题:有一对兔子,从出生后第古典问题:有一对兔子,从出生后第3 3个月起每个月个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?假如兔子都不死,问每个月的兔子总数为多少?1.1.程序分析:兔子的规律为数

44、列程序分析:兔子的规律为数列1,1,2,3,5,8,13,21.1,1,2,3,5,8,13,21.该数列的规律为该数列的规律为 a a1 1=1=1 a a2 2=1=1 a an n=a=an-1n-1+a+an-2n-2 这里求前这里求前2020项项第三讲第三讲 循环结构循环结构i=20a1=1;a2=1;i=3an=a1+a2输出ani=i+1;a1=a2;a2=an;YendbeginN第三讲第三讲 循环结构循环结构该题目的该题目的N-SN-S流程图流程图a1=1;a2=1;an=0;i=20an=a1+a2输出ani=i+1a1=a2a2=an第三讲第三讲 循环结构循环结构2.程序

45、源代码:方法一:for循环语句#include stdio.h#include stdio.hmain()main()long a1,a2,an;long a1,a2,an;int i;int i;a1=a2=1;a1=a2=1;for(i=3;i=20;i+)for(i=3;i=20;i+)an=a1+a2;an=a1+a2;printf(printf(“a%d=%lda%d=%ld”,i,an);,i,an);a1=a2;a1=a2;a2=an;a2=an;可否调换?第三讲第三讲 循环结构循环结构方法二:while循环语句#include stdio.h#include stdio.hma

46、in()main()long a1,a2,an;long a1,a2,an;int i;int i;a1=a2=1;i=3a1=a2=1;i=3;whilewhile(i=20i=20)an=a1+a2;an=a1+a2;printf(printf(“a%d=%lda%d=%ld”,i,an);,i,an);a1=a2;a1=a2;a2=an;a2=an;i+;i+;第三讲第三讲 循环结构循环结构方法三:do-while循环语句#include stdio.h#include stdio.hmain()main()long a1,a2,an;long a1,a2,an;int i;int i;

47、a1=a2=1;i=3a1=a2=1;i=3;dodo an=a1+a2;an=a1+a2;printf(printf(“a%d=%lda%d=%ld”,i,an);,i,an);a1=a2;a1=a2;a2=an;a2=an;i+;i+;whilewhile(i=20);i=20);第三讲第三讲 循环结构循环结构3.3.归纳分析归纳分析(1 1)forfor语句格式:语句格式:for(for(表达式表达式1;1;表达式表达式2;2;表达式表达式3)3)语句语句 即:即:for(for(循环变量赋初值循环变量赋初值 ,循环结束条件循环结束条件 ,循环变量增循环变量增值值 )语句语句 第三讲第三

48、讲 循环结构循环结构ForFor语句执行过程语句执行过程表达式1 表达式2 表达式3 语 句 YN第三讲第三讲 循环结构循环结构表达式可以省略,但分号不能省略表达式可以省略,但分号不能省略a)a)省略表达式省略表达式1 1 i=1 i=1 for(for(;i=50 i=50;i+)sum=sum+2*ii+)sum=sum+2*ib)b)省略表达式省略表达式2 2产生死循环产生死循环 for(i=1for(i=1;i+)sum=sum+2*ii+)sum=sum+2*ic)c)省略表达式省略表达式3 3 for(i=1 for(i=1;i=50 i=50;)sum=sum+2*i;i+;su

49、m=sum+2*i;i+;d)d)省略表达式省略表达式1,1,省略表达式省略表达式3 3 i=1 i=1 for(for(;i=50 i=50;)sum=sum+2*i;i+;sum=sum+2*i;i+;第三讲第三讲 循环结构循环结构表达式表达式1 1,表达式,表达式3 3可以是:可以是:a)a)简单的表达式简单的表达式 b)b)逗号表达式逗号表达式表达式表达式2 2 一般是关系表达式或逻辑表达式一般是关系表达式或逻辑表达式例:例:for(sum=0 for(sum=0,i=1;i=50;i+i=1;i=50;i+,i+)i+)sum=sum+2*i;sum=sum+2*i;或:或:for(

50、sum=0 for(sum=0,i=1;i=50;i=i+2)i=1;i=50;i=i+2)sum=sum+2*i sum=sum+2*i第三讲第三讲 循环结构循环结构(2)while(2)while语句的一般形式为:语句的一般形式为:while(while(表达式表达式)语句;语句;其中表达式是循环条件,语句为循环体。其中表达式是循环条件,语句为循环体。whilewhile语句的语义是:语句的语义是:计算表达式的值,当值为真计算表达式的值,当值为真(非非0)0)时,执行循环体语句。时,执行循环体语句。第三讲第三讲 循环结构循环结构使用使用whilewhile语句应注意以下几点:语句应注意以下

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档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