语言程序设计课件第4章

上传人:我*** 文档编号:144930641 上传时间:2020-09-14 格式:PPT 页数:76 大小:502.50KB
返回 下载 相关 举报
语言程序设计课件第4章_第1页
第1页 / 共76页
语言程序设计课件第4章_第2页
第2页 / 共76页
语言程序设计课件第4章_第3页
第3页 / 共76页
语言程序设计课件第4章_第4页
第4页 / 共76页
语言程序设计课件第4章_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《语言程序设计课件第4章》由会员分享,可在线阅读,更多相关《语言程序设计课件第4章(76页珍藏版)》请在金锄头文库上搜索。

1、返回主目录,C语言程序设计,(第4章 结构化程序设计),本章主要介绍结构化程序设计方法与设计过程和C语言程序结构化程序设计。,1.顺序结构程序设计2.选择结构程序设计3.循环结构程序设计,一、C语言程序结构分类,C语言程序三大结构:顺序结构、选择结构、循环结构,按照各语句的先后顺序逐行执行,且每个语句都会被执行到。,当满足(或不满足)某个条件时不停地重复执行某些语句。,当满足(或不满足)某个条件时执行某些语句。,二、C语言程序基本语句,在C语言程序中,语句可以分为以下五类: 控制语句:能完成一定的控制功能(有9种控制语) if()else (条件选择语句) for() (多功能循环语句) wh

2、ile() (当型循环语句) dowhile() (直到型循环语句) go to (无条件转移语句) switch (多支选择语句) continue (结束本次循环语句) break (执行中止语句) return (函数返回值语句), 函数调用语句:能实现函数的调用功能。 例如:printf(%d,a); 表达式语句:由一个表达式加分号构成,能实现数据计 算功能。 例如:a=3*b; 空语句:由单独的一个分号组成,对程序执行不产生直 接影响,没有实际意义。 例如: ; 表示什么也不做,没有实际意义, 复合语句:用将若干个语句括起来,形成一个整体, 组成一个复合语句。 例如: a=3; b=

3、4; c=a*b+25; d=a*b*c; ,三、顺序结构程序一般设计方法,顺序结构程序设计方法: 一般先对要处理的“事件”进行分析,根据分析的结果写出相应算法,画出流程图,再写出相关的源程序。,在顺序结构程序中,一般包括以下几个部分:,#include stdio.h #include math.h main() float a,b,c,s1,len,s; printf(Input the a,b,c:); scanf(%f,%f,%f, ,例4-2输入一个摄氏温度,输出它的华氏温度。温度换算 公为 (f为华氏温度,c为摄氏温度),#include stdio.h main() float

