当前位置:首页 > C语言程序改错及填空题
gets(s); fun(s,t);
printf(\}
gc305.c程序的功能是:对由n个一位数数字组成的数字串,使其前面各数顺序向后移n-m个位置,最后m个数变成最前面的m个数。
请改正程序中的两个错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
main() {
intnumber[20],n,m,i; printf(\scanf(\printf(\scanf(\for(i=0;i move(array,n,m) intn,m,array[20]; { int*p,array_end; array_end=*(array+n-1); for(p=array+n-1;p>array;p--) *p=*(p+1);////////*p=*(p-1); array=array_end;///////*array=array_end; m--; if(m>0)move(array,n,m); } gc307.c功能为:使用指针将数组中元素按升序排序。程序中有3处错误代码,请指出并改正之。 #include intk,m,change,a[10]; int*p1; int**p2=p1;////////////int**p2=&p1 p1=a; printf(\for(k=0;k<10;k++) scanf(\for(k=0;k<9;k++) { for(m=0;m<9+k;m++)//////for(m=0;m<9-k;m++) { { } } } for(k=0;k<10;k++) printf(\return(1); } change=(*p2)[m]; (*p2)[m]=(*p2)[m-1];/////////(*p2)[m]=(*p2)[m+1] (*p2)[m+1]=change; if((*p2)[m]>(*p2)[m+1]) gc342.c的功能是:计算字符串中子串出现的次数 请改正程序中的两个错误,使程序能输出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include\#include\main() {charstr1[20],str2[20],*p1,*p2; intsum=0; printf(\scanf(\p1=str1;p2=str2; while(*p1!='\\0') { if(*p1==*p2) else p2++;///////////////p1++; if(*p2=='\\0') } printf(\getch(); } sum++; p2=str2; {while(*p1==*p2||*p2!='\\0')////////////////while(*p1==*p2&&*p2!='\\0') {p1++; p2++;} } gc367.c通过接受键盘输入的月数量,再根据当前的月份,可以计算出某一年的月份。例如,当前的月份是10,加输入的月数量5,月份是3;加输入的月数量–13,月份是9。程序中输出的月份以英文字符显示。CURRENT为当前月份。程序有两处错误,请找出并修正,使之符合上述要求。不得增加行或删除行,也不得更改程序结构。 #defineCURRENT11 #include /*------------FoundMistakeBelow------------*/ char*month_name(intn) { } char*name[]={\return(name[n]);///////////////return(name[n-1]); intmonth,monthnum; char*ch; char*month_name(int); printf(\scanf(\ /*------------FoundMistakeBelow------------*/ if(monthnum>=0) else month=(12+(CURRENT-1+monthnum))+1; ch=month_name(month); printf(\ printf(\//////////month month=(CURRENT-1+monthnum)+1; 改为monthnum gc369.c功能为:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。程序中有两处错误代码,请指出并改正之。不得增加行或删除行,也不得更改程序结构。 *Findthesaddlepoint*/ #include inti,j,k,flag1,flag2,a[N][M],max,maxi,maxj; for(i=0;i max=a[j][0];/////////////max=a[i][0] for(j=0;j for(k=0,flag1=1;k flag1=0; if(flag1){ max=a[i][j]; maxj=j; printf(\flag2=1; } } if(flag2)////////////!flag2 printf(\} gc370.c完成从双向链表中删除值为num的一个结点的功能。链表中每个结点包含数据域(info),后继元素指针域(next)和前趋元素指针域(pre)。链表的头尾指针分别放在指针数组a的二个元素中。程序中有3处错误,请改正。 注意:不要在程序中增行或删行,也不得更改程序的结构。 #include voiddel(structstudent*a[2],intnum) { { } 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) { } elseif(p==tail) { } q->next=NULL; tail=q; head=p->next; head->pre=NULL; printf(\structstudent*p,*q; structstudent*head,*tail; head=a[0]; if(head==NULL) intinfo; structstudent*pre; structstudent*next; tail=a[1];
共分享92篇相关文档