用C语言编写程序6

上传人:仙*** 文档编号:221865862 上传时间:2023-07-07 格式:PPT 页数:67 大小:459.50KB
收藏 版权申诉 举报 下载
用C语言编写程序6_第1页
第1页 / 共67页
用C语言编写程序6_第2页
第2页 / 共67页
用C语言编写程序6_第3页
第3页 / 共67页
资源描述:

《用C语言编写程序6》由会员分享,可在线阅读,更多相关《用C语言编写程序6(67页珍藏版)》请在装配图网上搜索。

1、Chap 2 用用C语言编写程序语言编写程序 2.1 在屏幕上显示在屏幕上显示 Hello World!2.2 求华氏温度求华氏温度 100F 对应的摄氏温度对应的摄氏温度2.3 计算分段函数计算分段函数2.4 输出华氏输出华氏摄氏温度转换表摄氏温度转换表2.5 生成乘方表与阶乘表生成乘方表与阶乘表 本章要点本章要点n怎样编写程序,在屏幕上显示一些信息?怎样编写程序,在屏幕上显示一些信息?n怎样编写程序,实现简单的数据处理,例如怎样编写程序,实现简单的数据处理,例如将华氏温度转换为摄氏温度?将华氏温度转换为摄氏温度?n怎样使用怎样使用 if 语句计算分段函数?语句计算分段函数?n怎样用怎样用

2、for 语句求语句求 1+2+100?n如何定义和调用函数生成一张乘方表?如何定义和调用函数生成一张乘方表?2.1 在屏幕上显示在屏幕上显示Hello World!例例2-1 在屏幕上显示一个短句在屏幕上显示一个短句:Hello World!2.1 在屏幕上显示在屏幕上显示Hello World!/*显示显示“Hello World!*/注释文本注释文本#include int main(void)主函数主函数 printf(“Hello World!n);语句结束语句结束 return 0;输出函数输出函数 换行符换行符1.任何程序都有主函数任何程序都有主函数2.程序由假设干语句组程序由假设

3、干语句组成成3.语句由;结束语句由;结束2.1 在屏幕上显示一些信息在屏幕上显示一些信息例例2-2 在屏幕上显示在屏幕上显示:Programming is fun!And Programming in C is even more fun!#include 编译预处理命令编译预处理命令int main(void)printf(Programming is fun!n);printf(And Programming in C is even more fun!n);return 0;2.2 求华氏温度求华氏温度 100F 对应的摄对应的摄氏温度氏温度 摄氏温度摄氏温度 C=(5/9)(F-32)

4、2.2.1 程序解析程序解析2.2.2 常量、变量和数据类型常量、变量和数据类型2.2.3 算术运算和赋值运算算术运算和赋值运算2.2.4 格式化输出函数格式化输出函数printf2.2.1 程序解析程序解析例例2-3 求华氏温度求华氏温度 100F 对应的摄氏温度。对应的摄氏温度。摄氏温度摄氏温度 C=(5/9)(F-32)#include int main(void)int celsius,fahr;变量定义变量定义 fahr=100;变量使用变量使用 celsius=5*(fahr-32)/9;printf(fahr=%d,celsius=%dn,fahr,celsius);输出结果输出

5、结果 return 0;输出输出:fahr=100,celsius=372.2.2 常量、变量和数据类型常量、变量和数据类型int celsius,fahr;celsius=5*(fahr-32)/9;数据数据常量:在程序运行过程中,其值不能被改变常量:在程序运行过程中,其值不能被改变 变量:在程序运行过程中,其值可以被改变变量:在程序运行过程中,其值可以被改变 数据类型数据类型常量:常量:5 和和 9是整型常量整数是整型常量整数变量:在定义时指定变量:在定义时指定变量的定义变量的定义变量定义的一般形式:变量定义的一般形式:类型名类型名 变量名表;变量名表;例如:例如:int celsius,

