填空题 下列给定程序中,fun函数的功能是:根据形参m,计算下列公式的值。
t=1+1/2+1/3+1/4+…+1/m
例如,若输入S,则应输出2.283333。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
double fun(int m)
{
double t=1.0;
int i;
for(i=2; i<=m; i++)
/**********found**********/
t+=1.0/k;
/**********found**********/
return i;
}
void main()
{
int m;
system("CLS");
printf("/nPlease enter linteger number:");
scanf("%d", &m);
printf("/nThe result is%lf/n", fun(m));
}
【正确答案】
【答案解析】(1)t+=1.0/i;
(2)return t; [解析] 该题目考查分母成等差数列递增的一个数学公式,先看循环条件for(i=2; i<=m; i++),i从2开始递增到m,所以t的值应该是由1.0/i的值逐步循环叠加后的结果,而不是t+=1.0/k;。return i考查对程序的解读能力,当循环结束后(由输入m的值决定),函数返回当前t的值。