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语句实现循环的方法,进一步地了解了运行过程中出现的细节问题。