请在程序中2个划线处填入适当的语句,使得下面程序实现功能:计算并输出下列级数的前n项之和Sn,直到Sn大于q为止,q的值通过形参传入。 Sn = 2/1 + 3/2 + 4/3 + …… + (n+1)/n 例如,若q的值为50.0,则函数值为50.416695。 #include float fun( float q ) { int n; float s; n = 2; s = 2.0; while (s______q) { s=s+(float)(n+1)/n; ______; } return s; } int main() { printf(%f
, fun(50)); }
, fun(50)); }
举一反三
- 函数viod fun(float * sn,int n)的功能是:根据以下公式计算S,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。 s=1-1/3+1/5-1/7+…1/(2n+1) void fun(float * sn,int n) { floats=0.0,w,f=-1.0; int i=0; for(i=0;i<=n;i+ +) { f= 【19】 * f; w=f/(2i+1); s+ +=w; } 【20】 =s; }
- 读程序并写结果。#include stdio.hlong fun(int n){ long s;if(n==1||n==2)s=2;elses=n-fun(n-1);return s;}int main(){ printf(%ld\n,fun(3)); return 0;}
- 以下程序拟实现计算s=1 + 2*2 + 3*3 + … + n*n +…,直到s>1000为止。 #include main( ) { int s,n; s=1; n=1; do { n=n+1; s=s+n*n; } while(s>1000); printf("s=%d\n",s); } 程序运行后,不能得到正确结果,以下修改方案正确的是
- 下列程序的输出结果是【 】。 long fun(int n) { long s; if(n==1||n==2) s=2; else s=n+fun(n-1); return s; } int main() { cout<<fun(4); return 0; }
- 给定程序中,函数fun的功能是:根据整型形参n,计算如下公式的值。 A1=1,A2=1/(1+A1) , A3=1/(1+A2) ,…,An=1/(1+A(n-1)) 例如,若n=10,则应输出0.617977。 #include #include #include float fun(int n) { float A=1; int i; for(【 1 】;i<=n;i++) A=【 2 】; return A; } int main() { int n; system("CLS"); printf(" Please enter n:"); scanf("%d",&n); printf("%d=%lf ",n, 【 3 】); return 0; }