一、程序改错 共44题
第1题 (10.0分) 题号:380 难度:中 第2章 /*------------------------------------------------------ 【程序改错】
--------------------------------------------------------
功能:输入两个双精度数,函数返回它们的平方和的平方根值。 例如:输入:22.936 和 14.121,输出为:y = 26.934415。
------------------------------------------------------*/
#include
/**********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 ( \ scanf (\ y = fun (&a, &b);
printf (\}
第2题 (10.0分) 题号:438 难度:中 第2章 /*------------------------------------------------ 【程序改错】
--------------------------------------------------
功能:编写函数fun,求两个整数的最小公倍数,然后用主 函数main()调用这个函数并输出结果,两个整数由 键盘输入。
------------------------------------------------*/
#include
int fun(int m,int n) { int i;
/**********FOUND**********/ if (m=n) //if (m for(i=m;i<=m*n;i+=m) /**********FOUND**********/ if(i%n==1) //if(i%n==0) return(i); return 0; } main() { unsigned int m,n,q; printf(\ scanf(\ /**********FOUND**********/ q==fun(m,n); //q=fun(m,n); printf(\} 第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++) t=t*j; s=s+t; } /**********FOUND**********/ return(t); // return(s); } main() { printf(\} 第4题 (10.0分) 题号:360 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:计算正整数num的各位上的数字之积。 例如:若输入:252,则输出应该是:20。 若输入:202,则输出应该是:0。 ------------------------------------------------------*/ #include long fun (long num) { /**********FOUND**********/ long k=1 // long k=1; do { k*=num ; /**********FOUND**********/ num\\=10; // num/=10;或num=num/10; /**********FOUND**********/ }while(!num) ; // } while(num) ;或 }while(num!=0); return (k) ; } main( ) { long n ; printf(\ printf(\} 第5题 (10.0分) 题号:413 难度:易 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:读取7个数(1-50)的整数值,每读取一个值,程序打印 出该值个数的*。 ------------------------------------------------------*/ #include int i,a,n=1; /**********FOUND**********/ while(n<7) // while(n<=7)或while(n<8) { do { scanf(\ } /**********FOUND**********/ while(a<1&&a>50); // while(a<1||a>50);或while(a>50||a<1); /**********FOUND**********/ for(i=0;i<=a;i++) // for(i=1;i<=a;i++) printf(\ printf(\ n++; } } 第6题 (10.0分) 题号:553 难度:中 第1章 /*------------------------------------------------------- 【程序改错】 --------------------------------------------------------- 题目:列程序的功能为:已知圆锥半径r和高h,计算圆锥体积v。请纠正程序中存在错误,
相关推荐: