C语言程序设计第3章课件

上传人:公**** 文档编号:586067396 上传时间:2024-09-03 格式:PPT 页数:50 大小:733.50KB
返回 下载 相关 举报
C语言程序设计第3章课件_第1页
第1页 / 共50页
C语言程序设计第3章课件_第2页
第2页 / 共50页
C语言程序设计第3章课件_第3页
第3页 / 共50页
C语言程序设计第3章课件_第4页
第4页 / 共50页
C语言程序设计第3章课件_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《C语言程序设计第3章课件》由会员分享,可在线阅读,更多相关《C语言程序设计第3章课件(50页珍藏版)》请在金锄头文库上搜索。

1、 C C 语言程序设计第三章第三章 程序控制结构程序控制结构 集美大学计算机学院1C语言程序设计(第3章)本章主要内容v程序设计方法简述程序设计方法简述v选择结构程序设计选择结构程序设计 if else 语句语句 switch语句语句v循环结构程序设计循环结构程序设计 四种循环语句四种循环语句v常用算法常用算法 枚举法(穷举法)枚举法(穷举法) 归纳法(递推法)归纳法(递推法) 2C语言程序设计(第3章)教学目的和要求教学目的和要求u掌握算法的基本概念与特征熟练掌握三种基本结构:顺序结构分支结构ifelse和Switch 语句循环结构:for、 while、 do-while掌握 break

2、与continue的不同作用掌握常用算法:枚举法和归纳法重点与难点重点与难点C语言的四种循环语句break 与continue的基本作用常用算法思想3C语言程序设计(第3章) 一、程序设计方法简述一、程序设计方法简述 1 1、计算机处理问题的过程、计算机处理问题的过程l l【例一】让某学生解方程例一】让某学生解方程 axax2 2+bx+c=0+bx+c=0 P72 P72 例例3.53.5求解过程:求解过程:分析问题 这是一个一元二次方程(代数问题,须中学代数知识)确定处理方案 用求根公式确定解题步骤 确定a、b、c的值 求出b2 -4ac的值 如果 b2 -4ac0(双实根) X1= X2

3、= 如果 b2 -4ac=0(单实根) X1=X2= 如果 b2 -4ac=a & c=z) c=c-32; else c=c; printf(“%c”,c); /*将小写字母转换为大写字母*/7 7C C语言程序设计语言程序设计( (第第3 3章章) )二、选择结构程序设计二、选择结构程序设计1 1、ifif语句语句 示例示例【例二】以下程序的执行结果是什么? main( ) int x=2,y=-1,z=2; if (xy) if (y0) ; if (x=2) if (1=x0”); y=x-1;8 8C C语言程序设计语言程序设计( (第第3 3章章) )二、选择结构程序设计二、选择结

4、构程序设计2、switch语句switch 语句的一般形式:switch(e) case c1:语句组1; case c2:语句组2; case cn:语句组n; default:语句组n+1; /*可缺省*/*e 表达式(整型、字符型或枚举型)*/c1cn 常量(整数、字符、常量表达式如3+4,不含变量或函数)default 不是c1cn的情况 (位置不一定在最后)。9 9C C语言程序设计语言程序设计( (第第3 3章章) )二二、选择结构程序设计、选择结构程序设计2 2、switchswitch语句语句 示例示例main() char s; scanf(“%c”,&s); switch(

5、s) case A : printf(“85100n”); case B : printf(“7084n”); case C : printf(“6069n”); case D : printf(“60n”); default : printf(“errorn”); 输入“c”,求输出结果。 结果: 6069 60 error ?!1010C C语言程序设计语言程序设计( (第第3 3章章) )二二、选择结构程序设计、选择结构程序设计2 2、switchswitch语句语句 示例示例main() char s; scanf(“%c”,&s); switch(s) case A : printf

