第五章:循环结构程序设计(完全体)

简介: 第五章:循环结构程序设计(完全体)

5.1 引例

【例5.1】计算人口有规律增长的数量(流程图及代码运行结果)

fc66c4939d6f46e689cd38c96b9f7c7b.png

5a197d1f20cf42ec8869766b2ae3fbec.png

【例5.2】使用while循环有规律累加值为止的编写程序(流程图及代码运行结果)

ecb7251031c9465796a00deb5a21203b.png


5f4645d671ff45e49f7dee8959dc88f2.png

5.2 使用for语句实现循环结构

5.2.1 for语句的基本语法

for语句的一般形式为:


for(表达式1;表达式2;表达式3)


           循环题语句;


大部分情况下,循环体语句为一复合语句。


注意,表达式1只是在进入循环之前计算一次。表达式2、循环体语句和表达式3将会重复执行。


1、可以应用于计数型的循环


格式如下:


for(循环变量赋初值‘循环条件;循环变量增量)


                      循环体语句;


【例5.3】输入一个正整数,求累加n阶乘的值(流程图及代码运行结果)

606bd3ac21e042b9854382441cc1a413.png

09e8fb4f9d1444ed9579a6eb51d6fd6b.png

【例5.4】输入一个正整数,求累加n阶乘的值(流程图及代码运行结果)


e9e199984a8b411696b1a39e92fcd359.png

f40c4281ce3742d49fc6be8301a47445.png

2、for语句的一般形式中省略表达式1


格式如下:


for( ;表达式2;表达式3)


     循环体语句;


说明:省略表达式1时,可以将循环变量赋初值放在for之前。注意,此时不能省略第一个“;”。


3、for语句的一般形式中省略表达式2


格式如下:


for(表达式1; ;表达式3)


     循环体语句;


说明:省略表达式2时,表示不对循环体进行控制,这时如果没有其他处理的话,会形成死循环。应避免这样的for结构。


4、for语句的一般形式中省略表达式3


格式如下:


for(表达式1; ;表达式3)


      循环体语句;


说明:省略表达式3时,可以在循环体语句中加入修改循环变量的值的语句。


5、for语句的一般形式表达式1和表达式3也可以式逗号表达式


6、for语句的一般形式中表达式2的值只要非0,就执行循环体


7、for语句的一般形式中循环体语句可以省略


由以上7种应用可以看出,for循环控制结构功能强大,在解决实际问题中起着非常重要的作用。

5.2.2 for循环使用示例

【例5.5】 编写程序,计算有规律的前n项之和(流程图及代码执行结果)

5e8b9e43ad844cebac8cd1f145a60d22.png

f8e45e9bd6a14068a6d8c05efd52c676.png

【例5.6】编写程序,输入10个数,输出其中最大数(流程图及代码执行结果)

e4c3b0e28b424ec2a4fec8539adf3a60.png

cb88182e54d7481bba4f31b44efe214c.png

【例5.7】编写程序,输入相应的水仙花数。(流程图及代码执行结果)

f7e893e8ef194a73b3a0d7e08c681011.png

0cf7967578834df087513c4ab668760e.png

【例5.8】编写程序,由键盘输入一个正整数,判断该数是否为完数(流程图及代码执行结果)

4fea2eec0a264b8e9c32ea849c6df71d.png

38145db231ae4fe1aecbb8370d13884d.png

【例5.9】统计由键盘中输入的若干个字符中,大写英文字母,小写英文字母,数字字符和其他字符的个数(流程图及代码及执行结果)

da82ad7913514e41aa0e80afe62b8c56.png

efd2ccc76f3c4deaa4b12cc331e720fc.png

【例5.10】任意输入一行小写字母,将他们转换成大写字母后输出(流程图及代码执行结果)

86d0d67dcb4d43dcacfe938a9bcc6c63.png

6364502a098d4acc822e05abd984cd59.png

【例5.11】由键盘输入3个数字,将其组合成一个整型数并输出(流程图及代码执行结果)

749bd09dca594391ab944bc382fc4f34.png

2032dcd7888245a392cafdbfa2c5dbd8.png

【例5.12】编写程序,由键盘输入一个正整数,判断其是否为素数(流程图及代码执行结果)

493931998c3744449c90ed3835f7a28b.png

b2b0f8fe490745368aaee1a56e1393a2.png

5.3 使用while语句实现循环结构

