- 11
- 0
- 约1.77千字
- 约 4页
- 2017-06-10 发布于北京
- 举报
循环结构程序设计
程序填空
下面程序的功能为:计算1~100之间的偶数之和,完成以下的程序并运行。
# include stdio.h
oid main()
{int i,s=0;
/**************found*************/
i=2 ;
while(i=100)
{s=s+i;
/**************found**************/
i+=2 ;
}
printf(“s=%d”,s);
}
运行结果:S=2550
程序改错
下面程序的功能为:计算10改以下的程序并上机运行。
#include stdioh
void main()
{int n,t;
for(n=1,t=1,t10,t++);
n=n*t;
printf(“10!=%d\n”,n);
}
正确的程序:
#include stdio.h
void main()
{int n,t;
for(n=1,t=1;t=10;t++) //句尾不能有“;”
n=n*t;
printf(“10!=%d\n”,n);
}
运行结果:10!=3628800
(2) 下面程序的功能为:计算1~100之间能被3和整除的数之和,修改以下的程序并上机运行。
#include stdio.h
void main()
{int i,s;
s=0;
while(i=100);
{if(i%3==0||i%7==0)
s+=i;
i=i+1;
}
printf(“s=%d”,s);
}
正确的程序:
#include stdio.h
void main()
{int i,s;
s=0; i=1;
while(i=100) //句尾不能有“;”
{if(i%3==0i%7==0)
s+=i;
i=i+1;
}
printf(“s=%d”,s);
}
运行结果:S=210
3、有一个分数序列:2/1、3/2、5/3、8/5、13/8、……,编写一个C程序,求出这个数列的前0项之和解:
方法一、单个函数模块:
#include stdio.h
void main()
{
int i=1;
double t,x=1,y=2,sum=0;
while(i=30)
{
sum=sum+y/x;
t=y;
y=y+x;
x=t;
i++;
}
printf(%f\n,sum);
}
方法二、多个函数模块:
#include stdio.h
double fun(int n)
{ double a=1,b=2;
double result=0.0;
int i;
for(i=0;in;i++)
{
result+=b/a;
b=a+b;
a=b-a;
}
return result;
}
void main()
{int n=30;
printf(%f\n, fun(n));
}
运行结果:48.840601
4、编写程序,求1!+2!+3!+…+10!。
解法一、递推法:
#include stdio.h
void main()
{int i;
int sum=0,f=1;
for(i=1;i=10;i++)
{f= f*i;
sum= sum+f;
}
printf(sum=%d\n,sum);
}
解法二、递归法:
/*递归计算单个整数的阶乘*/
#include stdio.h
int sum = 0;
int CountSum(int value)
{
if(value == 1) return 1;
else
return value * CountSum(value - 1);
}
void main()
{ int i;
for(i = 1; i = 10; i++)
{ /*累加*/
sum += CountSum(i);
}
printf(%d\n,sum);
}
运行结果:sum=4037913
原创力文档

文档评论(0)