




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
gc23.c下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。 #define NULL 0 struct stud long num; char name10; float score; struct stud *next; ; /* comment */ int n; struct stud create() /struct stud *create(void) struct stud *head,*p1,*p2;n=0;p1=p2=(struct stud *)malloc(sizeof(struct stud);scanf(%ld,%s,%f,&p1-num,p1-name,&p1-score); /* comment */head=NULL; while(p1!=0) /while(p1-num!=0) n=n+1;if(n=1) head=p1;else p2-next=p1;p1=(struct stud *)malloc(size(struct stud);scanf(%ld,%s,%f,&p1-num,p1-name,&p1-score); p2-next=NULL; return(head);gc57.c的功能是互换给定数组中的最大数和最小数。如将下面8个数: 5,3,1,4,2,8,9,6变成: 5,3,9,4,2,8,1,6程序中,最大数与最小数的互换操作通过函数调用来实现,让指针max和min分别指向最大数和最小数。程序有二处错误,请改正。注意:不得增行和删行,也不得修改程序的结构。main() int i; static int a8=5,3,1,4,2,8,9,6; void jhmaxmin(); printf( Original array: n); for(i=0; i8; i+) printf(%5d,ai); printf(n); jhmaxmin(a,8); printf( Array after swaping max and min: n); for(i=0; i8; i+) printf(%5d,ai); printf(n);/注意:void jhmaxmin(p,n) int p, n; 这是一种老的函数形式,现在一般这样写void jhmaxmin(int p,int n)void jhmaxmin(p,n) int p, n; / int *p,n; int t, *max, *min, *end, *q; end=p+n; max=min=p; for(q=p+1; q*max) max=q; if(*qmax) min=q; /*q*min t=*max; *max=*min; *min=t;gc101.c的功能为:输入8个整数,使用指针以选择法对其进行排序(从小到大).程序中有两处错误代码,请改正.注意,不得改变程序结构。#include main() int a8,*p=a; int i,j; int tempmin,tempcode; printf(n input the numbers:n); for (i=0;i8;i+) scanf(%d,p+i); tempmin=*p; for (i=0;i7;i+) for (j=i;j8;j+) if (j=i|*(p+j)tempmin) tempmin=*(p+i); /tempmin=*(p+j);tempcode=j; ; if (tempcode!=i) *(p+tempcode)=*(p+i);*(p+j)=tempcode; /*(p+i)=tempmin; for (i=0;i8;i+) printf(%d, ,*(p+i); return(1); gc137.c中的sub函数的功能是:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。请改正函数sub中的两个错误,使它能得出正确的结果。注意:不要改动main 函数,不得增行或删行,也不得修改程序的结构。 #include stdio.h #include conio.h #include string.h void sub( char *s, char *t ) int i, d; d=strlen( s ); for( i=1; i d ; i+ ) /for(i=0;id;i+) ti=sd-1-i ; for( i=0; id; i+ ) td+i=si ; t2*d=/0 ; /t2*d=0; main( ) char s100, t100; clrscr( ) ; printf( n Please enter string S : ); scanf(%s , s ); sub(s,t) ; printf( n The result is : %s n , t ); gc163.c的功能是实现求1000以内的自然数中的完数及其个数(所谓完数,指它恰好等于除它本身之外的因子之和,如:6=1+2+3,28=1+2+4+7+14),并显示结果。但该程序中有3处错误,请调试并改正。不允许改变程序结构和增删语句。#include void main(void) int i,k,m,n,s,p; /p=0 int a100; printf(n10000以内的自然数中的完数有:); for (i=2;i=10000;i+) s=0;m=0;for (k=1;k=i/2;k+) if (i%k=0) s=s+k; am=k; m=m+1; if (s=i) /if(s=i) p=p-1; / p=p+1 printf(n%d=%d,s,a0); n=1; while (nm) printf(+%d,an); n=n+1; printf(n总个数为: %dn,p);gc165.c 程序中的函数find_str()用来返回字符串s2在字符串s1中第一次出现的首地址;如果字符串s2不是s1的子串,则该函数返回空指针NULL。 现在程序中发现有两个错误,错误就出现在那些注释行的附近,请你找出错误并将它们改正过来,要求在调试过程中不允许改变程序结构,更不得增删语句。include #include char *find_str(char *s1,char *s2) int i,j,ls2; ls2=strlen(s2); for(i=0;i=strlen(s1)-ls2;i+) for(j=0;jls2;j+) if(s1j+i!=s2j) break; /* . comment one . */ if(j=ls2) return(s1+j); /return(s1+i) return NULL;void main() char *a=dos6.22 windows98 office2000,*b=windows,c; /*c /* . comment two . */ c=find_str(a,b); if(c!=NULL) printf(%sn,c); else printf(未找到字符串%sn,b);gc166.c程序的功能是:计算并输出从键盘输入的任一正整数的各位数字之和s以及各位数字之积t。 例如,当输入的正整数为237时, s的值为12,t的值为42。 请改正程序中的两个错误,使它能得出正确的结果。注意:不得增行或删行,也不得修改程序的 结构。#include stdio.hmain() int n, yw, s=0, t=0; /t=1 scanf(%d, &n); while(n!=0) yw=n%10; s=s+yw; t=t*yw; n=n%10; / n=n/10 printf(s=%d, t=%dn, s, t);gc228.c 代码功能为:使用指针将数组a中10个整数按相反的顺序存放。程序中有3处错误代码,请指出并改正之.void inv(x,n)int *x,n;int *p,t,*i,*j,m=(n-1)/2;i=x;j=n; /j=x+n-1;p=x+m;for(;i=p;i+,j-)t=*i;*i=*j;*j=t;return;main()int a10,i; printf(input 10 number); for(i=0;i10;i+) scanf(%d,&ai); printf(The original array:n); for(i=0;i10;i+) printf(%d,ai);printf(n);inv(a,n); /inv(a,10);printf(The array has been inverted:n);for(i=0;i10;i-) / for(i=0;i10;i+) printf(%d,ai); printf(n); gc234.c中函数fun的功能是:求S的值。 设S= (2*2)/3) * (4*4)/(3*5) * . * ( (2*k*2*k)/(2*k-1)*(2*k+1) ) 请改正函数fun中的两个错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include stdio.h#include dos.hfun( int k ) /float fun(int k) int n; float s, 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+; return s /return s;main ( ) clrscr( ); printf(%fn, fun (10);gc273.c功能是:一个偶数总能表示为两个素数之和。 请改正程序的两个错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include stdio.h#include math.hmain() int a,b,c,d; scanf(%d,a); /scanf(%d,&a); for(b=3;b=a/2;b+=2) for(c=2;csqrt(b)d=a+b; /d=a-b; elsebreak; for(c=2;csqrt(d)printf(%d=%d+%dn,a,b,d); gc274.c本程序用于输出如下所示的图形。请将源程序文件中的两个错误改正过来,注意在答题过程中不得对源程序增行或删行,也不得更改程序的结构。 1 121 12321 1234321 123454321 12345654321 1234567654321 123456787654321 123456789876543211234567890987654321 12345678987654321 123456787654321 1234567654321 12345654321 123454321 1234321 12321 121 1#include #include main()int i,j,n;char s20=1234567890987654321;printf(nn); /* .comment 1.*/ n=10; /n=19; for(i=-n/2; i=n/2; i+) for(j=0;j=15+abs(i); j+)printf(%c, ); /* .comment 2.*/ for(j=0;j=n/2-abs(i);j+)printf(%c,sj); for(j=n/2-abs(i); j19;j+)printf(%c,sj); /j=n/2+abs(i)+1 printf(n); gc279.c的功能:函数prn_star(m,left)输出正菱形图案,其中参数m 代表图案的行数(为一奇数),left代表图案距屏幕左边的列数。 函数prt_str(m,left)中有3处错误代码,请指出并改正之。#includevoid prn_star(m,left)int m,left; int i,j,p; for(i=1;im;i+) /for(i=1;i=m;i+) if(i=m) p=i; /if(i=m/2) else p=m+1+i; / p=m+1-i; for (j=1;j=left+(m-(2*p-1)/2;j+)printf( ); for (j=1;j=2*p-1;j+) printf(o); printf(n); main() int m,left; printf(请输入正菱形图案的行数:); scanf(%d,&m); printf(请输入正菱形图案距屏幕左边的列数:); scanf(%d,&left); prn_star(m,left);gc280.c功能为:M个人围成一圈,从第一个人开始依次从1至N循环报数,每当报数为N时,此人出圈,直到圈中只剩下一个人为止。请按退出次序输出出圈人原来的编号以及留在圈中的最后一个人原来的编号。程序中有3处错误代码,请指出并改正之。#include#define M 10 /*number of person*/#define N 2 /*eliminate a person for N compartment*/void main() int i,j,k,n; static aM; int bM; /*eliminate persons from array a to array b */ for (n=0,j=k=M-1;nk;-n) /-n改成+n for (i=0;ik) j=0;if (!aj) continue; /continue;改成break; bn=j-1; / bn=j+1; aj=-1; /*output*/ for (i=0;ik;+i) printf(%d ,bi); for (i=0;iM;+i) if (!ai) printf(%dn,i+1);gc304.c中的函数fun()的功能是:先将在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序连接到t串的后面。例如:当s中的字符串为:abc12时,则t中的字符串应为:abc1221cba。 现在程序中发现有两个错误,错误就出现在那些注释行的附近,请你找出错误并将它们改正过来,要求在调试过程中不允许改变程序结构,更不得增删语句。#include #include void fun (char *s, char *t) int i, st; st = strlen(s); /* . comment one . */ for(i=0; i st; i+) tst = si; /ti=si; for (i=0; i st; i+) tst+i = sst-i-1; /* . comment two . */ tst = 0; /t2*st=0;void main( ) char s100, t100; printf(nPlease enter string s: ); gets(s); fun(s, t); printf(The result is: %sn, t);gc305.c程序的功能是:对由n个一位数数字组成的数字串,使其前面各数顺序向后移n-m个位置,最后m个数变成最前面的m个数。请改正程序中的两个错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!main() int number20,n,m,i; printf(the number lenth is:); scanf(%d,&n); printf(back m:); scanf(%d,&m); for(i=0;in-1;i+) scanf(%d,&numberi); scanf(%d,&numbern-1); move(number,n,m); for(i=0;iarray;p-) *p=*(p+1); /*p=*(p-1);array=array_end; /*array=array_end; m-; if(m0) move(array,n,m); gc307.c功能为:使用指针将数组中元素按升序排序。程序中有3处错误代码,请指出并改正之。#includemain() int k,m,change,a10; int *p1; int *p2=p1; /int *p2=&p1 p1=a; printf(Please input datas one by one:n); for (k=0;k10;k+) scanf(%d,p1+k); for (k=0;k9;k+) for (m=0;m9+k;m+) / for (m=0;m(*p2)m+1) change=(*p2)m; (*p2)m=(*p2)m-1; / (*p2)m=(*p2)m+1 (*p2)m+1=change; for (k=0;k10;k+) printf(%d,*(*p2+k); return(1); gc342.c的功能是:计算字符串中子串出现的次数请改正程序中的两个错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include string.h #include stdio.h main() char str120,str220,*p1,*p2; int sum=0; printf(please input two stringsn); scanf(%s%s,str1,str2); p1=str1;p2=str2; while(*p1!=0) if(*p1=*p2) while(*p1=*p2|*p2!=0) / while(*p1=*p2&*p2!=0) p1+; p2+; else p2+; /p1+; if(*p2=0) sum+; p2=str2; printf(%dn,sum); getch(); gc367.c通过接受键盘输入的月数量,再根据当前的月份,可以计算出某一年的月份。例如,当前的月份是10,加输入的月数量5,月份是3;加输入的月数量 13,月份是9。程序中输出的月份以英文字符显示。CURRENT为当前月份。程序有两处错误,请找出并修正,使之符合上述要求。不得增加行或删除行,也不得更改程序结构。#define CURRENT 11#include main()int month,monthnum;char *ch;char *month_name(int);printf(Input Month Number:);scanf(%d,&monthnum);/*-Found Mistake Below-*/if(monthnum=0) month=(CURRENT-1+monthnum)%12+1;elsemonth=(12+(CURRENT-1+monthnum)%12+1;ch=month_name(month);printf(Current month is %dn,CURRENT);printf(Add %d Months is: %sn,month,ch); /month改为monthnum/*-Found Mistake Below-*/char *month_name(int n)char *name=Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec; return(namen); / return(namen-1);gc369.c功能为:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。程序中有两处错误代码,请指出并改正之。不得增加行或删除行,也不得更改程序结构。*Find the saddle point*/#include#define N 5#define M 5main() int i,j,k,flag1,flag2,aNM,max,maxi,maxj; for (i=0;iN;i+) for (j=0;jM;j+) scanf(%d,&aij); flag2=0; for (i=0;iN;i+) max=aj0; / max=ai0 for (j=0;jmax) max=aij;maxj=j; for (k=0,flag1=1;kakmaxj)flag1=0; if (flag1) printf(nThe saddle point is:%d,%d,%dn,i,maxj,max); flag2=1; if (flag2) / !flag2 printf(nThere is no saddle point in the Matrixn);gc370.c完成从双向链表中删除值为num的一个结点的功能。链表中每个结点包含数据域(info),后继元素指针域(next)和前趋元素指针域(pre)。链表的头尾指针分别放在指针数组a的二个元素中。程序中有3处错误,请改正。注意:不要在程序中增行或删行,也不得更改程序的结构。#include struct student int info; struct student * pre; struct student * next;void del(struct student *a2,int num ) struct student *p,*q; struct student *head,*tail; head=a0; tail=a1; if(head=NULL) printf(n List null!n); else p=head; while(num!=p-info&p-next=!NULL) /while(num!=p-info&p-next) q=p; p=p-next; if (num=p-info) if (p=head) head=p-next; head-pre=NULL; else if (p=tail) q-next=NULL; tail=q; else p=p-next; q=p; / q-next=p; p-pre=p; / p-pre=q; elseprintf(%d not been found!n,num); a0=head; a1=NULL; /a1=tail; gc397.c功能为:设数组a10包括10个整型元素,求出a10中各相邻二个元素之和,并将这些和存储在数组b10中,最后按每行三个输出。程序中有三处错误代码,请改正.注意,不得改变程序结构。#include main()int a10,b10,i;for(i=0;i=10;i+) /for(i=0;i10;i+)scanf(%d,ai); /scanf(%d,&ai);for(i=1;i10;i+) bi=ai+ai-1;for(i=1;i10;i+) printf(%3d,bi);if ( (i/3)=0) printf(n); /i%3=0gc398.c功能为:输入一个大写字母,打印出一个菱形。该菱形中间一行由此字母组成,其相邻的上下两行由它前面的一个字母组成,按此规律,直到字母A出现在第一行和最末行为止。程序中有三处错误代码,请指出并改正之。 例如:输入字母D,打印出如下图形: A BBB CCCCC DDDDDDD CCCCC BBB A#include main() int i,j,k; char ch; scanf(%c,&ch); k=ch-A+1; for (i=1;i=i;j-) printf(%c, ); for (j=1;j=i-1;j+) /for(j=1;j=1;i-) for (i=40;i=i;i-) /for(j=40;j=2*i-1;i-) printf(%c, ); for (j=1;j2*i-1;j+) /for(j=1;j=2*i-1;j+) printf(%c,A+i-1); printf(n); gc405.c中,函数fun的功能是:根据形参m的值(2m9),在m行m列的二维数组中存放如下所示的数据,由main()函数输出。例如,若输入2则输出:1224若输入4则输出:12342468369124812 16程序有两处错误,请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include #include #define M 10int aMM=0;fun(int *a, int m) /*a改为aMM int j,k;for (j=0;jm;j+)for (k=1;km;k+) /k=1改为k=0ajk=(k+1)*(j+1);main() int i,j,n;clrscr();printf(Enter n:);scanf(%d,&n);fun(a,n);for(i=0;in;i+) for(j=0;jn;j+) printf(%4d,aij ); printf(n);在给定gc406.c程序中,函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当s中的数为:87653142时,t中的数为:7531。请改正函数fun中的三处错误,使它能得出正确的结果。注意:不得改变程序的结构和算法,也不能增加或删减程序行#include #include void fun(long s, long *t) int d; long sl = 1; /*found*/ t = 0; / *t=0 while (s 0) d = s%10; /*found*/ if (d%2 = 0) / d%2!=0 *t = d * sl + *t; sl *= 10; /*found*/ s = 10; / s/=10 main() long s, t; clrscr(); printf(nPlease enter s:); scanf(%ld, &s); fun(s, &t); printf(The result is: %ldn, t);gc407.c程序的功能是:读入一个数字b,求sum=b+bb+bbb。例如:读入数字7,则输出下列表达式的和sum=7+77+777。请指正程序中的三处错误,使它能得出正确的结果。 注意:不得改变程序的结构和算法,也不能增加或删除程序行。#include stdio.h#include math.hmain() int i=-1,j; long int b,temp,sum; / sum=0; scanf(%ld,b); / scanf(%ld,&b); do i+; temp=0; for (j=0;j=i;j+)temp=temp+(long int)pow(10,j-1)*b; sum+=temp; while(i=3); / while(i3) printf(sum=%ldn,sum);gc462.c程序的功能是:打印出如下形式的杨辉三角形。要求根据用户的输入,决定输出几行。程序中有三处错误,请指出并改正。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 . 注意:不得改变程序的结构和算法,也不能增加或删除程序行。#include stdio.hint yanghui(int x,int y) /加上分号;main() int i,j,n; clrscr(); printf(Input the row of the yanahui:n); scanf(%d,&n); for (i=1;i=n;i+) for (j=0;j=n-i;j+) printf( ); for (j=1;j=i;j+) printf(%3d ,yanghui(i,j); printf(n); int yanghui(x,y) / int yanghui( int x,int y) int z; if (y=1|y=x) z=1; else z=yanghui(x,y-1)+yanghui(x-1,y); / z=yanghui(x-1,y-1)+yanghui(x-1,y) return z;输入一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美的集团工作流程体系
- 2025年事业单位工勤技能-湖北-湖北水生产处理工三级(高级工)历年参考题库含答案解析
- 文化场馆扩建工程2025年社会稳定风险评估研究
- 2025年事业单位工勤技能-浙江-浙江土建施工人员一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-河南-河南舞台技术工一级(高级技师)历年参考题库含答案解析
- 2024版房产证抵押合同样本
- 2025年事业单位工勤技能-河北-河北理疗技术员三级(高级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江西-江西药剂员三级(高级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西计算机信息处理员二级技师历年参考题库含答案解析
- 2025年事业单位工勤技能-广西-广西放射技术员四级(中级工)历年参考题库典型考点含答案解析
- 骨折内固定术术前宣教
- 毛振明《体育教学论》(第3版)配套题库【课后习题+专项题库】
- 集团公司内部资金调剂管理办法
- 思想道德与法治课件:专题五在实现中国梦的实践中放飞青春梦想
- 新人教A必修一《集合》课件
- 复用器械处理流程
- 静安沉恒 沉子恒
- GB/T 23510-2009车用燃料甲醇
- GB/T 14216-2008塑料膜和片润湿张力的测定
- 警械使用课件
- 人教版小学三年级英语上册期中考试试卷
评论
0/150
提交评论