C语言程序设计课件第4章.ppt
《C语言程序设计课件第4章.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计课件第4章.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章 结构化程序设计返回主目录返回主目录第4章 结构化程序设计 本章主要介绍结构化程序设计方本章主要介绍结构化程序设计方法与设计过程和法与设计过程和C C语言程序结构化程语言程序结构化程序设计。序设计。1.1.顺序结构程序设计顺序结构程序设计2.2.选择结构程序设计选择结构程序设计3.3.循环结构程序设计循环结构程序设计第4章 结构化程序设计一、一、C C语言程序结构分类语言程序结构分类C C语言程序三大结构:顺序结构、选择结构、循环结构语言程序三大结构:顺序结构、选择结构、循环结构 按照各语句的先后顺按照各语句的先后顺序逐行执行,且每个序逐行执行,且每个语句都会被执行到。语句都会被执行到。
2、当满足(或不满当满足(或不满足)某个条件时足)某个条件时不停地重复执行不停地重复执行某些语句。某些语句。当满足(或当满足(或不满足)某不满足)某个条件时执个条件时执行某些语句。行某些语句。第4章 结构化程序设计二、二、C C语言程序基本语句语言程序基本语句在在C C语言程序中,语句可以分为以下五类:语言程序中,语句可以分为以下五类:控制语句:能完成一定的控制功能控制语句:能完成一定的控制功能(有有9 9种控制语)种控制语)if()if()elseelse (条件选择语句)(条件选择语句)for()for()(多功能循环语句)(多功能循环语句)while()while()(当型循环语句)(当型循
3、环语句)do dowhile()while()(直到型循环语句)(直到型循环语句)go to go to (无条件转移语句)(无条件转移语句)switch switch (多支选择语句)(多支选择语句)continue continue (结束本次循环语句)(结束本次循环语句)break break (执行中止语句)(执行中止语句)return return (函数返回值语句(函数返回值语句)第4章 结构化程序设计 函数调用语句:能实现函数的调用功能。函数调用语句:能实现函数的调用功能。例如:例如:printf(%d,a);printf(%d,a);表达式语句:由一个表达式加分号构成,能实现数
4、据计表达式语句:由一个表达式加分号构成,能实现数据计 算功能。算功能。例如:例如:a=3*b;a=3*b;空语句:由单独的一个分号组成,对程序执行不产生直空语句:由单独的一个分号组成,对程序执行不产生直 接影响,没有实际意义。接影响,没有实际意义。例如:例如:;表示什么也不做,没有实际意义表示什么也不做,没有实际意义第4章 结构化程序设计 复合语句:用复合语句:用将若干个语句括起来,形成一个整体,将若干个语句括起来,形成一个整体,组成一个复合语句。组成一个复合语句。例如:例如:a=3;b=4;c=a*b+25;d=a*b*c;第4章 结构化程序设计三、三、顺序结构程序一般设计方法顺序结构程序一
5、般设计方法顺序结构程序设计方法:顺序结构程序设计方法:一般先对要处理的一般先对要处理的“事件事件”进行分析,根据分析的结进行分析,根据分析的结果写出相应算法,画出流程图,再写出相关的源程序。果写出相应算法,画出流程图,再写出相关的源程序。第4章 结构化程序设计 程序开头的编译预处理命令程序开头的编译预处理命令main()main()对变量类型进行说明的语句对变量类型进行说明的语句 对相应变量提供数据的语句对相应变量提供数据的语句 运算部分运算部分 输出部分输出部分#include stdio.h#include stdio.h main()main()int a,b,c;int a,b,c;a
6、=3;b=5;a=3;b=5;c=a+b;c=a+b;printf(“c=%d”,c);printf(“c=%d”,c);在顺序结构程序中,一般包括以下几个部分:在顺序结构程序中,一般包括以下几个部分:第4章 结构化程序设计例例 4-1 4-1 输入三角形的三条边长,求三角形的输入三角形的三条边长,求三角形的 周长和面积。周长和面积。三角形周长三角形周长:len=a+b+c:len=a+b+c 三角形面积三角形面积:s=:s=,s1=0.5*(a+b+c)。开始开始float a,b,c,len,s1,sfloat a,b,c,len,s1,ss1=0.5*(a+b+c)s1=0.5*(a+b
7、+c)len=a+b+clen=a+b+cs=sqrt(s1*(s1-a)*(s1-b)*(s1-c)s=sqrt(s1*(s1-a)*(s1-b)*(s1-c)输出输出len,slen,s结束结束输入输入a,b,ca,b,c第4章 结构化程序设计#include stdio.h#include stdio.h#include math.h#include math.hmain()main()float a,b,c,s1,len,s;float a,b,c,s1,len,s;printf(Input the a,b,c:);printf(Input the a,b,c:);scanf(%f,%
8、f,%f,&a,&b,&c);scanf(%f,%f,%f,&a,&b,&c);s1=0.5*(a+b+c);s1=0.5*(a+b+c);len=a+b+c;len=a+b+c;s=sqrt(s1*(s1-a)*(s1-b)*(s1-c);s=sqrt(s1*(s1-a)*(s1-b)*(s1-c);printf(a=%f,b=%f,c=%fn,a,b,c);printf(a=%f,b=%f,c=%fn,a,b,c);printf(len=%f,s=%fn,len,s);printf(len=%f,s=%fn,len,s);第4章 结构化程序设计例例4-24-2输入一个摄氏温度,输出它的华氏
9、温度。温度换算公为 (f为华氏温度,c为摄氏温度)开始开始float f,cfloat f,cf=9.0/5.0*c+32f=9.0/5.0*c+32输出输出c c,f f结束结束输入输入c c#include stdio.h#include stdio.hmain()main()float f,c;float f,c;printf(printf(请输入一个摄氏温度值:请输入一个摄氏温度值:););scanf(%f,&c);scanf(%f,&c);f=9.0/5.0*c+32;f=9.0/5.0*c+32;printf(printf(摄氏温度为:摄氏温度为:c=%8.2fn,c);c=%8.
10、2fn,c);printf(printf(华氏温度为:华氏温度为:f=%8.2fn,f);f=%8.2fn,f);第4章 结构化程序设计例例4-3 4-3 设圆的半径为设圆的半径为r=1.5r=1.5,圆柱高,圆柱高h=3h=3,求圆柱表面积、圆柱体积。,求圆柱表面积、圆柱体积。(圆半径、圆柱高从键盘输入,输出结果时要求小数点保留圆半径、圆柱高从键盘输入,输出结果时要求小数点保留2 2位小数。)位小数。)#include“stdio.h#include“stdio.hmain()main()float r,h,ar,av;float r,h,ar,av;printf(printf(输入半径和高
11、输入半径和高););scanf(%f,%f,&r,&h);scanf(%f,%f,&r,&h);ar=3.1415926*r*r*2+2*3.1415926*r*h;ar=3.1415926*r*r*2+2*3.1415926*r*h;av=3.1415926*r*r*h;av=3.1415926*r*r*h;printf(printf(表面积表面积ar=%8.2f,ar=%8.2f,体积体积=%8.2f,ar,av);=%8.2f,ar,av);第4章 结构化程序设计一、选择一、选择结构程序设计结构程序设计 在在C C语言中,用语言中,用if if语句或语句或switchswitch语句来实
12、现选择结构语句来实现选择结构条件选择结构条件选择结构多支选择结构多支选择结构根据所给的条件作根据所给的条件作出判断,有选择性出判断,有选择性的执行部分语句。的执行部分语句。根据所给的数据和根据所给的数据和已有的选择支相比已有的选择支相比较,执行相符合的较,执行相符合的选择支。选择支。第4章 结构化程序设计二、条件选择二、条件选择if if语句语句if if语句是用来判定所给的条件是否满足,根据判断语句是用来判定所给的条件是否满足,根据判断的结果决定执行何种操作。的结果决定执行何种操作。if if语句有三种形式:语句有三种形式:if()if()if()else if()else if()else
13、 if()else if()else if()else第4章 结构化程序设计1.1.逻辑逻辑if if语句语句格式:格式:if(if(表达式表达式)语句语句 功能:功能:功能:功能:当括号内表达式的当括号内表达式的值为值为“真真”时,才能执行时,才能执行后面的操作,并且只能执后面的操作,并且只能执行一个语句而不能执行若行一个语句而不能执行若干个语句,如果括号内表干个语句,如果括号内表达式的值为达式的值为“假假”时,将时,将不执行任何操作。不执行任何操作。表达式语句假真例如:例如:if(xy)a=x*y;if(xy)a=x*y;if(xy)a=x-y;b=x+y;if(xy则将则将x与与y的值进
14、行交换,的值进行交换,后再用后再用x与与z进行比较,如果进行比较,如果xz则将则将x与与z的值进的值进行交换,这样能使行交换,这样能使x最小。最小。第4章 结构化程序设计程序如下程序如下:#include stdio.h#include stdio.hmain()main()int x,y,z,t;int x,y,z,t;printf(please input the three numbers:);printf(please input the three numbers:);scanf(%d,%d,%d,&x,&y,&z);scanf(%d,%d,%d,&x,&y,&z);if(xy)t=
15、x;x=y;y=t;if(xy)t=x;x=y;y=t;if(xz)t=z;z=x;x=t;if(xz)t=z;z=x;x=t;if(yz)t=y;y=z;z=t;if(yz)t=y;y=z;z=t;printf(small to big:%d%d printf(small to big:%d%d%dn,x,y,z);%dn,x,y,z);第4章 结构化程序设计表达式表达式语句语句1 1假假语句语句2 2真真例如:例如:if(xy)a=b;if(xy)a=b;else a=c;else a=c;if(ab)a=a+b;if(ab)a=a+b;else t=a;a=b;b=t;else t=a;
16、a=b;b=t;功能:功能:功能:功能:当括号内表达式的值为当括号内表达式的值为“真真”时,执行语句时,执行语句1的的操作,否则,执行语句操作,否则,执行语句2的操作。同样,也只能执行一的操作。同样,也只能执行一个语句而不能执行若干个语句。个语句而不能执行若干个语句。2.结构模块结构模块if()else语句语句 格式:格式:if(表达式)(表达式)语句语句1 else 语句语句2第4章 结构化程序设计例例 4-5 4-5 有一函数:有一函数:编一程序,输入一个编一程序,输入一个x x值,求值,求y y值。值。#include stdio.h#include stdio.hmain()main(
17、)int x,y;int x,y;scanf(%d,&x);scanf(%d,&x);if(x0)y=x*x-1;if(x0)y=x*x-1;else y=x*x+1;else y=x*x+1;printf(x=%d,y=%d,x,y);printf(x=%d,y=%d,x,y);if(x0)y=x*x-1;if(x=0)y=x*x+1;if(x=0)y=x*x+1;第4章 结构化程序设计例例4-6 4-6 写一程序,从键盘上输入年份写一程序,从键盘上输入年份yearyear(4 4位以内十进制正整位以内十进制正整数),判断其是否为闰年。闰年的条件是:能被数),判断其是否为闰年。闰年的条件是:
18、能被4 4整除、但不能整除、但不能被被100100整除,或者能被整除,或者能被400400整除。整除。#include stdio.h#include stdio.hmain()main()int year;int year;printf(Please input the year:);printf(Please input the year:);scanf(%d,&year);scanf(%d,&year);if(year%4=0&year%100!=0)|(year%400=0)if(year%4=0&year%100!=0)|(year%400=0)printf(%d is a leap
19、 year.n,year);printf(%d is a leap year.n,year);else else printf(%d is not a leap year.n,year);printf(%d is not a leap year.n,year);第4章 结构化程序设计3.3.结构模块结构模块if ifelse ifelse if语句语句 格式:格式:if(if(表达式表达式1)1)语句语句1 1 else if(else if(表达式表达式2)2)语句语句22 .else if(else if(表达式表达式n)n)语句语句nn else else 语句语句n+1n+1功能:功能
20、:功能:功能:当表达式当表达式1 1的值为的值为“真真”时,执行语句时,执行语句1 1;如果表达式;如果表达式1 1的的值为值为“假假”,再判定表达式,再判定表达式2 2是否为是否为“真真”,如果表达式,如果表达式2 2的值的值为为“真真”,执行语句,执行语句2 2,如果表达式,如果表达式2 2的值为的值为“假假”,再判定表,再判定表达式达式3 3是否为是否为“真真”,如果表达式,如果表达式3 3的值为的值为“真真”,执行语句,执行语句3 3;以此类推;如果所有表达式的值都为以此类推;如果所有表达式的值都为“假假”,则执行语句,则执行语句n+1n+1。同样,也只能执行一个语句而不能执行若干个语
21、句。同样,也只能执行一个语句而不能执行若干个语句。第4章 结构化程序设计表达式1语句1假表达式2表达式n语句2语句n.语句n语句n+1假假假真真真例如:例如:if(x100)t=0.1;if(x100)t=0.1;else if(x200)t=0.2;else if(x200)t=0.2;else if(x300)t=0.3;else if(x300)t=0.3;else if(x400)t=0.4;else if(x400)if(x400)t=0.4;a=1.5;t=0.4;a=1.5;else if(x300)else if(x300)t=0.3;a=1.2;t=0.3;a=1.2;els
22、e if(x200)else if(x200)t=0.2;a=1.0;t=0.2;a=1.0;else else t=0.1;a=0.8;t=0.1;a=0.8;第4章 结构化程序设计例例 4-7 4-7 有一函数:编一程序,输入一个x值,求y值。#include stdio.h#include stdio.hmain()main()int x,y;int x,y;scanf(%d,&x);scanf(%d,&x);if(x0)y=2*x-1;if(x0)y=2*x-1;else if(x=0)y=0;else if(x=0)y=0;else y=x*x+1;else y=x*x+1;prin
23、tf(x=%d,y=%d,x,y);printf(x=%d,y=%d,x,y);if(x0)y=2*x-1;if(x0)y=x*x+1if(x0)y=x*x+1第4章 结构化程序设计注意:注意:注意:注意:在在if if语句中,括号内的表达式一般为关系表达式或逻辑表达式,语句中,括号内的表达式一般为关系表达式或逻辑表达式,如果括号内的表达式为其它表达式,则无法实现选择操作。如果括号内的表达式为其它表达式,则无法实现选择操作。例如:例如:if(2)print(“how are you”);if(2)print(“how are you”);该语句的输出结果为该语句的输出结果为“how“how a
24、re you”are you”,因为表达式的值为,因为表达式的值为2 2,按,按“真真”处理。处理。如果写成如果写成if(a)print(how are you);if(a)print(how are you);输出结果同样为输出结果同样为“how are“how are you”you”,因为表达式的值为,因为表达式的值为a a,还是按,还是按“真真”处理。处理。在在if if语句中,每次只能执行一个语句或一个选择支,如果要执语句中,每次只能执行一个语句或一个选择支,如果要执行多个语句,应当将这些语句用行多个语句,应当将这些语句用 括起来,形成一个复合语句。括起来,形成一个复合语句。在在if
25、 if语句中,允许括号内存在赋值表达式。语句中,允许括号内存在赋值表达式。例如例如 if(a=b)0)t=a;if(a=b)0)t=a;if if语句在程序中相当一个复合语句。语句在程序中相当一个复合语句。第4章 结构化程序设计4.4.条件运算符与条件表达式条件运算符与条件表达式 格式如下:格式如下:表达式表达式1 1?表达式?表达式2 2:表达式:表达式3 3功能:功能:功能:功能:先算表达式先算表达式1 1,若表达式,若表达式1 1为为“真真”,则求解,则求解表达式表达式2 2,此时表达式,此时表达式2 2的值就是整个条件表达式的的值就是整个条件表达式的值。若表达式值。若表达式1 1为为“
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课件
限制150内