计算机二级C语言上机改错题题库Word版.doc

上传人:rrsccc 文档编号:9162766 上传时间:2021-02-05 格式:DOC 页数:76 大小:602.50KB
返回 下载 相关 举报
计算机二级C语言上机改错题题库Word版.doc_第1页
第1页 / 共76页
计算机二级C语言上机改错题题库Word版.doc_第2页
第2页 / 共76页
计算机二级C语言上机改错题题库Word版.doc_第3页
第3页 / 共76页
计算机二级C语言上机改错题题库Word版.doc_第4页
第4页 / 共76页
计算机二级C语言上机改错题题库Word版.doc_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《计算机二级C语言上机改错题题库Word版.doc》由会员分享,可在线阅读,更多相关《计算机二级C语言上机改错题题库Word版.doc(76页珍藏版)》请在三一文库上搜索。

1、传播优秀Word版文档 ,希望对您有帮助,可双击去除!南开二级C语言上机100题(从搜狐网整理)31、改错332、改错433、改错544、改错655、改错8(2004.7.27)56、改错9(2004.7.27)67、改错13(8.4)78、改错14(8.4)89、改错15(8.5)910、改错17(8.5)911、改错19(8.5)1012、改错20(8.5)1113、改错211214、改错221315、改错231416、改错241417、改错251618、改错261619、改错271720、改错281821、改错291822、改错301956改错4457改错4558改错4559改错4660

2、改错4761改错4762改错4863改错4964改错5065改错5066改错5167改错5268改错5269改错5370改错5471改错5472改错5573改错5674改错5675改错5776改错5877改错5878改错5979改错6080改错6081改错6182改错6283改错6284改错6385改错6486改错6487改错6588改错6689改错6690改错6791改错6892改错6893改错6994改错6995改错7096改错7197改错72南开二级C语言上机100题1、 改错下列给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正程序中的

3、错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!试题程序#include#includevoidfun(char*s)inti,j;for(i=0,j=0;si!=0;i+)*if(si=0&si=9)sj=si;j改为j*sj=0;sj=0main()charitem80;clrscr();printf(nEnterastring:);gets(item);printf(nnThestringis:%sn,item);fun(item);printf(nnThestringofchangingis:%sn,item);2、 改错下列给定程序中,

4、函数fun的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AAaaBBb123CCccccd,则应该输出结果:upper=6,lower=8。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!试题程序#include#include*voidfun(char*s,inta,intb)a应为*a,b应为*bwhile(*s)if(*s=A&*s=a&*s=z)*b+;(*b)+;s+;main()chars100;intupper=0,lower=0;clrscr();printf(nPleaseastring

5、:);gets(s);fun(s,&upper,&lower);printf(nupper=%dlower=%dn,upper,lower);3、 改错5假定整数数列中的数不重复,并存放在数组中。下列给定程序中,函数fun的功能是:删除数列中值为x的元素。n中存放的是数列中元素的个数。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!试题程序#include#defineN20int fun(int*a,intn,intx)intp=0,i;an=x;while(x!=ap)p=p+1;/*found*/if(P=n)return-1

6、;- p=nelsefor(i=p;in;i+)*ai+1=ai;ai=ai+1;returnn-1;main()intwN=-3,0,1,5,7,99,10,15,30,90,x,n,i;n=10;printf(Theoriginaldata:n);for(i=0;in;i+)printf(%5d,wi);printf(nInputx(todelete):);scanf(%d,&x);printf(Delete:%dn,x);n=fun(w,n,x);if(n=-1)printf(*Norbefound!*nn);elseprintf(Thedataafterdeleted:n);for(i

7、=0,in;i+)printf(%5d,wi);printf(nn);4、 改错下列给定程序中,函数fun的功能是:根据整型形参m的值,计算如下公式的值。t=1-1/22-1/33-1/mm例如,若m中的值为5,则应输出:0.536389。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#includedoublefun(intm)doubley=1.0;inti;*for(i=2;im;i+)“”改为“=”*y-=1/(i*i);“1”改为“1.0”return(y);main()intn=5;clrsc

