一、程序改错 共44题
第1题 (10.0分) 题号:380 难度:中 第2章
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:输入两个双精度数,函数返回它们的平方和的平方根值。
例如:输入:22.936 和 14.121,输出为:y = 26.934415。
------------------------------------------------------*/
#include <stdio.h>
#include
#include <math.h>
/**********FOUND**********/
double fun (double *a, *b) // double fun (double *a, double *b)
{
double c;
/**********FOUND**********/
c = sqr(a*a + b*b); // c = sqrt(a*a + b*b);
/**********FOUND**********/
return *c; // return c;
}
main ( )
{
double a, b, y;
printf ( "Enter a, b : ");
scanf ("%lf%lf", &a, &b );
y = fun (&a, &b);
printf ("y = %f \n", y );
}
第2题 (10.0分) 题号:438 难度:中 第2章
/*------------------------------------------------
【程序改错】
--------------------------------------------------
功能:编写函数fun,求两个整数的最小公倍数,然后用主
函数main()调用这个函数并输出结果,两个整数由
键盘输入。
------------------------------------------------*/
#include <stdio.h>
int fun(int m,int n)
{
int i;
/**********FOUND**********/
if (m=n) //if (m
{
i=m;
m=n;
n=i;
}
for(i=m;i
/**********FOUND**********/
if(i%n==1) //if(i%n==0)
return(i);
return 0;
}
main()
{
unsigned int m,n,q;
printf("m,n=");
scanf("%d,%d",&m,&n);
/**********FOUND**********/
q==fun(m,n); //q=fun(m,n);
printf("p(%d,%d)=%d",m,n,q);
}
第3题 (10.0分) 题号:404 难度:易 第2章
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:编写函数求2!+4!+6!+8!+10+12!+14!。
------------------------------------------------------*/
#include
long sum(int n)
{
/**********FOUND**********/
int i,j // int i,j;
long t,s=0;
/**********FOUND**********/
for(i=2;i<=n;i++) // for(i=2;i<=n;i=i+2)或for(i=2;i<=n;i+=2)
{
t=1;
for(j=1;j<=i;j++)