国家计算机题库之改错题.docx
- 文档编号:25438007
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:94
- 大小:102.86KB
国家计算机题库之改错题.docx
《国家计算机题库之改错题.docx》由会员分享,可在线阅读,更多相关《国家计算机题库之改错题.docx(94页珍藏版)》请在冰豆网上搜索。
国家计算机题库之改错题
全国计算机等级考试C语言――改错题
1.给定程序中fun函数的功能是:
根据整型形参m的值,计算如下公式的值:
例如,若m中的值为5,则应输出0.536389。
doublefun(intm)
{doubley=1.0;
inti;
/**************found**************/
for(i=2;i for(i=2;i<=m;i++) /**************found**************/ y-=1/(i*i);改为: y-=1.0/(i*i); return(y);} main() {intn=5; printf("\nTheresultis%lf\n",fun(n));} 2.程序中fun函数功能是: 将s字符串的正序和反序进行连接,形成一个新字符串放在t数组中。 例如,当 s所指字符串为“ABCD”时,则t所指字符串的内容应为“ABCDDCBA”。 /************found************/ voidfun(chars,chart)改为: voidfun(char*s,char*t) {inti,d; d=strlen(s); for(i=0;i for(i=0;i /************found************/ t[2*d-1]='\0';}改为: t[2*d]='\0'; main() {chars[100],t[100]; printf("\nPleaseenterstringS: ");scanf("%s",s); fun(s,t); printf("\nTheresultis: %s\n",t);} 3.给定程序中fun函数的功能是: 将s所指字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t 所指数组中(规定第一个字符放在第0位中)。 例如: 字符串中的数据为: AABBCCDDEEFF,则应输出 ABBCDDEFF。 #defineN80 voidfun(char*s,chart[]) {inti,j=0; for(i=0;i /***********found**********/ if(i%2&&s[i]%2==0)改为: if(i%2==0||s[i]%2==0) t[j++]=s[i]; /***********found**********/ t[i]='\0';}改为: t[j]='\0'; main() {chars[N],t[N]; printf("\nPleaseenterstrings: ");gets(s); fun(s,t); printf("\nTheresultis: %s\n",t);} 4.给定程序中fun函数的功能是: 计算n! 。 例如,给n输入5,则输出120.000000。 #include doublefun(intn) {doubleresult=1.0; /************found************/ ifn==0改为: if(n==0) return1.0; while(n>1&&n<170) /************found************/ result*=n--改为: result*=n--; returnresult; } main() {intn; printf("InputN: "); scanf("%d",&n); printf("\n\n%d! =%lf\n\n",n,fun(n)); } 5、给定程序中fun函数的功能是: 先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之和。 #include intfun() {inta[3][3],sum; inti,j; /*********found**********/ ______;改为: sum=0 for(i=0;i<3;i++) {for(j=0;j<3;j++) /*********found**********/ scanf("%d",a[i][j]);改为: scanf("%d",&a[i][j]); } for(i=0;i<3;i++) sum=sum+a[i][i]; printf("Sum=%d\n",sum); } main() {fun();} 6、给定程序中fun函数的功能是: 求 ,(此处aa…aa表示n个a,a和n的值在1至9之间)。 例如,a=3,n=6,则以上表达式为: s=333333-33333-3333-333-33-3,其值是: 296298。 a和n是fun函数的形参。 #include longfun(inta,intn) {intj; /**************found**************/ longs=0,t=1;改为: longs=0,t=0; /**************found**************/ for(j=0;j<=n;j++)改为: for(j=0;j t=t*10+a; s=t; for(j=1;j /**************found**************/ t=t%10;改为: t=t/10; s=s-t;} return(s); } main() {inta,n; printf("\nPleaseenteraandn: "); scanf("%d%d",&a,&n); printf("Thevalueoffunctionis: %ld\n",fun(a,n)); } 7、给定程序中fun函数的功能是: 求k! (k<13),所求阶乘的值作为函数值返回。 例如: 若k=10,则应输出3628800。 #include longfun(intk) { /************found************/ ifk>0改为: if(k>0) return(k*fun(k-1)); /************found************/ elseif(k=0)改为: elseif(k==0) return1L; } main() {intk=10; printf("%d! =%ld\n",k,fun(k));} 8、给定程序中fun函数的功能是: 由形参给定n个实数,输出平均值,并统计在平均值以上(含平均值)的实数个数。 例如,n=8时,输入: 193.99,195.673,195.757,196.051,196.092,196.596,196.579,196.763,所得平均值为: 195.838745,在平均值以上的实数个数应为: 5。 #include intfun(floatx[],intn) { /************found************/ intj,c=0,floatxa=0.0;改为: intj,c=0;floatxa=0.0; for(j=0;j xa+=x[j]/n; printf("ave=%f\n",xa); for(j=0;j /************found************/ if(x[j]=>xa)改为: if(x[j]>=xa) c++; returnc; } main() {floatx[100]={193.199,195.673,195.757,196.051, 196.092,196.596,196.579,196.763}; printf("%d\n",fun(x,8));} 9、给定程序中fun函数的功能是: 将tt所指字符串中的小写字母都改为对应的大写字母,其它字符不变。 例如: 若输入“Ab,cD”,则输出“AB,CD” #include #include char*fun(chartt[]) {inti; for(i=0;tt[i];i++) /**********found***********/ if(('a'<=tt[i])||(tt[i]<='z'))改为: if((tt[i]>='a')&&(tt[i]<='z')) /**********found***********/ tt[i]+=32;改为: tt[i]-=32; return(tt); } main() {chartt[81]; printf("\nPleaseenterastring: "); gets(tt); printf("\nTheresultstringis: \n%s",fun(tt));} 10、给定程序中fun函数的功能是: 在p所指字符串中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。 例如,调用fun函数这前给字符串输入: ABCDeFGH,调用后字符串中的内容为: eABCDFGH。 #include /**********found**********/ fun(char*p)改为: voidfun(char*p) {charmax,*q;inti=0; max=p[i]; while(p[i]! =0) {if(max {max=p[i]; /**********found**********/ q=p+I改为: q=p+i; } i++;} /**********found**********/ wihle(q>p)改为: while(q>p) {*q=*(q-1); q--;} p[0]=max; } main() {charstr[80]; printf("Enterastring: ");gets(str); printf("\nTheoriginalstring: ");puts(str); fun(str); printf("\nThestringaftermoving: ");puts(str);printf("\n\n");} 11、给定程序MODI1.CJ是建立一个带头结点的单向链表,并用随机函数为各结点赋值。 给定程序中fun函数的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并作为函数值返回。 #include #include typedefstructaa {intdata;structaa*next;}NODE; intfun(NODE*h) {intsum=0; NODE*p; /***********found**********/ p=h;改为: p=h->next; /***********found**********/ while(p->next)改为: while(p) {if(p->data%2==0)sum+=p->data; /***********found**********/ p=h->next;改为: p=p->next; } returnsum; } NODE*creatlink(intn) {NODE*h,*p,*s,*q; inti,x; h=p=(NODE*)malloc(sizeof(NODE)); for(i=1;i<=n;i++) {s=(NODE*)malloc(sizeof(NODE)); s->data=rand()%16;s->next=p->next; p->next=s;p=p->next;} p->next=NULL; returnh; } outlink(NODE*h,FILE*pf) {NODE*p; p=h->next; fprintf(pf,"\n\nTHELIST: \n\nHEAD"); while(p) {fprintf(pf,"->%d",p->data);p=p->next;} fprintf(pf,"\n"); } outresult(ints,FILE*pf) {fprintf(pf,"\nThesumofevennumbers: %d\n",s);} main() {NODE*head;inteven; head=creatlink(12); head->data=9000; outlink(head,stdout); even=fun(head); printf("\nTheresult: \n");outresult(even,stdout); } 12、给定程序中fun函数的功能是: 求三个数的最小公倍数。 例如,给主函数中的变量x1,x2,x3分别输入15112,则输出结果应当是: 330。 #include /************found************/ fun(intx,y,z)改为: fun(intx,inty,intz) {intj,t,n,m; /************found************/ j=1;改为: j=x; t=j%x;m=j%y;n=j%z; /************found************/ while(t! =0&&m! =0&&n! =0)改为: while(t! =0||m! =0||n! =0) {j=j+1;t=j%x;m=j%y;n=j%z;} /************found************/ returni;改为: returnj; } main() {intx1,x2,x3,j; printf("Inputx1x2x3: ");scanf("%d%d%d",&x1,&x2,&x3); printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3); j=fun(x1,x2,x3); printf("Theminimalcommonmultipleis: %d\n",j);} 13、给定程序中fun函数的功能是: 先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。 例如: 当s听字符串为“ABCDE”时,则t中的字符串应为“ABCDEEDCBA”。 #include #include voidfun(char*s,char*t) {inti,sl; sl=strlen(s); /************found************/ for(i=0;i<=s1;i++)改为: for(i=0;i t[i]=s[i]; for(i=0;i t[sl+i]=s[sl-i-1]; /************found************/ t[sl]='\0';改为: t[2*sl]='\0'; } main() {chars[100],t[100]; printf("\nPleaseenterstrings: ");scanf("%s",s); fun(s,t); printf("Theresultis: %s\n",t); } 14、给定程序中fun函数的功能是: 从s所指字符串中删除所有小写字母c。 #include voidfun(char*s) {inti,j; for(i=j=0;s[i]! ='\0';i++) if(s[i]! ='c') /************found************/ s[j]=s[i];改为: s[j++]=s[i]; /************found************/ s[i]='\0';改为: s[j]='\0'; } main() {chars[80]; printf("Enterastring: ");gets(s); printf("Theoriginalstring: ");puts(s); fun(s); printf("Thestringafterdeleted: ");puts(s);printf("\n\n"); } 15、给定程序中fun函数的功能是: 从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。 规定,函数中a1放个位数,a2放十位数。 #include /************found************/ fun(int*b)改为: intfun(int*b) {intk,a1,a2,i=0; /************found************/ for(k=10;k<=55;k++){改为: for(k=10;k<55;k++){ /************found************/ a2=k/1O;改为: a2=k/10; a1=k-a2*10; if((k%3==0&&a2==5)||(k%3==0&&a1==5)) {b[i]=k;i++;} } /************found************/ returnk;改为: returni; } main() {inta[100],k,m; m=fun(a); printf("Theresultis: \n"); for(k=0;k } 16、给定程序中fun函数的功能是: 求S的值。 例如,当k为10时,函数值应为: 1.533852。 #include #include /************found************/ voidfun(intk)改为: floatfun(intk) {intn;floats,w,p,q; n=1; s=1.0; while(n<=k) {w=2.0*n; p=w-1.0; q=w+1.0; s=s*w*w/p/q; n++; } /************found************/ returns改为: returns; } main() {printf("%f\n",fun(10));} 17、给定程序中fun函数的功能是: 将十进制正整数m转换成k(2<=k<=9)进制数,并按高位到低位顺序输出。 例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。 #include #include /**********found**********/ fun(intm,intk)改为: voidfun(intm,intk) {intaa[20],i; for(i=0;m;i++) { /**********found**********/ aa[i]=m/k;改为: aa[i]=m%k; m/=k; } for(;i;i--) /**********found**********/ printf("%d",aa[i]);改为: printf("%d",aa[i-1]); } main() {intb,n; printf("\nPleaseenteranumberandabase: \n");scanf("%d%d",&n,&b); fun(n,b);printf("\n");} 18、给定程序中fun函数的功能是: 根据整型形参n,计算如下公式的值。 例如: 若n=10,则应输出0.617977. #include /************found************/ intfun(intn)改为: floatfun(intn) {floatA=1;inti; /************found************/ for(i=2;i for(i=2;i<=n;i++) A=1.0/(1+A); returnA;} main() {intn; printf("\nPleaseentern: "); scanf("%d",&n);printf("A%d=%f\n",n,fun(n));} 19、给定程序中fun函数的功能是: 输出M行M列整数方阵,然后求两条对角线上元素之和,返回此和数。 #include #defineM5 /************found************/ intfun(intn,intxx[][])改为: intfun(intn,intxx[M][M]) {inti,j,sum=0; printf("\nThe%dx%dmatrix: \n",M,M); for(i=0;i {for(j=0;j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 国家 计算机 题库 改错
![提示](https://static.bdocx.com/images/bang_tan.gif)