问题 问答题

下列给定程序中函数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型。

单项选择题
名词解释