C语言05C程序流程设计课件

PPT
  • 阅读 39 次
  • 下载 0 次
  • 页数 44 页
  • 大小 775.012 KB
  • 2022-11-24 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
C语言05C程序流程设计课件
可在后台配置第一页与第二页中间广告代码
C语言05C程序流程设计课件
可在后台配置第二页与第三页中间广告代码
C语言05C程序流程设计课件
可在后台配置第三页与第四页中间广告代码
C语言05C程序流程设计课件
C语言05C程序流程设计课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 44
  • 收藏
  • 违规举报
  • © 版权认领
下载文档25.00 元 加入VIP免费下载
文本内容

【文档说明】C语言05C程序流程设计课件.ppt,共(44)页,775.012 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-44469.html

以下为本文档部分文字说明:

第五章C程序流程设计•C语句概述•程序的三种基本结构(顺序、选择、循环)•选择型程序设计(if…else…,switch)•循环型程序设计(for,while)•辅助控制语句(break,continue,goto,return)20

22/11/242C语句概述•C语句:以“;”作分隔符,编译后产生机器指令•C语句分类•表达式语句:表达式加分号构成•空语句:;•程序控制语句(9种):•复合语句:用{…}括起来的一组语句•一般形式:{[数据说明部分;]执行语句部分;}如total=total+limit;a=3

;func();printf(“Hello,world!\n”);C程序控制语句分支语句if…else…switch循环语句for(;;){…}while(…){…}do{…}while(…)辅助控制breakcontinuegotoreturn

复合语句的说明:•“}”后不加分号•语法上和单一语句相同•复合语句可嵌套{t=x;x=y;y=t;}2022/11/243复合语句•在什么情况下使用复合语句?–条件语句和循环语句在语法上只允许带一条语句–当分支和循环中需要进行多项操作时{t=x;x=y;y=t;}被当作一条语句来处

理•复合语句在语法上是一个整体,相当于一个语句。凡是能使用简单语句的地方,都可以使用复合语句。•复合语句内还可以包含复合语句,即复合语句的嵌套使用2022/11/244C程序的三种基本结构•结构化程序设计•基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)•结构化程序

:三种基本结构反复嵌套构成•优点:结构清晰,易读,提程序质量和效率•三种基本结构•顺序结构•选择结构•二分支选择•多分支选择•循环结构•当型循环•直到型循环ABAB流程图N-S图PAB真假PBA真假kA1A2AiAnk=k2k=k1k=knk=ki......PA假真当P为真AAP真假A直到P为真

2022/11/245•5.1关系运算符和表达式•功能:比较两个常量、变量或表达式的值的大小•符号:<<===>=>!=•结合方向:从左向右•优先级:<<=>=>(6)==!=(7)•关系表达式的值:逻辑“真”和“假”,用1和0表示•用途:循环语句和选择语句中例c>a+b//c>(a+b)a>b

!=c//(a>b)!=ca==b<c//a==(b<c)a=b>c//a=(b>c)例inta=3,b=2,c=1,d,f;a>b(a>b)==cb+c<ad=a>bf=a>b>c例inta=3,b=2,c=1,d,f;a>b//表达式值1(a>b)==cb+c<ad=a>bf=a>b>

c例inta=3,b=2,c=1,d,f;a>b//表达式值1(a>b)==c//表达式值1b+c<ad=a>bf=a>b>c例inta=3,b=2,c=1,d,f;a>b//表达式值1(a>b)==c//表达式值1b+c<a//表达式值0d=a>

bf=a>b>c例inta=3,b=2,c=1,d,f;a>b//表达式值1(a>b)==c//表达式值1b+c<a//表达式值0d=a>b//d=1f=a>b>c例inta=3,b=2,c=1,d,f;a>b//表达式值1(a>b)==c//表达式值1b+c<a//表达式值

0d=a>b//d=1f=a>b>c//f=0例:若a=0;b=0.5;x=0.3;则a<=x<=b的值为例:若a=0;b=0.5;x=0.3;则a<=x<=b的值为0例:5>2>7>8在C中是允许的,值为例:5>2>7>8在C中是允

许的,值为0例:inti=1,j=7,a;a=i+(j%4!=0);则a=例:inti=1,j=7,a;a=i+(j%4!=0);则a=2例‘a’>0结果为‘A’>100结果为例‘a’>0结果为1‘A’>100结果为0关系运算请注意:(1)应避免对实数作相

