/*****************************/ }
【参考代码】 long t;
t=(h*1000+5)/10; return (float)t/100;
/*请编写函数fun,它的功能是计算: s=
ln(1)?ln(2)?ln(3)?....?ln(m)
在C语言中可调用log(n)函数求ln(n)。 例如,若m的值为20,则fun函数值为6.506583。 注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:*/
#include
/***************Begin************/
/*************** End ************/
}
void main() {
FILE *wf;
printf(\
/******************************/ wf=fopen(\ fprintf(wf,\ fclose(wf);
/*****************************/ }
【参考代码】 int i; double s=0.0; for(i=1;i<=m;i++) s=s+log(i); return sqrt(s);
程序改错
/*下列给定程序中,函数fun的功能是:计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值。
例如,当n为5时,函数值应为10.407143。f(x)函数定义如下:
?(x?1)?(x?2)??0?(x?1)?(x?2)f(x)=?x?0x?0或x?2x?0
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: */
#include
/**********ERROR**********/ f(double x) {
if(x==0.0||x==2.0) return 0.0; else if(x<0.0)
return(x-1)/(x-2); else
return(x+1)/(x-2); }
double fun(int n) {
int i; double s=0.0,y; for(i=-n; i<=n;i++) { y=f(1.0*i); s+=y;} /**********ERROR**********/ return s }
void main() {
printf(\}
【参考答案】 double f(double x) 【参考答案】 return s; return (s);
/*下列给定程序中,函数fun的功能是:求三个数的最小公倍数。例如,给变量x1、x2、x3分别输入15、11、2,则输出结果应当是330。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: */
#include
int fun(int x,int y,int z) { int j,t,n,m;
/**********ERROR**********/ j=1; t=m=n=1;
/**********ERROR**********/ while (t!=0 && m!=0 && n!=0) {
j=j+1; t=j%x; m=j%y; n=j%z; }
return j; }
void main() {
int x1,x2,x3,j;
printf(\ scanf(\
printf(\ j=fun(x1,x2,x3);
printf(\}
【参考答案】 j=0;
【参考答案】
while (t!=0 || m!=0 || n!=0)
/*下列给定的程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。
k的值由主函数传入,若k的值为500,则函数的值为4622。 请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:*/
#include
while((k>=2)&&(mc<10)) {
/**********ERROR**********/ if((k=0)||(k=0)) { m=m+k;mc++;} k--;
/**********ERROR**********/ )
return m; }
void main() {
printf(\}
【参考答案】
if((k==0)||(k==0)) if((k==0)||(k==0)) 【参考答案】 }
/*下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值:
t=1-1/(2?2)?1/(3?3)?...?1/(m?m) 请改正函数fun()中的错误,使它能得出正确的结
果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: */
#include
/**********ERROR**********/ for(i=2;i /**********ERROR**********/ y-=1/(i*i); return(y); } void main() {int n=5; printf(\} 【参考答案】 for(i=2;i<=m;i++) 【参考答案】 y-=1.0/(i*i); y=y-1.0/(i*i); /*下列程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:*/ #include /**********ERROR**********/ long k; do { k *=num; /**********ERROR**********/ num \\=10; }while(num); return(k); } void main() { int n; printf(\ scanf(\ printf(\} 【参考答案】 long k=1; 【参考答案】 num/=10; num=num/10; 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:*/ #include double t=1.0; int i; for(i=2;i<=m;i++) /**********ERROR**********/ t+=1.0/k; /**********ERROR**********/ return i;