第4-5-6-7讲第3章程序和流程控制编程及应用.pptx
《第4-5-6-7讲第3章程序和流程控制编程及应用.pptx》由会员分享,可在线阅读,更多相关《第4-5-6-7讲第3章程序和流程控制编程及应用.pptx(97页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计第第1、2章回顾章回顾C程序结构:程序结构:C程序由main函数和若干个其他子函数(标准函数和自定义函数等)构成。函数包括函数头和函数体,C程序语句以分号作为结束标志。语法单位(单词):语法单位(单词):关键字、标识符、分隔符、常关键字、标识符、分隔符、常量、变量、运算符量、变量、运算符。数据类型的规定以及表达式运算规则。数据类型的规定以及表达式运算规则。输入输出函数输入输出函数getchar,putchar,scanf,printf的使用。的使用。华中科技大学
2、信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计第第3 3章章 程序和流程控制程序和流程控制3.1 C语言程序的版式及语句语言程序的版式及语句3.2 结构化程序设计和流程控制结构化程序设计和流程控制3.3 if语句语句3.4 switch多分支选择语句多分支选择语句 3.5 循环控制循环控制3.6 辅助控制语句辅助控制语句3.7 典型程序编写方法举例典型程序编写方法举例3.8 小结小结C语言流程控制语句语言流程控制语句华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程
3、序设计语言程序设计语言程序设计3.1 C语言程序的版式及语句语言程序的版式及语句3.1.1 C语言程序的版式3.1.2 C语言的语句华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计例例3.1 /*求二整数之和的程序求二整数之和的程序*/#include /预处理预处理void main()/函数定义函数定义 int a,b;/变量说明变量说明 int sum;scanf(%d%d,&a,&b);/数据输入数据输入 sum=a+b;/执行部分执行部分 printf(sum=%d,sum);/信息输出信息输出该程
4、序的运行结果为:该程序的运行结果为:7 8 /输入输入sum=153.1.1 C语言程序的版式特征语言程序的版式特征程序设计程序设计主要任务主要任务1.输入输入2.处理处理3.输出输出华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计 编写C语言程序一般应包含如下几个部分 (1)注释部分注释部分:格式为*注释内容*或/注释内容;在函数的最上端,一般都应有一段注释信息,主要说明函数的功能,输入、输出及其限制;如是商品软件还应包含版权信息,在程序的其他部分也可加注释。编程者要养成一边编程序、一边加注释的习惯。一般长
5、段的注释用*注释内容*形式,短段的注释用/注释内容形式。(2)预处理块、全局变量说明等预处理块、全局变量说明等。(参见后面章节)(3)函数定义部分函数定义部分,包括函数类型,函数名及参数表,由于只有一个函数故取名main(),由于无返回值故类型为void,无参数输入时,main()内参数表为空。(4)变量说明部分变量说明部分,对所用的变量进行说明;(5)数据输入部分数据输入部分,对要使用的变量赋初值,可直接或间接输入,有些是在第(4)部分完成(即变量直接初始化);(6)执行部分执行部分,它是整个程序的核心,一般是对程序算法用结构化程序设计方法进行描述,然后将其转化成对应的C语言语句;(7)信息
6、输出部分信息输出部分,根据要求输出所求的信息或返回结果;有些是在第(6)部分一边执行一边输出。华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计如上述程序的执行部分采用函数调用则如上述程序的执行部分采用函数调用则上述程序应为上述程序应为例例3.2 /*求二整数之和的程序求二整数之和的程序*/#include /预处理预处理int add(int x,int y);/函数声明函数声明void main()/函数定义函数定义 int a,b;/变量说明变量说明 int sum;scanf(%d%d,&a,&b);/
7、数据输入数据输入 sum=add(a,b);/执行部分执行部分 printf(sum=%d,sum);/信息输出信息输出/*求和函数,输入参数为二整数,求和函数,输入参数为二整数,返回值为其和返回值为其和*/int add(int x,int y)/函数定义函数定义 int z;/变量说明变量说明 z=x+y;/执行部分执行部分 return z;/返回结果返回结果输入:输入:7 8 该程序的运行结果为:该程序的运行结果为:sum=15华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计语句是语句是C语言程序的基
8、本元素,语句以分号为结束标志。语言程序的基本元素,语句以分号为结束标志。程序中的各函数模块都是由一定含义的语句组成的。程序中的各函数模块都是由一定含义的语句组成的。例例:char ch=H;/*分号为语句结束标志分号为语句结束标志*/int y=7 ;c=a+b;printf(“hello!”);语句的分类:语句的分类:说明语句说明语句 用来对程序中所使用的各种类型变量及属性进行用来对程序中所使用的各种类型变量及属性进行说明,按其所起作用有时也称为定义语句。说明,按其所起作用有时也称为定义语句。执行语句执行语句 包括表达式语句、流程控制语句、函数调用语句等表达式语句、流程控制语句、函数调用语句
9、等完成一定运算操作功能的语句。完成一定运算操作功能的语句。3.1.2 C语言的语句语言的语句华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计1.说明语句说明语句 2.用来对程序中所使用的各种类型变量进行说明,也称为用来对程序中所使用的各种类型变量进行说明,也称为定义语句。定义语句。说明语句的格式:说明语句的格式:数据类型数据类型 变量名列表;变量名列表;例例:int i,j;/说明了两个整型变量说明了两个整型变量i和和j 说明语句同时也可以进行初始化赋值,如:说明语句同时也可以进行初始化赋值,如:char c
10、h=H;unsigned long y=0 x35847412;执行语句中所使用的每一个变量都必须在此前说明过。执行语句中所使用的每一个变量都必须在此前说明过。华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计2.执行语句。一般包含四大类:执行语句。一般包含四大类:表达式语句(包括空语句)表达式语句(包括空语句)复合语句复合语句 流程控制语句流程控制语句 辅助控制语句辅助控制语句 (1)表达式语句表达式语句 任何一个表达式加上一个分号就是一条表达式语句;任何一个表达式加上一个分号就是一条表达式语句;/表达式语句
11、,通常是赋值表达式或函数调用表达式。表达式语句,通常是赋值表达式或函数调用表达式。例:例:c=a+b;sum=add(a,b);/赋值语句赋值语句 printf(“hello!”);/函数调用语句函数调用语句 ;/空语句空语句华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计(2)复合语句复合语句 将若干语句用一对大括号将若干语句用一对大括号 括起来就构成了复合括起来就构成了复合语句。复合语句的一般格式为语句。复合语句的一般格式为:说明语句说明语句;可执行语句可执行语句;复合语句在程序结构上是以整体出现,相当于
12、程序块复合语句在程序结构上是以整体出现,相当于程序块(BLOCK),),当一个功能必须用多条语句才能完成时,当一个功能必须用多条语句才能完成时,就需要使用复合语句。就需要使用复合语句。采用采用 可以清晰地表达程序的层次结构。可以清晰地表达程序的层次结构。华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计3.2 结构化程序设计和流程控制结构化程序设计和流程控制3.2.1 结构化程序设计结构化程序设计3.2.2 C语言的流程控制语句和辅助控制语句语言的流程控制语句和辅助控制语句华中科技大学信息学院华中科技大学信息学
13、院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计3.2.1 结构化程序设计结构化程序设计 结构化程序设计的基本思想,结构化程序设计的基本思想,任何程序都可以用三种基本任何程序都可以用三种基本结构表示:结构表示:顺序结构顺序结构 选择结构选择结构 循环结构。循环结构。采用这三种基本结构编写程序的设计风格称为结采用这三种基本结构编写程序的设计风格称为结构化程序设计。构化程序设计。华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计图图3.1顺序结构示意图顺序结构示意图顺
14、序结构顺序结构:按语句顺序依次执行。按语句顺序依次执行。/通过语句书写顺序自然实现通过语句书写顺序自然实现 int a,b;/变量说明变量说明 int sum;scanf(“%d%d”,&a,&b);/输入输入 sum=a+b;/执行运算执行运算 printf(“sum=%d”,sum);/输出输出 华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计选择结构选择结构根据条件选择两支或多支程序中的一支执行。根据条件选择两支或多支程序中的一支执行。图3.2选择结构示意图由两分支选择结构可以派生出另一种基本结构,多分
15、支选择结构。/if,switch/if,switch语句语句,选择运算符实现选择运算符实现 if(a=0)printf(come in!);else printf(go away!);华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计 循环结构循环结构 在判断条件成立的情况下,反复执行某个程序段。在判断条件成立的情况下,反复执行某个程序段。图3.3循环结构示意图/while,do while以及以及/for语句来实现语句来实现while(i=90&a=90&a=100)printf(“A!);else prin
16、tf(“b!);华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计2 if单路分支形式(选择性执行语该分支单路分支形式(选择性执行语该分支)scanf(“%f”,&i);if(i60)printf(“不不及格及格”);printf(“%f”,i);华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计在在C语言程序中,还常用如下书写形式语言程序中,还常用如下书写形式:if(x)等价于等价于 if(x!=0)if(!x)等价于等价于
17、if(x=0)如变量如变量x为为float或或double实型变量,则与实型变量,则与0比较比较的的if语句建议如下:语句建议如下:if(fabs(x)=90)grade=A ;else if(i=70)grade=B;else if(i=60)grade=C;else if(i=0)grade=D ;putchar(grade);/输出该生成绩等级输出该生成绩等级 也可用也可用 printf(“%c/n”,grade);90100分分A7090分分B6070分分C060分分D 例例3.3 给某班学生的一次考试成绩分等级给某班学生的一次考试成绩分等级.90分以上的为分以上的为A,70分到分到9
18、0分之间的为分之间的为B,60分到分到70分之间的为分之间的为C,60分以下的得分以下的得D。Sample-3-3-1.c华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计算法算法2:;float i;/定义定义i表示学生成绩,表示学生成绩,char grade;/grade表示等级表示等级。scanf(“%f”,&i);/输入学生成绩输入学生成绩 if(i60)grade=D ;else if(i70)grade=C;else if(i=90)grade=A ;else if(i=70)grade=B;els
19、e if(i=60)grade=C;else if(i=0)grade=D ;putchar(grade);/输出该生成绩等级输出该生成绩等级 也可用也可用 printf(“%c/n”,grade);90100分分A7090分分B6070分分C060分分D 例例3.3 给某班学生的一次考试成绩分等级给某班学生的一次考试成绩分等级.90分以上的为分以上的为A,70分到分到90分之间的为分之间的为B,60分到分到70分之间的为分之间的为C,60分以下的得分以下的得D。Sample-3-3-1.c华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程
20、序设计语言程序设计语言程序设计 例例3.4 求一元二次方程求一元二次方程 ax2+bx+c=0的根,实系数的根,实系数a,b,c从终端输入。从终端输入。算法分析:算法分析:先判断输入的系数是否满足方程是二次方程,判断先判断输入的系数是否满足方程是二次方程,判断a是否是否为为0。接着应考虑两个不同实根,相同实根,和复根三种情况讨论。接着应考虑两个不同实根,相同实根,和复根三种情况讨论:当当b2-4ac0时,有两个不同的实根,其中时,有两个不同的实根,其中x1,x2为其两个根;为其两个根;当当b2-4ac0时,有两个相同的实根,其中时,有两个相同的实根,其中x1,x2为其两个等根;为其两个等根;当
21、当b2-4ac0时,有两个共轭的虚根;我们把虚根的实部时,有两个共轭的虚根;我们把虚根的实部x3和虚部和虚部x4分成两部份分开计算,后来再组合在一起。分成两部份分开计算,后来再组合在一起。华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计 程序如下程序如下:#include#include void main()float a,b,c;float x1,x2;float x3,x4;printf(input numbers:a,b,c:);scanf(%f%f%f,&a,&b,&c);if(a=0)if(b=0
22、)printf(error input n);else printf(“x=%.2fn,-c/b);/return;else if(b*b 4*a*c)x1=(-b+sqrt(b*b-4*a*c)/(2*a);x2=(-b-sqrt(b*b-4*a*c)/(2*a);printf(x1=%.2f,x2=%.2fn,x1,x2);else if(b*b=4*a*c)x1=x2=(-b+sqrt(b*b-4*a*c)/(2*a);printf(x1=x2=%.2fn,x1);else x3=-b/(2*a);x4=sqrt(4*a*c-b*b)/(2*a);printf(x1=%.2f+%.2f
23、in,x3,x4);printf(x2=%.2f-%.2f in,x3,x4);Sample-3-4.c华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计 该程序的运行结果(分该程序的运行结果(分5种情况)为:种情况)为:(1)0 1 4 /输入输入 x=-4 /输出输出(2)0 0 4 /输入输入 the input is error /输出输出(3)1 4 3 /输入输入 x1=-1.00,x2=-3.00 /输出输出(4)1 4 4 /输入输入 x1=x2=-2.00 /输出输出(5)1 2 4 /输入输
24、入 x1=-1+1.73 i /输出输出 x2=-1-1.73 i华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计if多条件分支下的流程控制if 语句的不足语句的不足条件表达式的结果条件表达式的结果只有真或假两种结只有真或假两种结果果,由一个条件语,由一个条件语句只能提供两个分句只能提供两个分支供选择。支供选择。多重多重if语句可以实现语句可以实现多重分支,但多重分支,但程序程序结构显得繁琐结构显得繁琐,欠,欠清晰清晰,执行效率也比执行效率也比较低。较低。华中科技大学信息学院华中科技大学信息学院华中科技大学信
25、息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计图图3.8 switch语句的流程控制语句的流程控制3.4 switch多分支选择语句多分支选择语句 switch分支选择语句,它可以结构清晰地直接表达分支选择语句,它可以结构清晰地直接表达多分支选择多分支选择,执行效率更高执行效率更高。华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院华中科技大学信息学院C C语言程序设计语言程序设计语言程序设计语言程序设计switch(表达式表达式)case 判断值判断值1:语句组语句组1;break;case 判断值判断值2:语句组语句组2;break;case 判
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章程 流程 控制 编程 应用
限制150内