ImageVerifierCode 换一换
格式:PPT , 页数:76 ,大小:403.16KB ,
文档编号:4145150      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4145150.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(C语言程序设计课件第4章.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计课件第4章.ppt

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、)dodowhile()while()(直到型循环语句)直到型循环语句)go to go to (无条件转移语句)(无条件转移语句)switch switch (多支选择语句)(多支选择语句)continue continue (结束本次循环语句)(结束本次循环语句)break break (执行中止语句)(执行中止语句)return return (函数返回值语句(函数返回值语句)第4章 结构化程序设计 函数调用语句:能实现函数的调用功能。函数调用语句:能实现函数的调用功能。例如:例如:printf(%d,aprintf(%d,a););表达式语句:由一个表达式加分号构成,能实现数据表达式语

4、句:由一个表达式加分号构成,能实现数据计计 算功能。算功能。例如:例如:a=3a=3*b;b;空语句:由单独的一个分号组成,对程序执行不产生空语句:由单独的一个分号组成,对程序执行不产生直直 接影响,没有实际意义。接影响,没有实际意义。例如:例如:;表示什么也不做,没有实际意义表示什么也不做,没有实际意义第4章 结构化程序设计 复合语句:用复合语句:用将若干个语句括起来,形成一个整体,将若干个语句括起来,形成一个整体,组成一个复合语句。组成一个复合语句。例如:例如:a=3;b=4;c=a*b+25;d=a*b*c;第4章 结构化程序设计三、三、顺序结构程序一般设计方法顺序结构程序一般设计方法顺

5、序结构程序设计方法:顺序结构程序设计方法:一般先对要处理的一般先对要处理的“事件事件”进行分析,根据分析的结进行分析,根据分析的结果写出相应算法,画出流程图,再写出相关的源程序。果写出相应算法,画出流程图,再写出相关的源程序。第4章 结构化程序设计 程序开头的编译预处理命令程序开头的编译预处理命令main()main()对变量类型进行说明的语句对变量类型进行说明的语句 对相应变量提供数据的语句对相应变量提供数据的语句 运算部分运算部分 输出部分输出部分#include#include stdio.hstdio.h main()main()intint a,b,c;a,b,c;a=3;b=5;a

6、=3;b=5;c=a+b;c=a+b;printf(“cprintf(“c=%d”,c);=%d”,c);在顺序结构程序中,一般包括以下几个部分:在顺序结构程序中,一般包括以下几个部分:第4章 结构化程序设计例例 4-1 4-1 输入三角形输入三角形的三条边长,求三角形的的三条边长,求三角形的 周长和面积。周长和面积。三角形周长三角形周长:lenlen=a+b+c=a+b+c 三角形面积三角形面积:s=:s=)1()1()1(1csbsass,s1=0.5*(a+b+c)。开始开始float a,b,c,len,s1,sfloat a,b,c,len,s1,ss1=0.5s1=0.5*(a+b

7、+c)(a+b+c)lenlen=a+b+c=a+b+cs=sqrt(s1s=sqrt(s1*(s1-a)(s1-a)*(s1-b)(s1-b)*(s1-c)(s1-c)输出输出len,slen,s结束结束输入输入a,b,ca,b,c第4章 结构化程序设计#include#include stdio.hstdio.h#include math.h#include math.hmain()main()float a,b,c,s1,len,s;float a,b,c,s1,len,s;printf(Inputprintf(Input the a,b,c:);the a,b,c:);scanf(%f

8、,%f,%f,&a,&b,&cscanf(%f,%f,%f,&a,&b,&c););s1=0.5 s1=0.5*(a+b+c);(a+b+c);lenlen=a+b+ca+b+c;s=s=sqrtsqrt(s1(s1*(s1-a)(s1-a)*(s1-b)(s1-b)*(s1-c);(s1-c);printf(aprintf(a=%f,b=%f,c=%fn,a,b,c);=%f,b=%f,c=%fn,a,b,c);printf(lenprintf(len=%f,s=%=%f,s=%fn,len,sfn,len,s););第4章 结构化程序设计325/9cf例例4-24-2输入一个摄氏温度,输出

9、它的华氏温度。温度换算公为 (f为华氏温度,c为摄氏温度)开始开始float f,cfloat f,cf=9.0/5.0f=9.0/5.0*c+32c+32输出输出c c,f f结束结束输入输入c c#include#include stdio.hstdio.h main()main()float f,c;float f,c;printfprintf(请输入一个摄氏温度值:请输入一个摄氏温度值:););scanf(%f,&cscanf(%f,&c););f=9.0/5.0 f=9.0/5.0*c+32;c+32;printfprintf(摄氏温度为:摄氏温度为:c=%8.2fn,c);c=%8

10、.2fn,c);printfprintf(华氏温度为:华氏温度为:f=%8.2fn,f);f=%8.2fn,f);第4章 结构化程序设计例例4-3 4-3 设圆的半径为设圆的半径为r=1.5r=1.5,圆柱高,圆柱高h=3h=3,求圆柱表面积、圆柱体积。,求圆柱表面积、圆柱体积。(圆半径、圆柱高从键盘输入,输出结果时要求小数点保留圆半径、圆柱高从键盘输入,输出结果时要求小数点保留2 2位小数。)位小数。)#include“#include“stdio.hstdio.h main()main()float float r,h,ar,avr,h,ar,av;printfprintf(输入半径和高输

11、入半径和高););scanf(%f,%f,&r,&hscanf(%f,%f,&r,&h););arar=3.1415926=3.1415926*r r*r r*2+22+2*3.14159263.1415926*r r*h;h;avav=3.1415926=3.1415926*r r*r r*h;h;printfprintf(表面积表面积arar=%8.2f,=%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 if()e

13、lse if()else if()else第4章 结构化程序设计1.1.逻辑逻辑if if语句语句格式:格式:if(if(表达式表达式)语句语句 当括号内表达式的当括号内表达式的值为值为“真真”时,才能执行时,才能执行后面的操作,并且只能执后面的操作,并且只能执行一个语句而不能执行若行一个语句而不能执行若干个语句,如果括号内表干个语句,如果括号内表达式的值为达式的值为“假假”时,将时,将不执行任何操作。不执行任何操作。表达式语句假真例如:例如:if(xy)a=xif(xy)a=x*y;y;if(xy)a=x-y;b=x+y;if(xy则将则将x与与y的值进行交换,的值进行交换,后再用后再用x与

14、与z进行比较,如果进行比较,如果xz则将则将x与与z的值进的值进行交换,这样能使行交换,这样能使x最小。最小。第4章 结构化程序设计程序如下程序如下:#include#include stdio.hstdio.h main()main()intint x,y,z,t;x,y,z,t;printf(pleaseprintf(please input the three numbers:);input the three numbers:);scanf(%d,%d,%d,&x,&y,&zscanf(%d,%d,%d,&x,&y,&z););if(xy)t=x;x=y;y=t;if(xy)t=x;x

15、=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(smallprintf(small to big:%d%d%dn,x,y,z);to big:%d%d%dn,x,y,z);第4章 结构化程序设计表达式表达式语句语句1 1假假语句语句2 2真真例如:例如:i if(xy)a=b;f(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;a=b;b=t;当括号内表达式的值为当括号内

16、表达式的值为“真真”时,执行语句时,执行语句1的的操作,否则,执行语句操作,否则,执行语句2的操作。同样,也只能执行一的操作。同样,也只能执行一个语句而不能执行若干个语句。个语句而不能执行若干个语句。2.结构模块结构模块if()else语句语句 格式:格式:if(表达式)(表达式)语句语句1 else 语句语句2第4章 结构化程序设计例例 4-5 4-5 有一函数:有一函数:)0(1)0(1)(22xxxxxf编一程序,输入一个编一程序,输入一个x x值,求值,求y y值。值。#include#include stdio.hstdio.h main()main()intint x,y;x,y;

17、scanf(%d,&xscanf(%d,&x););if(x0)y=xif(x0)y=x*x-1;x-1;else y=xelse y=x*x+1;x+1;printf(xprintf(x=%d,y=%d,x,y);=%d,y=%d,x,y);if(xif(x0)y=x=0)y=x=0)y=x*x+1;x+1;第4章 结构化程序设计例例4-6 4-6 写一程序,从键盘上输入年份写一程序,从键盘上输入年份yearyear(4 4位以内十进制正整位以内十进制正整数),判断其是否为闰年。闰年的条件是:能被数),判断其是否为闰年。闰年的条件是:能被4 4整除、但不能整除、但不能被被100100整除,或

18、者能被整除,或者能被400400整除。整除。#include#include stdio.hstdio.h main()main()intint year;year;printf(Pleaseprintf(Please input the year:);input the year:);scanf(%d,&yearscanf(%d,&year););if(year%4=0&year%100!=0)|(year%400=0)if(year%4=0&year%100!=0)|(year%400=0)printf(%dprintf(%d is a leap year.n,year);is a lea

19、p year.n,year);else else printf(%dprintf(%d is not a leap year.n,year);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当表达式当表达式1 1的值为的值为“真真”时,执行语句时,执行语句1 1;如

20、果表达式;如果表达式1 1的值为的值为“假假”,再判定表达式,再判定表达式2 2是否为是否为“真真”,如果表达式,如果表达式2 2的的值为值为“真真”,执行语句,执行语句2 2,如果表达式,如果表达式2 2的值为的值为“假假”,再判定,再判定表达式表达式3 3是否为是否为“真真”,如果表达式,如果表达式3 3的值为的值为“真真”,执行语句,执行语句3 3;以此类推;如果所有表达式的值都为;以此类推;如果所有表达式的值都为“假假”,则执行语句,则执行语句n+1n+1。同样,也只能执行一个语句而不能执行若干个语句。同样,也只能执行一个语句而不能执行若干个语句。第4章 结构化程序设计表达式1语句1假

21、表达式2表达式n语句2语句n.语句n语句n+1假假假真真真例如:例如:if(xif(x100)t=0.1;100)t=0.1;else else if(xif(x200)t=0.2;200)t=0.2;else else if(xif(x300)t=0.3;300)t=0.3;else else if(xif(x400)t=0.4;400)400)t=0.4;a=1.5;t=0.4;a=1.5;else else if(xif(x300)300)t=0.3;a=1.2;t=0.3;a=1.2;else else if(xif(x200)200)t=0.2;a=1.0;t=0.2;a=1.0;e

22、lse else t=0.1;a=0.8;t=0.1;a=0.8;第4章 结构化程序设计例例 4-7 4-7 有一函数:)0()0()0(1012)(2xxxxxxf编一程序,输入一个x值,求y值。#include#include stdio.hstdio.h main()main()intint x,y;x,y;scanf(%d,&xscanf(%d,&x););if(x0)y=2if(x0)y=2*x-1;x-1;else if(x=0)y=0;else if(x=0)y=0;else y=xelse y=x*x+1;x+1;printf(xprintf(x=%d,y=%d,x,y);=%

23、d,y=%d,x,y);if(xif(x0)y=20)y=x0)y=x*x+1x+1第4章 结构化程序设计 在在if if语句中,括号内的表达式一般为关系表达式或逻辑表达式,语句中,括号内的表达式一般为关系表达式或逻辑表达式,如果括号内的表达式为其它表达式,则无法实现选择操作。如果括号内的表达式为其它表达式,则无法实现选择操作。例如:例如:if(2)print(“how are you”);if(2)print(“how are you”);该语句的输出结果为该语句的输出结果为“how how are you”are you”,因为表达式的值为因为表达式的值为2 2,按,按“真真”处理。处理。