等或不等的判断如1.0/3.0*3.0==1.0结果为关系运算请注意:(1)应避免对实数作相等或不等的判断如1.0/3.0*3.0==1.0结果为0关系运算请注意:(1)应避免对实数作相等或不等的判断如1.0/3.0*3.0==1.0结果为0可改写为:fabs(1.0/3.0*3.0-1.0)

<1E-6(2)注意区分“=”与“==”如inta=0,b=1;if(a=b)printf(“aequaltob”);elseprintf(“anotequaltob”);(2)注意区分“=”与“==”如inta=0,b=1;

if(a=b)printf(“aequaltob”);elseprintf(“anotequaltob”);(2)注意区分“=”与“==”如inta=0,b=1;if(a=b)printf(“aequaltob”);elseprintf(“anotequaltob”);(2)注意区分“=”与“=

=”如inta=0,b=1;if(a==b)printf(“aequaltob”);elseprintf(“anotequaltob”);2022/11/246•5.2逻辑运算符和表达式•功能:判断逻辑值和对逻辑值进行操作•符号:

!&&||•逻辑运算真值表•结合方向:!从右向左,&&||从左向右•优先级:!(2)&&(11)||(12)•逻辑运算中:•运算参量:0表示假,非0表示真•运算结果:0表示假,1表示真•短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下

一个逻辑运算符才能求出表达式的解时,才执行该运算符ab!a!ba&&ba||b真真真假假真假假ab!a!ba&&ba||b真真假真假假假真真假假真ab!a!ba&&ba||b真真假假真假假真假真真假假假真真ab!a!ba&&ba||b真真假假真真假假真假

假真真假假假假真真假ab!a!ba&&ba||b真真假假真真真假假真假真假真真假假真假假真真假假例a<=x&&x<=ba>b&&x>ya==b||x==y!a||a>b例a<=x&&x<=b//(a<=x)&&(

x<=b)a>b&&x>ya==b||x==y!a||a>b例a<=x&&x<=b//(a<=x)&&(x<=b)a>b&&x>y//(a>b)&&(x>y)a==b||x==y!a||a>b例a<=x&&x<=b//(a<=x)&

&(x<=b)a>b&&x>y//(a>b)&&(x>y)a==b||x==y//(a==b)||(x==y)!a||a>b例a<=x&&x<=b//(a<=x)&&(x<=b)a>b&&x>y//(a>b)&&(x>y)a==b||x=

=y//(a==b)||(x==y)!a||a>b//(!a)||(a>b)例a=4;b=5;!aa&&ba||b!a||b4&&0||25>3&&2||8<4-!0„c‟&&„d‟例a=4;b=5;!a//0a&&ba

||b!a||b4&&0||25>3&&2||8<4-!0„c‟&&„d‟例a=4;b=5;!a//0a&&b//1a||b!a||b4&&0||25>3&&2||8<4-!0„c‟&&„d‟例a=4;b=5

;!a//0a&&b//1a||b//1!a||b4&&0||25>3&&2||8<4-!0„c‟&&„d‟例a=4;b=5;!a//0a&&b//1a||b//1!a||b//14&&0||25>3&&2||8<4-!0„c‟&&„d‟例a

=4;b=5;!a//0a&&b//1a||b//1!a||b//14&&0||2//15>3&&2||8<4-!0„c‟&&„d‟例a=4;b=5;!a//0a&&b//1a||b//1!a||b//14&&0||2//15>3&&2||8<4-!0/

/(5>3)&&2||(8<(4-(!0))),1„c‟&&„d‟例a=4;b=5;!a//0a&&b//1a||b//1!a||b//14&&0||2//15>3&&2||8<4-!0//(5>3)&&2||(8<(4-(!0))),1„c‟&&„d‟//

1例a&&b&&c//只在a为真时,才判别b的值//只在a、b都为真时,才判别c的值例a&&b&&c//只在a为真时,才判别b的值//只在a、b都为真时,才判别c的值a||b||c//只在a为假时,才

判别b的值//只在a、b都为假时,才判别c的值例a&&b&&c//只在a为真时,才判别b的值//只在a、b都为真时,才判别c的值a||b||c//只在a为假时,才判别b的值//只在a、b都为假时,才判别c的值a=1;b=2;c=3;d=4;m=1;n=1;(m=a>b

)&&(n=c>d)例a&&b&&c//只在a为真时,才判别b的值//只在a、b都为真时,才判别c的值a||b||c//只在a为假时,才判别b的值//只在a、b都为假时,才判别c的值a=1;b=2;c=3;d=

