02用C语言编写程序.ppt

上传人:e****s 文档编号:85462095 上传时间:2023-04-11 格式:PPT 页数:79 大小:610KB
返回 下载 相关 举报
02用C语言编写程序.ppt_第1页
第1页 / 共79页
02用C语言编写程序.ppt_第2页
第2页 / 共79页
点击查看更多>>
资源描述

《02用C语言编写程序.ppt》由会员分享,可在线阅读,更多相关《02用C语言编写程序.ppt(79页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

3、(Programming is fun!n);printf(And Programming in C is even more fun!n);例例:在屏幕上显示在屏幕上显示:(Ex2-2)Programming is fun!And Programming in C is even more fun!编译预处理命令编译预处理命令2.2 求华氏温度求华氏温度 100F 对应的摄氏温度对应的摄氏温度 摄氏温度摄氏温度C与华氏温度与华氏温度F 的的 对应关系:对应关系:C=(5/9)(F-32)例:求华氏温度例:求华氏温度 100F 对应的摄氏温度。对应的摄氏温度。(Ex2-3)摄氏温度摄氏温度 C

4、=(5/9)(F-32)#include void main()int celsius,fahr;fahr=100;celsius=5*(fahr-32)/9;printf(fahr=%d,celsius=%dn,fahr,celsius);输出输出:fahr=100,celsius=37一一.程序解析程序解析变量定义变量定义变量使用变量使用输出结果输出结果二二.常量、变量和数据类型常量、变量和数据类型int celsius,fahr;celsius=5*(fahr-32)/9;数据数据常量:常量:在程序运行过程中,其值不能被改变在程序运行过程中,其值不能被改变变量:变量:在程序运行过程中,其

5、值可以被改变在程序运行过程中,其值可以被改变数据类型数据类型常量:常量:5 和和 9是整型常量整数是整型常量整数变量:在定义时指定变量:在定义时指定注意:变量名通常用小写字母;取名一般见名知义注意:变量名通常用小写字母;取名一般见名知义1.变量的定义变量的定义变量定义的一般形式:变量定义的一般形式:类型名类型名 变量名表;变量名表;例如:例如:int celsius,fahr;定义整型变量定义整型变量char c;定义字符型变量定义字符型变量float x;定义单精度浮点型变量定义单精度浮点型变量double area,length;定义双精度浮点型变量定义双精度浮点型变量 (double 型

6、数据比型数据比 float 精度高,取值范围大精度高,取值范围大)说明:说明:1.定义变量时要指定变量名和数据类型定义变量时要指定变量名和数据类型 类型名类型名 变量名表;变量名表;int celsius,fahr;float x;double area,length;2.变量名代表内存中的一个存储单元变量名代表内存中的一个存储单元 单元中存放该变量的值单元中存放该变量的值 该存储单元的大小由变量的数据类型决定该存储单元的大小由变量的数据类型决定3.C语言中的变量代表保存数据的存储单元语言中的变量代表保存数据的存储单元 而数学中的变量代表未知数而数学中的变量代表未知数 如:如:x=x+1#in

7、clude void main()int celsius,fahr;fahr=100;celsius=5*(fahr-32)/9;printf(fahr=%d,celsius=%dn,fahr,celsius);注意:一个变量名只能定义一次。注意:一个变量名只能定义一次。变量一般都定义在程序的头上,变量一般都定义在程序的头上,不能定义在程序的中间或后面。不能定义在程序的中间或后面。应该应该先赋值先赋值,后引用后引用2.变量的引用变量的引用变量必须变量必须先定义先定义,后使用后使用。三三.算术运算和赋值运算算术运算和赋值运算fahr=100;celsius=5*(fahr-32)/9;1.算术运

8、算算术运算双目算术运算符:双目算术运算符:+-*/%算术表达式:用算术运算符将运算对象连接起来的符算术表达式:用算术运算符将运算对象连接起来的符合合C语言语法规那么的式子语言语法规那么的式子数学式:数学式:(5/9)(F-32)C表达式:表达式:5*(fahr-32)/9数学式:数学式:s(s-a)(s-b)(s-c)C表达式:表达式:s*(s-a)*(s-b)*(s-c)例如:例如:注意:注意:(1)/整数除整数,得整整数除整数,得整数数如:如:1/2 0,9/4 25*(fahr-32)/9?5/9*(fahr-32)?(2)%只能用于整型数据只能用于整型数据如:如:565,941,100

9、40(3)双目运算符两侧操作数的类型要相同双目运算符两侧操作数的类型要相同注意:注意:“=的左边必须是一个变的左边必须是一个变量量2.赋值运算赋值运算赋值运算符:赋值运算符:=赋值表达式:赋值表达式:用用=将一个变量和一个表达式连接起来的式子将一个变量和一个表达式连接起来的式子 变量变量=表达式表达式例如:例如:fahr=100;celsius=5*(fahr-32)/9;计算赋值运算符右侧计算赋值运算符右侧表达式表达式的值的值将赋值运算符右侧将赋值运算符右侧表达式表达式的值赋给左侧的的值赋给左侧的变量变量赋值表达式的值就是左侧被赋值的变量的值赋值表达式的值就是左侧被赋值的变量的值 print

10、f(格式控制字符串格式控制字符串,输出参数输出参数1,输出参数输出参数n);用双引号括起来,表示输出的格式用双引号括起来,表示输出的格式要输出的数据要输出的数据四四.格式化输出函数格式化输出函数printf()数据输出可以用格式化输出函数数据输出可以用格式化输出函数 printf()#include printf(Hello World!n);printf(fahr=%d,celsius=%dn,fahr,celsius);printf()函数格式:函数格式:输出输出:fahr=100,celsius=37printf(Hello World!n);printf(fahr=%d,celsius

11、=%dn,fahr,celsius);printf(Hin,fahr);格式控制字符串:格式控制字符串:普通字符:原样输出普通字符:原样输出格式控制说明格式控制说明:按指定的格式输出数据按指定的格式输出数据,%与数据类型有关与数据类型有关int型型:%dchar型型:%cfloat型、型、double型:型:%fprintf(fahr=%d,celsius=%dn,fahr,celsius);输出参数格式说明a=3;b=4;printf(%d%d,a,b);输出输出:可见,双引号中的字符除了格式说明的字符外,可见,双引号中的字符除了格式说明的字符外,其它非格式说明的普通字符按原样输出。其它非格

