资源描述:
《C语言程序改错及填空题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、gc23.c下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。#defineNULL0 structstud { long num; char name[10]; float score; structstud*next; }; /* …………… comment……………*/ intn; struct studcreate() ////////structstud*create(void){ﻩstructstud*head,*p1,*p2;
2、n=0;ﻩp1=p2=(structstud *)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=(structstud*)malloc(size(structstud));ﻩscanf("%ld,%s,%f
3、",&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;staticinta[8]={5,3,1,4,2,8,9,6}; voidjhmaxmin();
4、printf("Originalarray: \n”);for(i=0;i<8; i++)printf("%5d”,a[i]);printf(”");jhmaxmin(a,8);printf(” Arrayafter swapingmaxandmin:\n");for(i=0; i〈8;i++) printf("%5d",a[i]);printf("”);}//注意:void jhmaxmin(p,n) intp,n;这是一种老的函数形式,现在一般这样写voidjhmaxmin(intp,intn)voidjhmaxmin(p,n) intp,
5、n; //////// int*p,n;{intt,*max, *min,*end, *q;end=p+n;max=min=p;for(q=p+1;q6、inttempmin,tempcode;printf("inputthe numbers:n"); for(i=0;i〈8;i++) scanf("%d",p+i);tempmin=*p;for (i=0;i<7;i++) { for(j=i;j<8;j++) if(j==i|
7、*(p+j)〈tempmin) { tempmin=*(p+i);//////////tempmin=*(p+j);ﻩtempcode=j; };if(tempcode!=i) {*(p+tempcode)=*(p+i);ﻩ*(p+j)=tempcode;
8、/////////////*(p+i)=tempmin; } } for(i=0;i<8;i++) printf("%d,”,*(p+i)); return(1); }gc137.c中的sub函数的功能是:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如,当s所指字符串的内容为“ABCD”时,t所指数组中的内容为“DCBAABCD”。请改正函数sub中的两个错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得修改程序的结构。#include "stdio.h”#include"conio.h"#inclu
9、de "string.h”void sub(char*s, cha