4;m=1;n=1;(m=a>b)&&(n=c>d)//结果m=0,n=12022/11/2475.3选择程序设计•if语句(条件选择语句)•if语句的三种形式•形式一:•格式:if(expression)statement•执行过程:•形式二:•格式:if(express

ion)statement1elsestatement2•执行过程:exprstatement非0=0exprstatement1statement2非0=0例:if(x>y)printf(“%d”,x);例:if(x>y)max=x;elsema

x=y;2022/11/2485.3选择程序设计•if语句(条件选择语句)•if语句的三种形式•形式一:•格式:if(expression)statement•执行过程:•形式二:•格式:if(expression)statement1elsestatement2•执行过程:•形式三:•格式:

•执行过程:if(expr1)statement1elseif(expr2)statement2elseif(expr3)statement3…...[elsestatementn]expr1statemnt1非

0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0例:if(salary>1000)index=0.4;elseif(salary>800)index=0.3;elseif

(salary>600)index=0.2;elseif(salary>400)index=0.1;elseindex=0;2022/11/249如:if(a==b&&x==y)printf(“a=b,x=y”);if(3)p

rintf(“OK”);if(„a‟)printf(“%d”,‟a‟);例考虑下面程序的输出结果:#include<stdio.h>main(){intx,y;scanf(“%d,%d”,&x,&y);if(x>y)x=y;y=x;elsex++;y++;printf

(“%d,%d\n”,x,y);}例考虑下面程序的输出结果:#include<stdio.h>main(){intx,y;scanf(“%d,%d”,&x,&y);if(x>y){x=y;y=x;}else{x++;y++;}printf(“%d,%d\n”,x,y);}•关于if语句的

说明:•if后面的表达式类型任意•语句可以是复合语句•if(x)if(x!=0)if(!x)if(x==0)CompileError!2022/11/2410/*ch4_1.c*/#include<stdio.h>main(){intx,y;printf

("Enteraninteger:");scanf("%d",&x);y=x;if(y<0)y=-y;printf("\ninteger:%d--->absolutevalue:%d\n",x,y);}例1求一个数的绝对值运行:Enteraninte

ger:-12integer:-12--->absolutevalue:122022/11/2411/*ch4_2.c*/#include<stdio.h>main(){inta,b;printf("Enterintegera:");scanf("%d",&a);pr

intf("Enterintegerb:");scanf("%d",&b);if(a==b)printf("a==b\n");elseprintf("a!=b\n");}例2输入两个数并判断两数相等否运行

:Enterintegera:12Enterintegerb:12a==b运行:Enterintegera:12Enterintegerb:9a!=b2022/11/2412/*ch4_3.c*/#include<stdio.h>main(){charc;printf("Entera

character:");c=getchar();if(c<0x20)printf("Thecharacterisacontrolcharacter\n");elseif(c>='0'&&c<='9')printf("Thecha

racterisadigit\n");elseif(c>='A'&&c<='Z')printf("Thecharacterisacapitalletter\n");elseif(c>='a'&&c<=

'z')printf("Thecharacterisalowerletter\n");elseprintf("Thecharacterisothercharacter\n");}例3判断输入字符种类运行:Enteracharac

ter:Thecharacterisacontrolcharacter运行:Enteracharacter:8Thecharacterisadigit运行:Enteracharacter:DThecharacterisacapitalletter运行:Enteracharact

er:hThecharacterisalowerletter运行:Enteracharacter:*Thecharacterisothercharacter2022/11/2413if(expr1)if(expr2)statement1elsestatement2内嵌if•if语

句嵌套:if(expr1)if(expr2)statement1elsestatement3内嵌ifif(expr1)statement1elseif(expr3)statement3elsestatement4内嵌ifif(expr1)if(expr2)statement1els

estatement2elseif(expr3)statement3elsestatement4内嵌if内嵌if2022/11/2414例输入两数并判断其大小关系/*ch4_4.c*/#include<st

dio.h>main(){intx,y;printf("Enterintegerx,y:");scanf("%d,%d",&x,&y);if(x!=y)if(x>y)printf("X>Y\n");elseprintf(

"X<Y\n");elseprintf("X==Y\n");}运行:Enterintegerx,y:12,23X<YEnterintegerx,y:12,6X>YEnterintegerx,y:12,12X==Yif~else配对原则:缺省{}时,els