6、(“85100n”); case B : printf(“7084n”); case C : printf(“6069n”); case D : printf(“60n”); default : printf(“errorn”); 我的成绩应该是6069!什么!“60”? “错误输入”?怎么会这样?!不好意思,我属于C级! 运行结果: 6069 60 错误输入 1111C C语言程序设计语言程序设计( (第第3 3章章) )二二、选择结构程序设计、选择结构程序设计2 2、switchswitch语句语句 示例示例解决方法break语句:main() char s; scanf(“%c”,&s)

7、; switch(s) case A : printf(“85100n”);break; case B : printf(“7084n”);break; case C : printf(“6069n”);break; case D : printf(“60n”);break; default : printf(“errorn”); 这才差不多!break! 运行结果: 60691212C C语言程序设计语言程序设计( (第第3 3章章) )二二、选择结构程序设计、选择结构程序设计2 2、switchswitch语句语句 示例示例解决方法break语句:main() char s; scanf(

8、“%c”,&s); switch(s) case A : printf(“85100n”);break; case B : printf(“7084n”);break; case C : printf(“6069n”);break; case D : printf(“60n”);break; default : printf(“errorn”); 讨论讨论讨论讨论switch(s)语句中的s实际上并非真正的条件选择,而只是一种跳转指示(与if语句不同),表示下面应该跳转到什么位置继续执行。而各case实际上只是一个跳转处的标记。当程序跳转到某个case处时,并非只执行此case行的程序组,而是

9、从此处开始一直向下执行各条语句,直到整个switch开关体结束(“”)。如果要使每个case处相当于一种if(s)else的效果,必须在其语句组最后加上break语句。1313C C语言程序设计语言程序设计( (第第3 3章章) )二二、选择结构程序设计、选择结构程序设计2 2、switchswitch语句语句 示例示例main() int x=1,y=0,a=0,b=0; switch(x) case 1 : switch(y) case 0 : a+;break; case 1 : b+;break; case 2 : a+;b+;break; case 3 : a+;b+; printf

10、(“a=%d,b=%dn”,a,b);说明说明说明说明1、每个case常量表达式的值必须互不相同,否则会出现互相矛盾的结果。2、允许多个case共用一个执行语句。 求程序运行结果。结果:a=2,b=1。如果x=2? 结果:a=1,b=1 如果x=3?结果:a=1,b=1 1414C C语言程序设计语言程序设计( (第第3 3章章) ) 三、循环结构程序设计三、循环结构程序设计 循环是在循环条件为真时计算机反复执行的一组循环是在循环条件为真时计算机反复执行的一组指令(循环体)。指令(循环体)。 循环控制通常有两种方式:循环控制通常有两种方式:计数控制计数控制事先能够准确知道循环次数时用之事先能够

11、准确知道循环次数时用之 用专门的循环变量来计算循环的次数,循环变量的用专门的循环变量来计算循环的次数,循环变量的值在每次执行完循环体各语句后递增,达到预定循环值在每次执行完循环体各语句后递增,达到预定循环次数时则终止循环,继续执行循环结构后的语句。次数时则终止循环,继续执行循环结构后的语句。标记控制标记控制事先不知道准确的循环次数时用之事先不知道准确的循环次数时用之 由专门的标记变量控制循环是否继续进行。当标记由专门的标记变量控制循环是否继续进行。当标记变量的值达到指定的标记值时,循环终止,继续执行变量的值达到指定的标记值时,循环终止,继续执行循环结构后的语句。循环结构后的语句。1515C C

12、语言程序设计语言程序设计( (第第3 3章章) )三三、循环结构程序设计、循环结构程序设计在在C C语言中可用以下语句构成循环:语言中可用以下语句构成循环: if if goto goto while while do do while while for for 其中其中if if goto goto是通过编程技巧是通过编程技巧( (if if语句和语句和gotogoto语句语句组合组合) )构成循环功能。而且构成循环功能。而且gotogoto语句将影响程序流程语句将影响程序流程的模块化,使程序可读性变差,所以结构化程序设计的模块化,使程序可读性变差,所以结构化程序设计主张限制主张限制got

