c语言程序设计实验三循环
高级语言程序设计 实验三 循环控制
一、实验目的和要求
1. 熟练掌握用while语句、do while语句和for语句实现循环的方法。掌握在程序设计中用循的方法实现一些常用算法。并进一步学习调试程序的方法。
. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。
. 掌握字符数组和字符串函数的使用。
. 掌握与数组有关的算法。
1+…+100
源代码:
#include
void main()
{
int s,i;
s=0;
for(i=0;i<=100;i++)
{s=s+i;}
printf("1+...+100=%d\n",s);
}
运行结果:
运行结果分析:(1)第五行可以去掉,因为s=0可以在for语句的循环时赋值
(2)用while语句改写程序实现同样功能
源代码:
#include
void main()
{
int s,i;
s=0,i=0;
while(i<=100)
{s=s+i;
i++;}
printf("1+...+100=%d\n",s);
}
运行结果:
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);
}
运行结果:
源代码:
#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",n,sum);
}
运行结果:
运行结果分析:
While结构中当i大于10时不运行循环体,而do……while结构中还要运行循环体,会执行sum+=i,即i=13
3、任务名称:若输入12345,分析输出结果是多少?
源代码:
#include
void main( )
{ long data;
scanf("%ld",&data);
while(data)
{ printf("%ld,",data%10);
data=data/10;
}
}
运行结果:
4、任务名称:实现求Fibonacci数列的前n个数。(验证、调试)
运行程序,写出运行结果;采用单步跟踪技术运行该程序,观察一下变量的变化。
源代码:
#include
void main( )
{
long int f1, f2;
int i,n;
printf("Input n:"); /* 第5行 */
scanf("%d",&n); /* 第6行 */
f1=f2=1;
for(i=1;i
{ printf("%ld\t%ld\n",f1,f2); /* 第9行 */
f1=f1+f2;
f2=f2+f1;
}
}
运行结果:
运行结果分析:(1)因为f1,f2的值是在变化的,并且是在逐渐变大的,有可能会超过整型的取值范围,所以定义f1,f2为long int
(2)注意第9行的输出“%ld”中的“1”是字母“L”的小写形式,不是数字1。
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、任务名称:c输入一批考试分数,用-1作为结束标志,若输入大于100分,则提示重新输入,然后计算最高分、最低分与平均分。请调试、检查程序中的错误,并改正之。
源代码:
#include
#include
main()
{ int mark;
int n=0,sum=0;
int max=0,min=100 ;
for (