12、式说明的普通字符按原样输出。例如例如:printf(a=%d,b=%d,a,b);输出输出:3 4a=3,b=4例如例如:int a=5;char c=A;float x=123.456;printf(%d,%4d,%-4d,a,a,a);5 ,5 ,5 ,printf(%c,c);Aprintf(%f,x);1 2 3 .4 5 6 0 0 0printf(%8.2f,x);1 2 3 .4 6printf(%s,%4.2s,abcd,abcd);a b c d ,a b1.printf 函数的格式控制字符串中可以包含转义字符函数的格式控制字符串中可以包含转义字符注意注意:2.用在用在%后面

13、的格式字符才是格式控制符后面的格式字符才是格式控制符3.两个连续的两个连续的%用来输出字符用来输出字符“%a=5;printf(result:n%d,a);5r e s u l t :b=10;printf(b=%d%,b);b =1 0%执行语句执行语句 printf(“_,2);将得到出错信息将得到出错信息A%d B%o C%x D%fprintf(“%d%d%s,123,“123);输出是输出是:A%123%d123 B%d123123 C%d123123 D)上述语句语法有错上述语句语法有错2.3 计算分段函数计算分段函数 一一.程序解析程序解析例例1:输入:输入x,求分段函数,求分段

14、函数 f(x)的值,保存的值,保存2位小数。位小数。ex x1f(x)=x2-1 x1要解决的问题:要解决的问题:输入输入计算分段函数计算分段函数求求exex输出,并保存输出,并保存2 2位小数位小数#include#include void main()float x,y;printf(input x:n);/*输入提示*/scanf(%f,&x);/*调用scanf()函数输入数据*/if(x=1)/*if else语句*/y=exp(x);/*调用指数函数exp(x)计算ex */else y=x*x-1;printf(f(%f)=%.2fn,x,y);input x:0.5f(0.50

