《历年上机练习系统部分程序改错题及答案.doc》由会员分享,可在线阅读,更多相关《历年上机练习系统部分程序改错题及答案.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流历年上机练习系统部分程序改错题及答案.精品文档.程序调试1、#include #include void fun(char *s,char *t) int i,sl; sl=strlen(s); for(i=0;isl;i+) ti=si; for(i=0;isl;i+) /*1*/ / tsl+i=ss1-1-i; tsl+i=ssl-i; /*2*/ tsl=0; / tsl+s1=0;void main() char s100,t100; scanf(%s,s); fun(s,t); printf(%s,t);2、#include vo
2、id main() int n,i; scanf(%d,&n); /* 1 */ i=1; / i=2; while(n1) if(n%i=0) printf(%dt,i); n/=i; else /* 2 */ n+; / i+;3、#include #include void main() int n,s=0; scanf(%d,&n); n=fabs(n); /* 1 */ while(n1) / 1n 2n!=0 s=s+n%10; /* 2 */ n=n%10; / n=n/10; printf(%dn,s);4、#include #include #include void mai
3、n() int i,n; /* 1 */ struct axy float x,y; a; /struct axy float x,y; *a; scanf(%d,&n); a=(float*) malloc(n*2*sizeof(float); for(i=0;in;i+) /* 2 */ scanf(%f%f,ai.x,ai.y);/ scanf(%f%f,&ai.x,&ai.y); for(i=0;in;i+) if(sqrt(ai.x*ai.x+ai.y*ai.y)=5) printf(%f,%fn,ai.x,ai.y);5、#includevoid itoa(long i,char
4、*s) if(i=0) return; /* 1 */ *s = 1+i%10; /*s = 0+i%10; itoa(i/10,s-1);void main() long n; char str7=; scanf(%ld,&n); /* 2 */ itoa(n,str+6); / itoa(n,str+5); printf(%s,str);6、#include #define N 10void main() int i,j,min,temp; int aN=5,4,3,2,1,9,8,7,6,0; printf(nThe array is:n); /* 输出数组元素 */ for (i=0;
5、iN;i+) printf(%5d,ai); for (i=0;iN-1;i+) /* 排序操作 */ min = i; for (j=i+1; jN; j+) /* 1 */ if (amin=aj) /* 2 */ temp=amin; amin=aj; aj=temp; /* 数据交换 */ temp=amin; amin=ai; ai=temp; printf(nThe sorted numbers: n); /* 输出排序结果 */ for (i=0;iN;i+) printf(%5d,ai); printf(n);7、#include void main() char s180,s
6、240; int i=0,j=0; printf(nInput the first string:); scanf(%s,s1); printf(nInput the second string:); scanf(%s,s2); while (s1i !=0) /* 1 */ i+1; / i= i+1; while (s2j !=0) /* 2 */ s1+i=s2+j; /* 拼接字符到s1 */ /s1i+=s2j+; s1i =0; printf(nNew string: %s,s1);8、#include void main() int i,a,n,t=0; /* 1 */ s=0;
7、 / int s=0; scanf(%d%d,&a,&n);for(i=1;i=n;i+) /* 2 */ t=t*10+i; / t=t*10+1; s=s+t; s=s*a; printf(%dn,s);9、#include #include void main() float x,eps,s=1,t=1,i=1; scanf(%f%f,&x,&eps); do /* 1 */ t=-t*x/+i; / t = -t * x / i+; s+=t; /* 2 */ while(fabs(t)=eps) ; printf(%fn,s);10、#include void main() floa
8、t x,max,min; int i; /* 1 */ for(i=0;i=10;i+) / i10 循环的个数不对,如果imax) max=x; if(xmin) min=x; printf(%f,%fn,max,min);11、#include #include void main() char str256; int i,j,k=0,n; gets(str); n=strlen(str); for(i=0;in;i+) /*1*/ if (tolower(stri)z) / (stri)=a & (stri)=A & (stri )=Z)或tolower(stri)z /*2*/ str
9、n=stri; n+; / strk=stri; k+; strk=0; printf(%sn,str);12、在考生目录下,有Modify.c程序,该程序中”/*N*/”的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入m、n(要求输入数均大于0),输出它们的最小公倍数/*find the lease common multiple of m and n*/#include void main() int m,n,k;/*1*/while(scanf(%d%d,&m,&n),m0&n0); / m0| n0 for(k=m;k%n!=0;) /*2*
10、/ k=k+m%n; / k=k+m printf(%dn,k);13、在考生目录下,有Modify.c程序,该程序中/* N */的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:输入1个字符串,输出其中所出现过的大写英文字母。如运行时输入字符串FONTNAME and FILENAME,应输出F O N T A M E I L。#include void main() char x80,y26; int i,j,ny=0;gets(x); for(i=0;xi!=0;i+)if(xi=A&xi=Z) for(j=0;jny;j+)/* 1 */ if(
11、yi=xj) continue; / if(yj=xi) break;if(j=ny) yny=xi; ny+; /* 2 */for(i=0;i26;i+) / inyprintf(%c ,yi);printf(n);14、. 在考生目录下,有Modify.c程序,该程序中/* N */的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)。该程序功能:分别统计字符串中所有英文字母中的各元音字母个数。#include #include void main() char a80; int n5=0,i; gets(a); for(i=0; ai!=0; i+) /* 1 *
12、/ switch(tolower(a+i) / (tolower(ai) case a: n0+; break; case e: n1+; break; case i: n2+; break; case o: n3+; break; /* 2 */ case U: n4+; break; / u for(i=0;i5;i+) printf(%dn,ni);15、在考生目录下,有Modify.c程序,该程序中/* N */的下一行中有错误,请改正(注意:不得加行、减行、加句、减句,否则后果自负)该程序功能:输入n(0n10)后,输出1个数字金字塔。如输入n为4,则输出: 1 222 33333
13、4444444 #include void main() int i,j,n; /* 1 */ scanf(%d, n); / &n for(i=1;i=n;i+) for(j=1;j=n+1-i;j+) putchar( ); for(j=1;j=2*i-1;j+) putchar(char)(i+48); /* 2 */ putchar(n); / n16、 在考生目录下,有Modify.c程序,该程序中“/* N */”的下一行中有错误,请改正(注意:不得加行、减/行、加句、减句,否则后果自负)。 该程序功能:输入n以及小于n个字符的字符串,将字符串中所有小写字母改为相应的大写字母后,输出该字符串。 #include #include #include void main() int n,i; /* 1 */ char str; / char *str scanf(%dn,&n); str=(char*)malloc(n); gets(str); /* 2 */ for(i=1;i=a& stri=z) stri=stri-32 ; puts(str);