目录

5.1  引例

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

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

5.4  使用 d0—while 语句实现循环结构

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

5.6  循环嵌套

5.7  典型算法举例

5.8  循环程序设计示例

5.1  引例

【例5.1】假设今年我国的人口总数为13亿,若按每年2%增长,计算从现在开始10年内每年人口的数量。

【例5.2】编写程序,计算1-1/4+1/7-1/10+1/13-1/16+...的和,直到某一项的绝对值小于10^-6为止

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

5.2.1  for 语句的基本语法

for 语句的一般形式为:

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

循环体语句;

for 语句的执行过程如下:

① 首先计算表达式1。

② 判断表达式2,若其值为真(非0),则执行循环体语句,然后执行第③步;若值为假(0),结束循环,转到第⑤步执行。

③ 计算表达式3。

④ 返回第②步继续执行。

⑤ 循环结束,继续执行 for 语句的下一条语句。

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

1.  可以应用于计算型的循环

格式如下:

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

循环体语句;

说明:循环变量赋初值是一个赋值语句,用于给循环变量赋初值;循环条件是一个关系表达式,决定何时终止循环(即确定循环的终值);循环变量增量决定循环变量在完成一次循环后如何变化。三部分之间以“  ;” 隔开。

【例5.3】输入一个整数 n,求i=1到n的值

【例5.4】输入一个正整 n,求 n!。

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

格式如下:

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

循环体语句;

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

例如,例5.3的循环语句:

for(i=1;i<=n;i++)

sum=sun+i;

等价于;

i=1;

for(;i<=n;i++)

sum=sum+i;

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

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

循环体语句;

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

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

格式如下:

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

循环体语句;

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

例如,例5.4 的循环语句:

for(i=1;i<=n;i++)

factorial=factorial*i;

等价于:

for (i=1;i<=n;)

{ factorial=factorial * i;

i++ ;

}

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

例如,例 5.3 的程序段:

sum=0;

for(i=1;i<=n;i++)

sum=sum+i;

等价于:

for (sum=0,i=1;i<=n;i++)

sum=sum+i

表达式 sum=0,i=1 为逗号表达式。

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

例如:

for(;(ch=getchar())!='\n';)

printf("%c",ch);

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

例如, 例5.3 的循环语句:

for(i=1;i<=n;i++)

sum=sum+i;

等价于:

for(i=1;i<=n;sum=sum+i;i++);

循环体语句 sum=sum+i; 放到表达式 3 中,与i++构成一个逗号表达式,此时循环体语句实际为一个空语句“;”(单独一个“;”称为空语句)。

5.2.2  for 循环使用示例

【例.5.5】编写程序,输入一个整数 n,计算 1-1/4+1/7-1/10+1/13-1/16+...的前 n 项之和。

【例5.6】编写程序,输入 10 个数,输出其中的最大数。

【例 5.7】编写程序,输出所有的水仙花数。

【例5.8】编写程序,由键盘输入一个正整数,判断该数是否为完数

【例5.9】统计由键盘中输入的若干个字符中,大写英文字母、小写英文字母、数字字符和其他字符的个数。

【例5.10】任意输入一行小写字母,将他们转换成大写字母后输出。

【例5.11】由键盘输入3个数字,将其组成一个整型数并输出。

【例5.12】编写程序,由键盘输入一个正整数,判断其是否为素数。

(运行结果1)

(运行结果2)

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

5.3.1   while 语句的基本语法

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

while(表达式)

循环体;

第一步:计算表达式的值,若表达式的值为“真”,则执行第二步;若表达式的值为“假”,则转到第四步。

第二步:执行循环体语句。

第三步:返回第一步。

第四步:结束循环,执行 while 语句的下一条语句。

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

5.3.2    while 循环使用示例

【例5.13】计算 sum=(n=1到 100的求和)的值。

【例5.14】输入一个正整数 n,计算 n!。

【例5.15】由键盘输入一串字符,分别 统计输入字符中数字字符、字母字符及其他字符的个数。

5.4  使用 d0—while 语句实现循环结构

5.4.1  do—while 语句的基本语法

do—while  语句的一般形式如下:

do

循环体

while (表达式);

第一步:执行循环体语句。

第二步:计算表达式的值,若表达式的值,若表达式的值为“真”(非0),返回第一步;若表达式的值为“假”(0),则执行第三步。