15、0000)=1.65input x:2.4f(2.400000)=4.76源程序:源程序:数据必须输入吗?数据必须输入吗?注意区分注意区分=和和=二二.关系运算关系运算 x=1比较比较 x 和和 1 的大小的大小比较的结果:真比较的结果:真 假假当当 x 取值取值0.5时,时,x=1的结果是:的结果是:?当当 x 取值取值1.5时,时,x=1的结果是:的结果是:?关系运算:比较运算,比较两个操作数关系运算:比较运算,比较两个操作数关系运算符:关系运算符:x y x y x=y x!=y关系表达式:用关系表达式:用关系运算符关系运算符将将2个个表达式表达式连接起来的式子。连接起来的式子。如:如:

16、x=1=!=-小于小于-小于或等于小于或等于-大于大于-大于或等于大于或等于-等于等于-不等于不等于优先级优先级结合方向结合方向优先级优先级相同相同优先级优先级相同相同高低从左向右从左向右关系运算符与其它运算符的优先次序关系运算符与其它运算符的优先次序:低于算术运算符、高于赋值运算符低于算术运算符、高于赋值运算符如如:c a+b -c (a+b)c=a b -c=(ab)算术运算符算术运算符关系运算符关系运算符赋值运算符赋值运算符关系运算符的优先级和结合方向关系运算符的优先级和结合方向表示比较的数学式表示比较的数学式 C关系表达式关系表达式x10 x10 x10 x=10 x=10 x!=10

17、 x=10判断判断 x 是否为负数是否为负数 x 0判断判断 x 是否不为零是否不为零 x!=0运用关系表达式:运用关系表达式:用关系表达式描述条件用关系表达式描述条件关系表达式的值是一个逻辑值关系表达式的值是一个逻辑值,即即“真或真或“假假C语言中以语言中以 1 代表代表“真真,以以 0 代表代表“假假例如例如:int i,j,k;i=1;j=2;k=-7;关系表达式关系表达式 值值k=j-9=i1因此因此,C语言中关系表达式的结果是语言中关系表达式的结果是 int 类型的类型的 1 或或 0ij3j511注意:关系表达式只能比较两个量之间的关系,注意:关系表达式只能比较两个量之间的关系,假

18、设要表达三个量之间的关系必须使用逻辑表达式假设要表达三个量之间的关系必须使用逻辑表达式 因为因为 0 x 的值不是的值不是0就是就是1,总是,总是10所以所以 不管不管x的值是什么,的值是什么,0 x10的值总是的值总是 1表达式表达式 0 x0且且x10时时 表达式为表达式为 1 D)当当 x0 或或 x0 时时 表达式为表达式为 0if(表达式表达式)语句语句1else 语句语句2if(x=b)k=0;else k=1;上述上述 if 语句等价于语句等价于 Ak=(a=b)?1:0 B)k=a=b C)k=ab D)以上均不是以上均不是 例例2:输入:输入x,求分段函数,求分段函数 f(x

19、)的值,保存的值,保存1位小数。位小数。1/x x 0f(x)=0 x=0要解决的问题:要解决的问题:输入输入计算分段函数计算分段函数 输出,并保存输出,并保存1 1位小数位小数 if(x!=0)y=1/x;else y=0;if(表达式表达式)语句语句1else 语句语句2#include /*例2*/void main()float x,y;printf(input x:n);scanf(%f,&x);if(x!=0)y=1/x;else y=0;printf(f(%.2f)=%.1fn,x,y);#include /*例1*/#include void main()float x,y;p

20、rintf(input x:n);scanf(%f,&x);if(x=1)y=exp(x);else y=x*x-1;printf(f(%f)=%.2fn,x,y);程序参考例程序参考例1编写:编写:#include /*例2*/void main()float x,y;printf(input x:n);scanf(%f,&x);if(x!=0)y=1/x;else y=0;printf(f(%.2f)=%.1fn,x,y);input x:2.5f(2.50)=0.4input x:0f(0.00)=0.0例例2的运行结果:的运行结果:double x,y;?scanf(%lf,&x);软

21、件测试时,软件测试时,精精心心设设计计一一批批测测试试用用例例输输入入数数据据,预预期期输输出出结结果果,然然后后分分别别用用这这些些测测试试用用例例运运行行程程序序,看看程程序序的的实实际际运运行行结结果与预期输出结果是否一致。果与预期输出结果是否一致。input x:2.5f(2.50)=0.4input x:0f(0.00)=0.0if(x!=0)y=1/x;else y=0;if(x=1)y=exp(x);else y=x*x-1;input x:0.5f(0.500000)=1.65input x:2.4f(2.400000)=4.76软件测试的根本思想:软件测试的根本思想:用双引号