5.3.1 while语句的基本语法

     while语句在使用时,总是先要判断一个条件,所以可以用while语句实现“当型”循环。while语句的一般形式如下:


while(表达式)


      循环体;


注意,while语句的特点是先判断循环条件,后执行循环体。

5.3.2 while循环使用示例

【例5.13】计算1-100的累加和的值(流程图及代码执行结果)

3056bdb3ae2e44a6bec8586c4bda1c80.png

93afb12283fe421e8c774ff8ad4f83e6.png

【例5.14】输入一个正整数n,计算n!(流程图及代码执行结果)


6c29250849d7471fa9a0d6440efff37f.png

7681c1f51e0048cc85139ef697af18a4.png

【例5.15】由键盘输入一串字符,分别统计输入字符中数字字符,字母字符集其他字符的个数(流程图及代码执行结果)

6af23c8f23da4fdc93a523f0f3aba1d1.png

81567008c6a64969ac3d5328cd6bb492.png

5.4 使用do-while语句实现循环结构

5.4.1 do-while语句的基本语法

       do-while语句在使用时,首先执行循环体语句,然后再判断条件。所以可以用do-while语句实现“直到型”循环。do-while语句一般形式如下:


do


       循环体


while(表达式);


注意,do-while语句的特点是先执行循环体,后判断循环条件。因此,do-while循环至少执行一次循环体。

5.4.2 do-while循环使用示例

【例5.16】使用do-while语句计算1-100累加的值(流程图及代码执行结果)

fbe1ec3513b7486cb2ec55ca374c2920.png

c30cb1ef3f454e1ca754a2463193e87a.png

【例5.17】求两个自然数的最大公约数和最小公倍数(流程图及代码执行结果)

5cf80e5b9f2c43f69fc902e25c728341.pngd5d69501ba8a4175a01810194b5473b5.png

【例5.18】输入一个整数,统计该数的位数(流程图及代码执行结果)


447dc4ac0dec4de799ae579060526bd2.png

9b3075ca8f35443c8ab4bb5e95d27f56.png

5.5 改变循环结构的跳转语句

5.5.1 break语句

     break语句用在循环语句和switch语句中,在switch语句中的用法第4章已经介绍,这里介绍其在循环语句中的用法。


     break语句的一般形式如下:


                                                 break;


      当break语句用于循环语句中时,可使程序终止循环而转去执行循环语句的后继语句。通常break语句总是与if语句一起配合使用,即满足条件时跳出循环。


【例5.19】分析下面程序的运行结果(流程图及代码执行结果)

c68d4825ecfc4d08b0f5e1ec65b728e2.png

3cc7d867f0ba4352bab9f354b6a85ab6.png

【例5.20】编写程序,由键盘输入一个正整数,判断其是否为素数(流程图及代码执行结果)

56f1a05c87a14c6d94435d94465ba9fa.png

4a56cb159deb4e51bd8e46f6e708aa08.png

【5.21】从键盘输入一批学生的成绩(以负数作为结束标志),计算平均分,并统计不及格成绩的个数(流程图及代码执行结果)


f788513c69a84e479c0a49f7379679d8.png

808162dc975740bea6e5aa4d8e5742ca.png

5.5.2 continue语句

【例5.22】把1-100之间能被7整除的数,以每行5个的形式在屏幕输出(流程图及代码执行结果)


dd8659bc4e0b48319c43080526b340d1.png

7a85099071b748f19940d5b827208f3a.png

【例5.23】分析下面程序的运行结果(流程图及代码执行结果)

d9bf008b5f3544c3a0edd15f7924a7c4.png

5.5.3 goto语句

     除了前面介绍的3种循环控制语句,即for循环语句,while循环语句及do-while循环语句之外,在c语言中,还有一种可以实现循环控制的语句,即goto语句。


     goto语句的一般形式如下:


      goto语句标号;


     说明:语句标号是一个有效的标识符,使用时在语句标号的后面跟一个“:”出现在函数中某语句的前面。程序执行到goto语句,会控制跳转到该语句标号处,达到控制循环的目的。


【例5.24】使用goto语句计算1-100的累加的值(流程图及代码执行结果)


3efe88daa954496a82721e07fce7e024.png

c9fad56ae21b4ce5b2e9e48e6c8be365.png