e总是和它上面离它最近的未配对的if配对if(……)if(……)if(……)else…...else…...else…...2022/11/2415例:if(a==b)if(b==c)printf(“a==b==c”);elseprintf(

“a!=b”);修改:if(a==b){if(b==c)printf(“a==b==c”);}elseprintf(“a!=b”);实现if~else正确配对方法:加{}例考虑下面程序输出结果:main(){intx=100,a=10,b=20;intv1=5,v2=0;if(a<b)if

(b!=15)if(!v1)x=1;elseif(v2)x=10;x=-1;printf(“%d”,x);}结果:-1if~else配对原则:缺省{}时,else总是和它上面离它最近的未配对的if配对if(……)if(……)if(……)else…...e

lse…...else…...2022/11/2416•条件运算符和表达式•功能:相当于条件语句,但不能取代if语句•形式:exp1?exp2:exp3•结合方向:从左向右•优先级:13•条件运算符可嵌套•结果类型:取exp1、exp2和exp3中最高者expr1取e

xpr2值取expr3值非0=0例if(a>b)printf(“%d”,a);elseprintf(“%d”,b);printf(“%d”,a>b?a:b);例求a+|b|printf(“a+|b|=

%d\n”,b>0?a+b:a-b);例x>0?1:(x<0?-1:0)例(a==b)?‟Y‟:‟N‟(x%2==1)?1:0(x>=0)?x:-x(c>=„a‟&&c<=„z‟)?c-‟a‟+‟A‟:c例x?„a‟:„b‟//x=0,表达式值为‘b‟;x≠0,表

达式值为‘a‟x>y?1:1.5//x>y,值为1.0;x<y,值为1.52022/11/2417switch(表达式){caseE1:语句组1;break;caseE2:语句组2;break;…….caseEn:语句组n;break;[default:语句组;break;]}sw

itch表达式语句组1语句组2语句组n语句组…...E1E2Endefaultcase•switch语句(开关分支语句)•一般形式:•执行过程:2022/11/2418•关于switch语句的说明:•E1,E2,…En是常量表达式,且值必须互不相同•语句标

号作用内,必须用break跳出•case后可包含多个可执行语句,且不必加{}•switch可嵌套•多个case可共用一组执行语句如:……case„A‟:case„B‟:case„C‟:printf(“score>60\n”);break;……..例switch(score){case5:prin

tf(“Verygood!”);case4:printf(“Good!”);case3:printf(“Pass!”);case2:printf(“Fail!”);default:printf(“dataerror!”);}运行结果:score为5时,输出:Verygood!

Good!Pass!Fail!dataerror!例voidmain(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}c

ase2:a++;b++;break;case3:a++;b++;}printf(“\na=%d,b=%d”,a,b);}运行结果:a=2,b=12022/11/2419/*ch4_5.c*/#include<s

tdio.h>main(){intc;printf("Entermornorhorother:");c=getchar();switch(c){case'm':printf("\nGoodmorning!\n");break;case'n':prin

tf("\nGoodnight!\n");break;case'h':printf("\nHello!\n");break;default:printf("\n????????\n");break;}}例根据输入字母输出字符串2022/11/24204.4循环程序设计•C

语言中可以实现循环的语句•if和goto构成循环•while语句•do…while(…)语句•for语句•goto语句及用goto构成循环•一般形式:•功能:无条件转移goto语句标号;….…..标号:语句;警告:•不能用整

数作标号•只能出现在goto所在函数内,且唯一•只能加在可执行语句前面•限制使用goto语句2022/11/2421例用if和goto语句构成循环,求1001nn/*ch5_1.c*/#include<stdio.h>main(){inti,sum=0;i=1;loop

:if(i<=100){sum+=i;i++;gotoloop;}printf("%d",sum);}sum=0+1sum==1+2=3sum=3+3=6sum=6+4……sum=4950+100=5050循环初值循环终值循环变量增值循环条件循环体2022/

11/2422例从键盘输入一组数据,以0结束输入,求数据和/*ch5_11.c*/#include<stdio.h>main(){intnumber,sum=0;read_loop:scanf("%d",&number);if(!number)gotoprin