22、括起来,表示输入的格式用双引号括起来,表示输入的格式变量地址变量地址四四.格式化输入函数格式化输入函数scanf()数据输入可以用格式化输入函数数据输入可以用格式化输入函数 scanf()#include scanf(%f,&x);scanf(格式控制字符串格式控制字符串,输入参数输入参数1,输入参数输入参数n);scanf()函数格式:函数格式:格式控制字符串包括两局部内容:格式控制字符串包括两局部内容:格式控制说明格式控制说明:按指定的格式输入数据按指定的格式输入数据,%与数据类型有关,如:与数据类型有关,如:int型型:%dfloat型:型:%fdouble型:型:%lfchar型:型:

23、%c普通字符:原样输入普通字符:原样输入输入输入:2.5scanf(x=%f,&x);输入输入:x=2.5尽量不要出现普通字符尽量不要出现普通字符scanf()函数的格式控制字符串:函数的格式控制字符串:例如:例如:scanf(%f,&x);注意注意:1.scanf函数中使用的是函数中使用的是变量的地址变量的地址,而不是变量名而不是变量名2.如果在如果在“格式控制中包含了其它字符格式控制中包含了其它字符,输入时必须在相应位置输入这些字符。输入时必须在相应位置输入这些字符。如果包含了附加格式说明符如果包含了附加格式说明符“*,表示该读入项不赋给相应的变量。表示该读入项不赋给相应的变量。scanf

24、(%d,%d%d%*d%d,&a,&b,&c,&d);输入:1,2 3 4 5以一个或多个空格分隔或者以回车键或以一个或多个空格分隔或者以回车键或 tab 键分隔键分隔结果:a=1 b=2 c=3 d=?53.用用%c 输入字符时输入字符时,所有字符所有字符(包括空格和转义字符包括空格和转义字符)都是有效输入都是有效输入scanf(%c%c%c,&c1,&c2,&c3);输入输入:a b c结果结果:输入输入:abc结果:c1=a c2=(空格空格)c3=bc1=a c2=b c3=c4.可以用域宽来指定输入数据的所占的列数可以用域宽来指定输入数据的所占的列数,由系统自动按由系统自动按 域宽来

25、截取所需的数据,但是输入数据时不能规定精度。域宽来截取所需的数据,但是输入数据时不能规定精度。scanf(%3d%3c,&a,&c);a=123 c=4输入:12345A?scanf(%5.2f,&x);以下表达中正确的选项是以下表达中正确的选项是 A)输入项可以是一个实型常量,如输入项可以是一个实型常量,如 scanf(“%f,3.5);B)只有格式控制,没有输入项,也能正确输入数据到内存,只有格式控制,没有输入项,也能正确输入数据到内存,例如例如 scanf(“a=%d,b=%d);C)当输入一个实型数据时,格式控制局部可以规定小数点当输入一个实型数据时,格式控制局部可以规定小数点的位数。

26、的位数。例如例如 scanf(“%4.2f,&f);D)当输入数据时当输入数据时,必须指明变量地址必须指明变量地址 例如例如 scanf(“%f,&f);对于对于 int i,j;char c;当输入序列为当输入序列为1dc2 3 4时,执行语句时,执行语句 scanf(“%dd%c%*d%*d%d,&i,&c,&j);后后 i,j,c 的值分别为:的值分别为:A1 2 d B1 2 c C1 4 d D1 4 c int a,b;scanf(a=%d,b=%d,&a,&b);a,b 输入都是输入都是10,那么正确的输入是,那么正确的输入是 。A、10 10 B、10,10 C、a=10 b=

27、10 D、a=10,b=10int a;float c;那么以下哪个输入语句是错误的那么以下哪个输入语句是错误的 A、scanf(%d,%f,&a,&c);B、scanf(a=%d,c=%f,&a,&c);C、scanf(%d%f,&a,&c);D、scanf(%d%f,a,c);假设变量已正确定义,执行语句假设变量已正确定义,执行语句scanf(“%d%d%d,&k1,&k2,&k3);_ 是正确的输入。是正确的输入。A203040 B20 30 40 C20,30 40 D20,30,40例:例:“求华氏温度求华氏温度 100F 对应的摄氏温度程序的改进。对应的摄氏温度程序的改进。摄氏温度