24、如果写成如果写成if(a)print(how are you);if(a)print(how are you);输出结果同样为输出结果同样为“how are how are you”you”,因为表达式的值为因为表达式的值为a a,还是按还是按“真真”处理。处理。在在if if语句中,每次只能执行一个语句或一个选择支,如果要执语句中,每次只能执行一个语句或一个选择支,如果要执行多个语句,应当将这些语句用行多个语句,应当将这些语句用 括起来,形成一个复合语句。括起来,形成一个复合语句。在在if if语句中,允许括号内存在赋值表达式。语句中,允许括号内存在赋值表达式。例如例如 if(a=b)0)t

25、=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为为“假假”,则求解表达式,则求解表达式3 3,此时,此时表达式表达式3 3的值就是整个条件表达式的值。的值就是整个条件表达式的值。第

26、4章 结构化程序设计条件运算符是一个三目运算符,要求有三个操作条件运算符是一个三目运算符,要求有三个操作数;结合方式是从右到左;优先级别很低,只比数;结合方式是从右到左;优先级别很低,只比赋值运算符和逗号运算符高。赋值运算符和逗号运算符高。第4章 结构化程序设计例例4-8 4-8 从键盘上输入一个字符,如果它是大写字母,从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。则把它转换成小写字母输出;否则,直接输出。#include#include stdio.hstdio.h main()main()char char chch;printf(Inputprintf