6、fahr;定义整型变量定义整型变量float x;定义单精度浮点型变量定义单精度浮点型变量double area,length;定义双精度浮点型变量定义双精度浮点型变量double型数据比型数据比float精度高,取值范围大精度高,取值范围大 变量名:小写字母;见名知义变量名:小写字母;见名知义变量的定义变量的定义n定义变量时要指定变量名和数据类型定义变量时要指定变量名和数据类型类型名类型名 变量名表;变量名表;int celsius,fahr;float x;double area,length;n变量名代表内存中的一个存储单元变量名代表内存中的一个存储单元存放该变量的值存放该变量的值n该存

7、储单元的大小由变量的数据类型决定该存储单元的大小由变量的数据类型决定nC语言中的变量代表保存数据的存储单元语言中的变量代表保存数据的存储单元n数学中的变量代表未知数数学中的变量代表未知数 x=x+1变量的定义与使用变量的定义与使用变量必须先变量必须先定义定义,后,后使用使用。#include int main(void)int celsius,fahr;fahr=100;celsius=5*(fahr-32)/9;printf(fahr=%d,celsius=%dn,fahr,celsius);return 0;一个变量名只能定义一次一个变量名只能定义一次变量一般都定义在程序的头上变量一般都定

8、义在程序的头上不能定义在程序的中间或后面不能定义在程序的中间或后面应该先赋值,后引用应该先赋值,后引用2.2.3 算术运算和赋值运算算术运算和赋值运算fahr=100;celsius=5*(fahr-32)/9;1、算术运算、算术运算双目算术运算符:双目算术运算符:+-*/%算术表达式:用算术运算符将运算对象连接起来算术表达式:用算术运算符将运算对象连接起来的符合的符合C语言语法规那么的式子语言语法规那么的式子 数学式:数学式:(5/9)(F-32)C表达式:表达式:5*(fahr-32)/9 或者:或者:数学式:数学式:s(s-a)(s-b)(s-c)C表达式:表达式:算术运算算术运算双目算

9、术运算符:双目算术运算符:+-*/%算术表达式:用算术运算符将运算对象连接起算术表达式:用算术运算符将运算对象连接起来的符合来的符合C语言语法规那么的式子语言语法规那么的式子 注意注意/整数除整数,得整数整数除整数,得整数如:如:1/2 0,9/4 2?5*(fahr-32)/9 和和 5/9*(fahr-32)等价吗等价吗%针对整型数据针对整型数据如:如:565,941,10040双目运算符两侧操作数的类型要相同双目运算符两侧操作数的类型要相同赋值运算赋值运算n赋值运算符赋值运算符 =n赋值表达式:用赋值表达式:用=将一个将一个变量变量和一个和一个表达表达式式连接起来的式子连接起来的式子 变

10、量变量 表达式表达式例如:例如:fahr=100;celsius=5*(fahr-32)/9;计算赋值运算符右侧计算赋值运算符右侧表达式表达式的值的值将赋值运算符右侧将赋值运算符右侧表达式表达式的值赋给左侧的的值赋给左侧的变量变量的左边必须是一个变量的左边必须是一个变量2.2.4 格式化输出函数格式化输出函数printf数据输出:格式化输出函数数据输出:格式化输出函数 printf#include printf(Hello World!n);printf(fahr=%d,celsius=%dn,fahr,celsius);printf(格式控制字符串格式控制字符串,输出参数输出参数1,输出参数

11、输出参数n);用双引号括起来,表示输出的格式要输出的数据printf格式控制字符串格式控制字符串printf(Hello World!n);printf(fahr=%d,celsius=%dn,fahr,celsius);printf(Hin,fahr);格式控制字符串格式控制字符串:普通字符:原样输出普通字符:原样输出格式控制说明格式控制说明:按指定的格式输出数据按指定的格式输出数据,%与数据类型有关与数据类型有关nint型型:%dnfloat double型:型:%fprintf(fahr=%d,celsius=%dn,fahr,celsius);输出输出:fahr=100,celsius