28、摄氏温度 C=(5/9)(F-32)#include void main()int celsius,fahr;fahr=100;celsius=5*(fahr-32)/9;printf(fahr=%d,celsius=%dn,fahr,celsius);scanf(%d,&fahr);printf(input fahr:n);input fahr:100fahr=100,celsius=37五五.常用数学库函数常用数学库函数库函数:库函数:C语言处理系统提供事先编好的函数,供用户在语言处理系统提供事先编好的函数,供用户在编程时调用。如:编程时调用。如:scanf(),printf(),exp(

29、)在相应的系统文件头文件中定义一些必需的信息,在相应的系统文件头文件中定义一些必需的信息,用户调用库函数时,用用户调用库函数时,用#include命令将相应的头文件包命令将相应的头文件包含到源程序中。含到源程序中。例如例如调用调用scanf(),printf(),需要,需要#include 调用调用exp(),需要,需要#include 平方根函数平方根函数 sqrt(x)绝对值函数绝对值函数 fabs(x)fabs(-3.56)的值为的值为3.56幂函数幂函数 pow(x,n):xnpow(1.1,2)的值为的值为1.21即即1.12指数函数指数函数 exp(x):exexp(2.3)的值为

30、的值为e2.3以以e为底的对数函数为底的对数函数 log(x):ln xlog(123.45)的值为的值为4.815836以以10为底的对数函数为底的对数函数 log10(x):log10 xlog10(123.45)的值为的值为2.091491。常用数学库函数:常用数学库函数:输输入入存存款款金金额额 money、存存期期 year 和和年年利利率率 rate,根根据据公公式式计计算算存存款款到到期期时时的的本本息息合合计计sum税税前前,输出时保存输出时保存2位小数。位小数。sum=money(1+rate)yearsum=money*pow(1+rate),year)例:计算存款的本息例

31、:计算存款的本息C表达式:表达式:#include#include void main()int money,year;double rate,sum;printf(input money,year and rate:n);scanf(%d%d%lf,&money,&year,&rate);sum=money*pow(1+rate),year);printf(sum=%.2f,sum);input money,year and rate:1000 3 0.025sum=1076.89程序:程序:scanf(%d%lf%d,&money,&rate,&year);如何输入?如何输入?调用调用sc

32、anf函数输入多个数据:函数输入多个数据:scanf(%d%d%lf,&money,&year,&rate);输入:输入:1000 3 0.025用用scanf函数输入多个数据时函数输入多个数据时需要多个输入参数和多个格需要多个输入参数和多个格式控制说明式控制说明输入参数的类型、个数和位置要与格式控制说明一一对应输入参数的类型、个数和位置要与格式控制说明一一对应?scanf(%d%lf%d,&money,&year,&rate);程序运行时,输入的多个数据之间必须有间隔。程序运行时,输入的多个数据之间必须有间隔。例例:输输出出一一张张华华氏氏摄摄氏氏温温度度转转换换表表,将将华华氏氏温温度度从

33、从 3040F 之之间间的的每每一一度度,分分别别转转换换成成相相应应的的摄摄氏氏温度并输出。温度并输出。一一.程序解析程序解析fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7 36 2.2 37 2.8 38 3.3 39 3.9 40 4.42.4 输出华氏摄氏温度转换表输出华氏摄氏温度转换表#include void main()int fahr,lower,upper;double celsius;lower=30;upper=40;printf(fahr celsiusn);/*温温度度转换规那那么么:华氏氏温温度度从从

34、lower到到upper,每每次次增增加加1F*/for(fahr=lower;fahr=upper;fahr+)celsius=(5.0/9.0)*(fahr-32.0);printf(%d%6.1fn,fahr,celsius);fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7 36 2.2 37 2.8 38 3.3 39 3.9 40 4.4fahr=fahr+1程序:程序:例题中例题中for语句的流程:语句的流程:for(fahr=lower;fahr=upper;fahr+)celsius=(5.0/9.0)*(fah

35、r-32.0);printf(%d%6.1fn,fahr,celsius);fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7 36 2.2 37 2.8 38 3.3 39 3.9 40 4.4fahr=fahr+2输出?输出?for(表达式表达式1;表达式;表达式2;表达式;表达式3)循环体语句循环体语句特征:特征:3个表达式个表达式1条循环体语句条循环体语句二二.for语句语句 循环语句循环语句作用:实现作用:实现C语句的重复执行语句的重复执行 for语句的语句的下一条语句下一条语句 求解表达式求解表达式1表达式表达式2语句语