27、(Input a character:);a character:);scanf(%c,&chscanf(%c,&ch););chch=(=(chch=A&=A&chch=Z)?(ch+32):=Z)?(ch+32):chch;printf(%cn,chprintf(%cn,ch););第4章 结构化程序设计例例 4-9 4-9 企业发放的奖金根据利润提成。利润企业发放的奖金根据利润提成。利润(I)(I)低于或等于低于或等于1010万元时,奖金可提万元时,奖金可提10%10%;利润高于;利润高于1010万元,低于万元,低于2020万元时,高万元时,高于于1010万元的部分,可提成万元的部分,可

28、提成7.5%7.5%;2020万到万到4040万之间时,高于万之间时,高于2020万元的部分,可提成万元的部分,可提成5%5%;4040万到万到6060万之间时高于万之间时高于4040万元的部万元的部分,可提成分,可提成3%3%;6060万到万到100100万之间时,高于万之间时,高于6060万元的部分,万元的部分,可提成可提成1.5%1.5%,高于,高于100100万元时,超过万元时,超过100100万元的部分按万元的部分按1%1%提成,提成,从键盘输入当月利润从键盘输入当月利润I I,求应发放奖金总数。求应发放奖金总数。例例 4-10 4-10 从键盘上输入任意三个数作为三角形的三条边,求

