第73套:
给定程序中,函数fun的功能是计算下式
例如:若形参e的值为1e-3,函数的返回值为0.551690。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
double fun(double e)
{ int i, k; double s, t, x;
s=0; k=1; i=2;
x=__1__/4;
while(x __2__ e)
{ s=s+k*x;
k=k* (-1);
t=2*i;
x=__3__/(t*t);
i++;
}
return s;
}
main()
{ double e=1e-3;
printf("\nThe result is: %f\n",fun(e));
}
解题思路:
第一处:根据公式,首项应该是3.4,所以应填:3.。
第二处:当x大于e时,循环体才会运行,所以应填:>。
第三处:分子的值是2i+1,所以应填:2*i+1。
给定程序MODI1.C中函数 fun 的功能是:求出以下分数序列的前n项之和。和值通过函数值返回到main函数。
2 3 5 8 13 21
┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ┄┄ , ……
1 2 3 5 8 13
例如,若n = 5,则应输出:8.391667。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
fun ( int n )
{ int a, b, c, k; double s;
s = 0.0; a = 2; b = 1;
for ( k = 1; k <= n; k++ ) {
s = s + (Double)a / b;
c = a; a = a + b; b = c;
}
return s;
}
main( )
{ int n = 5;
printf( "\nThe value of function is: %lf\n", fun ( n ) );
}
解题思路:
第一处:由于计算的实型值要通过函数返回,所以必须定义函数的返回类型,只要int或void可以省略,其他都要定义类型。由于返回是实型值,所以应在数名前加上double或float等定义。
第二处:double的第1个字母错写成大写D。
请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include <stdio.h>
#define M 4
fun (int a[][M])
{
}
main( )
{ int arr[2][M]={5,8,3,45,76,-4,12,82} ;
printf("max =%d\n", fun(arr)) ;
NONO( ) ;
}
解题思路:
本题是求出一个2×M整型二维数组中最大元素的值。
参考答案:
fun (int a[][M])
{
int i, j, max=a[0][0];
for(i=0; i<2; i++)
for(j=0; j<M; j++)
if(max<a[i][j]) max=a[i][j];
return max;
}