12、=372.3 计算分段函数计算分段函数 2.3.1 程序解析程序解析2.3.2 关系运算关系运算2.3.3 if-else语句语句2.3.4 格式化输入函数格式化输入函数scanf2.3.5 常用数学库函数常用数学库函数2.3.1 程序解析程序解析例例2-4 分段计算水费分段计算水费要解决的问题:要解决的问题:输入输入计算分段函数计算分段函数输出,并保存输出,并保存2位小数位小数 求求ex2.3.1 程序解析求分段函数程序解析求分段函数#include int main(void)double x,y;printf(Enter x(x=0):n);/*输入提示输入提示*/scanf(%lf,&

13、x);/*调用调用scanf函数输入数据函数输入数据*/if(x=0):9.5f(9.500000)=12.67Enter x(x=0):15f(15.000000)=20.00数据必须输入吗?数据必须输入吗?Enter x(x=0):21.3f(21.300000)=42.752.3.2 关系运算关系运算x=15比较比较 x 和和 15 的大小的大小比较的结果:真比较的结果:真 假假当当 x 取值取值9.5时,时,x=15的结果是:?的结果是:?当当 x 取值取值21.3时,时,x=15的结果是:?的结果是:?关系运算关系运算 比较运算,比较两个操作数比较运算,比较两个操作数关系运算符关系运

14、算符x y x y x=y x!=y关系表达式:用关系运算符将关系表达式:用关系运算符将2个表达式连接起来的式子。个表达式连接起来的式子。如:如:x=1区分区分=和和=运用关系表达式运用关系表达式表示比较的数学式表示比较的数学式 C关系表达式关系表达式x10 x10 x10 x=10 x=10 x!=10 x=10用关系表达式描述条件用关系表达式描述条件判断判断 x 是否为负数是否为负数x 0判断判断 x 是否不为零是否不为零x!=02.3.3 if-else语句语句if(表达式表达式)语句语句1else 语句语句2if(x=15)y=4*x/3;else y=2.5*x-10.5;语句语句1

15、表达式表达式语句语句2真真假假计算二分段函数计算二分段函数 if(表达式表达式)语句语句1else 语句语句2if(x!=0)y=1/x;else y=0;源程序源程序#include int main(void)double x,y;printf(Enter x:n);scanf(%lf,&x);if(x!=0)y=1/x;else y=0;printf(f(%.2f)=%.1fn,x,y);return 0;#include /*例例2-4*/int main(void)double x,y;printf(Enter x(x=0):n);scanf(%lf,&x);if(x=15)y=4*

16、x/3;else y=2.5*x-10.5;printf(f(%f)=%.2fn,x,y);return 0;运行结果运行结果#include int main(void)double x,y;printf(Enter x:n);scanf(%lf,&x);if(x!=0)y=1/x;else y=0;printf(f(%.2f)=%.1fn,x,y);return 0;input x:2.5f(2.50)=0.4input x:0f(0.00)=0.0软件测试的根本思想软件测试的根本思想 软件测试软件测试精心设计一批精心设计一批测试用例测试用例 输入数据,预期输出结果输入数据,预期输出结果,

17、然后分,然后分别用这些测试用例运行程序,看程序的实际运行结果与预别用这些测试用例运行程序,看程序的实际运行结果与预期输出结果是否一致。期输出结果是否一致。input x:2.5f(2.50)=0.4input x:0f(0.00)=0.0if(x!=0)y=1/x;else y=0;if(x=0):9.5f(9.500000)=12.67Enter x(x=0):15f(15.000000)=20.00Enter x(x=0):21.3f(21.300000)=42.752.3.4 格式化输入函数格式化输入函数scanf数据输入:格式化输入函数数据输入:格式化输入函数 scanf#includ