29、从键盘上输入任意三个数作为三角形的三条边,求三角形的面积。三角形的面积。第4章 结构化程序设计三、多支选择三、多支选择switchswitch语句语句C C语言提供了语言提供了switchswitch语句直接处理多分支选择。语句直接处理多分支选择。switchswitch语句的一般形式为:语句的一般形式为:功能:功能:先算出表达式先算出表达式的值,然后判断该表达的值,然后判断该表达式的值是否与某个式的值是否与某个casecase后面的常量表达式的值后面的常量表达式的值相等,若相等,则执行相等,若相等,则执行此此casecase后面的语句,当后面的语句,当执行到执行到breakbreak语句时,

30、语句时,跳出跳出switchswitch语句。若该语句。若该表达式的值与所有表达式的值与所有casecase后面的常量表达式的值后面的常量表达式的值都不等,则执行都不等,则执行defaultdefault后面的语句。后面的语句。第4章 结构化程序设计 switchswitch后面括号内的表达式一般为普通表达式,可后面括号内的表达式一般为普通表达式,可以是以是intint、charchar和枚举型中的一种,不应为关系表达式和枚举型中的一种,不应为关系表达式或逻辑表达式,如果为关系表达式或逻辑表达式,就或逻辑表达式,如果为关系表达式或逻辑表达式,就不能实现多支选择。不能实现多支选择。每个每个cas

31、ecase后面常量表达式的值,必须各不相同,否后面常量表达式的值,必须各不相同,否则会出现相互矛盾。同时必须使则会出现相互矛盾。同时必须使casecase后面的常量表达后面的常量表达式类型和式类型和switchswitch后面括号内表达式的类型保持一致。后面括号内表达式的类型保持一致。第4章 结构化程序设计 casecase后面的常量表达式仅起语句标号作用,并不进后面的常量表达式仅起语句标号作用,并不进行条件判断。系统一旦找到相匹配的标号,就从此标行条件判断。系统一旦找到相匹配的标号,就从此标号开始执行,不再进行标号判断,因此,必须加上号开始执行,不再进行标号判断,因此,必须加上breakbr

