循环结构程序设计C语言程序实验报告.docx
《循环结构程序设计C语言程序实验报告.docx》由会员分享,可在线阅读,更多相关《循环结构程序设计C语言程序实验报告.docx(11页珍藏版)》请在冰豆网上搜索。
![循环结构程序设计C语言程序实验报告.docx](https://file1.bdocx.com/fileroot1/2023-5/28/3dc86405-4a72-40d6-8d15-619100670d2b/3dc86405-4a72-40d6-8d15-619100670d2b1.gif)
循环结构程序设计C语言程序实验报告
安徽工程大学
高级语言程序设计实验报告
班级姓名同组者/成绩
日期2019.10.17指导教师张义
实验名称循环结构程序设计
一、实验目的
1.熟悉使用while语句、do-while语句和for语句实现循环的方法。
2.熟悉在程序设计中用循环的方法实现各种算法。
3.理解程序中循环结构语句的执行过程。
二、实验内容
1.程序填空。
分别用for、while和do-while语句编写一个C程序,计算并输出数列1,3,5.…,2n-1,…的前n项之和,其中,n由键盘输入。
2.编程并上机调试运行。
(1)求1!
+2!
+3!
+…+n!
(n从键盘输入)。
(2)打印以下图案(用循环实现):
*
***
*****
*******
*****
***
*
(3)猴子吃桃,猴子第一天摘若干桃子,当即吃了一半,又多一个,又多一个,第二天吃了剩下桃子一半又多一个。
以后每天早上都吃前一天剩下的一半多一个,这样到了第十天,只剩下一个桃子。
问第一天共摘了多少个桃子?
(4)打印九九乘法表。
(5)有算式s=1+12+123+1234+12345+…,从键盘输入n,根据已知算式求前n项之和。
如n=3,则s=1+12+123;n=5,则s=1+12+123+1234+12345。
(6)从键盘输入一串数字字符,将其转换成对应的整数。
如输入字符串“368”,则输出整数368。
*思考题
3.在实验内容1的程序
(1)输入时,若在“for(i=1;i<=k;____)”语句后多输入一个分号,即“for(i=1;i<=k;____);”,分析程序,写出预期结果。
4.在实验内容1的程序
(2)输入时,若while语句后的{}省略,即
while(____)
s+=i;
______;
分析程序,写出预期结果。
5.简述while语句和do-while语句的区别。
三、算法流程图或实验步骤(可根据需要增删、修改)
1.
(1)for语句实现:
算法流程图:
#include
voidmain()
{
longs,n,k,i;
scanf("%ld",&n);
k=2*n-1;
s=0;
for(i=1;i<=k;i=i+2)
s+=i;
printf("1+3+…+%ld=%ld\n",k,s);
}
实验步骤:
Files→New→Files→C++sourceFile→文件名:
program4011.c→位置:
E:
\123\→确定→完善源程序→Buid→是→确认0error(s)0warning(s)后→BuidExecute→查看运行结果
(2)while语句实现:
算法流程图:
#include
voidmain()
{
longs=0,n,i=1;
scanf("%ld",&n);
while(i<=2*n-1)
{
s+=i;
i=i+2;
}
printf("1+3+…+%ld=%ld\n",2*n-1,s);
}
实验步骤:
Files→CloseWorkspace→Files→New→Files→C++sourceFile→文件名:
program4012.c→位置:
E:
\123\→确定→输入代码→Buid→是→确认0error(s)0warning(s)后→BuidExecute→查看并验证运行结果
(3)do-while语句实现:
算法流程图:
#include
voidmain()
{
longs=0,n,i=1;
scanf("%ld",&n);
do
{
s+=i;
i=i+2;
}
while(i<=2*n-1);
printf("1+3+…+%ld=%ld\n",2*n-1,s);
}
实验步骤:
Files→CloseWorkspace→Files→New→Files→C++sourceFile→文件名:
program4013.c→位置:
E:
\123\→确定→输入代码→Buid→是→确认0error(s)0warning(s)后→BuidExecute→查看并验证运行结果
2.
(1)算法流程图:
#include
voidmain()
{
intn,s=0,i,j,t;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
t=1;
for(j=1;j<=i;j++)
t=t*j;
s=s+t;
}
printf("%d\n",s);
return0;
}
实验步骤:
Files→CloseWorkspace→Files→New→Files→C++sourceFile→文件名:
program4021.c→位置:
E:
\123\→确定→输入代码→Buid→是→确认0error(s)0warning(s)后→BuidExecute→查看并验证运行结果
(2)算法流程图:
#include
voidmain()
{
inti,j,k;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i;j++)
printf("");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++)
printf("");
for(k=1;k<=7-2*i;k++)
printf("*");
printf("\n");
}
}
实验步骤:
Files→CloseWorkspace→Files→New→Files→C++sourceFile→文件名:
program4022.c→位置:
E:
\123\→确定→输入代码→Buid→是→确认0error(s)0warning(s)后→BuidExecute→查看并验证运行结果
(3)算法流程图:
#include
intmain()
{
intday,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2;/*第1天的桃子数是第2天桃子数加1后的2倍.*/
x2=x1;
day--;
}
printf("total=%d\n",x1);
return0;
}
实验步骤:
Files→CloseWorkspace→Files→New→Files→C++sourceFile→文件名:
program4023.c→位置:
E:
\123\→确定→输入代码→Buid→是→确认0error(s)0warning(s)后→BuidExecute→查看并验证运行结果
(4)算法流程图:
#include
intmain(){
inti,j;
for(i=1;i<=9;i++){
for(j=1;j<=9;j++)
printf("%d*%d=%2d\t",i,j,i*j);
printf("\n");
}
return0;
}
实验步骤:
Files→CloseWorkspace→Files→New→Files→C++sourceFile→文件名:
program4024.c→位置:
E:
\123\→确定→输入代码→Buid→是→确认0error(s)0warning(s)后→BuidExecute→查看并验证运行结果
(5)算法流程图:
#include
voidmain()
{
intn=0,i=1,m=0,sun=0;
printf("请输入一个数");
scanf("%d",&n);
while(i<=n)
{
m=m*10+i;
sun+=m;
i++;
}
printf("%d",sun);
}
实验步骤:
Files→CloseWorkspace→Files→New→Files→C++sourceFile→文件名:
program4025.c→位置:
E:
\123\→确定→输入代码→Buid→是→确认0error(s)0warning(s)后→BuidExecute→查看并验证运行结果
(6)算法流程图:
#include
voidmain()
{
charstr[20];
scanf("%s",str);
printf("%d\n",atoi(str));
}
实验步骤:
Files→CloseWorkspace→Files→New→Files→C++sourceFile→文件名:
program4026.c→位置:
E:
\123\→确定→输入代码→Buid→是→确认0error(s)0warning(s)后→BuidExecute→查看并验证运行结果
3.
(1)算法流程图:
#include
voidmain()
{
longs,n,k,i;
scanf("%ld",&n);
k=2*n-1;
s=0;
for(i=1;i<=k;i=i+2);
s+=i;
printf("1+3+…+%ld=%ld\n",k,s);
}
(2)实验步骤:
Files→CloseWorkspace→Files→New→Files→C++sourceFile→文件名:
program4031.c→位置:
E:
\123\→确定→输入修改后的代码→Buid→是→查看编译结果
4.
(1)算法流程图:
#include
voidmain()
{
longs=0,n,i=1;
scanf("%ld",&n);
while(i<=2*n-1)
s+=i;
i=i+2;
printf("1+3+…+%ld=%ld\n",2*n-1,s);
}
(2)实验步骤:
Files→CloseWorkspace→Files→New→Files→C++sourceFile→文件名:
program4031.c→位置:
E:
\123\→确定→输入修改后的代码→Buid→是→查看编译结果→确认0error(s)0warning(s)后→BuidExecute→查看并验证运行结果
四、实验结果及分析
1.详情见第三项算法流程图
2.详情见第三项算法流程图
3.预期结果:
编译时产生错误
4.预期结果:
程序虽然编译没有错误,但程序无效,并不能起到原题所需要的功能。
5.while和do…while的区别:
while:
先判断再执行,若条件不成立,则循环体一遍都不执行
do...while:
先执行再判断,若条件不成立,则循环体至少执行一遍
五、实验体会、问题讨论
1.while和do…while的区别;
2.如果控制的语句不止一条,则需要用{}括起来;
3.for()后无;
教师签字:
批改日期:
说明:
1、对于每一个实验项目,实验报告(含预习)一般应包含以下内容:
第一部分——预习后的书面汇报。
其主要内容应包含:
*一、实验目的;*二、实验内容;三、算法流程图或实验步骤。
实验目的和实验内容参见实验教材或老师下发的内容。
第二部分——实验结果的书面汇报。
其主要内容应包含:
*四、实验结果及分析(含实验测试输入数据,实验运行结果截图,用简洁的语言总结实验,汇报是否达到实验目的);*五、实验体会、问题讨论(谈体会或感想、提出建议或意见、讨论与实验有关的且自己感兴趣的问题、回答课后思考题)。
第三部分——附录:
实验源程序。
提前编写好程序,实验时调试并完善。
2、实验报告写在教务处下发的实验报告纸上,每次实验完成后课代表收齐统一交给老师。
实验源程序写在单独的一个本子上,实验课时带到机房,供上机调试使用,实验教师抽查完成情况。