18、e scanf(%lf,&x);scanf(格式控制字符串格式控制字符串,输入参数输入参数1,输入参数输入参数n);用双引号括起来,表示输入的格式用双引号括起来,表示输入的格式变量地址变量地址scanf格式控制字符串格式控制字符串格式控制字符串格式控制字符串:格式控制说明格式控制说明:按指定的格式输入数据按指定的格式输入数据,%与数据类型有关与数据类型有关nint型型:%dnfloat型:型:%fndouble型:型:%lf普通字符:原样输入普通字符:原样输入例如:例如:scanf(%lf,&x);输入输入:9.5scanf(x=%lf,&x);输入输入:x=9.5尽量不要出现普通字符尽量不要

19、出现普通字符改进例改进例2-3的程序的程序例例2-3 求华氏温度求华氏温度 100F 对应的摄氏温度。对应的摄氏温度。摄氏温度摄氏温度 C=(5/9)(F-32)#include int main(void)int celsius,fahr;fahr=100;celsius=5*(fahr-32)/9;printf(fahr=%d,celsius=%dn,fahr,celsius);return 0;scanf(%d,&fahr);printf(“Enter fahr:n);Enter fahr:100fahr=100,celsius=372.3.5 常用数学库函数常用数学库函数n库函数库函数

20、nC语言处理系统提供事先编好的函数,供用户语言处理系统提供事先编好的函数,供用户在编程时调用。在编程时调用。scanf(),printf(),exp()n在相应的系统文件头文件中定义一些必在相应的系统文件头文件中定义一些必需的信息。需的信息。n#include命令命令n用户调用库函数时,将相应的头文件包含到用户调用库函数时,将相应的头文件包含到源程序中。源程序中。n例如例如n调用调用scanf,printf,需要,需要#include n调用调用sqrt,需要,需要#include 常用数学库函数常用数学库函数n平方根函数平方根函数 sqrt(x)n绝对值函数绝对值函数 fabs(x)nfab

21、s(-3.56)的值为的值为3.56n幂函数幂函数 pow(x,n):xnnpow(1.1,2)的值为的值为1.21即即1.12n指数函数指数函数 exp(x):exnexp(2.3)的值为的值为e2.3n以以e为底的对数函数为底的对数函数 log(x):ln xnlog(123.45)的值为的值为4.815836n以以10为底的对数函数为底的对数函数 log10(x):log10 xnlog10(123.45)的值为的值为2.091491。例例2-5 计算存款的本息计算存款的本息输入存款金额输入存款金额 money、存期、存期 year 和年利率和年利率 rate,根据公式计算存款到期时的本

22、息合计,根据公式计算存款到期时的本息合计sum税前,输出时保存税前,输出时保存2位小数。位小数。sum=money(1+rate)yearsum=money*pow(1+rate),year)例例2-5 程序程序#include#include int main(void)int money,year;double rate,sum;printf(“Enter money:);scanf(%d,&money);printf(“Enter year:);scanf(%d,&year);printf(“Enter rate:);scanf(%lf,&rate);sum=money*pow(1+ra

23、te),year);printf(sum=%.2f,sum);return 0;Enter money:1000Enter year:3Enter rate:0.025sum=1076.89scanf(%d%d%lf,&money,&year,&rate);调用调用scanf函数输入多个数据函数输入多个数据scanf(%d%d%lf,&money,&year,&rate);输入:输入:1000 3 0.025nscanf需要多个输入参数和多个格式控制说明需要多个输入参数和多个格式控制说明输入参数的类型、个数和位置要与格式控制说明一一输入参数的类型、个数和位置要与格式控制说明一一对应对应?sca

