例如,当形参n的值为10时,函数返回:9.612558。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double fun(int n)
{int i; double s, t;
/**********found**********/
s=__1__;
/**********found**********/
for(i=1; i<=__2__; i++)
{t=2.0*i;
/**********found**********/
s=s+(2.0*i-1)*(2.0*i+1)/__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));
}
解题答案:
/**********第一空**********/
s=0;
/**********第二空**********/
for(i=1; i<=n; i++)
/**********第三空**********/
s=s+(2.0*i-1)*(2.0*i+1)/(t*t);
****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数 fun 的功能是:统计substr所指子字符串在str所指字符串中出现的次数。
例如,若字符串为aaas lkaaas,子字符串为as,则应输出2。
请改正程序中的错误,使它能计算出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
int fun (char *str,char *substr)
{int i,j,k,num=0;
/************found************/
for(i = 0, str[i], i++)
for(j=i,k=0;substr[k]==str[j];k++,j++)
/************found************/
If(substr[k+1]=='\0')
{num++;
break;
}
return num;
}
main()
{
char str[80],substr[80];
printf("Input a string:");
gets(str);
printf("Input a substring:");
gets(substr);
printf("%d\n",fun(str,substr));
}
解题答案:
/************found************/
for(i=0;str[i];i++)
/************found************/
if(substr[k+1]=='\0')
******************************************
[NextPage] 三、程序题:请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.0005, 即某项小于0.0005时停止迭代):程序运行后,如果输入精度0.0005,则程序输出为3.14…。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
#include
double fun (double eps)
{
}
main()
{double x;void NONO ();
printf("Input eps:");
scanf("%lf",&x); printf("\neps = %lf, PI=%lf\n", x, fun(x));
NONO();
}
void NONO ()
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i ;
double x ;
fp = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%lf", &x);
fprintf(wf, "%lf\n", fun(x));
}
fclose(fp);
fclose(wf);
}
解题答案:
{
double s;
float n,t,pi;
t=1;pi=0;n=1.0;s=1.0;
//对各个累加项,累加积等赋初始化值
while((fabs(s))>=eps)//精度判断
{
pi+=s; //pi存放累加和
t=n/(2*n+1); //每一项
s*=t; //累积
n++;
}
pi=pi*2; //求得π值
return pi;
}
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|