t_sum;sum+=number;gotoread_loop;print_sum:printf("Thetotalsumis%d\n",sum);}2022/11/24234.4循环程序设计•while语句•一般形式:•执行流程:•判断表达式,后执行循环体

while(表达式)循环体语句;expr循环体假(0)真(非0)while•循环体有可能一次也不执行•循环体可为任意类型语句•下列情况,退出while循环•条件表达式不成立(为零)•循环体内遇break,return,go

to•无限循环:while(1)循环体;2022/11/2424例while语句构成循环,求1001nn/*ch5_2.c*/#include<stdio.h>main(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d"

,sum);}循环初值循环终值循环变量增值循环条件循环体2022/11/2425例显示1~10的平方/*ch5_21.c*/#include<stdio.h>main(){inti=1;while(i<=10){pr

intf("%d*%d=%d\n",i,i,i*i);i++;}}运行结果:1*1=12*2=43*3=94*4=165*5=256*6=367*7=498*8=649*9=8110*10=1002022/11/24264.4循环程序设计•do…while(…)语句•一般形

式:•执行流程:•特点:•先执行循环体,再判断•至少执行一次循环体•可转化为while循环do循环体语句;while(表达式);do循环体expr假(0)真(非0)whileexpr循环体假(0)真(非0)循环体While循环2022/11/2427例do

…while语句构成循环,求1001nn/*ch5_3.c*/#include<stdio.h>main(){inti,sum=0;i=1;do{sum+=i;i++;}while(i<=100);printf("%d",sum);}20

22/11/2428例while和do~while比较/*ch5_4.c*/#include<stdio.h>main(){inti=1,sum=0;scanf("%d",&i);do{sum+=i;i

++;}while(i<=10);printf("%d",sum);}#include<stdio.h>main(){inti=1,sum=0;scanf("%d",&i);while(i<=10){sum+=i;i++;}printf("%d",sum);}2022/11/24294.4

循环程序设计•for语句•一般形式:•执行流程:•一般应用方式:for([exp1];[exp2];[exp3])循环体语句;expr2循环体假(0)真(非0)forexpr1expr3for(循环变量赋初值;循环条件;循环变量增值){循环体语句;}•expr1,

expr2,expr3类型任意•exp1,exp2,exp3都可省略,但分号不可省•无限循环:for(;;)•for语句可以转换成while结构2022/11/2430例1#include<stdio.h>main(){inti=0;for(i=0;i<10;i++

)putchar(„a‟+i);}运行结果:abcdefghij例2#include<stdio.h>main(){inti=0;for(;i<10;i++)putchar(„a‟+i);}例3#include<stdio.h>main(){inti=0;for(;i<1

0;)putchar(„a‟+(i++));}例4#include<stdio.h>main(){inti=0;for(;i<10;putchar(„a‟+i),i++);}例:多种方式连续输出多个字符2022/11/2431例:打印加法表#inc

lude<stdio.h>main(){inti,j,k;for(i=0,j=100;i<=j;i++,j--){k=i+j;printf("%d+%d=%d\n",i,j,k);}}例:打印输入的多个字符#include<stdio.h>main(){cha

rc;for(;(c=getchar())!='\n';)printf("%c",c);}例:根据输入打印多个字符#include<stdio.h>main(){inti,c;for(i=0;(c=getchar())

!='\n';i+=3)printf("%c",i+c);}2022/11/2432例梯形法求数值积分0yxaa+ha+iha+(i+1)hbf(x)1011121220.51;

1;ininibahnhsfaihfaihhSfaihfaihhfafbhfaihshfafbsshfaihiini迭代:#include<math.h>main(){f

loata,b;doubles,h;doublef(doublex);intn,i;printf("Inputintegralareaa,b:");scanf("%f,%f",&a,&b);printf("Inputn

:");scanf("%d",&n);h=(b-a)/n;s=0.5*h*(f(a)+f(b));for(i=1;i<=n-1;i++)s=s+h*f(a+i*h);printf("\nThevalueis:%lf

",s);}doublef(doublex){return(sqrt(4.0-x*x));}2022/11/2433(1)while(){……while(){……}…...}(2)do{……do{……}while();…...}while();(3)while(){……do

{……}while();…….}(4)for(;;){……do{……}while();……while(){……}…...}•循环的嵌套•三种循环可互相嵌套,层数不限•外层循环可包含两个以上内循环,但不能相互交叉•嵌套循环的执行流程