8、r();printf(nRheresultis%1fn,fun(n);5、 改错下列给定程序中,函数fun的功能是:在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为eABCDFGH。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!试题程序:#includefun(char*p)charmax,*q;inti=0;max=pi;while(pi!=0)if(maxpi)max=pi;*p=q+i;改为q=

9、p+i;i+;*while(qp)qp*q=*(q-1);q-;p0=max;main()charstr80;printf(Enterastring:);gets(Str);printf(nTheoriginalstring:);puts(Str);fun(str);printf(nThestringagtermoving:);puts(str);ptintf(nn);6、 改错下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如,若输入8名学生的成绩:80.5607290.59851.58864则

10、低于平均分的学生人数为4(平均分为:75.5625)。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#include#defineN20intfun(float*s,intn,float*aver)floatave,t=0.0;intcount=0,k,i;for(k=0;kn;k+)*t=sk;t+=sk;ave=t/n;for(i=0;in;i+)if(siave)count+;*aver=&ave;去掉&returncount;main()floats30,aver;intm,i;clrscr();

11、printf(nPleaseenterm:;scanf(%d,&m);printf(nPleaseenter%dmark:n,m);for(i=0;im;i+)scanf(%f,s+i);printf(nThenumberofstudents:%dn,fun(s,m,&aver);printf(Ave=%fn,aver);)7、 改错下列程序中,fun函数的功能是:根据形参m,计算如下公式的值。t=1+1/2+1/3+1/4+1/m例如,若输入5,则应输出2.283333。请改正程序中的语法错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序

12、:#include#includedoublefun(intm)doublet=1.0;inti;for(i=2;i=m;i+)*t+=1.0/k;k改为i*_;填returnt;main()intm;clrscr();printf(“nPleaseenter1integernumber:”);scanf(“%d”,&m);printf(“nTheresultis%1fn”,fun(m);8、 改错下列程序中,fun和funx函数的功能是:用二分法求方程2xxx4xx3x60的一个根,并要求绝对误差不超过0.001。例如,若给m输入100,给n输入90,则函数求得的一个根为2.000。请改正程

13、序中的语法错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#includedoublefunx(doublex)return(2*x*x*x-4*x*x+3*x-6);doublefun(doublem,doublen)*intr;改为doubler;r=(m+n)/2;*while(fabs(n-m)0.001)=if(funx(r)*funx(n)0m=r;elsen=r;r=(m+n)/2;)returnr;)main()doublem,n,root;printf(Entermn:n);scanf(%1f%1f,&

14、m,&n);root=fun(m,n);printf(root=%6.3fn,root);9、 改错下列给定程序中,函数fun的功能是:判断字符ch是否与str所指串中的某个字符相同;若相同,则什么也不做,若不同,则将器插在串的最后。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!试题程序#include#include#include*voidfun(charstr,charch)-1while(*str&*str!=ch)str+;*if(*str=ch)-2str0=ch;str1=0; main()chars81,c;clr

15、scr();printf(nPleaseenterastring:n);gets(s)printf(nPleaseenterthecharactertosearch:);c=getchar();fun(s,c);printf(nTheresultis%sn,s);15题Answer:1.voidfun(char*str,charch)2.if(*str=0)10、 改错17(8.5)下列给定程序中,函数fun的功能是:计算并输出k以内最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多m

16、ain函数,不得增行或删行,也不得更改程序的结构!试题程序#include#includeintfun(intk)intm=0,mc=0,j;while(k=2)&(mc10)*if(k%13=0)|(k%17=0)-1m=m+k;mc+;k-;returnm;*-2main()clrscr();printf(%dn,fun(500);17题Answer:1.if(k%13=0)|(k%17=0)2.11、 改错下列给定程序中,函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,一次构成一个新数放在t中。例如,当s中的数为7654321时,t是的数为642。请改正程序中的错误,使程序

17、能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!试题程序#include#include*voidfun(longs,longt)-1longsl=10;s/=10;*t=s%10;*while(s0)12、 改错N个有序整数数列已放在一堆数组中,下列给定程序中,函数fun的功能是:利用折半查找算法找整数m再数组中的位置。若找到,则返回其下标值;反之,则返回1。折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(lowhigh,查找结束。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程

18、序的结构!试题程序#include#defineN10*voidfun(inta,intm)-1intlow=0,high=N-1,mid;while(low=high)mid=(low+high)/2;if(m=amid)-2low=mid+1;elsereturn(mid);return(-1);main()inti,aN=-3,4,7,9,13,45,67,89,100,180,k,m;printf(a数组中的数据如下:);for(i=0;i=0)printf(m=%d,index=%dn,m,k);elseprintf(Notbefound!n);20题Answer:1.intfun(

19、inta,intm)2.elseif(mamid)13、 改错21下列给定程序是建立一个带头结点的单向列表,并用随机函数为各结点数据域赋值。函数fun的功能是:求出单向列表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请改正程序中的错误,使程序能得出正确的结果。注意,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序#include #include#includetypedef struct aa int data; struct aa *next; NODE;/*found*/fun(NODE *h) - int fun(NODE *h) int max=-1

