《程序流程控制》PPT课件.ppt

上传人:wuy****n92 文档编号:54010235 上传时间:2022-10-27 格式:PPT 页数:67 大小:252KB
返回 下载 相关 举报
《程序流程控制》PPT课件.ppt_第1页
第1页 / 共67页
《程序流程控制》PPT课件.ppt_第2页
第2页 / 共67页
点击查看更多>>
资源描述

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

1、程序流程控制 C语言是一种结构化、模块化的通用程序设计语言。通过对程序流程控制的学习,建立运用3种基本结构(顺序结构、分支结构、选择结构)进行编程的思想。模块一 顺序程序设计能力目标:正确认识顺序结构的执行特点根据流程图,写出相应的程序进行顺序程序的设计任务一 考察顺序结构的执行特点请观察下面的流程图1.在该图中运用了哪些流程图框?起止框、输入输出框、一般处理框2.根据流程图,写出相应的C程序。开始输入半径:rS=3.14*r*r输出面积:s结束main()float r,s;scanf(“%f”,&r);s=3.14*r*r;printf(“s=%fn”,s);q在写程序中,注意流程线的方向

2、。q在程序中,正确定义变量。q顺序结构的执行特点:程序按照语句从上到下的排列顺序依次执行,每条语句必须执行且只能执行一次。知识盘点:任务二 熟悉顺序程序2根据流程图,完成C程序。#include”stdio.h”main()char ch1,ch2;printf(“请输入一个大写字母:”);ch1=getchar();ch2=ch1+32;printf(“相应的小写字母为:”);putchar(ch2);3如果输入的字符不是大字字母,这样的转换还有意义吗?怎样才能避免输入非大写字母?请看题目:输入一个大写字母,转换成小写字母输出。开始输入大写字母ch1ch2=ch1+32输出小写字母ch2结束

3、答:这样的转换没有意义,如果要避免输入非大写字母,可以在转换前加一个是否是大写字线的判断。任务三 设计顺序程序请看题目:输入2个整数a、b,然后交换a、b的值输出。1填写流程图2.根据流程图,写出C程序。开始输入a,b输出交换前a,b的值输出交换后a,b的值结束main()int a,b,t;scanf(“%d%d”,&a,&b);printf(“交换前a=%d,b=%dn”,a,b);t=a;a=b;b=t;printf(“交换后a=%d,b=%dn”,a,b);t能使变量a、b的值交换吗?如果能,该如何编程?t=a;a=b;b=t;模块二 分支程序设计能力目标:根据实际问题,正确书写关系、

4、逻辑表达式正确认识分支结构的执行特点运用if语句的3种形式及switch语句进行分支程序的设计任务一 认识关系运算符和关系表达式C语言提供的6种关系运算符:、=、y&mn 等价于(xy)&(mn)a!=b|x=y 等价于!x|xy 等价于x7&x+y!=20等价于 3+2&54|!0 等价于 完成下表表达式表达式的值(35)(35)!(32)010(a!=b)|(x=y)(!x)|(xy)(x7)&(x+y!=20)(3+2)&(54)|!0知识盘点:q逻辑运算符的概念q逻辑运算符的优先级q逻辑表达式的概念任务三 书写关系、逻辑表达式1写出判断一个字符是否是空白符(t、n、)的逻辑表达式:(c

5、h=)|(ch=n)|(ch=t)2写出判断某一年是否为闰年的逻辑表达式。()分析:闰年的条件是符合下列个条件之一:能被整除,但不能被100整除;能被400整除()请分别写出个条件的逻辑表达式:year%4=0&year%100!=0year%400=0(3)如果将个逻辑表达式合并为一个式子,该如何写?(year%4=0&year%100!=0)|(year%400=0)任务四考察条件控制语句if语句请观察下面的流程图:开始输入一个正整数xx%6=0输出“yes!”输出“no!”结束该流程图中,根据其真假使流程分支的判断条件是什么?该流程图所表示的程序功能是什么?答:x%6=0答:判断一个正整