•嵌套循环的跳转禁止事项:•从外层跳入内层•跳入同层的另一循环•向上跳转2022/11/2434例循环嵌套,输出九九表1234567891234567892468101214161836912151821242791827364554637281……………

../*ch5_5.c*/#include<stdio.h>main(){inti,j;for(i=1;i<10;i++)printf("%4d",i);printf("\n-------------------------------------

--\n");for(i=1;i<10;i++)for(j=1;j<10;j++)printf((j==9)?"%4d\n":"%4d",i*j);}2022/11/2435for(i=1;i<10;i++)for(j=1;j<10;

j++)printf((j==9)?"%4d\n":"%4d",i*j);i<10printf假(0)真(非0)i=1j++j=1j<10真(非0)假(0)i++外循环内循环2022/11/24364.5辅助控

制语句•break语句•功能:在循环语句和switch语句中,终止并跳出循环体或开关体•说明:•break只能终止并跳出最近一层的结构•break不能用于循环语句和switch语句之外的任何其它语句之中expr……br

eak;……假(0)真(非0)whiledo……break;…...expr假(0)真(非0)whileexpr2……break;…...假(0)真(非0)forexpr1expr3switchexpr语句组1break;语

句组2break;语句组nbreak;语句组break;…...const1const2constndefaultcase2022/11/2437例1输出圆面积,面积大于100时停止#definePI3.14159main(){intr;floatarea;for(r=1

;r<=10;r++){area=PI*r*r;if(area>100)break;printf("r=%d,area=%.2f\n",r,area);}}2022/11/2438例2小写字母转换成大写字母,直至输入非字母字符#include

<stdio.h>main(){inti,j;charc;while(1){c=getchar();if(c>='a'&&c<='z')putchar(c-'a'+'A');elsebreak;}}2022/11/24394.

5辅助控制语句•continue语句•功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断•说明:•只能用于循环语句中expr……continue;……假(0)真(非0)while真(非

0)do……continue;…...expr假(0)whileexpr2……continue;…...假(0)真(非0)forexpr1expr32022/11/2440例求输入的十个整数中正数的个数及其平均值/*ch5_12.c*/#include<stdio.h>main(){inti

,num=0,a;floatsum=0;for(i=0;i<10;i++){scanf("%d",&a);if(a<=0)continue;num++;sum+=a;}printf("%dplusinteger'ssum:%6.0f\n",

num,sum);printf("Meanvalue:%6.2f\n",sum/num);}2022/11/2441•程序举例t=1,pi=0,n=1.0,s=1当|t|1e-6pi=pi+tn=n+2s=-st=s/npi=pi*4输出pi分子:1,-1,1,-1…分母:1,3,5,7,

...61111435710例1用公式求的近似值,直到最后一项的绝对值小于为止*ch5_6.c*/#include<stdio.h>#include<math.h>main(){ints;floatn

,t,pi;t=1;pi=0;n=1.0;s=1;while((fabs(t))>=1e-6){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;printf("pi=%10.6f\n",pi);}2022/11/2442例2求Fibonacci数列1,

1,2,3,5,8,……的前40个数f1=1,f2=1fori=1to20输出f1,f2f1=f1+f2f2=f2+f1153423315971094675025514229352457824157817185537725841771112139383204057028873908

8169213896104181286571964181346269922746563245986321144987676546368317811217830914930352102334155/*ch5_7.c*/#include<stdio.h>main(){longint

f1,f2;inti;f1=1;f2=1;for(i=1;i<=20;i++){printf("%12ld%12ld",f1,f2);if(i%2==0)printf("\n");f1=f1+f2;f2=f

2+f1;}}2022/11/2443例3判断m是否素数读入mk=mi=2当ikm被i整除真假用break结束循环i=i+1ik+1真假输出:m”是素数”输出:m”不是素数”/*ch5_8.c*/#include<stdio.h>#inclu

de<math.h>main(){intm,i,k;scanf("%d",&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1)printf("%disa

primenumber\n",m);elseprintf("%disnotaprimenumber\n",m);}2022/11/2444例4译密码例如输入:Hello,world!译成密码:Lipps,asvph!/*ch5_

10.c*/#include<stdio.h>main(){charc;while((c=getchar())!='\n'){if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){c=c+4;if(c>'Z'&&c<='Z'

+4||c>'z')c=c-26;}printf("%c",c);}}

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?