5.6 循环嵌套

     当一个循环的循环体内又包含了另一个完整的循环结构时,称为循环的嵌套或者是二重循环。根据问题的需要,可以构成三重及以上的循环嵌套结构,但一般情况下最多使用到三重循环。


     使用for语句,while语句及do-while语句相互嵌套,构成的嵌套结构有以下几种。


1、for语句中嵌套for语句         2、for语句中嵌套while语句


3、while语句中嵌套while语句 4、do-while语句中嵌套for语句


5、do-while语句中嵌套do-while语句 6、while语句中嵌套do-while语句


【例5.25】求1-10阶乘的和(流程图及代码执行结果)

e35a89b04d9e4536885b3f110c0a6783.png

e5765120e2a4496c8ccbb6d592e24a8d.png

【例5.26】编程程序,输出乘法口诀(流程图及代码执行结果)

1f6f4614367d456fb813727068c9b267.png

e87ff3ee03d84130989aee8c5f573aec.png

【例5.27】求100以内的素数,要求每行输出10个(流程图及代码执行结果)

50f46e2f9387420c87d9e6bf4765d9b1.png

fe11249bebdd412995d6424ffe62d9bc.png

【例5.28】将10-20之间的正整数分解质因数(流程图及代码执行结果)

7b44ee9d5e2d4208a2d583732e32a4bf.png

a2e787f9ced34e11b18fdae64a873e9a.png

5.7 典型算法举例

5.7.1 递推法

【例5.29】猴子吃桃问题(流程图及代码执行结果)

6c0f748f30a346b6b94b7ddaef85cac2.png

277bf8524a704d7194414325acf0a8d6.png

【5.30】用递推法求解的典型应用(流程图及代码执行结果)

caf866f84d3644978239945e41805a23.png

a135c54941cd43bb828b3f346cb2ef72.png

5.7.2 迭代法

【例5.31】用牛顿迭代法求一元二次方程的解(流程图及代码执行结果)

c21a6fc0511c4e49b26c9f684667f53c.png

2923187566794c04a854ddd2040e2dc7.png

5.7.3 穷举法

【例5.32】搬砖问题(流程图及代码执行结果)

beeb941472144f9e85e30c9970c055ae.png

436e16ca92114916b57aadba47169add.png

【例5.33】编程程序,判断1,2,3,4四个数组成多少个互不相同且无重复的三位数(流程图及代码执行结果)

b0ceab8bcb3d4e4fb9f1dff89742b6b0.png

1a58a71770f64385ba4b618701bb7149.png

5.8 循环程序设计示例

【例5.34】编程输出金字塔型字符串(流程图及代码执行结果)


e795e2276827402e8ac9a61aab301918.png

f0a12146b1ea44db9c20118408d1d81f.png

【例5.35】猜数字游戏(流程图及代码执行结果)

29a79bc5ac45449f91f1a0f5736301b5.png

90530fc5918f4ac783207775214c1636.png

【例5.36】编写程序输出100-1000内的回文素数(流程图及代码执行结果)


be06fa7c1bc543e0b7a9b0516638bb25.png

4ffa927e03844cad90b0b86a089a4fd7.png

【例5.37】在所有三位整数中找出平方数中有连续的三位数字是该数本身的数(流程图及代码执行结果)

f8112908943748898d61f983b7d46efd.png

716123bb1e774ea59bdc2b1b1b352ac9.png




目录
相关文章
|
3月前
|
C语言
第四章 选择结构程序设计
第四章 选择结构程序设计
22 0
|
2月前
|
开发框架 .NET 程序员
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
17 0
|
3月前
第五章 循环结构程序设计
第五章 循环结构程序设计
23 0
|
3月前
第五章循环结构(一)
第五章循环结构(一)
|
3月前
第五章:循环结构程序设计
第五章:循环结构程序设计
33 1
|
3月前
第五章:循环结构程序设计(练习题)
第五章:循环结构程序设计(练习题)
82 1
|
3月前
|
Serverless C语言
第四章:分支结构程序设计(完全体)
第四章:分支结构程序设计(完全体)
68 0
|
3月前
|
Serverless
第四章:分支结构程序设计
第四章:分支结构程序设计
44 0
|
3月前
|
机器学习/深度学习 人工智能 Windows
第五章:循环结构程序设计(练习题2.0)
第五章:循环结构程序设计(练习题2.0)
59 0
|
3月前
|
计算机视觉
第四章:分支结构程序设计(练习题)
第四章:分支结构程序设计(练习题)
58 0