20-吴琛-实验三
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三循环控制
实验课程名:高级语言程序设计(C)
专业班级:电气本二学号:20 姓名:吴琛
实验时间:2012-4-18 实验地点:K4-202 指导教师:吴建设
一、实验目的和要求
1. 熟练掌握用while语句、do while语句和for语句实现循环的方法。
2. 掌握在程序设计中用循的方法实现一些常用算法。并进一步学习调试程序的方法。
二、实验内容
1、任务名称
程序求和:1+…+100,填空,实现该功能。
源代码:
#include
void main()
{
int s,i;
s=0;
for(i=1;i<=100;i++)
s=s+i;
printf("1+...+100=%d\n",s);
printf("学号:20 姓名:吴琛实验三第一题");
}
思考:(1)第5行能不能去掉?其作用是什么?
不能,定义和的初始值。
(2)不用for语句,用while语句改写该程序,实现同样的功能。
#include
void main()
{
int s=0,i=1;
while(i<=100)
{
s=s+i;
i++;
}
printf("1+...+100=%d\n",s);
printf("学号:20 姓名:吴琛实验三第一题");
}
运行结果:(需要截图)
运行结果分析:根据for循环的语句形式和while循环语句形式输入即可。
2、任务名称
比较下列两个程序。(验证)
源代码:
/* 第一个程序*/
#include
void main()
{ int i,n,sum=0;
scanf("%d",&i);
n=i;
while(i<=10)
{ sum+=i;
i++;
}
printf("%d+...+10=%d",n,sum);
printf("学号:20 姓名:吴琛实验三第三题");
}
/* 第二个程序*/
#include
void main()
{ int i,n,sum=0;
scanf("%d",&i);
n=i;
do
{ sum+=i;
i++;
} while(i<=10);
printf("%d+...+10=%d",n,sum);
printf("学号:20 姓名:吴琛实验三第三题");
}
分别运行这两题,若输入7,这两个程序的结果分别是多少?若输入12,这两个程序的结果又分别是多少?比较为什么会有这样的区别?
第一个程序循环次数至少零次,即先判断后执行,第二个程序循环次数至少1
次,即先执行后判断。
运行结果:(需要截图)
运行结果:
运行结果:
运行结果:
运行结果分析:输入程序,区分while和do….while语句的区别。
3、任务名称、
预习下面程序,若输入12345,分析输出结果是多少?上机验证。
源代码:
#include
void main( )
{ long data;
scanf("%ld",&data); while(data)
{ printf("%ld,",data%10);
data=data/10;
}
printf("学号:20 姓名:吴琛 实验三第一题");
}
运行结果:(需要截图)
运行结果分析:根据程序输入程序即可。
4、任务名称
实现求Fibonacci 数列的前n 个数。(验证、调试) ⎩⎨
⎧≥+===--3
2
112
1n F F n n F n n n 或
运行程序,写出运行结果;采用单步跟踪技术运行该程序,观察一下变量的变化。
思考:(1)f1、f2这两个变量为什么定义为long int 型?
(2)第5行和第6行的相互作用,你会用这种方式来实现输入吗?
(3)注意第9行的输出“%ld ”中的“1”是字母“L ”的小写形式,不是数
字1。
源代码:
#include
{ long int f1, f2; int i,n;
printf("Input n:"); scanf("%d",&n);
f1=f2=1;
for(i=1;i { printf("%ld\t%ld\n",f1,f2); f1=f1+f2; f2=f2+f1; } printf("学号:20 姓名:吴琛 实验三第四题"); } 运行结果:(需要截图) 运行结果分析:利用循环处理问题,重复利用变量名输入程序,运行即可。 5、任务名称 预习下面程序,写出预习结果并上机验证。(验证) 源代码: #include void main( ) { int i,j,x; { x++; for(j=0;j<3;j++) for(i=0,x=0;i<2;i++) { if(j%2) continue; x++; } x++; } printf("x=%d\n", x); printf("学号:20 姓名:吴琛实验三第五题"); } 思考:用一句话概括if(j%2)语句的作用。 通过选择语句判断下一条语句是否执行,若j除以2的余数为0则跳出循环。 运行结果:(需要截图)