例如,当形参n的值为10时,函数返回:-0.204491。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun(int n)
{int i, k; double s, t;
s=0;
/**********found**********/
k=__1__;
for(i=1; i<=n; i++) {
/**********found**********/
t=__2__;
s=s+k*(2*i-1)*(2*i+1)/(t*t);
/**********found**********/
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=2*i;
/**********第三空*********/
k=k*(-1);
****************************************** [NextPage] 二、改错题:给定程序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))
/************found************/
k++
/************found************/
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");
}
解题答案:
/************found************/
k++;
/************found************/
if (m==k )
******************************************
[NextPage] 三、程序题:请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标, 最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。
主函数中x是数组名, n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include
#include
void fun(int a[], int n , int *max, int *d)
{
}
main()
{int i, x[20], max , index, n = 10;void NONO ();
for (i=0;i < n;i++) {x[i] = rand()P; printf("M", x[i]);}
printf("\n");
fun(x, n , &max, &index);
printf("Max =] , Index =M\n",max, index);
NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i, x[20], max , index, n = 10, j ;
fp = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
for(j = 0 ; j < n ; j++) fscanf(fp, "%d,", &x[j]);
fun(x, n , &max, &index);
fprintf(wf, "Max=%d,Index=%d\n", max, index);
}
fclose(fp);
fclose(wf);
}
参考答案:
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 ; /* 记住下标 */
}
}
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|