24、nf(%d%lf%d,&money,&year,&rate);n程序运行时,输入的多个数据之间必须有间隔。程序运行时,输入的多个数据之间必须有间隔。scanf(%d%lf%d,&money,&rate,&year);如何输入?如何输入?输入参数、格式控制说明、输入数据输入参数、格式控制说明、输入数据2.4 输出华氏摄氏温度转换表输出华氏摄氏温度转换表2.4.1 程序解析程序解析2.4.2 for语句语句2.4.3 指定次数的循环程序设计指定次数的循环程序设计2.4.1 程序解析程序解析例例2-6输输入入2个个整整数数lower和和 upper,输输出出一一张张华华氏氏摄摄氏氏温温度度转转换换表

25、表,华华氏氏温温度度的的取取值值范范围是围是lower,upper,每次增加,每次增加1F。fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.72.4.1 程序解析程序解析-温度转换表温度转换表#include int main(void)int fahr,lower,upper;double celsius;printf(Enter lower:);scanf(%d,&lower);printf(Enter upper:);scanf(%d,&upper);printf(fahr celsiusn);/温度重复转换:华氏温度从温度重

26、复转换:华氏温度从lower开始,到开始,到upper结束,每次增加结束,每次增加1F for(fahr=lower;fahr=upper;fahr+)celsius=(5.0/9.0)*(fahr-32);printf(%d%6.1fn,fahr,celsius);return 0;fahr=fahr+1Enter lower:30Enter upper:35fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7例例2-8中中for语句的流程语句的流程for(fahr=lower;fahr=upper;fahr+)celsius=(5

27、.0/9.0)*(fahr-32);printf(%d%6.1fn,fahr,celsius);fahr=fahr+2输出?输出?Enter lower:30Enter upper:35fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7for(表达式表达式1;表达式表达式2;表达式表达式3)循环体语句循环体语句实现实现C语句的重复执行语句的重复执行2.4.2 for语句循环语句语句循环语句3个表达式、循环体语句个表达式、循环体语句!书写顺序和执行顺序不同书写顺序和执行顺序不同!表达式表达式1只执行一次只执行一次循循环环(控控制制)变

28、变量量:for语语句句中中,通通过过改改变变或或判判断断某某个个变量的值来控制循环的执行变量的值来控制循环的执行for(fahr=lower;fahr=upper;fahr+)celsius=(5.0/9.0)*(fahr-32.0);printf(%d%6.1fn,fahr,celsius);for语句中的循环变量语句中的循环变量赋初值赋初值判断其值判断其值改变其值改变其值for(fahr=lower;fahr=upper;fahr+)celsius=(5.0/9.0)*(fahr-32.0);printf(%d%6.1fn,fahr,celsius);表达式表达式1:给循环变量赋初值,给循

29、环变量赋初值,指定循环的起点。指定循环的起点。fahr=lower表达式表达式2:给出循环的条件,决定循环的继续或结束。给出循环的条件,决定循环的继续或结束。fahr=upper表表达达式式3:设设置置循循环环的的步步长长,改改变变循循环环变变量量的的值值,从从而而可可改改变变表达式表达式2的真假性。的真假性。fahr+语句:语句:被反复执行的语句,一条语句。被反复执行的语句,一条语句。for语句的说明语句的说明for(fahr=lower;fahr=upper;fahr+)celsius=(5.0/9.0)*(fahr-32.0);printf(%d%6.1fn,fahr,celsius);

30、for(fahr=lower;fahr=upper;fahr=fahr+1)celsius=(5.0/9.0)*(fahr-32.0);printf(%d%6.1fn,fahr,celsius);复合语句复合语句 和空语句和空语句;for(fahr=lower;fahr=upper;fahr=fahr+1);celsius=(5.0/9.0)*(fahr-32.0);printf(%d%6.1fn,fahr,celsius);!不要在!不要在for语句中随意加分号语句中随意加分号求求 1+2+100抽取具有共性的算式:抽取具有共性的算式:sum=sum+i sum初值为初值为0,该算式重复,该

