例如,当形参n的值为10时,函数返回:-0.204491。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun(int n)
{ int i, k; double s, t;
s=0;
k=__1__;
for(i=1; i<=n; i ) {
t=__2__;
s=s k*(2*i-1)*(2*i 1)/(t*t);
k=k*__3__;
}
return s;
}
main()
{ int n=-1;
while(n<0)
{ printf("Please input(n>0): "); scanf("%d",&n); }
printf("nThe result is: %fn",fun(n));
}
解题思路:
第一处:k是用来管理正负号的,公式中第一个值是正数,所以应填:1。
第二处:根据公式,t是2i,所以应填:2*i。
第三处:根据公式,第2个是负数,所以应填:(-1)。
***************************************************
给定程序MODI1.C中函数 fun 的功能是:判断一个整数是否是素数,若是返回1,否则返回0。
在main()函数中,若fun返回1输出YES,若fun返回0输出NO!。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
int fun ( int m )
{ int k = 2;
while ( k <= m && (m%k))
k
if (m = k )
return 1;
else return 0;
}
main( )
{ int n;
printf( "nPlease enter n: " ); scanf( "%d", &n );
if ( fun ( n ) ) printf( "YESn" );
else printf( "NO!n" );
}
解题思路:
本题是找出一维整型数组元素中最大的值和它所在的下标, 最大的值和它所在的下标通过形参传回。具体看参考源程序中的说明。
参考答案:
void fun(int a[], int n , int *max, int *d )
{
int i ;
*max=a[0];*d = 0 ; /* 把数组的第1个元素值赋值给最大值变量*max */
for(i = 1; i < n; i )
if(*max < a[i]) { /* 判断*max是否小于当前值 */
*max = a[i]; /* 重新把最大值赋值给*max */
*d = i ; /* 记住下标 */
}
}
※※※※※※※※※※※※※※※※※※※※※※※※※