6、数是否是6的倍数。2认识if语句(第一种形式)()请观察下面的流程图:x0 x=x+1该图用if语句表示为:if(x0)x=x+1;()试写出if语句的一般形式:()归纳if语句的流程图:表达式语句if(表达式)语句知识盘点:()题目:输入一个整数,如果该数为正,输出该数。完成程序:main()int x;scanf(“%d”,&x);if printf(“%d”,x);根据程序,画出流程图。思考:如果要求x的绝对值,用if语句(第一种形式)实现,该如何完成?(x0)main()int x,y;scanf(“%d”,&x);if(x=0)y=x;if(x0y=xy=-x 真假该流程图表示的意思

7、是什么?()if else语句的形式:if(表达式)语句1 else 语句2(3)请填写流程图:真 假语句1答:求x的绝对值。表达式语句2知识盘点:qif else语句构造了两路分支的选择结构,也是一种最基本的选择结构。如果“表达式”计算为真,执行语句1;否则执行语句2。其中“语句”部分可以是简单语句或者复合语句。“表达式”可以是关系表达式、逻辑表达式,也可以是算术表达式。(3)题目:从键盘上输入两个整数x和y,若x2+y2大于10,则输出x2+y2个位上的数字,否则输出两数之和。请画出流程图:由流程图的思路,填写程序。#include”stdio.h”main()int x,y,s,l;pr

8、intf(“请输入2个整数:”);scanf(“%d%d”,&x,&y);s=x*x+y*y;if l=s%10;printf(“%d”,l);else printf(“%d”,x+y);(s10)ifelseififelseif语句语句(1)题目:输入一个数x,如果x=10,则y=3x-10,否则,y=2x-1,输出y的值。该题将面临几种选择?答:3种选择。(2)请观察下面的流程图,回答问题。x=10y=xy=2*x-1y=3*x-10对照上图形式在图内填空表达式1语 句 1语 句 2表达式3 语 句 4真假真假真假真假 真假根据上图,写出对应的语句形式。if(表达式1)语句1else if

9、()语句2else if(表达式3)else 语句4表达式2语句3表达式语句3(3)根据所得语句形式,填写程序,并记录上机调试结果。#include”stdio.h”main()float x,y;printf(“请输入x的值:”);scanf(“%f”,&x);if(x=10)y=3*x-10;else printf(“y的值为:%.2fn”,y);请记录上机调试结果:y=x;y=2*x-1;知识盘点:ifelseif语句是通过一连串的判断,来实现互斥分支,它排列了一系列的操作,每一种操作是在相应的条件下才能执行。该语句执行时,依次对各个条件进行判断,符合某一条件,则转去执行该条件下的操作,

10、其余部分被跳过;若无条件为真,就执行最后一个else所指定的操作。5else与与if的配对规则的配对规则请观察以下程序段和流程图,完成问题。程序段:if(x7)if(x7x7x13输出left!输出right!真真假假真假真假(1)判断以上2个流程图中,哪一个与程序段相吻合?为什么?答:根据else与if的配对规则,第二个图与程序段相吻合。(2)写出该程序段的运行结果。X的取值运行结果61218无结果left!right!6if语句的嵌套(1)按else与if的配对规则划分下列关系。if(条件1)if(条件2)语句1 else 语句2 else if(条件3)语句3 else 语句4(2)题目

11、:有一个函数:-1(x0)输出y值。写法1:main()int x,y;scanf(“%d”,&x);if(x0)y=1;else y=0;printf(“x=%d,y=%dn”,x,y);原因:请判断下列哪些写法是正确的?为什么?正确。写法2:if(x=0)if(x0)y=1;else y=0;else y=-1;原因:写法3:y=-1;if(x!=0)if(x0)y=1;else y=0;原因:正确。不正确。任务五 考察switch语句#include”stdio.h”main()char grade;printf(“请输入成绩等级(A、B、C、D)n”);grade=getchar();

12、switch(grade)caseA:printf(“优秀n”);break;caseB:printf(“良好n”);break;caseC:printf(“及格n”);break;caseD:printf(“不及格n”);break;default:printf(“输入数据错误!n”);switch语句部分流程图:1请阅读下面的程序及流程图,完成问题。优秀良好及格不及格输入数据错误gradeABCDdefault(1)记录上机调试运行结果:(2)说明该程序的功能是什么?(3)思考:如果将程序段中的所有break语句去掉,输入字符C,运行结果是什么?答:运行结果为:及格不及格输入数据错误!知识

13、盘点:请归纳switch语句的一般形式:预期运行结果:B上机调试结果:及格任务六分支的应用2由上述分析,填写下列流程图。n10n100r=1.0r=0.9r=0.7真假真假真假n503根据流程图,填写程序。4请记录上机调试结果:n50模块三 循环程序结构能力目标:正确认识循环程序的执行特点运用3种循环语句(while语句、do while语句、for语句)进行循环程序设计运用2个循环辅助语句(break语句、continue语句),更好地控制程序流程任务一 认识while语句1初识while语句(1)思考:在程序设计中,通常会遇到输出一个星号*,可以用一个printf()语句,那么输出5个星号

14、*、10个星号*,甚至更多的星号*,该如何处理呢?(2)观察下面两个程序,完成问题。程序一main()printf(“*n”);printf(“*n”);printf(“*n”);printf(“*n”);printf(“*n”);程序二main()int i=1;while(i+=5)printf(“*n”);上面两个程序分别实现什么功能?两个程序中,哪一个简便?在程序中能否用循环语句来实现对重复操作的控制?答:它们都实现输出5个星号*。答:程序二简便,在程序中能用循环语句来实现对重复操作的控制。2学习while语句的形式(1)请观察下面while语句的形式,完成问题。两条语句的关键字是什么

15、?关键字后的括号内是什么表达式?关键字后的语句部分可以是哪些语句?(2)试写出while语句的一般形式。while关系表达式、逻辑表达式简单语句、复合语句while(表达式)语句3学习while语句的执行过程(1)请观察while语句的流程,完成问题。表达式语 句真假表达式(2)请记录该程序的上机调试结果,画出以下程序的流程图,并指出循环条件、循环体及循环控制变量的三个工作。请记录上机调试结果:流程图:循环条件是循环体是循环控制变量是 ,3个工作分别是 、。I3printf(“%cn”,ch);II=1I3I+(3)请观察下面2个程序段,完成问题。语句一I=1;while(I+=10)prin

16、tf(“hello!n”);语句二I=1;while(-I=10)printf(“world!n”);判断下面哪一个程序段是正确的?循环控制变量更新的趋势是什么?程序在什么时候才能判断循环是否终止?语句一让循环条件为假判断循环条件时讨论用while语句编程求1+2+10之和。(同时画出该程序的流程图)程序:流程图:知识盘点:任务二认识dowhile语句1学习dowhile语句的形式(2)试写出dowhile语句的一般形式。do whilesum=sum+i;i=i+1;i=10do While(表达式);2学习dowhile语句的执行过程请观察dowhile语句的流程,完成问题。语句表达式真假

17、语句表达式3dowhile语句与while语句的区别(2)由上述运行结果看出,dowhile语句与while语句的区别是什么?ABC*ABABC无结果答:当第次执行循环体时,因为表达式为“真”,两种循环得到的结果相同;否则,二者结果就不同。(前提:二者循环体中的语句相同)任务三认识for语句1学习for语句的形式答:输入10个数,并求这10个数的和。for(表达式;表达式;表达式)语句2学习for语句的执行过程请观察for语句的流程,完成问题。表达式1表达式2语 句表达式3真假3讨论for语句的灵活性(1)写出以下程序段的运行结果。(2)讨论:在for语句的表达式1、表达式2、表达式3中可能会

18、出现哪几种情况?运行结果:运行结果:运行结果:运行结果:运行结果:4运用for语句编程编程求1210之积。(同时画出该程序的流程图)程序:流程图:任务四认识循环嵌套1学习循环嵌套的形式()请观察下面两个图,完成问题。(b)图(2)阅读信息,完成问题。信息:语言提供的3种循环结构:whiledowhilefor都可以相互嵌套,自由组合。问题:在已有几种循环嵌套形式后,补充3种合法的形式。嵌套形式:while()do while()do while();while();for(;)while()2观察二重循环()请阅读程序,完成问题。程序定义了哪些变量?程序中采用几重循环嵌套?程序中外层循环为哪几

19、行?外层循环的循环体中有几条语句?程序中内层循环为哪几行?内层循环的循环体中有几条语句?答:两个变量,m和n答:二重循环答:外层循环从7行到12行,外层循环的循环体中有2条语句。答:内层循环从9行到10行,内层循环的循环体中有1条语句。(2)请观察循环嵌套部分的流程,完成问题。m=1m=5 n=1n10时,可退出for循环外,是否有其他的方式退出for循环?3条语句。答:可以通过当时,执行break语句退出循环。(2)请观察该程序for语句部分的流程,完成问题。r=1V=PI*r*r*hr100.0输出V r+真假假真break从流程上看,循环一定是执行了10次才退出吗?为什么?请写出该程序的

20、预期结果。请输入圆柱体的高:6答:不一定,因为当时,执行break语句退出循环。此时r=3(3)请记录该程序的上机调试结果,并与预期结果比较,有差异吗?请记录上机调试结果:差异:2学习continue语句()请阅读程序,完成问题,并记录上机调试结果。记录上机调试结果:该程序for语句部分的循环体内有几条语句?答:有2条语句。(2)请观察该程序for语句部分的流程,完成问题。num=50num=100num%7=0输出numnum+真假假真continue从流程上看出,什么情况下不输出数据?而输出的数据是具有什么性质的数据?答:当数据能被7整除时,不输出。而输出的数据具有不能被7整除的性质。(3

21、)思考:如果该程序不使用continue语句,要实现同样的功能,该如何处理?知识盘点:任务六循环的应用1累加的应用题目:用while语句编程求1+2+3+100的和。(3)用for语句编程实现以上同样的功能。程序:i=100i+main()int sum,I;sum=0;for(I=1;I=100;I+)sum=sum+I;printf(“1+2+100=%d”,sum);2累乘的应用题目:编程求210。(用2种方法实现)(1)分析:由题意可知,求的是10个2相乘。程序需要定义2个变量s和,s用于存放乘积,用于计算乘以2的次数(即循环次数)。(2)根据分析,编写程序,并记录上机调试结果。方法一:记录上机调试结果:方法二:记录上机调试结果:3讨论mm(毫米),现反复地将其对折,编程计算对折多少次后可以达到珠穆朗玛峰的高度8848m(米)?

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

当前位置:首页 > 教育专区 > 初中资料

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

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