31、算式重复100次,次,i从从1变到变到100设设i为循环变量,那么:为循环变量,那么:指定循环起点的表达式指定循环起点的表达式1:i=1给出循环条件的表达式给出循环条件的表达式2:i=100设置循环步长的表达式设置循环步长的表达式3:i+循环体语句:循环体语句:sum=sum+i;for(i=1;i=100;i+)sum=sum+i;2.4.3 指定次数的循环程序设计指定次数的循环程序设计/*计算计算1+2+3+100 */#include int main(void)int i,sum;sum=0;/*置累加和置累加和sum的初值为的初值为0*/for(i=1;i=100;i+)/*循环重复

32、循环重复100次次*/sum=sum+i;/*反复累加反复累加*/printf(“sum=%dn,sum);/*输出累加和输出累加和*/return 0;源程序求源程序求 1+2+100for(i=1;i=100;i+)sum=0;sum=sum+i;sum=5050#include int main(void)int i,sum;sum=0;for(i=1;i=100;i+)sum=sum+i;printf(“sum=%dn,sum);return 0;求求 1+1/2+1/3+1/100for(i=1;i=100;i+)sum=sum+1.0/i;int i;double sum;prin

33、tf(“sum=%fn,sum);一般包含四个局部:一般包含四个局部:初始化:指定循环起点初始化:指定循环起点给循环变量赋初值,如给循环变量赋初值,如i=1;进入循环之前,设置相关变量的初值,如进入循环之前,设置相关变量的初值,如sum=0。条件控制:条件控制:只要只要i 100,循循环环结束。结束。指定次数的循环程序设计指定次数的循环程序设计输入一个正整数输入一个正整数n,求前,求前n项和,即循环项和,即循环n次次#include int main(void)int i,sum;sum=0;for(i=1;i=100;i+)sum=sum+i;printf(“sum=%dn,sum);ret

34、urn 0;例例2-7 求求 1+2+3+n for(i=1;i=n;i+)sum=sum+i;printf(“Enter n:);scanf(%d,&n);Enter n:100Sum=5050#include int main(void)int i,sum;printf(“Enter n:);scanf(%d,&n);sum=0;for(i=1;i=n;i+)sum=sum+i;printf(“sum=%dn,sum);return 0;求求1+1/2+1/3+1/n#include int main(void)int i;double sum;printf(“Enter n:);scan

35、f(%d,&n);sum=0;for(i=1;i=n;i+)sum=sum+1.0/i;printf(“sum=%fn,sum);return 0;求前求前n项和,即循环项和,即循环n次,每次累加次,每次累加1项。项。for(i=1;i=n;i+)sum=sum+item(第第i项项)item=1.0/(2*i-1)求求 1+1/3+1/5+的前的前n项和项和#include int main(void)int i,n;double item,sum;printf(“Enter n:);scanf(%d,&n);sum=0;for(i=1;i=n;i+)item=1.0/(2*i-1);/*计

36、算第计算第i项的值项的值*/sum=sum+item;/*累加第累加第i项的值项的值*/printf(sum=%fn,sum);return 0;源程序求源程序求 1+1/3+1/5+求前求前n项和,即循环项和,即循环n次,每次累加次,每次累加1项。项。for(i=1;i=n;i+)sum=sum+item(第第i项项)item=flag*1.0/denominator denominator=denominator+2flag=-flag例例2-8 求求 1-1/3+1/5-的前的前n项和项和item=flag*1.0/(2*i-1)#include int main(void)int de

37、nominator,flag,i,n;double item,sum;printf(“Enter n:);scanf(%d,&n);flag=1;denominator=1;sum=0;for(i=1;i=n;i+)item=flag*1.0/denominator;/*计算第计算第i项的值项的值*/sum=sum+item;/*累加第累加第i项的值项的值*/flag=-flag;/*准备下一次循环准备下一次循环*/denominator=denominator+2;printf(sum=%fn,sum);return 0;例例2-8 源程序源程序n!=1*2*nfor(i=1;i=n;i+)

