给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。
例如,当形参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: %f\n",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( "YES\n" ); 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 ; /* 记住下标 */ } } ※※※※※※※※※※※※※※※※※※※※※※※※※