c语言习题第三章2解析.doc
文本预览下载声明
程序改错/
*下列给定程序中,函数fun的功能是:计算S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值。
例如,当n为5时,函数值应为10.407143。f(x)函数定义如下:
f(x)=
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序: */
#include stdlib.h
#include stdio.h
#include math.h
/**********ERROR**********/
f(double x)
{
if(x==0.0||x==2.0)
return 0.0;
else if(x0.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(%lf\n, fun(5));
}
【参考答案】
double f(double x) 【参考答案】
return s;
return (s);
/*下列给定程序中,函数fun的功能是:求三个数的最小公倍数。例如,给变量x1、x2、x3分别输入15、11、2,则输出结果应当是330。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序: */
#include stdio.h
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(Input x1 x2 x3: );
scanf(%d%d%d,x1,x2,x3);
printf(x1=%d,x2=%d,x3=%d \n,x1,x2,x3);
j=fun(x1,x2,x3);
printf(The minimal common multiple is: %d\n,j);
}
【参考答案】
j=0; 【参考答案】
while (t!=0 || m!=0 || n!=0)
/*下列程序中函数fun的功能是:计算正整数num各位上的数字之积。例如,若输入252,则输出应该是20。若输入202,则输出应该是0。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:*/
#include stdio.h
#include conio.h
long fun(long num)
{
/**********ERROR**********/
long k;
do
{
k *=num%10;
/**********ERROR**********/
num \=10;
}while(num);
return(k);
}
void main()
{
int n;
printf(\Please enter a number: );
scanf(%ld,n);
printf(\n%ld\n,fun(n));
}
【参考答案】
long k=1;
【参考答案】
num/=10;
num=num/10;
/*下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值:
请改正函数fun()中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序: */
#include stdlib.h
#include stdio.h
double fun(int m)
{double y=1.0;
int i;
/**********ERROR**********/
for(i=2;im;i++)
/**********ERROR**********/
y-=1/(i*i);
return(y);
}
void main()
{int
显示全部