20、; NODE *p; p=h; while(p) if(p-datamax) max=p-data; /*found*/ p=h-next; - p=p-next; return max;outresult(int s,FILE *pf) fprintf(pf,nThe max in link : %dn,s);NODE *creatlink(int n,int m) NODE *h, *p, *s, *q; int i, x; h=p=(NODE *)malloc(sizeof(NODE); h-data=9999; for(i=1; idata=rand()%m; s-next=p-nex

21、t; p-next=s; p=p-next; p-next=NULL; return h;outlink(NODE *h,FILE *pf) NODE *p; p=h-next; fprintf(pf,nTHE LIST:nn HEAD); while(p) fprintf(pf,-%d ,p-data); p=p-next; fprintf(pf,n);main() NODE *head; int m; clrscr(); head=creatlink(12,100); outlink(head,stdout); m=fun(head); printf(nTHE RESULT :n); ou

22、tresult(m,stdout); 14、 改错22下列给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值y=1+1/(2*2)+1/(3*3)+1/(4*4)+1/(m*m)例如:若m中的值为5,则应输出:1.463611请改正程序中的错误,使程序能得出正确的结果。注意,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序#include #include double fun(int m) double y=1.0; int i; /*found*/ for(i=2;im;i+)for(i=2;i1)例如,当给n输入5时,函数值为18,当给n输入3时,函数值

23、为14。请改正程序中的错误,使程序能得出正确的结果。注意,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序#include /*found*/fun(n) int fun(int n) int c; /*found*/ if(n=1) if(n= =1) c=10; else c=fun(n-1)+2; return(c);main() int n; printf(Enter n: ); scanf(%d,&n); printf(The result:%dnn,fun(n);int fun(int n) 16、 改错24 下列给定程序中,函数fun的功能是:从s所指字符串中

24、,找出t所指子串的个数作为函数值返回。例如,当s 所指字符串中的内容为abcdabfab,t所指字符串的内容为ab,则函数返回整数3请改正程序中的错误,使程序能得出正确的结果。注意,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序#include #include #include int fun(char *s,char *t) int n; char *p,*r; n=0; while(*s) p=s; r=t; while(*r) /*found*/ if(r= =p) if(*r= =*p) r+; p+; else break; /*found*/ if(r= =

25、0) if(*r= =0) n+; s+; return n;main() char s100,t100; int m; clrscr(); printf(nPlease enter string s:); scanf(%s,s); printf(nPlease enter substring t:); scanf(%s,t); m=fun(s,t); printf(nThe result is: m=%dn,m); 17、 改错25下列给定程序中,函数fun的功能是:计算n!例如,给n输入5,则输出120.000000请改正程序中的错误,使程序能得出正确的结果。注意,不要改动main函数,不

26、得增行或删行,也不得更改程序的结构!试题程序#include #include double fun(int n) double result=1.0; /*found*/ if (n=0) if (n= =0) return 1.0; while(n1&n170) /*found*/ result =n- -;result *=n- -; return result;main() int n; printf(Input N:); scanf(%d,&n); printf(nn%d!=%1fnn,n,fun(n);18、 改错26下列给定程序中,函数fun的功能是:先从键盘上输入一个3行3列矩

27、阵的各个元素的值,然后输出主对角线元素之和。请改正程序中的错误,使程序能得出正确的结果。注意,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序#includeint fun() int a33,sum; int i,j; /*found*/ _;sum = 0; for (i=0;i3;i+) for (j=0;j3;j+) /*found*/ scanf(%d, aij); scanf(%d, &aij); for (i=0;i3;i+) sum=sum+aii; printf(sum=%dn,sum);main() fun(); 19、 改错27下列给定程序中,函数fu

28、n的功能是:根据以下公式求的值,并作为函数值返回/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请改正程序中的错误,使程序能得出正确的结果。注意,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序#include #include #include double fun(double eps) double s,t; int n=1; s=0.0; /*found*/ t=0; t=1; /*found*/ while(teps)whil

29、e(t=eps) s+=t; t=(t*n)/(2*n+1); n+; /*found*/ return(s);- return(2*s);main() double x; printf(nPlease enter a precision: ); scanf(%lf,&x); printf(neps=%lf, Pi=%lfnn,x,fun(x); 20、 改错28下列给定程序中,函数fun的功能是:在字符串的最前端加入n个*号,形成新串,注意,字符串的长度最长允许为79请改正程序中的错误,使程序能得出正确的结果。注意,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序#include #include void fun ( char s, int n ) char a80 , *p; int i;/*found*/ s=p;-p=s for(i=0; in; i+) ai=*; do ai=*p; i+; /*found*

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1