13、ogoto语句的使用。语句的使用。 其他三种语句是其他三种语句是C C语言提供的循环结构专用语句。语言提供的循环结构专用语句。1616C C语言程序设计语言程序设计( (第第3 3章章) ) 三、循环结构程序设计三、循环结构程序设计 循环结构两大要素:循环结构两大要素:l l循环条件循环条件 p p 结束循环的条件表达式结束循环的条件表达式l l循环体循环体 A A 循环执行的语句或语句组循环执行的语句或语句组设置循环条件要特别注意确定:设置循环条件要特别注意确定:l l循环变量循环变量的的初值初值l l循环变量循环变量的的终值终值l l循环变量循环变量的的变化规律变化规律名词解释无限循环死循

14、环名词解释空循环1717C C语言程序设计语言程序设计( (第第3 3章章) )三三、循环结构程序设计、循环结构程序设计1 1、if if goto goto语句循环结构语句循环结构【例一】main() int n=0,sum=0;loop: sum+=n; +n; if (sum=10000) goto end; sum+=n; +n; goto loop;end: printf(“n = %dn”,n); 直到型当 型1818C C语言程序设计语言程序设计( (第第3 3章章) )三三、循环结构程序设计、循环结构程序设计2 2、whilewhile语句循环结构语句循环结构【例三】main(

15、) int n=0,sum=0; while (sum=10000) sum+=n; +n; printf(“n = %dn”,n); 当 型l l一般形式一般形式 while (while (条件表达式条件表达式) ) 循环体;循环体;l l用于构成当型循环:先判断用于构成当型循环:先判断后执行后执行/ /条件为真继续循环,条件为真继续循环,直到条件为假时结束循环。直到条件为假时结束循环。l l【注意】条件表达式或循环【注意】条件表达式或循环体内应有改变条件使循环结体内应有改变条件使循环结束的语句,否则可能陷入束的语句,否则可能陷入“ “死循环死循环” ”。1919C C语言程序设计语言程序

16、设计( (第第3 3章章) )三三、循环结构程序设计、循环结构程序设计3 3、dodowhilewhile语句循环结构语句循环结构【例四】main() int n=0,sum=0; do sum+=n; +n; while (sum0); printf(“n”); /*取得num的个位数*/ /*输出num的个位数*/ /*直到num/10为0*/ 结果: 65421将各位数字反序显示出来2121C C语言程序设计语言程序设计( (第第3 3章章) )三三、循环结构程序设计、循环结构程序设计、循环结构程序设计、循环结构程序设计4 4、forfor语句循环结构语句循环结构l l一般形式一般形式