4、f,c; printf(请输入一个摄氏温度值:); scanf(%f, ,例4-3 设圆的半径为r=1.5,圆柱高h=3,求圆柱表面积、圆柱体积。(圆半径、圆柱高从键盘输入,输出结果时要求小数点保留2位小数。),#include “stdio.h main() float r,h,ar,av; printf(输入半径和高); scanf(%f,%f, ,一、选择结构程序设计,在C语言中,用if语句或switch语句来实现选择结构,条件选择结构,多支选择结构,根据所给的条件作出判断,有选择性的执行部分语句。,根据所给的数据和已有的选择支相比较,执行相符合的选择支。,二、条件选择if语句,if语句

5、是用来判定所给的条件是否满足,根据判断的结果决定执行何种操作。 if语句有三种形式:if( ) if( )else if( )else if( )else,1. 逻辑if语句 格式:if(表达式) 语句,功能:当括号内表达式的值为“真”时,才能执行后面的操作,并且只能执行一个语句而不能执行若干个语句,如果括号内表达式的值为“假”时,将不执行任何操作。,例如: if(xy) a=x*y; if(xy) a=x-y; b=x+y;,例 4-4 输入三个整数x,y,z,按从小到大的顺序输出。,分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果xy则将x与y的值进行交换,后再用x与z进行比较

6、,如果xz则将x与z的值进行交换,这样能使x最小。,程序如下: #include stdio.h main() int x,y,z,t; printf(please input the three numbers:); scanf(%d,%d,%d, ,例如: if(xy) a=b; else a=c; if(ab) a=a+b; else t=a;a=b;b=t;,功能:当括号内表达式的值为“真”时,执行语句1的操作,否则,执行语句2的操作。同样,也只能执行一个语句而不能执行若干个语句。,2. 结构模块if( )else语句 格式:if(表达式)语句1 else 语句2,#include s

7、tdio.h main() int x,y; scanf(%d, ,if(x=0) y=x*x+1;,例4-6 写一程序,从键盘上输入年份year(4位以内十进制正整数),判断其是否为闰年。闰年的条件是:能被4整除、但不能被100整除,或者能被400整除。,#include stdio.h main() int year; printf(Please input the year:); scanf(%d, ,3. 结构模块ifelse if语句 格式: if(表达式1) 语句1 else if(表达式2) 语句2 . . . . . . . . . else if(表达式n) 语句n else

8、 语句n+1,功能:当表达式1的值为“真”时,执行语句1;如果表达式1的值为“假”,再判定表达式2是否为“真”,如果表达式2的值为“真”,执行语句2,如果表达式2的值为“假”,再判定表达式3是否为“真”,如果表达式3的值为“真”,执行语句3;以此类推;如果所有表达式的值都为“假”,则执行语句n+1。同样,也只能执行一个语句而不能执行若干个语句。,例如: if(x400) t=0.4;a=1.5; else if(x300) t=0.3;a=1.2; else if(x200) t=0.2;a=1.0; else t=0.1;a=0.8; ,例 4-7 有一函数:,编一程序,输入一个x值,求y值

9、。,#include stdio.h main() int x,y; scanf(%d, ,if(x0) y=x*x+1,注意: 在if语句中,括号内的表达式一般为关系表达式或逻辑表达式,如果括号内的表达式为其它表达式,则无法实现选择操作。 例如:if(2) print(“how are you”);该语句的输出结果为“how are you”,因为表达式的值为2,按“真”处理。 如果写成if(a) print(how are you);输出结果同样为“how are you”,因为表达式的值为a,还是按“真”处理。 在if语句中,每次只能执行一个语句或一个选择支,如果要执行多个语句,应当将这

10、些语句用 括起来,形成一个复合语句。 在if语句中,允许括号内存在赋值表达式。 例如 if(a=b)0) t=a; if语句在程序中相当一个复合语句。,4. 条件运算符与条件表达式,格式如下: 表达式1?表达式2:表达式3,功能:先算表达式1,若表达式1为“真”,则求解表达式2,此时表达式2的值就是整个条件表达式的值。若表达式1为“假”,则求解表达式3,此时表达式3的值就是整个条件表达式的值。,条件运算符是一个三目运算符,要求有三个操作数;结合方式是从右到左;优先级别很低,只比赋值运算符和逗号运算符高。,例如: 假定a=3,b=4,执行表达式mmx=ab?a+1:b+1后,mmx的值为5。 假

11、定a=3,b=5,c=2,d=3, 执行表达式mmx=ab?a:cd?c:d后,mmx的值为3。,例4-8 从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。,#include stdio.h main() char ch; printf(Input a character: ); scanf(%c, ,思考题: 例 4-9 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,

12、可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数。 例 4-10 从键盘上输入任意三个数作为三角形的三条边,求三角形的面积。,三、多支选择switch语句,C语言提供了switch语句直接处理多分支选择。 switch语句的一般形式为:,switch(表达式) case 常量表达式1:语句1;break; case 常量表达式2:语句2;break; . case 常量表达式:语句n;break; default:语句n+1; ,功能:先算出表达式的值,然后判断该表达式的值是否与某个

13、case后面的常量表达式的值相等,若相等,则执行此case后面的语句,当执行到break语句时,跳出switch语句。若该表达式的值与所有case后面的常量表达式的值都不等,则执行default后面的语句。,注意: switch后面括号内的表达式一般为普通表达式,可以是int、char和枚举型中的一种,不应为关系表达式或逻辑表达式,如果为关系表达式或逻辑表达式,就不能实现多支选择。 每个case后面常量表达式的值,必须各不相同,否则会出现相互矛盾。同时必须使case后面的常量表达式类型和switch后面括号内表达式的类型保持一致。, case后面的常量表达式仅起语句标号作用,并不进行条件判断。

14、系统一旦找到相匹配的标号,就从此标号开始执行,不再进行标号判断,因此,必须加上break语句来结束switch语句的执行。 各case及default子句出现的先后次序,不影响程序执行结果。 多个case子句,可共用同一语句。 一个switch语句在C语言程序中相当于一个复合语句。用switch语句实现的多分支结构程序,完全可以用if语句来实现。,例 4-11 从键盘上输入一个百分制成绩score,按下列原则输出其等级: score90,等级为A; 80score90,等级为B; 70score80,等级为C; 60score70,等级为D; score60,等级为E。,#include st

15、dio.h main() float score, int grade; printf(Input a score(0100): ); scanf(%f, ,case 6: printf(grade=Dn); break; case 5: case 4: case 3: case 2: case 1: case 0: printf(grade=En); break; default: printf(“data error !n); getch();,程序如下:,#include stdio.h void dummy() main() char ch; printf(1. 输入记录n); printf(2. 记录列表n); printf(3. 删除记录n); printf(4. 修改记录n); printf(请输入选择:n); ch=getchar( ); switch(ch) case 1: printf(输入记录n);,dummy( ); break; case 2: printf(记录列表n); dummy( ); break; case 3: printf(删除记录n); dummy( ); break; case 4: printf(修改记录n); dummy( ); break; default: printf(选择错!n); getch(); ,例 4-12

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号