36、句 求解表达式求解表达式3真真假假执行过程执行过程:1.求解表达式求解表达式12.求解表达式求解表达式2,如果值为真如果值为真(非非0),那么执行那么执行语句语句局部局部 如果值为假如果值为假(0),那么结束循环那么结束循环3.当表达式当表达式2为真时为真时,在执行了在执行了“语句局部后语句局部后,求解表达式求解表达式34.转到第转到第2步继续执行步继续执行for(表达式表达式1;表达式;表达式2;表达式;表达式3)循环体语句循环体语句for 语句最常用的形式语句最常用的形式:for(循环变量赋初值循环变量赋初值;循环结束条件循环结束条件;循环变量增值循环变量增值)循环体语句循环体语句for(

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

38、变量赋初值,给循环变量赋初值,指定循环的起点。指定循环的起点。fahr=lower表达式表达式2:给出循环的条件,决定循环的继续或结束。给出循环的条件,决定循环的继续或结束。fahr=upper表表达达式式3:设设置置循循环环的的步步长长,改改变变循循环环变变量量的的值值,从从而而可可改变表达式改变表达式2的真假性。的真假性。fahr+循环体语句:循环体语句:被反复执行的语句,一条语句。被反复执行的语句,一条语句。for语句的说明语句的说明注意注意:1.当循环变量在当循环变量在 for 语句之前已经赋初值语句之前已经赋初值,那么那么for 语句语句 中的中的“表达式表达式1,可以省略可以省略,

39、但是但是;不能省略不能省略2.如果如果“表达式表达式2 省略省略,那么循环无法终止那么循环无法终止(死循环死循环)3.如果如果“表达式表达式3省略省略,那么程序中必须要有保证那么程序中必须要有保证 循环能正常结束的措施循环能正常结束的措施4.如果三个表达式都省略如果三个表达式都省略,那么循环无法终止那么循环无法终止(死循环死循环)5.“表达式表达式1 既可以是设置循环变量初值既可以是设置循环变量初值,也可以是其它表达式也可以是其它表达式 “表达式表达式1和和“表达式表达式3可以是一个简单的表达式可以是一个简单的表达式,也可以是逗号表达式也可以是逗号表达式例如例如:for(i=0,j=100;i

40、=j;i+,j-)k=i+j;6.“表达式表达式2一般是关系表达式或逻辑表达式一般是关系表达式或逻辑表达式,但也可以但也可以 是数值表达式或字符表达式是数值表达式或字符表达式,只要其值为非只要其值为非0,就执行循环体就执行循环体for(表达式表达式1;表达式表达式2;表达式表达式3)语句语句for(fahr=lower;fahr=upper;fahr+)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-

41、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 语句中随意加分号语句中随意加分号复合语句复合语句 和空语句和空语句;?分析:分析:抽取具有共性的算式:抽取具有共性的算式:sum=sum+i sum初值为初值为0,该算式重复,该算式重复100次,次,i 从从1变到变到100设设 i 为循环变量,那么:为循环变量,那么:指定循环起点的表达式指定循

42、环起点的表达式1:i=1给出循环条件的表达式给出循环条件的表达式2:i=100设置循环步长的表达式设置循环步长的表达式3:i+循环体语句:循环体语句:sum=sum+i;for(i=1;i=100;i+)sum=sum+i;例:求例:求 1+2+100/*计算计算1+2+3+100 */#include void main()int i,sum;sum=0;/*置累加和置累加和sum的初值为的初值为0*/for(i=1;i=100;i+)/*循环重复循环重复100次次*/sum=sum+i;/*反复累加反复累加*/printf(“sum=%dn,sum);/*输出累加和输出累加和*/for(i

43、=1;i=100;i+)sum=0;sum=sum+i;sum=5050 sum=?源程序:源程序:#include void main()int i,sum;sum=0;for(i=1;i=100;i+)sum=sum+i;printf(“sum=%dn,sum);for(i=1;i=100;i+)sum=sum+1.0/i;int i;double sum;printf(“sum=%fn,sum);例:求例:求 1+1/2+1/3+1/100在在1+2+3+100的根底上编写的根底上编写初始化:指定循环起点初始化:指定循环起点给循环变量赋初值,如给循环变量赋初值,如i=1;进入循环之前,设