17、for (for (表达式表达式1 1;条件表达式;表达式;条件表达式;表达式3 3) ) 循环语句(组);循环语句(组); l l用于构成计数型当型循环:先用于构成计数型当型循环:先判断后执行判断后执行/ /条件为真继续循环,条件为真继续循环,直到条件为假时结束循环。直到条件为假时结束循环。l l表达式表达式1: 1: 整个循环中只执行整个循环中只执行1 1次,次,常用来对循环变量设置初值常用来对循环变量设置初值l l条件表达式(表达式条件表达式(表达式2 2): : 其值其值为真(非为真(非0 0)时继续执行循环语)时继续执行循环语句(组),否则结束循环句(组),否则结束循环l l表达式表

18、达式3: 3: 常用于循环变量值的常用于循环变量值的更新更新( (循环体的一部分每次循环循环体的一部分每次循环语句组执行完后执行一次语句组执行完后执行一次) )【例六】【例六】求求i =1+2+3+4+99+100i =1+2+3+4+99+100 (i=1(i=1100)100)main()main() int i , s=0; int i , s=0; for (for (i=1;i=100;i+i=1;i50) break; while (a=14); printf(a=%d,y=%dn,a,y);结果:a=16,y=60 变量跟踪 a y 10 0 12 12 14+2 16+12=2

19、8 14+2 16+28=44 14+2 16+44=60变量跟踪分析法2323C C语言程序设计语言程序设计( (第第3 3章章) )三三、循环结构程序设计、循环结构程序设计、循环结构程序设计、循环结构程序设计5 5、其他循环控制结构、其他循环控制结构l lbreak break 结束循环结束循环 在在switchswitch中退出中退出switchswitch结构;结构; 在循环中结束循环。在循环中结束循环。 l lcontinue continue 结束本次循环结束本次循环 循环循环“ “短路短路” (” (跳过循环体后跳过循环体后面的语句,开始下一轮循环面的语句,开始下一轮循环 ) )

20、。l lgoto goto 跳转跳转 跳到循环体外指定标号处。跳到循环体外指定标号处。 【注意】【注意】 goto goto 语句只能从循环内向外语句只能从循环内向外跳转跳转 ,反之不可!,反之不可!求以下程序段执行后x和i的值。int i,x;for ( i=1,x=1;i=10) break; if (x%2=1) x+=5; continue; x-=3;结果:x的值为10,i的值为6 变量跟踪 i x 1 16 2 63 3 38 4 85 5 510 6 2424C C语言程序设计语言程序设计( (第第3 3章章) )三三、循环结构程序设计、循环结构程序设计、循环结构程序设计、循环结

21、构程序设计5 5、其他循环控制结构、其他循环控制结构l lbreak break 结束循环结束循环 在在switchswitch中退出中退出switchswitch结构;结构; 在循环中结束循环。在循环中结束循环。 l lcontinue continue 结束本次循环结束本次循环 循环循环“ “短路短路” (” (跳过循环体后跳过循环体后面的语句,开始下一轮循环面的语句,开始下一轮循环 ) )。l lgoto goto 跳转跳转 跳到循环体外指定标号处。跳到循环体外指定标号处。 【注意】【注意】 goto goto 语句只能从循环内向外语句只能从循环内向外跳转跳转 ,反之不可!,反之不可!m

22、ain() int i=1; while (i=15) if (+i%3!=2) continue; else printf(%d ,i); printf(n);结果:2 5 8 11 14 变量跟踪 i +i%3 输出输出i 12 2 2 23 0 34 1 45 2 5 56 0 2525C C语言程序设计语言程序设计( (第第3 3章章) )三三、循环结构程序设计、循环结构程序设计、循环结构程序设计、循环结构程序设计5 5、其他循环控制结构、其他循环控制结构l lbreak break 结束循环结束循环 在在switchswitch中退出中退出switchswitch结构;结构; 在循环

23、中结束循环。在循环中结束循环。 l lcontinue continue 结束本次循环结束本次循环 循环循环“ “短路短路” (” (跳过循环体后跳过循环体后面的语句,开始下一轮循环面的语句,开始下一轮循环 ) )。l lgoto goto 跳转跳转 跳到循环体外指定标号处。跳到循环体外指定标号处。 【注意】【注意】 goto goto 语句只能从循环内向外语句只能从循环内向外跳转跳转 ,反之不可!,反之不可!main() int i,k=0; for (i=1; ;i+) k+; while (ki*i) k+; if (k%3=0) goto loop; loop:printf(%d,%d

24、,i,k);结果:2 ,3 2626C C语言程序设计语言程序设计( (第第3 3章章) )四、常用算法四、常用算法1 1、枚举法(穷举法)、枚举法(穷举法)P79P79 “ “笨人之法笨人之法” ”: 把所有可能的情况一一测试,筛选出符合把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出。条件的各种结果进行输出。 【例一】【例一】百元买百鸡百元买百鸡:(P62:(P62例例:3.2):3.2)用一百元钱买一百用一百元钱买一百只鸡。已知公鸡只鸡。已知公鸡5 5元元/ /只只, ,母鸡母鸡3 3元元/ /只只, ,小鸡小鸡1 1元元/3/3只。只。 分析:分析: 这是个不定方程这是个不定

25、方程三元一次方程组问题(三个三元一次方程组问题(三个变量,两个方程)变量,两个方程) x xy yz=100z=100 5x5x3y3yz/3=100z/3=100 设公鸡为设公鸡为x x只,母鸡为只,母鸡为y y只,小鸡为只,小鸡为z z只。只。 2727C C语言程序设计语言程序设计( (第第3 3章章) )百元买百鸡问题分析百元买百鸡问题分析main() int x,y,z; for (x=0;x=100;x+) for (y=0;y=100;y+) for (z=0;z=100;z+) if (x+y+z=100 & 5*x+3*y+z/3.0=100 ) printf(cocks=%

26、d,hens=%d,chickens=%dn,x,y,z); 结果:x=0,y=25,z=75 x=4,y=18,z=78 x=8,y=11,z=81 x=12,y=4,z=84【讨论 此为“最笨”之法要进行101101101= 1030301次(100多百次)运算。2828C C语言程序设计语言程序设计( (第第3 3章章) )百元买百鸡问题分析百元买百鸡问题分析main() int x,y,z; for (x=0;x=19;x+) for (y=0;y=33;y+) z=100-x-y; if (5*x+3*y+z/3.0=100 ) printf(“cocks=%d,hens=%d,ch

27、ickens=%dn,x,y,z); 【讨论】 令z=100-x-y 只进行101101= 10201 次运算(前者的1%) 取x=19,y=33 只进行2034= 680 次运算(第1种运算的6.7%) 2929C C语言程序设计语言程序设计( (第第3 3章章) )【例二】例二】雨水淋湿了算术书的一道题,雨水淋湿了算术书的一道题,8 8个数字只个数字只 能看清能看清3 3个,第一个数字虽然看不清,但可看出不个,第一个数字虽然看不清,但可看出不是是1 1。编程求其余数字是什么?。编程求其余数字是什么? (33 ) 2 2 = 89 = 89分析分析 设分别用设分别用A A、B B、C C、D

28、 D、E E五个变量表示自左到右五五个变量表示自左到右五个未知的数字。其中个未知的数字。其中A A的取值范围为的取值范围为2 29 9,其余取,其余取值范围为值范围为0 09 9。条件表达式即为给定算式。条件表达式即为给定算式。3030C C语言程序设计语言程序设计( (第第3 3章章) )main() int A,B,C,D,E;for (A=2;A=9;A+) for (B=0;B=9;B+) for (C=0;C=9;C+) for (D=0;D=9;D+) for (E=0;E=9;E+) if (A*(B*10+3+C)*A*(B*10+3+C)=8009+D*100+E*10) p

29、rintf(“%2d%2d%2d%2d%2dn”,A,B,C,D,E);结果:3 2 8 6 4 【例二】例二】雨水淋湿了算术书的一道题,雨水淋湿了算术书的一道题,8 8个数字只个数字只 能看清能看清3 3个,第一个数字虽然看不清,但可看出不个,第一个数字虽然看不清,但可看出不是是1 1。编程求其余数字是什么?。编程求其余数字是什么? (33 ) 2 2 = 89 = 893131C C语言程序设计语言程序设计( (第第3 3章章) )【例三】【例三】 求求100100200200之间不能被之间不能被3 3整除也不能被整除也不能被7 7整除的数。整除的数。 分析:求某区间内符合某一要求的数,可

30、用一个变量“穷举”。所以可用一个独立变量x,取值范围100200。for (x=100;x=200;x+)for (x=100;x=200;x+) if (x%3!=0&x%7!=0) if (x%3!=0&x%7!=0) printf(“x=%dn”,x); printf(“x=%dn”,x);如果是求指定条件的奇数呢? 如果是求指定条件的偶数呢? x=101;x=200;x=x+2 x=100;x=200;x=x+2 3232C C语言程序设计语言程序设计( (第第3 3章章) )2 2、归纳法(递推法)、归纳法(递推法) P80 P80 “ “智人之法智人之法” ” : 通过分析归纳,找

31、出从变量旧值出发通过分析归纳,找出从变量旧值出发求新值的规律。求新值的规律。四四、常用算法、常用算法【例一】 编程求i =1+2+3+4+99+100 (i=0100)分析 i=0 S0= 0 (初值) i=1 S1= 0+1=S0+1 i=2 S2=1+2=S1+2 i=3 S3=1+2+3=S2+3 i=4 S4=1+2+3+4=S3+4 i=n Sn=1+ 2+3+4+n=Sn-1+n3333C C语言程序设计语言程序设计( (第第3 3章章) )【例一】 编程求i =1+2+3+4+n ( n 100)程序:main() int i ,n, s=0; printf(n=); scanf

32、(%d,&n); for ( i=1;i=n;i+) s=s+i; printf(Sum=%dn,s);运行结果:n=100Sum=5050如果是i =1+1/2+1/3+1/n 呢?3434C C语言程序设计语言程序设计( (第第3 3章章) )算法类型小结:累加型【累加型】类型诸如 + 求其前n项之和的编程题。累加型算法累加型算法 若设若设i i为循环变量,为循环变量,s s为前为前n n项累加之和,则程序的项累加之和,则程序的基本结构为:基本结构为: s=0;s=0; for( i=1 ;i= for( i=1 ;i=n n ;i+ ) ;i+ ) s=s+ s=s+ ; ;3535C

33、C语言程序设计语言程序设计( (第第3 3章章) )【例二】【例二】 编程求编程求1 11/2+1/31/2+1/31/4+1/51/4+1/5 +1/99 +1/991/1001/100l l分母为奇数时,相加分母为奇数时,相加l l分母为偶数时,相减分母为偶数时,相减法1:从变化规律分析程序:main() int i; float s=0; for (i=1;i=100;i+) if (i%2) s=s+1/i; else s=s-1/i; printf(Sum=%fn,s);运行结果:Sum=1.000000错在哪里?3636C C语言程序设计语言程序设计( (第第3 3章章) )【例二

34、】【例二】 编程求编程求1 11/2+1/31/2+1/31/4+1/51/4+1/5 +1/99 +1/991/1001/100法2:这是个累加型算法的编程题程序:#include main(); int i ; float s=0; for (i=1;i=100;i+) s=s+pow (-1, i+1) / i ; printf(Sum=%fn,s); 程序:#include main() int i ,k=1; float s=0; for (i=1;i=100;i+) s=s+ k / i ; k = -k ; printf(Sum=%fn,s); 累加型算法累加型算法程序基本结构为

35、:程序基本结构为: s=0;s=0; for( i=1;i=n;i+ ) for( i=1;i=n;i+ ) s=s+ s=s+ ; ;错在哪里?(如何检查程序错误?)运行结果:Sum=0.688172 运行结果:Sum=1.000000 3737C C语言程序设计语言程序设计( (第第3 3章章) )【例三】 编程求n! (n由键盘输入) 分析 i=0 S0= 1=S0 (初值) i=1 S1= 01=S01 i=2 S2=12=S12 i=3 S3=123=S23 i=4 S4=1234=S34 i=n Sn=1 234n=Sn-1n3838C C语言程序设计语言程序设计( (第第3 3章

36、章) )【例三】 编程求n! (n由键盘输入) 程序:main() int i ,n, s=1; printf(n=); scanf(%d,&n); for ( i=1;i=n;i+) s=s*i; printf(Sum=%dn,s);运行结果:n=5Sum=120运行结果:n=8Sum=-25216Why?3939C C语言程序设计语言程序设计( (第第3 3章章) )算法类型小结:阶乘型【阶乘型】类型诸如 求其前n项之积的编程题。阶乘型算法阶乘型算法 若设若设i i为循环变量,为循环变量,s s为前为前n n项相乘之积,则程序的项相乘之积,则程序的基本结构为:基本结构为: s=s=1 1;

37、 ; for( i=1 ;i= for( i=1 ;i=n n ;i+ ) ;i+ ) s=s s=s* ; ;4040C C语言程序设计语言程序设计( (第第3 3章章) )【例四】【例四】 编程求编程求n! =1!+2!+3!n! =1!+2!+3!+n! +n! (n n由键盘输入)由键盘输入)l l外循环为累加型外循环为累加型l l内循环为阶乘型内循环为阶乘型法1:从变化规律分析程序:main() int i, j , n ; float s,s1; printf ( 请输入n=) ; scanf ( %d,&n); s=0; for (i=1;i=n;i+) s1=1; for (j

38、=1; j=i ; j+) s1=s1*j ; s=s+s1; printf ( Sum=%.0fn,s) ; 运行结果:n=5Sum=153/*如果n值较大,可改为printf ( “Sum=%en”,s) ;*/ 4141C C语言程序设计语言程序设计( (第第3 3章章) )【例四】【例四】 编程求编程求n! =1!+2!+3!n! =1!+2!+3!+n! +n! (n n由键盘输入)由键盘输入)l l在同一个循环中在同一个循环中 先阶乘,后累加先阶乘,后累加法2:通过单循环实现程序:main() int i, n ; float s,s1; printf ( 请输入n=) ; sca

