实验三 循环结构程序设计(答案).doc
文本预览下载声明
实 验 教 案
课题(项目)名称: 实验三 循环结构程序设计 计划学时: 2学时 实验类型: 1.演示性√ 2.验证性√ 3.综合性√ 4.设计性√ 5.其它□ 授课日期: 年 月 日 第 周 星期 第 节 一、实验目的
(1) 掌握while、do~while、for语句的使用。
(2) 掌握循环体内使用break、continue语句的作用。
(3) 掌握循环及嵌套循环结构的程序设计方法。
二、实验准备
1.C语言实现循环的方法
① goto 和 if 构成的循环:由于goto是无条件转向,不符合结构化程序设计思想,所以不建议使用。
② while循环:实现“当型”循环,首先判断循环条件,当条件为真,执行循环体,再判断循环条件…… 此种循环有可能一次也不执行循环体。(当条件成立的时候执行循环体。如果待解决的问题不知道循环的具体重复执行的次数,只知道循环的结束条件时,经常采用这种循环处理结构。)
例如:从键盘输入若干个整数,当输入0时结束输入并求这些整数的和。
#includestdio.h
void main()
{
int num,total;
total=0;
scanf(“%d”,num);
while(num!=0)
{total+=num;
scanf(“%d”,num);
}
printf(“%d\n”,total);
}
③ do~while循环:实现“直到型”循环,与while循环的区别是先执行循环体,再判断循环条件,当循环条件为真,再执行循环体…… 此种循环至少执行一次循环体。
例如:统计从键盘输入的一行非空字符的个数。
#includestdio.h
void main()
{
char c;
int n=0;
do{
c=getchar();
n++;
}while(c!=’\n’);
}
④ for循环:与while循环类似,一般用于知道循环变量初值、终值及步长值的循环。
2.break 和continue 语句
① break 语句: 可用在循环体或switch语句中,作用是跳出其所在的控制结构。若是在循环体中,则是跳出其所在的循环,使得循环不止一个出口。
② continue语句:只能用在循环体中,其作用是结束本层本次循环,注意不是退出循环。(在循环体中的continue语句执行之后,其后的语句均不再执行。)
例如:输出1—1000之间能被3、5、7同时整除的数。
#includestdio.h
void main()
{int n;
for(n=1;n=1000;n++)
{
if(n%3!=0)
continue;
if(n%5!=0)
continue;
if(n%7!=0)
continue;
printf(“%8d”,n);
}
printf(“\n”);
}
3.阅读以下程序,并分析其功能,调试运行程序后再分析其运行结果。
① 掌握三种方法求1到100的累加和。
文件名为 ex3-1-1.c ,内容如下:
# include stdio.h
main()
{ int sum=0,i=1;
while(i=100)
sum+=i++; // 等价于:{ sum=sum+i; i++; }
printf(sum is %d\n,sum);
}
文件名为 ex3-1-2.c ,内容如下:
# include stdio.h
main()
{ int sum=0,i=1;
do
sum+=i++;
while(i=100);
printf(sum is %d\n,sum);
}
文件名为 ex3-1-3.c ,内容如下:
# include stdio.h
main()
{ int sum=0,i;
for(i=1;i=100;i++)
sum+=i;
printf(sum is %d\n,sum);
}
② 程序二,程序文件名为ex3-2.c 。(掌握递推算法(求值))
# include stdio.h
# include math.h
void main()
{ int s=1;
float n=1,t=1,pi=0;
while(fabs(t)1e-6) //当前项实数t的绝对值大于1*10-6则执行循环体
{ pi=pi+t; //累加当前项
n=n+2; //推算下一项的分母
s=-s; //推算下一项的符号
t=s/n; //计算下一项的值
}
pi=pi*4;
printf(pi= %f\n,pi);
}
③ 程序三,程序文件名为 e
显示全部