《C语言程序设计》课程(第3章)课件.ppt
《《C语言程序设计》课程(第3章)课件.ppt》由会员分享,可在线阅读,更多相关《《C语言程序设计》课程(第3章)课件.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C C语言程序设计语言程序设计 任课教师:任课教师:金金 丹丹 电子邮箱:电子邮箱:第第3 3章章 程序控制结构程序控制结构结构化程序设计程序:由计算机语言组成的语句序列。程序的三种基本结构:顺序结构、选择结构、循环结构。3种基本结构的传统流程图不成立(a)顺序结构ABPAB(b)选择结构成立不成立PA成立AP成立(c)当型循环(d)直到循环3.1 3.1 顺序结构顺序结构如果程序中的语句是按照书写顺序执行的,称为如果程序中的语句是按照书写顺序执行的,称为“顺顺序结构序结构”.例例3.13.1】输输入入三角形的三条三角形的三条边长边长,求三角形面,求三角形面积积。假设:输入的三条边假设:输入的
2、三条边a,b,c a,b,c 能构成三角形。能构成三角形。1.1.将将 a,b,c=a,b,c=?定义数据类型和具体值定义数据类型和具体值(已知信息已知信息)2.2.通过通过:s=s=(a+b+c)/2(a+b+c)/2 (确定算法确定算法)3.3.求求出出:area=area=sqrt(ssqrt(s*(s-a)*(s-b)*(s-c);*(s-a)*(s-b)*(s-c);(描描写写计计算算公式公式)4.4.结果输出结果输出:areaarea#include#include main()float s,a,b,c,area;scanf(%f,%f,%f,&a,&b,&c);s=1.0/2*
3、(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn,a,b,c,s);printf(area=%fn,area);运行时输入:运行时输入:3.5,4.6,5.1a=a=3.50,b=3.50,b=4.60,c=4.60,c=5.1,s=5.1,s=6.606.60area=7.834539area=7.834539 图3.2 顺序结构程序举例 计算 area (a)传统流程图(b)N-S流 程图 计算 s 输入,a,b,c 开始 输出 area 结束 输入a,b,c 计算 s 计算 area
4、 输出 area M 3.2 选择结构选择结构 C语言中提供三种类型的选择结构.分别是:if()单分支选择结构 if-else双分支选择结构 switch多分支选择结构3.2.1 3.2.1 单分支选择结构单分支选择结构 格式:if(表达式)语句;功能:计算表达式的值。如果条件为真(非0)则执行“语句”,否则不执行语句。1简单的单分支结构简单的单分支结构 特点特点:简单的单分支结构是指判断条件满足后执行简单的单分支结构是指判断条件满足后执行的语句,可以是一条语句或顺序结构的多条语句,的语句,可以是一条语句或顺序结构的多条语句,无内嵌无内嵌if 语句。语句。【例例3.23.2】输入一个学生成绩,
5、如果及格则输出输入一个学生成绩,如果及格则输出“good!good!”,否则什么也不做。否则什么也不做。#include#include main()main()float g;float g;scanf(scanf(%f%f,&g,&g););if(g=60)if(g=60)printf(printf(good!ngood!n););【例3.3】编程序,将二数(a,b)中的大数存放到a中,小数存b中。算法分析算法分析:设一个中间变量temp暂存数据,其操作步骤为:(1)将a 存入temp,语句为temp=a;(2)将b赋给a,语句为 a=b;(3)将temp赋给b(原来a 的值),语句为 b
6、=temp;#include main()float a,b,temp;scanf(%d,%d,&a,&b);if(ab)temp=a;a=b;b=temp;printf(a=%d,b=%dn,a,b);x0 N Y 开始 输入 x x=0 y=-1 y=0 y=1 N Y 输出 y 结束 2 2嵌套的嵌套的if if 语句语句【例3.4】输入一个整数x,若“x”是在-3x3区间内,则输出“-3AND3”#include main()int x;scanf(%d,&x);if(x=-3)if(x=3)printf(-3AND3n);3.2.2 双分支选择结构格式:if(表达式)语句1;else
7、 语句2;功能:计算表达式的值,如果为真(非0),则执行“语句1”,否则执行“语句2”。说明:(1)语句1和语句2可以是一条语句、复合语句或是内嵌if语句等,也可以是空语句。(2)表达式可以是任何类型,常用的是关系表达式或逻辑表达式;(3)else 后面是if 的子句,与if 配对,不能单独出现;(4)if-else的配对原则是:else 总是与同一层最近的尚未配对的if 语句配对。1.简单的if-else 语句例3.5 输入一个字符,若是字母则输出“YES!”,否则输出“NO!”。【例3.5】输入一个字符,若是字母则输出“YES!”,否则输出“NO!”。#include main()char
8、 c;scanf(%c,&c);if(c=a&c=A&c=Z)printf(YES!n);else printf(NO!n);【例3.6】求如下所示分段函数值的方法。#include main()int x,y;scanf(%d,&x);if(x0)y=-1;else if(x=0)y=0;else y=1;printf(nx=%d,y=%dn,x,y);#include#include main()main()intint x,y;x,y;scanf(scanf(%d%d,&x,&x););if(x=0)if(x=0)if(x0)y=1;if(x0)y=1;else y=0;else y=0
9、;else y=-1;else y=-1;printf(printf(nxnx=%d,y=%dn=%d,y=%dn,x,y);,x,y);2.嵌套的if语句ifelse ifelse形式形式 if(表达式表达式1)else if(表达式表达式2)else if(表达式表达式m)else S1=A注意:(1)if-else结构尽量缩格对齐。尽管我们在书写程序时,让else和最外层的if对齐,但它实际上是和内层if配对的。如果要让其和最外层if配对,必须用 将其程序段构成复合语句,如:if(ab)if(b=0&c=Ac&c=a&c=z)printf(c=%c,%cn,c,C);else if(c=
10、)printf(c=%c,%cn,c,D);else if(c=n)rintf(c=%c,%cn,c,E)else printf(c=%c,%cn,c,N);3.2.4 switch语句switch(表达式)case 常量表达式1:语句组1;break;case 常量表达式2:语句组2;break;case 常量表达式3:语句组3;break;case 常量表达式n:语句组n;break;default:语句组n+1;功能:以关键字switch后面“表达式”为判断条件,在多分支中选择一个分支操作。(1)switch后的表达式可以为任何具有整型值的表达式,只要能产生整型或字符型量即可。(2)关键
11、字case后的整型常量表达式可以是整型、字符型和枚举型。注意各case后的整型常量表达式之值必须互不相同。(3)“语句组”可以是一条或多条合法的语句,但不必将它们放在一个复合语句中。(4)break是C 语言的一种语句,其功能是中断正在执行的语句。在switch 语句中的作用是:执行完某个语句组后,将退出该switch语句。如果省略了break语句,则执行完某个语句组后,将继续执行其后边的语句组。【例3.8】输入i,根据i 的值输出信息。#include main()int i;scanf(“%d”,&i);switch(i)case 1:printf(“I am in case 1.n”);
12、break;case 2:printf(“I am in case 2.n”);break;case 3:printf(“I am in case 3.n”);break;default:printf(“I am in default.n”);画出框图如果printf(I am in case 2.n)后缺少break语句,将会连续执行后面的case语句。将上例去掉break语句后,观察执行情况。#include main()int i=2;switch(i)case 1:printf(I am in case 1.n);case 2:printf(I am in case 2.n);case
13、 3:printf(I am in case 3.n);default:printf(I am in default.n);(5)每个case后的常数可以是任意的,并不一定要从1开始从小到大排列。【例3.9】下面再看一看case后跟字符常量的例子。#include main()char c=x;switch(c)case a:printf(I am in case a.n);break;case x:printf(I am in case x.n);break;case z:printf(I am in case z.n);break;default:printf(I am in defaul
14、t.n);(6)允许将相同操作的case及对应的常量表达式连续排列,对应操作的语句组及break只在最后一个case处出现。【例3.10】将百分制成绩分段。#include main()int s;scanf(%d,&s);switch(s/10)case 1:case 2:case 3:case 4:case 5:case 5:printf(printf(E.E.nn);break);break;case 6:case 6:printf(printf(D D.n.n);break);break;case 7:case 7:printf(printf(C C.n.n);break);break
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计 语言程序设计 课程 课件
限制150内