c语言程序改错讲解
更新时间:2024-07-03 23:42:01 阅读量: 综合文库 文档下载
一、程序改错 共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。请纠正程序中存在错误, 使程序实现其功能。 -------------------------------------------------------*/ #include /***********FOUND***********/ float r=10,h=5; //double r=10,h=5,v;或float r=10,h=5,v; /***********FOUND***********/ v=1/3*3.14159*r2*h; //v=1.0/3*3.14159*r*r*h; /***********FOUND***********/ printf(\} 第7题 (10.0分) 题号:399 难度:易 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun求20以内所有5的倍数之积。 ------------------------------------------------------*/ #include int fun(int m) { /**********FOUND**********/ int s=0,i; //int s=1 , i ; for(i=1;i /**********FOUND**********/ if(i%m=0) //if(i%m==0) /**********FOUND**********/ s=*i; //s=s*i;或s=i*s;或s*=i; return s; } main() { int sum; sum=fun(5); printf(\以内所有%d的倍数之积为: %d\\n\} 第8题 (10.0分) 题号:397 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:输入两个实数,按代数值由小到大输出它们,并在fun() 函数中输出。(输出的数据都保留2位小数) ------------------------------------------------------*/ #include /**********FOUND**********/ float t //float t; float a, b ; scanf(\ /**********FOUND**********/ if(ab) { t=a; a=b; b=t; } /**********FOUND**********/ printf(\//printf(\ } main() { fun(); } 第9题 (10.0分) 题号:28 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:实现两个字符串的连接。 例如:输入dfdfqe和12345时,则输出dfdfqe12345. ------------------------------------------------------*/ #include main() { char s1[80],s2[80]; void scat(char s1[],char s2[]); gets(s1); gets(s2); scat(s1,s2); puts(s1); } void scat (char s1[],char s2[]) { int i=0,j=0; /**********FOUND**********/ while(s1[i]= ='\\0') // while( s1[i] != '\\0' )或while(s1[i]) i++; /**********FOUND**********/ while(s2[j]= ='\\0') // while( s2[i] != '\\0' )或while(s2[i]) { /**********FOUND**********/ s2[j]=s1[i]; //s1[i]=s2[j]; i++; j++; } /**********FOUND**********/ s2[j]='\\0'; //s1[i]='\\0'或s1[i]=0; } 第10题 (10.0分) 题号:11 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:用下面的和式求圆周率的近似值。直到最后一项的绝对值 小于等于0.0001。 π 1 1 1 — = 1 - — + — - — + ... 4 3 5 7 ------------------------------------------------------*/ #include /**********FOUND**********/ #include fun() { int i=1; /**********FOUND**********/ int s=0,t=1,p=1; // float s=0,t=1,p=1; /**********FOUND**********/ while(fabs(t)<=1e-4) // while(fabs(t)>1e-4) { s=s+t; p=-p; i=i+2; t=p/i; } /**********FOUND**********/ printf(\//printf(\ } main() { fun(); } 第11题 (10.0分) 题号:401 难度:易 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun计算下列分段函数的值: x*x+x x<0且x≠-3 f(x)= x*x+5x 0≤x<10且x≠2及x≠3 x*x+x-1 其它 ------------------------------------------------------*/ #include double fun(float x) { /**********FOUND**********/ double y // double y; /**********FOUND**********/ if (x<0 ||x!=-3.0) //if (x<0 && x!=-3.0) y=x*x+x; else if(x>=0 && x<10.0 && x!=2.0 && x!=3.0) y=x*x+5*x; else y=x*x+x-1; /**********FOUND**********/ return x; // return y; } main() { double f; float x; printf(\ scanf(\ f=fun(x); printf(\ } 第12题 (10.0分) 题号:10 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:判断m是否为素数,若是返回1,否则返回0。 ------------------------------------------------------*/ #include /**********FOUND**********/ void fun( int n) //int fun( int m) { int i,k=1; if(m<=1) k=0; /**********FOUND**********/ for(i=1;i if(m%i=0) k=0; //if( m%i == 0 ) k=0; /**********FOUND**********/ return m; //return k; } void main() { int m,k=0; for(m=1;m<100;m++) if(fun(m)==1) { printf(\ if(k%5==0) printf(\ } } 第13题 (10.0分) 题号:23 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:先从键盘上输入一个3行3列矩阵的各个元素的值,然后输 出主对角线上的元素之和sum。 ------------------------------------------------------*/ #include int a[3][3],sum; int i,j; /**********FOUND**********/ a=0; // sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++) /**********FOUND**********/ scanf(\// scanf(\ for(i=0;i<3;i++) /**********FOUND**********/ sum=sum+a[i][j]; // sum= sum + a[i][i] ; /**********FOUND**********/ printf(\} main() { fun(); } 第14题 (10.0分) 题号:391 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求出N×M整型数组的最小元素及其所在的行坐标及列坐标 (如果最小元素不唯一,选择位置在最前面的一个)。 例如:输入的数组为: // printf(\ 9 2 3 4 15 6 12 1 9 10 11 2 求出的最小数为1,行坐标为2,列坐标为1。 ------------------------------------------------------*/ #include int Row,Col; int fun(int array[N][M]) { int min,i,j; min=array [0][0]; Row=0; Col=0; for(i=0;i /**********FOUND**********/ for(j=i;j if(min array [i][j]) { min=array [i][j]; Row=i; /**********FOUND**********/ Col=i; // Col=j; } } return(min); } 0 main() { int a[N][M],i,j,min; printf(\ for(i=0;i for(i=0;i for(j=0;j min=fun(a); printf(\} 第15题 (10.0分) 题号:18 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:计算正整数num的各位上的数字之积。 例如:输入252,则输出应该是20。 ------------------------------------------------------*/ #include /**********FOUND**********/ long k; // long k=1; do { k*=num; /**********FOUND**********/ num\\=10; }while (num); return k; } main() { long n; printf(\ /**********FOUND**********/ scanf(\// scanf(\ /**********FOUND**********/ printf(\//printf(\ } 第16题 (10.0分) 题号:388 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 // num/=10; 或num=num/10; -------------------------------------------------------- 功能:编写程序, 求矩阵(3行3列)与5的乘积 例如:输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 500 1000 1500 2000 2500 3000 3500 4000 4500 ------------------------------------------------------*/ #include void fun(int array[3][3]) { /**********FOUND**********/ int i;j; // int i,j; /**********FOUND**********/ for(i=1; i < 3; i++) for(j=0; j < 3; j++) /**********FOUND**********/ array[i][j]=array[i][j]/5; // array[i][j]=array[i][j]*5; } main() { int i,j; int array[3][3]={{100,200,300}, {400,500,600}, {700,800,900}}; for (i=0; i < 3; i++) { for (j=0; j < 3; j++) printf(\ printf(\ } fun(array); printf(\ for (i=0; i < 3; i++) { for (j=0; j < 3; j++) printf(\ // for(i=0; i < 3; i++) printf(\ } } 第17题 (10.0分) 题号:22 难度:易 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:计算数组元素中值为正数的平均值(不包括0)。 例如:数组中元素的值依次为39,-47,21,2,-8,15,0, 则程序的运行结果为19.250000。 ------------------------------------------------------*/ #include /**********FOUND**********/ int sum=0.0; //double sum=0.0;double sum=0; int c=0,i=0; /**********FOUND**********/ while(s[i] =0) //while( s[i] != 0 ) { if (s[i]>0) { sum+=s[i]; c++; } i++; } /**********FOUND**********/ sum\\=c; //sum/=c;或sum=sum/c; /**********FOUND**********/ return c; //return sum; } main() { int x[1000];int i=0; do { scanf(\ while(x[i++]!=0); printf(\ } 第18题 (10.0分) 题号:31 难度:易 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:从键盘输入十个学生的成绩,统计最高分,最低分和平均分。 max代表最高分,min代表最低分,avg代表平均分。 ------------------------------------------------------*/ #include /***********FOUND***********/ float a[8],min,max,avg; // float a[10],min,max,avg; printf(\ for(i=0;i<=9;i++) { printf(\ /***********FOUND***********/ scanf(\// scanf(\ } /***********FOUND***********/ max=min=avg=a[1]; for(i=1;i<=9;i++) { /***********FOUND***********/ if(mina[i])或if (a[i] printf(\} 第19题 (10.0分) 题号:439 难度:易 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求100以内(包括100)的偶数之和. ------------------------------------------------------*/ #include /**********FOUND**********/ int i,sum=1; // int i,sum=0; /**********FOUND**********/ for(i=2;i<=100;i+=1) // for(i=2;i<=100;i+=2) sum+=i; /**********FOUND**********/ printf(\ // printf(\ } 第20题 (10.0分) 题号:410 难度:易 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:输入一行字符,分别统计出其中英文字母、空格、数字和 其它字符的个数。 ------------------------------------------------------*/ #include char c; int letters=0,space=0,digit=0,others=0; printf(\ /**********FOUND**********/ while((c=getchar())=='\\n') // while((c=getchar())!='\\n') { /**********FOUND**********/ if(c>='a'&&c<='z'&&c>='A'&&c<='Z') // if( c>='a'&&c<='z' || c>='A'&&c<='Z' ) letters++; /**********FOUND**********/ else if(c=!' ') // else if(c==' ') space++; else if(c>='0'&&c<='9') digit++; else others++; } printf(\ space,digit,others); } 第21题 (10.0分) 题号:400 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun求20以内所有5的倍数之积。 ------------------------------------------------------*/ #define N 20 #include int fun(int m) { /**********FOUND**********/ int s=0,i; //int s=1 , i ; for(i=1;i /**********FOUND**********/ if(i%m=0) //if(i%m==0) /**********FOUND**********/ s=*i; //s=s*i; 或s*=i; return s; } main() { int sum; sum=fun(5); printf(\以内所有%d的倍数之积为: %d\\n\} 第22题 (10.0分) 题号:253 难度:易 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:以下程序把两个数按由大到小的顺序输出来. ------------------------------------------------------*/ #include /***********FOUND***********/ swap( int *p1,*p2) //swap( int *p1,int *p2) { int p; p=*p1; *p1=*p2; *p2=p; } main( ) { int a,b, *p,*q; printf(\ /***********FOUND***********/ scanf(\//scanf(\ p=&a; q=&b; if(a printf(\ /***********FOUND***********/ printf(\// printf(\ //或printf(\ } 第23题 (10.0分) 题号:434 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:以下程序能求出1*1+2*2+......+n*n<=1000中满足条件的 最大的n。 ------------------------------------------------------*/ #include int n,s; /**********FOUND**********/ s==n=0; // s=n=0; /**********FOUND**********/ while(s>1000) // while(s<=1000) { ++n; s+=n*n; } /**********FOUND**********/ printf(\// printf(\ } 第24题 (10.0分) 题号:420 难度:难 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:打印出杨辉三角形(要求打印出10行). ------------------------------------------------------*/ #include int i,j; int a[10][10]; printf(\ /**********FOUND**********/ for(i=1;i<10;i++) // for(i=0;i<10;i++) { a[i][0]=1; a[i][i]=1; } /**********FOUND**********/ for(i=1;i<10;i++) // for(i=2;i<10;i++) for(j=1;j /**********FOUND**********/ a[i][i]=a[i-1][j-1]+a[i-1][j]; // a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i<10;i++) { for(j=0;j<=i;j++) printf(\ printf(\ } } 第25题 (10.0分) 题号:13 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求1到20的阶乘的和。 ------------------------------------------------------*/ #include int n,j; float s=0.0,t=1.0; for(n=1;n<=20;n++) { /**********FOUND**********/ s=1; // t=1; for(j=1;j<=n;j++) /**********FOUND**********/ t=t*n; // t= t * j ; /**********FOUND**********/ s+t=s; // s= s + t ; 或s+=t; } /**********FOUND**********/ printf(\ // printf(\ } main() { fun(); } 第26题 (10.0分) 题号:406 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:有1、2、3、4个数字,能组成多少个互不相同且无重复数 字的三位数?都是多少? ------------------------------------------------------*/ #include int i,j,k; /**********FOUND**********/ printf(\ // printf(\ /**********FOUND**********/ for(i=1;i<=5;i++) // for(i=1;i<5;i++) for(j=1;j<5;j++) for (k=1;k<5;k++) { /**********FOUND**********/ if (i!=k||i!=j||j!=k) // if (i!=k&&i!=j&&j!=k) printf(\ } } 第27题 (10.0分) 题号:5 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求如下表达式: 1 1 1 S = 1 + —— + ——— + ...... + ——————— 1+2 1+2+3 1+2+3+......+n ------------------------------------------------------*/ #include double fun(); printf(\ /**********FOUND**********/ print(\// scanf(\ printf(\} /**********FOUND**********/ fun(int n) // double fun(int n) { int i,j,t; double s; s=0; /**********FOUND**********/ while(i=1;i<=n;i++); // for(i=1;i<=n;i++) { t=0; for(j=1;j<=i;j++) t=t+j; /**********FOUND**********/ =s+1/t;// s+=1.0/t;或s= s + 1.0 /t; } return s; } 第28题 (10.0分) 题号:16 难度:易 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:实现交换两个整数的值。 例如:给a和b分别输入3和6 ,输出为a=6 b=3 ------------------------------------------------------*/ #include /**********FOUND**********/ void fun (int a, b) // void fun (int *a,int *b) { int t; /**********FOUND**********/ t=a; // t=*a; /**********FOUND**********/ a=b; // *a=*b; /**********FOUND**********/ b=t; // *b=t; } main() { int a,b; printf(\ fun(&a,&b); printf(\} 第29题 (10.0分) 题号:12 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求1到10的阶乘的和。 ------------------------------------------------------*/ #include /**********FOUND**********/ for(i=1;i<10;i++) // for(i=1;i<=10;i++) /**********FOUND**********/ s=fac(i); // s= s + fac(i) ; 或s+=fac(i); printf(\} float fac(int n) { /**********FOUND**********/ int y=1; // float y=1.0; int i; for(i=1 ;i<=n;i++) y=y*i; /**********FOUND**********/ return; // return y; } 第30题 (10.0分) 题号:30 难度:易 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:将s所指字符串的反序和正序进行连接形成一个新串放在 t所指的数组中。 例如:当s所指的字符串的内容为\时,t所指数组中 的内容为\。 ------------------------------------------------------*/ #include void fun (char s, char t) // void fun (char s[],char t[]) { int i, d; /**********FOUND**********/ d = len(s); // d = strlen(s); /**********FOUND**********/ for (i = 1; i t[2*d] = '/0'; // t[ 2 * d ] = '\\0'; } main() { char s[100], t[100]; printf(\ scanf(\ fun(s, t); printf(\} 第31题 (10.0分) 题号:285 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:根据整型形参m,计算如下公式的值: y=1+1/3+1/5+1/7+...+1/(2m-3) ------------------------------------------------------*/ #include double fun(int m) { /**********FOUND**********/ double y=1 // double y=0; int i; /**********FOUND**********/ for(i=1; i y+=1.0/(2i-3); // y+=1.0/(2*i-1); return(y); } main() { int n; printf(\ scanf(\ printf(\} 第32题 (10.0分) 题号:427 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun求1000以内所有8的倍数之和。 ------------------------------------------------------*/ #include int fun(int m) { /**********FOUND**********/ int s=0;i; // int s=0 , i ; /**********FOUND**********/ for(i=1;i>N;i++) // for(i=1;i int sum; sum=fun(8); printf(\以内所有%d的倍数之和为:%d\\n\} 第33题 (10.0分) 题号:4 难度:易 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:在一个已按升序排列的数组中插入一个数,插入后,数 组元素仍按升序排列。 ------------------------------------------------------*/ #include int i,number,a[N]={1,2,4,6,8,9,12,15,149,156}; printf(\ /**********FOUND**********/ scanf(\// scanf(\ printf(\ for(i=0;i /**********FOUND**********/ for(i=N-1;i>=0;i--) // for(i=N-2;i>=0;i--) if(number<=a[i]) /**********FOUND**********/ a[i]=a[i-1]; else { a[i+1]=number; // a[ i + 1 ]=a[i]; /**********FOUND**********/ exit; // break; } if(number 第34题 (10.0分) 题号:21 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求出两个非零正整数的最大公约数,并作为函数值返回。 例如:若给num1和num2分别输入49和21,则输出的最大公约数为7。 ------------------------------------------------------*/ #include int r,t; if(a /**********FOUND**********/ b=a; // a=b; /**********FOUND**********/ a=t; // b=t; } r=a%b; while(r!=0) { a=b; b=r; /**********FOUND**********/ r=a/b; // r=a%b; } /**********FOUND**********/ return a; // return b; } main() { int num1,num2,a; scanf(\ a=fun(num1,num2); printf(\} 第35题 (10.0分) 题号:250 难度:易 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:输入10个数,要求输出这10个数的平均值 ------------------------------------------------------*/ #include double average(double array[10]) { int i; double aver,sum=array[0]; /***********FOUND***********/ for(i=0;i<10;i++) // for(i=1;i<10;i++) sum=sum+array[i]; aver=sum/10.0; return(aver); } main( ) { /***********FOUND***********/ int score[10],aver ; // float score[10],aver; int i; printf(\ for(i=0;i<10;i++) /***********FOUND***********/ scanf(\ // scanf(\ printf(\ /***********FOUND***********/ aver=average(score[10]); // aver=average(score); printf(\} 第36题 (10.0分) 题号:412 难度:难 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半, 还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉 一半,又多吃了一个。以后每天早上都吃了前一天剩下的一 半零一个。到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。 ------------------------------------------------------*/ #include int day,x1,x2; day=9; /**********FOUND**********/ x2==1; // x2=1; while(day>0) { /**********FOUND**********/ x1=(x2+1)/2; // x1= ( x2 + 1 ) * 2 ; x2=x1; /**********FOUND**********/ day++; // day--; } printf(\} 第37题 (10.0分) 题号:381 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数 返回二分之一的圆面积。 例如:输入圆的半径值:19.527 输出为:s = 598.950017。 ------------------------------------------------------*/ #include /**********FOUND**********/ double fun( r) { double s; /**********FOUND**********/ s=1/2*3.14159* r * r; // s=1.0/2*3.14159* r * r; /**********FOUND**********/ return r; // return s; } main() { float x; printf ( \ scanf ( \ printf (\} 第38题 (10.0分) 题号:3 难度:难 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:用起泡法对10个整数从小到大排序。 ------------------------------------------------------*/ #include /**********FOUND**********/ void sort(int x,int n) // void sort(int x[],int n) { int i,j,t; for(i=0;i /**********FOUND**********/ for(j=0;j // for(j=0;j< n -1 -i ;j++)或for(j=0;j /**********FOUND**********/ if(x[i]>x[i+1]) // if(x[j]>x[ j + 1 ]) { // double fun(double r) 或double fun(float r) t=x[j]; x[j]=x[j+1]; x[j+1]=t; } } main() { int i,n,a[100]; printf(\ scanf(\ for(i=0;i printf(\ for(i=0;i<=n-1;i++) printf(\ printf(\} 第39题 (10.0分) 题号:418 难度:中 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:给一个不多于5位的正整数,要求: 一、求它是几位数, 二、逆序打印出各位数字。 ------------------------------------------------------*/ #include /**********FOUND**********/ long a,b,c,d,e,x, // long a,b,c,d,e,x; scanf(\ a=x/10000; /**********FOUND**********/ b=x/10000/1000; // b=x000/1000; c=x00/100; d=x0/10; e=x; /**********FOUND**********/ if (a==0) // if (a!=0) printf(\ else if (b!=0) printf(\ else if (c!=0) printf(\ else if (d!=0) printf(\ else if (e!=0) printf(\} 第40题 (10.0分) 题号:551 难度:中 第1章 /*------------------------------------------------------- 【程序改错】 --------------------------------------------------------- 题目:下列程序从键盘输入一个数n,求1~n之和并输出。请纠正程序中存在错误,使程 序实现其功能。 如输入 5↙ 输出:The sum from 1 to 5 is 15 -------------------------------------------------------*/ #include int i=1,n; /***********FOUND***********/ float sum; // float sum=0; /***********FOUND***********/ scanf(\// scanf(\/***********FOUND***********/ for(;i printf(\ } 第41题 (10.0分) 题号:15 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:根据整型形参m的值,计算如下公式的值。 1 1 1 t = 1- —— - —— - ... - —— 2x2 3x3 mxm 例如:若m=5,则应输出:0.536389 ------------------------------------------------------*/ #include double y=1.0; int i; /**********FOUND**********/ for(i=2;i int n=5; printf(\} 第42题 (10.0分) 题号:444 难度:易 第2章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:编写函数fun计算下列分段函数的值: x*20 x<0且x≠-3 f(x)= sin(x) 0≤x<10且x≠2及x≠3 x*x+x-1 其它 ------------------------------------------------------*/ #include double fun(double x) { /**********FOUND**********/ double y // double y; /**********FOUND**********/ if (x<0 || x!=-3.0) // if (x<0 && x!=-3.0) y=x*20; else if(x>=0 && x<10.0 && x!=2.0 && x!=3.0) y=sin(x); else y=x*x+x-1; /**********FOUND**********/ return x; // return y; } main() { double x,f; printf(\ scanf(\ f=fun(x); printf(\} 第43题 (10.0分) 题号:26 难度:中 第1章 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:实现3行3列矩阵的转置,即行列互换。 ------------------------------------------------------*/ #include int i,j,t; for(i=0;i /**********FOUND**********/ scanf(\// scanf(\ for(i=0;i for(j=0;j for(i=0;i /**********FOUND**********/ for(j=0;j /**********FOUND**********/ a[i][j]=t; // t=a[i][j]; a[i][j]=a[j][i]; /**********FOUND**********/ t=a[j][i]; //a[j][i]=t; } for(i=0;i for(j=0;j int b[3][3]; fun(b,3); } 第44题 (10.0分) 题号:554 难度:中 第2章 /*------------------------------------------------------- 【程序改错】 --------------------------------------------------------- 题目:以下程序输入一个整数n,计算累加和(1+2+3+…+n)并输出。请找出错误并改正。 如输入 5↙ 输出:The sum from 1 to 5 is 15 -------------------------------------------------------*/ #include { /***********FOUND***********/ int i, n, sum; // int i, n, sum=0; /***********FOUND***********/ scanf( \// scanf( \ for ( i = 0; i <= n; i++ ); /***********FOUND***********/ sum += n; // sum += i; printf( \}
正在阅读:
c语言程序改错讲解07-03
都是好奇惹的祸作文300字06-23
《地理课堂问题设置的目标导向性研究》 --结题报告Word06-18
关于科学精神的格言02-21
2015中考透镜及其成像汇编 - 图文07-04
数学1-4单元练习题03-14
15、电梯对重导轨安装检测记录04-22
交通工程可持续发展的重要性10-20
乡村生活四年级作文1000字07-17
2016年高考关于创新的作文素材03-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 语言程序
- 改错
- 讲解
- 2011年北京市政治会考题型示例
- 南通高三一模范文 借鉴总
- 行政法学(第2版)_在线作业_1
- 高技能人才实施意见 政策解读
- 福建省厦门市双十中学2018届高三第九次能力考试理综生物试题 Wor
- 四川省宜宾市南溪一中2017-2018学年高二下学期第一次月考地理试
- 物理竞赛训练(光学部分1--5)
- 大新锰矿实习报告
- 国家公务员考试复习备考指南:申论热点篇-发展现代服务业
- 广东省人口与计划生育条例
- 八年级政治我知我师我爱我师说课稿人教版
- 部编语文一年级下册课内外每课阅读重点训练归纳
- 成长型企业股权激励操作实务-留驻、吸引、激励核心人才
- 《隆中对》高效导学案
- 台州市重特大危险化学品事故应急预案 - 图文
- 道德讲堂之学习身边好人主题班会教案
- 北师大版小学语文五年级下册导学案 - 图文
- 长方体、正方体的知识点
- “凝望”背后的秘密
- 上海市青浦区徐泾镇镇区总体规划(2005-2020)