第三步:结束循环,执行 do—while语句的下一条语句。

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

5.4.2  do—while  循环使用示例

【例5.16】使用do—while语句计算sum=(n=1到 100的求和)的值。

【例5.17】求两个自然数的最大公约数和最小公倍数。

【例5.18】输入一个整数,统计该数的位数。

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

5.5.1     break语句

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

break 语句的一般形式如下:

break;

当 break 语句用于在循环语句中时,可使程序终止循环语句的后继语句。

通常 break 语句总是与 if 语句一起配合使用,既满足条件时便跳出循环。

【例5.19】分析下面程序的运行结果。

【例5.20】编写程序,由键盘输入一个正整数,判断是否为素数。

(运行结果1)

(运行结果2)

【例5.21】从键盘输入一批学生的成绩(以负数为结束标志),计算平均分,并统计不及格成绩的个数。

5.5.2  continue 语句

continue 语句的作用是跳过循环体中 continue 后面的语句,继续下一次循环,continue 语句只能用在循环语句中,常与 if 语句一起使用。

continue 语句的一般形式如下:

continue;

【例5.22】把1~100之间能被7整除的数,以每行 5 个的形式在屏幕上输出。

【例5.23】分析下面程序的运行结果。

5.5.3  goto 语句

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

【例5.24】使用 goto 语句 计算n=1到100的求和的值。

5.6  循环嵌套

使用循环嵌套时,注意以下几点:

(1)外循环执行一次,内循环要执行一轮。即外循环执行一次,内循环一直要执行到条件不满足时为一轮;再执行外循环一次,内循环又一直执行到条件不满足时为二轮;如此重复执行,知道外循环条件不满足时,整个循环嵌套结束。

(2)循环嵌套格式中的内循环体不允许出现交叉,即外循环要完全包含内循环。

(3)循环嵌套时,内循环中使用 break 语句和 continue 语句时,只影响包含他们的内循环,与外循环无关。

【例5.25】求1!+2!+3!+...+10!。

【例5.26】编写程序,输出乘法口诀表。

【例5.27】求100以内的素数。要求每行输出10个。

【例5.28】将 10~20 之间的正整数分解质因数。例如,12可分解2*2*3。

5.7  典型算法举例

5.7.1    递推法

【例5.29】猴子吃桃问题:猴子第一天摘下若干个桃子,吃了一半,还觉得不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上时,只剩下一个桃子了。问第一天共摘了多少个桃子。

【例5.30】

5.7.2  迭代法

【例5.31】用牛顿迭代法求方程附近的根

5.7.3   穷举法

【例5.32】搬砖问题:36块砖,36人搬。男搬4、女搬3、俩小孩抬一砖,要求一次全搬完,问男、女、小孩若干?

【例5.33】编写程序,判断由1,2,3,4四个数字能组成多少个不互不相同无重复数字的三位数?输出这些数。

5.8  循环程序设计示例

【例5.34】编程输出如下图形

【例3.35】猜数字游戏:由计算机随机产生一个10~80之间大的数据,然后由用户进行猜数,在5次之内猜中则成功,否则给出大小提示。猜5次之后结束程序。

【例5.36】编写程序输出100~1000内的回文素数。回文素数是指即是回文数也是素数的整数。例如,131即是回文数也是素数,因此131是回文素数。

【例5.37】在所有三位整数中找出平方中连续的三位数是该数的本省的数。例如,250的平方是62500,250便是所要找的一个满足条件的三位整数。

