c语言实验报告三答案(完整版)
- 格式:doc
- 大小:456.00 KB
- 文档页数:6
实验三 循环控制
实验课程名:高级语言程序设计(C)
专业班级:
学号:
姓名:
实验时间: 实验地点: 指导教师:
一、实验目的和要求
1. 熟练掌握用while语句、do while语句和for语句实现循环的方法。
2. 掌握在程序设计中用循的方法实现一些常用算法。并进一步学习调试程序的方法。
二、实验内容
1、任务名称程序c40101.c求1+…+100,填空,实现该功能。
(1、)源代码:#include
int main()
{
int s,i;
s=0;
for(i=1;i<=100;i++)
s=s+i;
printf("1+2+...+100=%d\n",s);
return 0;
}
运行结果:(需要截图)
(2、)源代码:#include
int main()
{
int s=0,i=1;
while(i<=100)
{s+=i;
i++;}
printf("1+2+...+100=%d\n",s);
return 0;
}
运行结果:
运行结果分析:
2、任务名称: 分别运行这两个程序,若输入7,这两个程序的结果分别是多少?若输入
12,这两个程序的结果又分别是多少?比较为什么会有这样的区别?
(1、)源代码:#include
void main()
{ int i,n,sum=0;
scanf("%d",&i);
n=i;
while(i<=10)
{ sum+=i;
i++;
}
printf("%d+...+10=%d\n",n,sum);
}
运行结果:(需要截图)
(2、)源代码:#include
int main()
{ int i,n,sum=0;
scanf("%d",&i);
n=i;
do
{ sum+=i;
i++;
} while(i<=10);
printf("%d+...+10=%d\n",n,sum);
return 0;
}
运行结果:
运行结果分析:
3、任务名称:下面程序,若输入12345,分析输出结果是多少?
源代码:#include
void main( )
{ long data;
scanf("%ld",&data);
while(data)
{ printf("%ld,",data%10);
data=data/10;
}
}
运行结果:(需要截图)
运行结果分析:
4、任务名称:程序c40104.c实现求Fibonacci数列的前n个数。(验证、调试)
321121nFFnnFnnn或
运行程序,写出运行结果;采用单步跟踪技术运行该程序,观察一下变量的变化。
源代码:#include
void main( )
{ 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;
}
}
运行结果:
运行结果分析:
5、任务名称:写出预习结果并上机验证。(验证)
源代码:#include
void main( )
{ int i,j,x;
for(i=0,x=0;i<2;i++)
{ x++;
for(j=0;j<3;j++)
{ if(j%2) continue;
x++;
}
x++; }
printf("x=%d\n", x);
}
运行结果:
运行结果分析:
6、任务名称:程序c40201.c输入一批考试分数,用1作为结束标志,若输入大于100分,则提示重新输入,然后计算最高分、最低分与平均分。请调试、检查程序中的错误,并改正之。
源代码:#include
void main( )
{ int mark;
int n=0 , sum=0 ;
int max=0 , min=100 ;
for ( ; ; )
{ scanf("%d", &mark);
if ( mark > 100 )
{ printf(" Mark > 100 , Please reinput \n ");
continue; }
if ( mark==-1)
break;
n ++ ;
sum=sum + mark ;
if( mark > max )
max = mark ;
if( mark < min )
min = mark ; }
sum=sum/ n ;
printf("max =%d , min = %d, aver = %d \n", max , min , sum);
}
运行结果:
运行结果分析:
7、任务名称.编程:输入20个1~90的整数,分类统计1~30、31~60、61~90的数各有多少个?
源代码:#include
int main()
{
int count1=0,count2=0,count3=0;
int i,x;
printf("Please input 20 numbers:\n");
for(i=0;i<20;i++)
{scanf("%d",&x);
if(x>=1&&x<=30)
count1++;
if(x>=31&&x<=60)
count2++;
if(x>=61&&x<=90)
count3++;}
printf("count1=%d,count2=%d,count3=%d\n",count1,count2,count3);
}
运行结果:
运行结果分析:
8、任务名称:.编程:素数是除了1和其本身以外,不能被其他自然数整除的自然数。从键盘输入一个数,判断该数是不是素数?
源代码:#include
void main( )
{ int i, x;
printf("Enter one natural integer: ");
scanf("%d",&x);
for(i=2;i<=x-1;i++)
if(x%i==0)break;
if(i
printf("%d is not a primer number.\n",x);
else printf("%d is a prime number.\n",x);
return 0;
}
运行结果:
运行结果分析:
9、任务名称:.编程:显示所有的水仙花数。谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身。例,153是水仙花数,因为153=13+53+33 。
源代码:#include
int main()
{
int i,j,k;
printf("parcissus number are:");
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
if(i*i*i+j*j*j+k*k*k==i*100+j*10+k)
printf("%d,",i*100+j*10+k);
return 0;
}
运行结果:
运行结果分析:
10、任务名称:编程:输出下列图形。 *
***
*****
*******
*********
源代码:#include
int main()
{int i,j,k;
for(i=0;i<=4;i++)
{for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");};
return 0;
}
运行结果:
运行结果分析:
三、结论(写本次实验的收获)
通过本次实验掌握用while语句、do while语句和for语句实现循环的方法,进一步地了解了运行过程中出现的细节问题。