第5章 循环结构程序设计
- 格式:ppt
- 大小:542.00 KB
- 文档页数:44


第5章 循环结构程序设计
通过本章实验作业应达目标
1.熟悉while、for、do_while、break、continue语句的作用与使用规范,能使用while语句、for语句、do_while语句实现循环结构;
2.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。
3.进行算法设计训练,能综合所学控制结构语句解决一般问题。
本章必须上交作业
程序5_1.c、5_2.c、5_3.c、5_5.c、5_6.c、5_7.c、5_8.c、5_11.c上传至http://121.251.227.27:8080/c
1.循环设计
循环是在循环条件为真时重复执行一组循环体语句的控制结构,是计算机解题的一个基本结构。循环控制有两种基本方法:计数法和标志法。
(1)计数器控制的循环
事先准确地知道循环次数,因此设计一个循环控制变量,由变量值来控制循环次数。每循环一次,循环变量的值会递增(增值通常为1或-1),当其值达到终值时结束循环。
(2)标志控制的循环
事先不知道准确的循环次数,由某一目标值标记循环的结束。如,例3-23中以变量sum的值达到标记值1000作为循环的结束,例3-24中就是以键盘输入一个负数为标记结束循环。
2.基本算法
程序设计的首要工作是算法设计,离开了算法也就没有了程序。算法,是指完成某一项工作而采取的方法和步骤,具体到程序设计,是对解题过程的准确而完整的描述,并用一种程序设计语言的来实现。
循环主要用来解决程序设计中两类基本的算法:穷举和迭代。
1. 穷举算法
穷举的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。穷举是一种重复型算法,其核心是设计循环,在循环体中依次测试。
例1 输入两个正整数x和y,求其最大公约数。
#include
void main()
{
int x,y,i,flag;
flag=1; /*flag是标志变量,当其值为0时表示已找到公约数*/
五、循环结构程序设计
本章概述:
以笔试和上机两种形式考核。笔试中,多出现在选择题第20-23题。填空题第8、9题。分值约占12%。上机中,三种题型中均有体现,抽中几率约为37%。考生要熟练掌握。
大纲要求:
1.for循环结构。
2.while和do-while循环结构。
3.continue语句和break语句。
4.循环的嵌套。
重点难点:
1.for循环结构。
2.continue语句和break语句。
3.循环的嵌套。
考点分析:
while 语句
while 语句一般形式:
while (条件表达式)
{
循环体
}
while 语句执行过程:
先判断条件是否成立,只要条件成立则一直执行循环体语句,直到条件不成立则结束循环,结束while语句。
说明:
(1)while语句的特点是先判断,再执行。因此,若条件表达式的值一开始就为“假”,那么循环体一次也不执行。
(2)当循环体为多个语句组成,必须用{}括起来,形成复合语句。
(3)在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。
试题解析
1.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,
以下正确的程序段是(A)
A)while((ch=getchar())!=′N′)printf("%c",ch);
B)while(ch=getchar()!=′N′)printf("%c",ch);
C)while(ch=getchar()==′N′)printf("%c",ch);
D)while((ch=getchar())==′N′)printf("%c",ch);
解析:while语句的功能是:计算表达式的值,如为真,则执行循环体语句,执行完毕后,再计算表达式的值,若仍为真,则重复执行循环体语句。直到表达式的值为假时,结束考点1 循环。ch=getchar()应加一个括号,表示输入字符的函数。
C程序设计(第四版)(谭浩强)第五章课后习题答案
循环结构程序设计
P115 5.1 用while计算1至100的合.
#include
int main()
{
int i=1,sum=0;
while(i<=100) //对于需要运算的值,要么在运算前可以赋值,要么一开始要指定.
{
sum=sum+i;
i++;
}
printf("The sum is %d .\n",sum);
return 0;
}
P117 5.2 用do-while来做1至100的合.
#include
int main()
{
int i=1,sum=0;
do // do-while可以做的事,用while都可以做到.
{ //do-while先做一次执行,再判断条件,而while却是先做一个条件,再执行.
sum=sum+i;
i++;
}while(i<=100);
printf("The sum is %d .\n",sum);
return 0;
}
P118 5.3 比较do-while与while的差别.
#include
C程序设计(第四版)(谭浩强)第五章课后习题答案
int main()
{
int i,sum=0;
printf("Please input a number :");
scanf("%d",&i); //输入10以内,正常,11的话,则sum仍然是0.
while(i<=10)
{
sum=sum+i;
i++;
}
printf("The sum of 1-10 is %d .\n",sum);
return 0;
}
#include
int main()
{
int i,sum=0;
printf("Please input a number :");
scanf("%d",&i); //输入10以内,结果一样.输入11的话,先做操作,所以sum=11.
第四章第3节 循环结构的程序设计
For循环
在实际应用中,会经常遇到许多有规律性的重复运算,这就需要掌握本章所介绍的循环结构程序设计。在Pascal语言中,循环结构程序通常由三种的循环语句来实现。它们分别为FOR循环、当循环和直到循环。通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。因此,重复语句是由循环体及重复终止条件两部分组成。
一、计数循环(for/to/do)语句的一般格式
for := to do ;
for := downto do ;
其中for、to、downto和do是Pascal保留字。表达式1 与表达式2的值也称为初值和终值。
二、For语句执行过程
①先将初值赋给左边的变量(称为循环控制变量);
②判断循环控制变量的值是否已"超过"终值,如已超过,则跳到步骤⑥;
③如果末超过终值,则执行do后面的那个语句(称为循环体);
④循环变量递增(对to)或递减(对downt o)1;
⑤返回步骤②;
⑥循环结束,执行 for 循环下面的一个语句。
三、说明 ①循环控制变量必须是顺序类型,初值和终值可以是常量、变量、表达式,且与控制变量类型一致。例如,可以是整型、布尔型、字符型等,但不能为实型。
②循环控制变量的值递增或递减的规律是:选用to则为递增;选用downto则递减。
③所谓循环控制变量的值"超过"终值,对递增型循环,"超过"指大于,对递减型循环,"超过"指小于。
④循环体可以是一个基本语句,也可以是一个复合语句。
⑤循环控制变量的初值和终值一经确定,循环次数就确定了。但是在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死环。建议不要在循环体中随意修改控制变量的值。
⑥初值与终值在开始重复之前计算,在重复执行过程中,其值不受影响;若初值“超过”终值,不执行循环,循环的次数为0。