38、product=product*item(第第i项项)item=i例例2-9 求求n!product=?#include int main(void)int i,n;double product;printf(input n:n);scanf(%d,&n);product=1;/*置阶乘置阶乘product的初值为的初值为1*/for(i=1;i=n;i+)/*循环重复循环重复n次,计算次,计算n!*/product=product*i;printf(product=%.0fn,product);return 0;例例2-9 源程序源程序输入实数输入实数x和正整数和正整数n,计算计算xn=x*

39、x*xfor(i=1;i=n;i+)power=power*item(第第i项项)item=?求求 xn#include int main(void)int i,n;double x,power;printf(“Enter x,n:n);scanf(%lf%d,&x,&n);power=1;/*置置power的初值为的初值为1*/for(i=1;i=n;i+)/*循环重复循环重复n次,计算次,计算x的的n次幂次幂*/power=power*x;printf(%0.fn,power);源程序求源程序求 xn 2.5 生成乘方表和阶乘表生成乘方表和阶乘表2.5.1 程序解析程序解析2.5.2 结构

40、化程序设计思想结构化程序设计思想2.5.1 程序解析程序解析例例2-101输输入入一一个个正正整整数数n,生生成成一一张张2的的乘乘方方表表,输输出出20到到2n的值,可以调用幂函数计算的值,可以调用幂函数计算2的乘方。的乘方。for(i=0;i=n;i+)power=pow(2,i);/*调用幂函数调用幂函数pow(2,i)计算计算2的的i次次方方*/输出输出power的值的值;源程序生成乘方表源程序生成乘方表#include#include int main(void)int i,n;double power;printf(Enter n:);scanf(%d,&n);for(i=0;i=

41、n;i+)power=pow(2,i);/*调用幂函数调用幂函数pow(2,i)计算计算2的的i次方次方*/printf(pow(2,%d)=%.0fn,i,power);return 0;Enter n:4pow(2,0)=1pow(2,1)=2pow(2,2)=4pow(2,3)=8pow(2,4)=16 例例2-102生成阶乘表生成阶乘表输输入入一一个个正正整整数数n,生生成成一一张张阶阶乘乘表表,输输出出0!到到n!的的值值。要要求求定定义义和和调调用用函函数数fact(n)计计算算n!,函数类型是,函数类型是double。for(i=0;i=n;i+)power=pow(2,i);/

42、*调用幂函数调用幂函数pow(2,i)计算计算2的的i次次方方*/输出输出power的值的值;for(i=0;i=n;i+)product=fact(i);/*调用自定义函数调用自定义函数fact(i)计算计算i!*/输出输出product的值的值;源程序生成阶乘表源程序生成阶乘表#include double fact(int n);/*自定义函数的声明自定义函数的声明*/int main(void)int i,n;double result;printf(Enter n:);scanf(%d,&n);for(i=0;i=n;i+)result=fact(i);/*调用自定义函数调用自定义函

43、数fact(i)计算计算i!*/printf(%d!=%.0fn,i,result);return 0;Enter n:30!=11!=12!=23!=6double fact(int n)/*函数首部函数首部*/int i;double product;product=1;for(i=1;i=n;i+)product=product*i;return product;/*将结果回送主函将结果回送主函数数*/2.5.2 结构化程序设计思想结构化程序设计思想n结构化程序设计结构化程序设计(Structured Programming)n程序设计技术程序设计技术nC语言是结构化程序设计语言语言是结

44、构化程序设计语言n强强调调程程序序设设计计的的风风格格和和程程序序结结构构的的标标准准化化,提提倡倡清清晰晰的的结结构构,其其根根本本思思路路是是将将一一个个复复杂杂问问题题的的求求解解过过程程划划分分为为假假设设干干阶阶段段,每每个个阶阶段段要要处处理的问题都容易被理解和处理。理的问题都容易被理解和处理。n按按自自顶顶向向下下的的方方法法对对问问题题进进行行分分析析、模模块块化化设设计和结构化编码等计和结构化编码等3个步骤。个步骤。自顶向下的分析方法自顶向下的分析方法n把大的复杂的问题分解成小问题后再解决把大的复杂的问题分解成小问题后再解决n面面对对一一个个复复杂杂的的问问题题,首首先先进进