32、eak语句来结束语句来结束switchswitch语句的执行。语句的执行。各各casecase及及defaultdefault子句出现的先后次序,不影响程序子句出现的先后次序,不影响程序执行结果。执行结果。多个多个casecase子句,可共用同一语句。子句,可共用同一语句。一个一个switchswitch语句在语句在C C语言程序中相当于一个复合语句。语言程序中相当于一个复合语句。用用switchswitch语句实现的多分支结构程序,完全可以用语句实现的多分支结构程序,完全可以用if if语语句来实现。句来实现。第4章 结构化程序设计例例 4-11 4-11 从键盘上输入一个百分制成绩从键盘上

33、输入一个百分制成绩scorescore,按下列原则输出按下列原则输出其等级:其等级:score90score90,等级为等级为A A;80score9080score90,等级为等级为B B;70score8070score80,等级为等级为C C;60score7060score70,等级为等级为D D;score60score60,等级为等级为E E。第4章 结构化程序设计case 6:printf(grade=Dn);break;case 5:case 4:case 3:case 2:case 1:case 0:printf(grade=En);break;default:printf(

34、“data error!n);getch();程序如下程序如下:第4章 结构化程序设计例例 4-12 4-12 在显示器上显示一个菜单程序的模型。在显示器上显示一个菜单程序的模型。第4章 结构化程序设计四、选择结构的嵌套四、选择结构的嵌套C C语言程序中,可以在一个选择语句中嵌套一个或多个选择语句。语言程序中,可以在一个选择语句中嵌套一个或多个选择语句。if(ab)if(ab)if(cd)x=1;if(cd)x=1;else if(ac)else if(ac)if(bd)x=2;if(bd)x=2;else x=3;else x=3;else x=6;else x=6;else x=7;els

35、e x=7;if(ab)if(ab)if(cd)x=1;if(cd)x=1;else if(ac)else if(ac)if(bd)x=2;if(bd)x=2;else x=3;else x=3;else x=6;else x=6;else x=7;else x=7;:第4章 结构化程序设计#include stdio.h#include math.hmain()float a,b,c,x1,x2,delta,rel,ima;printf(Input the a,b,c:);scanf(%f,%f,%f,&a,&b,&c);if(fabs(a)=1e-6&fabs(b)=1e-6)printf

