资源描述
循环结构程序设计1 程序填空下面程序的功能为:计算1100之间的偶数之和,完成以下的程序并运行出正确的结果。# include void main()int i,s=0;/*found*/ i=2 ;while(i=100)s=s+i;/*found*/ i+=2 ; printf(“s=%d”,s);运行结果:S=25502 程序改错(1) 下面程序的功能为:计算10!,修改以下的程序并上机运行通过。#include void main()int n,t;for(n=1,t=1,t10,t+);n=n*t;printf(“10!=%dn”,n); 正确的程序:#include void main()int n,t;for(n=1,t=1;t=10;t+) /句尾不能有“;”n=n*t;printf(“10!=%dn”,n); 运行结果:10!=3628800(2) 下面程序的功能为:计算1100之间能被3和7整除的数之和,修改以下的程序并上机运行通过。#include 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 void main()int i,s;s=0; i=1;while(i=100) /句尾不能有“;”if(i%3=0&i%7=0)s+=i;i=i+1; printf(“s=%d”,s); 运行结果:S=2103、有一个分数序列:2/1、3/2、5/3、8/5、13/8、,编写一个C程序,求出这个数列的前30项之和。解:方法一、单个函数模块:#include 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(%fn,sum);方法二、多个函数模块:#include 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(%fn, fun(n);运行结果:48.8406014、编写程序,求1!+2!+3!+10!。解法一、递推法:#include void main()int i; int sum=0,f=1; for(i=1;i=10;i+) f= f*i; sum= sum+f; printf(sum=%dn,sum);解法二、递归法:/*递归计算单个整数的阶乘*/#include int sum = 0;int CountSum(int value)if(value = 1)return 1;elsereturn value * CountSum(value - 1);void main()int i;for(i = 1; i = 10; i+)/*累加*/sum += CountSum(i);printf(%dn,sum);运行结果:sum=4037913
展开阅读全文