第五章;顺序结构程序设计相关推荐

  1. C语言 第五章 选择结构 答案,c语言第五章 选择结构程序设计(习题册答案).doc

    第五章 选择结构程序设计 基础练习(A) 一.填空题 1.关系表达式的运算结果是 逻辑 值.C语言没有逻辑型数据,以 1 代表"真",以 0代表"假". 2.逻 ...

  2. c语言顺序结构程序设计第4章答案,第4章顺序结构程序设计习题及答案.doc

    第4章顺序结构程序设计习题及答案 第4章 顺序结构程序设计 4-1 C语言的控制语句有哪些? 答:C语言有九条控制语句: 条件语句:if-else语句. 开关语句:switch语句. 当循环语句:wh ...

  3. C语言顺序结构程序设计PPT,C语言习题集与实验指导 教学课件 伍鹏、杜红、王圆妹、邓绍金 第3章 顺序结构程序设计.pdf...

    [摘要]第3章 顺序结构程序设计 第3章 顺序结构程序设计 当你对C语言程序设计有了一定了解和掌握后, 在处理一些简单的任务时,若想根据程序书写的过程 顺序执行程序,这时应该如何处理呢? •顺序结构 ...

  4. C语言输入函数换行符赋给变量B,C语言程序设计第3章顺序结构程序设计.pptx-资源下载在线文库www.lddoc.cn...

    C语言程序设计第3章 顺序结构程序设计.pptx 第 6章 数组第 7章 函数第 8章 结构体.共用体和枚举类型第 9章 指针第 10章 文件目录页 Contents page第 1章 初识 C语言第 ...

  5. c语言如何实现一只蜗牛爬的循环,[工程科技]第五章 循环结构程序设计c语言程序设计.ppt...

    [工程科技]第五章 循环结构程序设计c语言程序设计 第5章 循环结构程序设计 while语句 while语句 do while语句 do while语句 do while语句 do while语句 d ...

  6. C语言程序设计第五章循环结构程序设计总结

    5.1 引例 例5.1计算人口有规律增长的数量. 1.文字描述 2.流程图 3.代码及运行结果 例5.2使用while循环有规律累加值为止的编写程序 1.文字描述 2.流程图 3.代码及运行结果 . ...

  7. 洛谷 深基 第1部分 语言入门 第2章 顺序结构程序设计

    P5703 [深基2.例5]苹果采购 [深基2.例5]苹果采购 - 洛谷 P5703 [深基2.例5]苹果采购(python3实现) P5703 [深基2.例5]苹果采购(python3实现)_青少年 ...

  8. 【洛谷】洛谷深基学习记录 第二章 顺序结构程序设计

    一.知识积累 1.自动类型转换 #include<iostream> using anmespace std; int main(){int a=1,b=2; /*int指的是数据类型中的 ...

  9. 第五章 循环结构程序设计习题(2)

    目录 3.阅读程序题. (20)文字 (20)代码 (20)运行结果 4.完善程序题. (5)文字 (5)代码 (5)运行结果 ​ (6)文字描述 (6)代码 (6)运行结果 (8)文字描述 (8)代 ...

  10. 计算机导论算法设计,计算机导论精品PPT-第五章 算法与程序设计.ppt

    <计算机导论精品PPT-第五章 算法与程序设计.ppt>由会员分享,可在线阅读,更多相关<计算机导论精品PPT-第五章 算法与程序设计.ppt(52页珍藏版)>请在人人文库网上 ...

最新文章

  1. java swing 获取text_如何在Java Swing中将文本文件读入jtextarea
  2. 在虚拟机中的Nginx的安装
  3. golang中的strings.TrimPrefix
  4. 042_CSS3字体
  5. 【Linux】一步一步学Linux——reset命令(268)
  6. Spaly_Tree 模版
  7. 【树链剖分】Milk Visits G(luogu 5838)
  8. 为Cubieboard打造完美Debian系统
  9. 小程序开发过程注意事项
  10. linux vi 撤销与恢复,vi撤销与恢复
  11. jdk Integer 具体实现
  12. @Import注解的作用
  13. (九) LBP特征提取
  14. 从零开始用android studio
  15. STM32G431控制窗帘电机-窗帘电机拆机
  16. 案例研究:中国金融科技50强之“安心de利”风控模式
  17. java变量与常量的区别_Java变量与常量
  18. Run-Time Check Failure #3 - The variable 'p' is being used without being initialized.
  19. stm32驱动sd卡(1)
  20. qt 多线程、信号槽、moveToThread等机制之拨乱反正

热门文章

  1. TI AM335x系列处理器的工业级主板-BCM335x开发板
  2. Android-ScrollView(基本实现,顶部判断,底部判断,底部加载更多)
  3. 使用wkhtmltopdf导出多个pdf后下载压缩包
  4. SQL数据库字符串与时间相互转换
  5. Xcode Cloud试用
  6. NC休假、加班、销假合并报表sql
  7. cst操作——做倒角、走线、螺旋、两种局部拉伸的方法、参数扫描
  8. 使用 Python 可以做什么?
  9. 生活娱乐 格力空气能热水器怎么样
  10. Pytorch离线下载并使用torchvision.models预训练模型