问答题
1. 请编写函数proc(),其功能是:计算并输出下列多项式的值:
S=(1+1/2)+(1/3+l/d)+…+[1/(2n-1)+1/2n]
例如,若主函数从键盘给n输入100后,则输出为S=5.878031。
n的值要求大于1,但不大于100。
注意:部分源程序如下。
请勿改动主函数main()和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
double proc(int n)
{
}
void main()
{
int n;
double sum;
printf("\nInput n:");
scanf("%d",&n);
sum=proc(n);
printf("\ns=%f\n",sum);
}
【正确答案】double proc(int n)
{
int i;
double sum=0.0; //变量s存放和,因此其初始值为0
for(i=1;i<=n;i++) //从第1项到第n项
sum=sum+(1.0/(2*i-1)+1.0/(2*i)); //把分子、分母转换为符合题意的类型
return sum; //最后把和值返回给主函数
}
【答案解析】 首先,定义一个变量来存放表达式的和,根据题目提供的多项式,通过n次循环来求出n项的和;最后,把所求得的和返回给主函数。