45、行行上上层层整整体体的的分分析析,按按组组织织或或功功能能将将问问题题分分解解成成子子问问题题,如如果果子子问问题题仍仍然然十十分分复复杂杂,再再做做进进一一步步分分解解,直到处理对象相对简单,容易处理为止。直到处理对象相对简单,容易处理为止。n当当所所有有的的子子问问题题都都得得到到了了解解决决,整整个个问问题题也也就就解决了。解决了。n每每一一次次分分解解都都是是对对上上一一层层的的问问题题进进行行细细化化和和逐逐步步求求精精,最最终终形形成成一一种种类类似似树树形形的的层层次次结结构构,来描述分析的结果。来描述分析的结果。学生成绩统计程序学生成绩统计程序成绩输入成绩输入数据计算数据计算数

46、据查找数据查找输出成绩输出成绩计算学生平均分计算学生平均分计算课程平均分计算课程平均分学生成绩统计程序的层次结构图学生成绩统计程序的层次结构图 模块化设计模块化设计n将模块组织成良好的层次系统,顶层模块调用将模块组织成良好的层次系统,顶层模块调用其下层模块以实现程序的完整功能,每个下层其下层模块以实现程序的完整功能,每个下层模块再调用更下层的模块,从而完成程序的一模块再调用更下层的模块,从而完成程序的一个子功能,最下层的模块完成最具体的功能。个子功能,最下层的模块完成最具体的功能。n遵循模块独立性的原那么,即模块之间的联系遵循模块独立性的原那么,即模块之间的联系应尽量简单。应尽量简单。n一个模

47、块只完成一个指定的功能。一个模块只完成一个指定的功能。n模块之间只通过参数进行调用。模块之间只通过参数进行调用。n一个模块只有一个入口和一个出口。一个模块只有一个入口和一个出口。n模块内慎用全局变量。模块内慎用全局变量。结构化编码结构化编码 选用顺序、选择和循环三种控制结构,使程序具选用顺序、选择和循环三种控制结构,使程序具有良好的风格。有良好的风格。对变量、函数、常量等命名时,要见名知意,有对变量、函数、常量等命名时,要见名知意,有助于对变量含义或函数功能的理解。助于对变量含义或函数功能的理解。在程序中增加必要的注释,增加程序的可读性。在程序中增加必要的注释,增加程序的可读性。程序要清晰易懂

48、,语句构造要简单直接,一行写程序要清晰易懂,语句构造要简单直接,一行写一条语句,采用缩进格式。一条语句,采用缩进格式。程序有良好的交互性,输入有提示,输出有说明,程序有良好的交互性,输入有提示,输出有说明,并尽量采用统一整齐的格式。并尽量采用统一整齐的格式。cOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+

49、A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdP

50、hSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v

51、)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9Kc

52、NfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(

53、y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbN

54、UlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3

55、E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNeQiTlX&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6IPgSkVnYq$t*x-

56、A1D5G8JbNeQiTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6MdPgSkVnYq$t*x-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!s&w)z1C4F7JaMdPhSo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlW

57、o#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JahTlWo#r%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgS

58、kVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y

59、0C3JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRj

60、UmYp!t&1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v1C4G7J

61、aMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t

62、*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1CJbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMeP

63、hSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v(y0B3F6I9LdOgRjZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(xE6I9LcOgRjVmYp!t&w)z1C4F7JaMePhSkWnZq(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZ(y+B2E6H9KcOfRjUmXp!s&v)z0C3F7IaMdP

64、gSkVnYq(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVq$u*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmY*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LgSjVnYq$t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#w-z1C4G7JaMePhTkWnZr$u*x+A2E5H

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!