36、(the equation is not exist!n);if(fabs(a)1e-6)printf(this is a simple equation!);x1=-c/b;printf(the simple equation root:x=%8.4fn,x1);if(fabs(a)1e-6)printf(this is a quadratic equation!);delta=b*b-4.0*a*c;if(delta1e-6)第4章 结构化程序设计 printf(has two real roots:n);x1=(-b+sqrt(delta)/(2.0*a);x2=(-b-sqrt(del

37、ta)/(2.0*a);printf(x1=%8.4f,x2=%8.4f,x1,x2);if(fabs(delta)=1e-6)printf(has two equal real roots:n);x1=(-b+sqrt(delta)/(2.0*a);x2=(-b-sqrt(delta)/(2.0*a);printf(x1=%8.4f,x2=%8.4f,x1,x2);if(delta-1e-6)printf(has two complex roots:n);rel=(-b)/(2.0*a);ima=sqrt(-delta)/(2.0*a);printf(x1=%8.4f+%8.4fi,rel,

38、ima);printf(x2=%8.4f-%8.4fi,rel,ima);getch();第4章 结构化程序设计main()int x=1,y=0;switch(x)case 1:switch(y)case 0:printf(“*1*n”);case 1:printf(“*2*n”);case 2:printf(“*3*n”);第4章 结构化程序设计编写一个简单的财务应用程序来计算职工的所得的实际工资。编写一个简单的财务应用程序来计算职工的所得的实际工资。具体要求:具体要求:总工资总工资=基本底薪基本底薪+奖金。奖金。高级职员:底薪高级职员:底薪20002000元元 ,奖金系数,奖金系数1.1

39、51.15 一般职员:底薪一般职员:底薪15001500元元 ,奖金系数,奖金系数1.101.10 办办 事事 员:底薪员:底薪10001000元元 ,奖金系数,奖金系数1.01.0 利润利润5050万,奖金提成万,奖金提成1%1%;5050万万利润利润8080万,高出万,高出5050万部分奖金提成万部分奖金提成1.2%1.2%80 80万万利润利润100100100万,高出万,高出100100万部分奖金提成万部分奖金提成1.5%1.5%按国家要求扣税。按国家要求扣税。按国家要求扣养老金按国家要求扣养老金(占基本底薪占基本底薪8%)8%)、医疗保险、医疗保险(占基本底占基本底薪薪6%)6%)、

40、失业保险、失业保险(占基本底薪占基本底薪5%)5%)等。等。第4章 结构化程序设计循环结构程序设计循环结构程序设计循环操作是指重复执行一组指令或一个程序段。循环操作是指重复执行一组指令或一个程序段。程序中存在两种循环:程序中存在两种循环:和和。无条件的循无条件的循环是无休止环是无休止地执行一组地执行一组指令或一个指令或一个程序段。程序段。有条件的循环是有条件的循环是在满足一定的条在满足一定的条件下重复执行一件下重复执行一组指令或一个程组指令或一个程序段。序段。第4章 结构化程序设计第4章 结构化程序设计一、一、gotogoto语句语句C C语言程序允许使用语言程序允许使用gotogoto 语句

41、来实现无条件转移。语句来实现无条件转移。功能:功能:跳转到语句标号所在处执行程序。跳转到语句标号所在处执行程序。语句标号是语句标号是C C语言的标识符,由数字、字母、下划线构语言的标识符,由数字、字母、下划线构成,开头不能为数字,不能与关键字同名,最长不得超过成,开头不能为数字,不能与关键字同名,最长不得超过3131个字符。个字符。语句标号在程序中只起一个标识作用,无其它含义。语句标号在程序中只起一个标识作用,无其它含义。例如:例如:gotogoto loop1;loop1;注意:注意:gotogoto 语句是一个无条件转移语句,通常与语句是一个无条件转移语句,通常与if if语句语句合一起使

42、用,实现有条件的转移。合一起使用,实现有条件的转移。第4章 结构化程序设计例例 4-14 4-14 求求1+2+3+1001+2+3+100的和的和#include#include stdio.hstdio.h main()main()intint i=1,sum=0;i=1,sum=0;loop1:sum=sum+i;loop1:sum=sum+i;i+;i+;if(i=100)if(i=100)gotogoto loop1;loop1;printf(%d,sumprintf(%d,sum););注意:结构化程序设计方法,主张限制使用注意:结构化程序设计方法,主张限制使用gotogoto语句

43、。因为语句。因为滥用滥用gotogoto语句,将会导致程序结构无规律、可读性差。语句,将会导致程序结构无规律、可读性差。如果程序中没有如果程序中没有if(i=100)if(i=100),将将出现死循环。出现死循环。第4章 结构化程序设计二、二、whilewhile语句语句whilewhile语句是语句是“当型当型”循环语句,常用来实现循环语句,常用来实现“当型当型”循环结构。循环结构。WhileWhile语句的一般使用形式为:语句的一般使用形式为:表达式循环体真假循环体循环体第4章 结构化程序设计 1 1、循环条件一般为关系表达式或逻辑表达式。、循环条件一般为关系表达式或逻辑表达式。2 2、如

44、果循环条件为常量表达式,就会造成死循环或不循环。、如果循环条件为常量表达式,就会造成死循环或不循环。3 3、如果循环体有两或两条以上语句时,应当用、如果循环体有两或两条以上语句时,应当用 将其括起来,将其括起来,形成一个复合语句。形成一个复合语句。4 4、循环体中必须有能改变循环条件的语句存在,否则将出现、循环体中必须有能改变循环条件的语句存在,否则将出现死循环。死循环。5 5、在在C C语言程序中,可以将一个语言程序中,可以将一个whilewhile循环结构看成一个复合循环结构看成一个复合语句。语句。第4章 结构化程序设计例例4-14 4-14 求求1+2+3+1001+2+3+100的和的

45、和#include#include stdio.hstdio.h main()main()intint i=0,sum=0;i=0,sum=0;while(iwhile(i=100)=100)sum=sum=sum+isum+i;i+;i+;printf(%d,sumprintf(%d,sum););构成循环的必要条件:构成循环的必要条件:1.1.循环变量赋初值(如:循环变量赋初值(如:i=0i=0)2.2.合适的循环条件(如:合适的循环条件(如:i=100i=100)3.3.循环变量必须有变化(如:循环变量必须有变化(如:i+i+)while(i=100)sum+=i+;while(i+=1

46、00)sum+=i;while(+i=100)sum+=i;第4章 结构化程序设计例例4-15 4-15 从键盘输入若干个整数求和,当和大于从键盘输入若干个整数求和,当和大于300300时就停止输出。时就停止输出。#include void main()int x,sum=0;while(sum=300)printf(Input any x:);scanf(%d,&x);sum=sum+x;printf(sum=%dn,sum);第4章 结构化程序设计例例4-16 4-16 编写程序求编写程序求1 1!+2+2!+3+3!+20+20!的值!的值#include stdio.hmain()fl