39、nf ( %d,&n); s=0, s1=1; for (i=1;i=n;i+) s1=s1* i ; s=s+s1; printf ( Sum=%.0fn,s) ;运行结果:n=5Sum=1534242C C语言程序设计语言程序设计( (第第3 3章章) )【例五】【例五】 兔子繁殖问题(斐波那契数列问题)兔子繁殖问题(斐波那契数列问题) 著名意大利数学家斐波那契(著名意大利数学家斐波那契(FibonacciFibonacci)12021202年提出一个有趣的问题。年提出一个有趣的问题。某人想知道一年内一对兔子可以生几对兔子。他筑了一道围墙,把一对某人想知道一年内一对兔子可以生几对兔子。他筑

40、了一道围墙,把一对大兔关在其中。已知每对大兔每个月可以生一对小兔,而每对小兔出生大兔关在其中。已知每对大兔每个月可以生一对小兔,而每对小兔出生后第三个月即可成为后第三个月即可成为“大兔大兔”再生小兔。问一对小兔一年能繁殖几对小再生小兔。问一对小兔一年能繁殖几对小兔?兔?l l分析:分析:表示大兔,表示大兔,表示小兔表示小兔由分析可以推出,每月新增兔子数Fn=1,1,2,3,5,8,13,21,34,(斐波那契数列)月份n 兔子数Fn 1 F1=1 2 F2=1 3 F3=2=F1+F2 4 F4=3=F2+F3 5 F5=5=F3+F4 n Fn=Fn-1+Fn-2 4343C C语言程序设计

41、语言程序设计( (第第3 3章章) )【例五】【例五】 兔子繁殖问题(斐波那契数列问题)兔子繁殖问题(斐波那契数列问题)main() int f1=1,f2=1,f,i,s,n; clrscr(); printf(请输入月数:); scanf(%d,&n); for (s=2,i=3;i=n;i+) f=f1+f2; s=s+f; f1=f2; f2=f; printf(%d个月的兔子数是%dn,n,s);对照:P80例3.124444C C语言程序设计语言程序设计( (第第3 3章章) )【例六】编程显示以下图形(共N 行,N 由键盘输入)。 * * * * * * * * * * * *

42、* * * * * * * * * * * * *此类题目分析的要点是:通过分析,找出每行空格、* 与行号i、列号j及总行数N的关系。其循环结构可用右图表示。分析:(设N=5)第1行 4个空格=5-1 1个“*”=2*行号-1第2行 3个空格=5-2 3个“*”=2*行号-1第3行 2个空格=5-3 5个“*”=2*行号-1第4行 1个空格=5-4 7个“*”=2*行号-1第5行 0个空格=5-5 9个“*”=2*行号-1由此归纳出:第i行的空格数N-i个; 第i行的“*”数是2i-1个。 4545C C语言程序设计语言程序设计( (第第3 3章章) )除了以上例题,要求根据教材掌握:1、测试

43、键盘输入的是数字、空白还是其它字符2、判断一个数是否素数问题3、打印九九表4646C C语言程序设计语言程序设计( (第第3 3章章) )判断一个数是否素数问题判断一个数是否素数问题#include main() int m,k,i; clrscr(); printf(x=); scanf(%d,&m); for(i=2;im-1;i+) if (m%i=0) printf(%d is not a prime numbern,m); exit(0); printf(i=%d,%d is a prime numbern,i,m); 把im-1改为isqrt(m-1)比较i的值4747C C语言程

44、序设计语言程序设计( (第第3 3章章) )第三章 作业一、编程题一、编程题【要求】【要求】 所有编程题须上机调试通过。所有编程题须上机调试通过。 源程序要求按缩进形式书写,代码端正整齐。源程序要求按缩进形式书写,代码端正整齐。1 1、编写一个程序,计算、编写一个程序,计算-32768-32768+32767+32767之间任意整数(由之间任意整数(由键盘输入)中各位奇数的平方和。键盘输入)中各位奇数的平方和。2 2、编写一个程序,计算给定、编写一个程序,计算给定n n时符合下式要求时符合下式要求S S的值。的值。n n由键由键盘输入(盘输入(n n为不大于为不大于1010的整数)。的整数)。

45、 S=(nS=(n ( (6(5+(4(3+(12)(6(5+(4(3+(12)3 3、设有一四位数、设有一四位数abcd=(ab+cd)abcd=(ab+cd)2 2,编写一个程序,求,编写一个程序,求a a、b b、c c、d d。( (如如2025,30252025,3025等等) )4 4、鸡兔问题:鸡兔共、鸡兔问题:鸡兔共3030只,脚共有只,脚共有9090个。编写一个程序,个。编写一个程序,求鸡、兔各多少只。求鸡、兔各多少只。4848C C语言程序设计语言程序设计( (第第3 3章章) )第三章 作业一、编程题一、编程题 5 5、编写一个程序,求、编写一个程序,求S S值(值(n

46、n由键盘输入):由键盘输入):(程序检验参考:(程序检验参考: x=6.66,n=8 x=6.66,n=8时,时,s=40.955;x=6.66,n=15s=40.955;x=6.66,n=15时时,s=-,s=-1.5111.511)6 6、编写一个程序,求前、编写一个程序,求前 n n 项之和项之和S S值,其中值,其中 n1 n1 ,x x 0 0 。(。(n n由键盘输入):由键盘输入): 1 2x 3 5x 8 13x 1 2x 3 5x 8 13x S = S = - - + + - - + + - - - - + . + . 2x 3 5x 8 13x 21 2x 3 5x 8 13x 21(程序检验参考:(程序检验参考:x=6.66,n=8x=6.66,n=8时,时,s= -16.492; s= -16.492; x=6.66,n=15x=6.66,n=15时时,s=-28.469,s=-28.469)4949C C语言程序设计语言程序设计( (第第3 3章章) )第三章 作业一、编程题一、编程题7 7、编写一个程序,输出、编写一个程序,输出3 3100100之间的全部素数之间的全部素数 5050C C语言程序设计语言程序设计( (第第3 3章章) )

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号