文档详情

C语言程序改错及填空题C语言程序改错及填空题.doc

发布:2016-12-22约字共58页下载文档
文本预览下载声明
gc23.c下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在 每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。 #define NULL 0 struct stud { long num; char name[10]; 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 a[8]={5,3,1,4,2,8,9,6}; void jhmaxmin(); printf( Original array: \n); for(i=0; i8; i++) printf(%5d,a[i]); printf(\n); jhmaxmin(a,8); printf( Array after swaping max and min: \n); for(i=0; i8; i++) printf(%5d,a[i]); 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; qend; q++) { if(*q*max) max=q; if(*qmax) min=q; ////////*q*min } t=*max; *max=*min; *min=t; } gc101.c的功能为:输入8个整数,使用指针以选择法对其进行排序(从小到大).程序中有两处错误代码,请改正.注意,不得改变程序结构。 #include stdio.h main() { int a[8],*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)=tempc
显示全部
相似文档