47、oat sum=0.0,j=1.0;int i=1;while(i=20)j=j*i;sum=sum+j;i+;printf(%e,sum);第4章 结构化程序设计三、三、dodowhilewhile语句语句dodowhilewhile是是“直到型直到型”循环语句,用来实现循环语句,用来实现“直到型直到型”循环结构。循环结构。dodowhilewhile语句的一般使用形式为:语句的一般使用形式为:dodo 语句语句 while(while(表达式表达式);功能:功能:执行一次循环体执行一次循环体 计算表达式的值,判定其真假关计算表达式的值,判定其真假关系,如果表达式的值为系,如果表达式的值为“

48、真真”,则,则重复第重复第步的操作;如果表达式的步的操作;如果表达式的值为值为“假假”,则退出执行。,则退出执行。表达式循环体真假循环体循环体第4章 结构化程序设计 dodo1 1、循环条件一般为关系表达式或逻辑表达式。、循环条件一般为关系表达式或逻辑表达式。2 2、如果循环条件为常量表达式,就会造成死循环或循环、如果循环条件为常量表达式,就会造成死循环或循环1 1次。次。3 3、如果循环体有两或两条以上语句时,应当用、如果循环体有两或两条以上语句时,应当用 将其括起来,将其括起来,形成一个复合语句。形成一个复合语句。4 4、循环体中必须有能改变循环条件的语句存在,否则将出现、循环体中必须有能

49、改变循环条件的语句存在,否则将出现死循环。死循环。5 5、在在C C语言程序中,可以将一个语言程序中,可以将一个dowhiledowhile循环结构看成一个循环结构看成一个复合语句。复合语句。第4章 结构化程序设计例例4-17 4-17 求求1+2+3+1001+2+3+100的和的和#include#include stdio.hstdio.h main()main()intint i=1,sum=0;i=1,sum=0;do do sum=sum+i;sum=sum+i;i+;i+;while(i=100);while(i=100);printf(%d,sumprintf(%d,sum);

50、);从程序中可以看从程序中可以看出出dodowhilewhile语语句是先循环,后句是先循环,后判定,即使表达判定,即使表达式的值为式的值为“假假”,循环体也至少被循环体也至少被执行了一次。执行了一次。第4章 结构化程序设计例例4-18 4-18 求求1 1*2 2*3 3*1010的积的积#include#include stdio.hstdio.h main()main()long i=1,jc=1;long i=1,jc=1;do do jc jc=jc jc*i;i;i+;i+;while(i=10);while(i=10);printf(%ld,jcprintf(%ld,jc););

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|