程序改错
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【程序改错】
1.下列给定程序中函数fun的功能是:删除s所指字符中所有的小写字母c 。
请改正程序中的错误,使它能得出正确的结果。
#include
void fun( char *s )
{ int I,j;
for(i=j=0; s[i]!='\0'; i++)
if(s[i]!='c')
/***********FOUND***********/
s[j++]=s[i];
/***********FOUND***********/
s[j]='\0';
}
main()
{ char s[80];
printf("Enter a string: "); gets(s);
printf("The original string: "); puts(s);
fun(s);
printf("The string after deleted : "); puts(s);printf("\n\n");
}
2. 下列给定程序中,函数fun的功能是:根据整型参数m,计算如下公式的值。y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)
例如,若m=2000,则应输出0.000160。
请改正程序中的错误,使它能得出正确的结果。
#include
#include
#include
/***********FOUND***********/
double fun (int m)
{ double y=0, d;
int i;
/***********FOUND***********/
for(i=100;i<=m;i+=100)
{d=(double)i*(double)i;
y+=1.0/d;
}
return(y);
}
void main()
{ int n=2000;
system("CLS");
printf("\nThe result is %lf\n",fun(n));
}
3. 下列给定程序中函数fun的功能是:根据以下公式求π值,并作为函数值返回。
π/2=1+1/3+1/3×2/5+1/3×2/5×3/7+1/3×2/5×3/7×4/9+……
例如,当给指定精度的变量eps输入0.0005时,应输出Pi=3.140578。请改正程序中的错误,使它能得出正确的结果。
#include
#include
double fun(double eps)
{ double s,t; int n=1;
s=0.0;
/***********FOUND***********/
t=1;
while( t>eps)
{ s+=t;
t=t * n/(2*n+1);
n++;
}
/***********FOUND***********/
return(2*s);
}
main()
{ double x;
printf("\nPlease enter a precision: "); scanf("%lf",&x);
printf("\neps=%lf, Pi=%lf\n\n",x,fun(x));
}
4. 下列给定程序中,函数fun的功能是:计算整数n的阶乘。
请改正程序中的错误,使它能得出正确的结果。
#include
#include
double fun(int n)
{
double result=1.0;
while(n>1&&n<170)
/***********FOUND***********/
result*=n--;
/***********FOUND***********/
return result;
}
void main()
{int n;
system("CLS");
printf("Enter an integer: ");
scanf("%d",&n);
printf("\n\n%d!=%lg\n\n ",n,fun(n));
}
5. 下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。t=1/2-1/3-…-1/m
例如,若输入5,则应输出-0.283333。
请改正程序中的错误,使它能得出正确的结果。
#include
#include
#include
double fun(int m)
{
double t=1.0;
int i;
for(i=2;i<=m;i++)
/***********FOUND***********/
t-=1.0/i;
/***********FOUND***********/
return t ;
}
void main()
{int m;
system("CLS");
printf("\nPlease enter 1 integer numbers:\n");
scanf("%d",&m);
printf("\n\nThe result is %1f\n",
fun(m));
}
6. 下列给定程序中,函数fun的功能是:求S的值。
S=(2×2/(1×3))×(4×4/(3×5))×(6×6/(5×7))×…×(2k)×(2k)/((2k-1)×(2k+1)) 例如,当k为10时,函数的值应为1.533852。
请改正程序中的错误,使它能得出正确的结果。
#include
#include
#include
#include
/***********FOUND***********/
double fun(int k)
{
int n; double s, w, p, q;
n=1;
s=1.0;
while(n<=k)
{
w=2.0*n;
p=w-1.0;
q=w+1.0;