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