44、置相关变量的初值,如进入循环之前,设置相关变量的初值,如 sum=0;条件控制:条件控制:只要只要i 100,循循环环结结束束三三.指定次数的循环程序设计指定次数的循环程序设计指定次数的循环程序设计应该包含四个局部:指定次数的循环程序设计应该包含四个局部:以以 1+2+100 1+2+100为例为例for (i=0,j=5;i!=j;)printf(“%d%d,i,j);i=i+1;j=j-1;循环执行次数循环执行次数 A 6次次 B3次次 C0次次 D无限次无限次 用用 for 循环打印循环打印 0 1 2 0 1 2 0 1 2 for(i=1;i=9;i+)printf(“%2d ,);

45、1.(i+2)%3 或或 2.(i-1)%3#include void main()int i,sum;sum=0;for(i=1;i=100;i+)sum=sum+i;printf(“sum=%dn,sum);for(i=1;i=n;i+)sum=sum+i;printf(input n:n);scanf(%d,&n);例:求例:求 1+2+3+n分析:输入一个正整数分析:输入一个正整数n,求前,求前n项和,即循环项和,即循环n次次/*1+2+3+n 程序*/#include void main()int i,sum;printf(input n:n);scanf(%d,&n);sum=0;

46、for(i=1;i=n;i+)sum=sum+i;printf(“sum=%dn,sum);/*1+1/2+1/3+1/n 程序程序*/#include void main()int i;double sum;printf(input n:n);scanf(%d,&n);sum=0;for(i=1;i=n;i+)sum=sum+1.0/i;printf(“sum=%fn,sum);例:求例:求1+1/2+1/3+1/n注意:注意:1.0/i求前求前n项和,即循环项和,即循环n次,每次累加次,每次累加1项。项。for(i=1;i=n;i+)sum=sum+item(第第i项项)item=1.0/

47、(2*i-1)例例:求求 1+1/3+1/5+的前的前n项和项和#include void main()int i,n;double item,sum;printf(input n:n);scanf(%d,&n);sum=0;for(i=1;i=n;i+)item=1.0/(2*i-1);sum=sum+item;printf(sum=%fn,sum);求前求前n项和,即循环项和,即循环n次,次,每次累加每次累加1项。项。for(i=1;i=n;i+)sum=sum+item(第第i项项)item=flag*1.0/tt=t+2flag=-flagitem=flag*1.0/(2*i-1)fl

48、ag=-flag例例:求求 1-1/3+1/5-的前的前n项和项和#include void main()int i,n;double item,sum;printf(input n:);scanf(%d,&n);flag=1;t=1;sum=0;for(i=1;i=n;i+)item=flag*1.0/t;sum=sum+item;flag=-flag;t=t+2;printf(sum=%fn,sum);for(i=1;i=n;i+)product=product*item(第第i项项)item=iproduct初值初值=?例例:求求n!n!=1*2*n#include void main(

49、)int i,n;double product;printf(input n:n);scanf(%d,&n);product=1;for(i=1;i=n;i+)product=product*i;printf(product=%.0fn,product);输入实数输入实数x和正整数和正整数n,计算计算xn=x*x*xfor(i=1;i=n;i+)power=power*item(第第i项项)item=?例:求例:求 xn#include void main()int i,n;double x,power;printf(input x,n:n);scanf(%lf%d,&x,&n);power=

50、1;for(i=1;i=n;i+)power=power*x;printf(%0.fn,power);for(i=0;i=n;i+)power=pow(2,i);/*调用幂函数调用幂函数pow(2,i)计算计算2的的i次方次方*/输出输出power的值的值;一一.程序解析程序解析2.5 生成乘方表和阶乘表生成乘方表和阶乘表例例1:输入一个正整数:输入一个正整数n,生成一张,生成一张2的乘方表,输出的乘方表,输出20到到2n的值,可以调用幂函数计算的值,可以调用幂函数计算2的乘方。的乘方。#include#include void main()int i,n;double power;print

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

当前位置:首页 > 教育专区 > 高考资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