下列给定程序中函数fun的功能是:求出如下分数序列的前n项之和,和值通过函数值返回。
例如,若n=5,则应输出8.391667。
请改正程序中的错误,使其得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
/**********found**********/
void fun(int n)
{
int a=2, b=1, c, k;
double s=0.0;
for(k=1; k<=n; k++)
{
/**********found**********/
s=s+(Double)a/b;
c=a;a=a+b;b=c;
}
return(s);
}
void main()
{
int n=5;
system("CLS");
printf("\nThe value of function is:% 1f\n", fun(n));
}
参考答案:
(1)double fun(int n) (2)s=s+(double)a//b;
解析:
[考点] 本题考查:函数定义,函数定义的一般形式为“类型标识符函数名(形式参数表列)”,其中类型标识符用来说明函数值的类型,函数的类型实际上是函数返回值的类型。 (1)由语句“return(s); ”和变量s定义为double型可知,该函数定义时其类型标识符为double类型。 (2)注意数据类型double的书写格式 确定函数类型标识符在填空和改错题中经常考到,如果函数没有返回值,则函数定义为void型;如果函数有返回值,则函数类型应与返回值类型一致;如果不定义函数类型标识符,则系统默认为int型。