请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
double fun(double x, int n)
{double f, t; int i;
/**********found**********/
f = ___1___;
t = -1;
for (i=1; i
{
/**********found**********/
t *= (___2___)*x/i;
/**********found**********/
f += ___3___;
}
return f;
}
main()
{double x, y;
x=2.5;
y = fun(x, 15);
printf("\nThe result is :\n");
printf("x=%-12.6f y=%-12.6f\n", x, y);
}
解题答案:
/**********found**********/
f = 1;
/**********found**********/
t *= (-1)*x/i;
/**********found**********/
f += t;
****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数fun的功能是: 从3个红球,5个白球, 6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。 组合数作为函数值返回。正确的组合数应该是15。程序中i的值代表红球数, j的值代表白球数,k的值代表黑球数。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。 注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
int fun()
{int i,j,k,sum=0;
printf("\nThe result :\n\n");
/**************found**************/
for(i=0; i<=3; i++)
{for(j=1; j<=5; j++)
{k=8-i-j;
/**************found**************/
if(K>=0 && K<=6)
{sum=sum+1;
printf("red:M white:M black:M\n", i,j,k);
}
}
}
return sum;
}
main()
{int sum;
sum=fun();
printf("sum =M\n\n",sum);
}
解题答案:
/**************found**************/
for(i=1; i<=3; i++)
/**************found**************/
if(k>=0&&k<=6)
******************************************
[NextPage] 三、程序题:请编写函数fun, 其功能是: 计算并输出下列多项式的值: 例如, 在主函数中从键盘给n输入15, 则输出为:s=2.718282。 注意: 要求n的值大于1但不大于100。 部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include
double fun(int n)
{
}
main()
{int n; double s;
printf("Input n: "); scanf("%d",&n);
s=fun(n);
printf("s=%f\n",s);
NONO();
}
NONO()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
FILE *rf, *wf ; int n, i ; double s ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d", &n);
s = fun(n);
fprintf(wf, "%lf\n", s);
}
fclose(rf); fclose(wf);
参考答案:
double fun(int n)
{
double s=1 ;
long t=1;
int i;
for(i=1; i<=n; i++) {
t=t*i; /* 计算阶乘 */
s+=1./t; /* 计算每项的值并累加至变量s中 */
}
return s; /* 返回多项式的值 */
}
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|