指导书实验三循环结构1.docx
- 文档编号:3845017
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:10
- 大小:161.21KB
指导书实验三循环结构1.docx
《指导书实验三循环结构1.docx》由会员分享,可在线阅读,更多相关《指导书实验三循环结构1.docx(10页珍藏版)》请在冰豆网上搜索。
指导书实验三循环结构1
实验三、循环结构
一、实验目的
用循环结构解决实际问题;
二、知识点回顾
●for语句是C语言中最常用的循环结构。
一般形式为:
for(表达式1;表达式2;表达式3)语句;
执行过程如下:
1、计算表达式1。
2、计算表达式2。
如为“真”(非0),则执行for后的语句;如为“假”,则跳出循环体。
3、如表达式2为“真”,则执行完循环体后,计算表达式3的值。
转回步骤2。
最常用的形式是:
for(循环变量赋初值;判断条件;循环变量增值)循环体语句;
●while语句用来实现“当型”循环结构,就是当满足某个条件时进行循环。
形式为:
while(表达式)循环体语句;
当表达式为“真”(非0值)时反复执行后面的语句。
特点是先判断,后执行。
一般来说,while中的语句是复合语句,用{}括起来,叫做循环体。
●do-while语句用来实现“直到型”循环,就是进行循环直到某个条件不满足。
形式为:
do循环体语句;
while(表达式);
当表达式为“真”(非0值)时反复执行do后面的语句,特点是先执行,后判断(注意区分与while语句的区别)。
●while语句和do-while语句可以很容易的实现互相转换。
一般情况下,如果while语句和do-while语句的循环体部分一样,则它们的运行结果也是一样的。
但是,如果判断条件一开始就不满足,则运行结果不一样,因为此时while语句不执行循环体,而do-while语句要执行一次。
三、实验内容一(验证及程序分析)
Eg3-1:
求1+2+3+4+5+„„+100累加和
【说明:
】本题要求完成经典的C算法——累加求和,当我们把计算方法教给计算机后,剩下计算的问题就让计算机来算好了,计算机会像一头老黄牛一样不厌其烦地做事情。
以后会有相似的算法如“连乘”,“求级数”,“求Π”,“求阶乘”等。
(1)源程序:
#include
voidmain()
{
inti,sum=0;
for(i=1;i<100;i++);
sum=sum+i;/*累加求和,分析循环起止条件!
!
*/
printf(“sum=%d\n”,sum);
}
(2)在VC++编辑环境下编辑源程序。
#include
voidmain()
{
inti,sum=0;
for(i=1;i<=100;i++)
sum=sum+i;/*累加求和,分析循环起止条件!
!
*/
printf("sum=%d\n",sum);
}
(3)编译直到程序没有错误。
(4)运行结果:
Eg3-2:
输入一组小于10000的整数,统计其中奇数偶数个数,直到输入的数大于10000为止。
(仔细读题,注意终止条件)
(1)算法分析:
可设一整型变量x,循环的输入整数的值,若x%2==0即为偶数,否则是奇数。
提示:
循环条件可在while语句后的括号中出现,也可以用break语句控制。
(2)根据分析结果写出源程序。
#include
voidmain()
{
intx,xo=0,xj=0;/*将偶数个数xo与奇数个数xj赋0值*/
printf("请输入一个不大于10000的整数(超过则程序结束):
");
scanf("%d",&x);/*先输入一个整数*/
while(x<10000)/*输入不是回车时循环*/
{
if(x%2==0)
{
xo=xo+1;
printf("%d是偶数\n",x);
}
else
{
xj=xj+1;
printf("%d是奇数\n",x);
}
scanf("%d",&x);/*循环输入其余整数*/
}
printf("输入的偶数共有%d个,输入的奇数共有%d个\n",xo,xj);
}
以上程序调试运行成功后,改为for循环结构
#include
voidmain()
{
intx,xo=0,xj=0;/*将偶数个数xo与奇数个数xj赋0值*/
printf("请输入一个不大于10000的整数(超过则程序结束):
");
scanf("%d",&x);/*先输入一个整数*/
for(x=1;x<10000;x++)/*输入不是回车时循环*/
{
if(x%2==0)
{
xo=xo+1;
printf("%d是偶数\n",x);
}
else
{
xj=xj+1;
printf("%d是奇数\n",x);
}
scanf("%d",&x);/*循环输入其余整数*/
}
printf("输入的偶数共有%d个,输入的奇数共有%d个\n",xo,xj);
}
请将程序运行结果粘贴至下面:
三、实验内容二(综合及设计类)
Eg3-3:
输入一个整数n,求n!
用循环结构编程:
请将源程序及运行结果粘贴至下面:
源程序:
#include
voidmain()
{
inti,sum=1,n;
printf("请输入一个数n:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum*i;/*累乘求积,分析循环起止条件!
!
*/
printf("sum=%d\n",sum);
}
输入8;
运行结果:
Eg3-4:
输出10~20000之内的所有的质数,并统计输出其个数。
提示:
算法请参考课件。
统计个数的方法:
每当找到一个质数将其输出时,个数就加1个。
(双重循环)
请将程序及运行结果粘贴至下面:
程序:
#include
voidmain()
{
inti,x,xo=0,xj=0;/*将质数个数xo与素数个数xj赋0值*/
for(x=10;x<=20000;x++)/*输入不是回车时循环*/
{
for(i=3;i {if(x%i==0) { xo=xo+1; printf("%d是质数\n",x);break; } else { xj=xj+1; printf("%d是素数\n",x);break; } } } printf("10~20000的质数共有%d个,素数共有%d个\n",xo,xj); } 运行结果: Eg3-5: 编写程序计算: 从公元1年至今年(包含2012年),共经历了多少个闰年,多少个平年。 算法分析: 用一个从1到2012的循环,进行验证,如果满足闰年的条件,即能被4整除但不能被100整除,或能被400整除,则为闰年;否则为平年。 循环中可参照EG3-4中,用两个变量分别存放平年与闰年的数目。 (闰年的判断参考实验二) (1)请将源程序粘贴到下面。 #include voidmain() { intx,xo=0,xj=0;/*将闰年个数xo与平年个数xj赋0值*/ for(x=1;x<=2000;x++)/*输入不是回车时循环*/ { if(x%4==0&&x/100==! 0||x/100==0&&x/400==0) { xo=xo+1; printf("%d是闰年\n",x); } else { xj=xj+1; printf("%d是平年\n",x); } } printf("公元1年到公元2000年中\n闰年共有%d个,平年共有%d个\n",xo,xj); } (2)程序运行结果抓图至下方: Eg3-6: 编程: 要求打印九九表如下格式: 1*1=11*2=2…..1*8=81*9=9 2*1=22*2=4……2*8=16 ….. 9*1=9 (1)请将源程序粘贴到下面。 #include voidmain() { inti,j,k; for(i=1;i<10;i++) { for(j=1;j<=10-i;j++) { k=j*i; printf("%d*%d=%d\t",i,j,k); } printf("\n"); } } (2)程序运行结果:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指导书 实验 循环 结构