1、 a=student0; student0=student1; student1=a; student2.num) student0=student2; student2=a; if(student1.num a=student1; student1=student2;main() PERSON student=5,Rose,2,Charl,6,Kate; int i; fun(student); printf(nThe result is :n); for(i=0;istudenti.age) min=studenti; return min; STUDENT student3=alice,
2、17,baren,16,caren,18; min=fun(student,3);nThe min age result nnName : %s,Age : %dn,min.name,min.age);79.1/*已知学生的记录由学号和学习成绩组成,N名学生的数据已存入student结构体中,给定程序的功能是找出成绩最高的学生记录,通过形参返回主函数。string.h# define N 10typedef struct s char num10; int s; student;fun(student STU,student *s) student a; a=STU0;N; if(STUi.s
3、a.s) a=STUi; *s=a; student STUN= 01,81,02,89,03,66,04,87,05,77,06,90,07,79,08,61,09,80,10,71 ,m;The original datanprintf(No=%s Mark=%dn,STUi.num,STUi.s); fun(STU,&m);The highst : %s,%dn,m.num,m.s);95.1/*请补充函数fun,该函数的功能是建立一个带头结点的单向链表并输出到文件file.dat和屏幕上,各结点的值为对应的下标,链表的结点数及输出的文件名作为参数传入。# include int dat
4、a; struct s *next;NODE;void fun(int n,char *filename) NODE *h,*p,*s ; FILE *f; h=p=(NODE *)malloc(sizeof(NODE); h-data=0; s=(NODE *)malloc(sizeof(NODE); s-data=i; p-next=s; p=p-next;next=NULL; if(f=fopen(filename,w)=NULL)Can not open file.dat! exit(0); p=h; fprintf(f,THE LISTn while(p)%3d,p-data); i
5、f(p-next!=NULL)- fclose(f); s=p; free(s); char *filename=file.dat; int n;nPlease input n: scanf(%d,&n); fun(n,filename); getch();二、改错题 35.2/*下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请修改函数fun中的错误,得出正确的结果。不要改动main函数,不能增行或删行,也不能更改程序的结构?conio.htypedef struct a str
6、uct a *next; NODE;int fun(NODE *h) int sum=0; NODE *p; p=h- /*error*/ while(p!data%2=0) sum+=p-data; return sum;NODE *link(int n) NODE *h,*p,*s; h=p=(NODE*)malloc(sizeof(NODE); s=(NODE*)malloc(sizeof(NODE);data=rand()%16;next=p- return h;printlink(NODE *h)nnTHE LIST :nn HEAD%d NODE *head; int sum; h
7、ead=link(5); printlink(head); sum=fun(head);nThe result SUM=%d,sum); 44.2/*下列给定程序中,函数的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m10)名学生,并将这些学生数据存放在一个动态分配的连续存储区中,将此存储区的首地址作为函数值返回。不要改动main函数,不能增行或删行,也不能更改程序的结构。STUDENT *fun(STUDENT a,int m) STUDENT bN,*t; int i,j,k; /*error*/ t=(STUDENT *)malloc(sizeof(STUDENT); bi=
8、ai; for(k=0;kbj.s) j=i; strcpy(tk.num,bj.num); tk.s=bj.s; bj.s=0; return t;printresult(STUDENT a,FILE *pf) fprintf(pf,ai.num,ai.s);nn STUDENT aN=,71 ; STUDENT *Order; int i,m;*The Original data *n printresult(a,stdout);nGive the number of the students who have better score: while(m10) Order=fun(a,m)
9、;*THE RESULT *nThe top : %s %dn,Orderi.num,Orderi.s); free(Order);88.2/*下列给定程序中的函数link的功能是:创建带头结点的单向链表,并为各结点数据域赋0到max-1的值。请修改函数link中的错误,得出正确的结果。NODE *link(int n,int max) NODE *h=NULL,*p,*s; h=s; /*error*/ p=s;i+) data=rand()%(max-1); head=link(10,20);89.2/*下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的
10、作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。fun(NODE *h) int max=-1;datamax) max=p- return max;printresult(int s,FILE *pf)nThe max in link :,s);NODE *link(int n,int m)data=9999;=n;data=rand()%m;printlink(NODE *h,FILE *pf)nTHE LIST: int m; head=link(12,100); printlink(head,stdout); m=fun(head);nTHE RESULT
11、: printresult(m,stdout);三、设计题17.3/*学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组student中,请编写函数fun,它的功能是按分数的高低排列学生的记录,高分在前。请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。# define M 10 SCORE;void fun(SCORE a ) int i,j; SCORE k;M; for(j=i+1;jj+) if(ai.saj.s) k=ai; ai=aj; aj=k;main () SCORE studentM=002,69,00485,00
12、1,91,007,72,008,64,006015,85,012014011,66;FILE *out;The data after sorted : if(i)%4=0)%s %4d studenti.s); out=fopen (outfile.dat, if(i)%4=0 & i) fprintf(out,%4d,studenti.s); fclose (out);41.3/*学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩
13、置-1,作为函数值返回(用于字符串比较的函数是strcmp)。 */SCORE fun(SCORE *p,char *q) SCORE a; if(strcmp(pi.num,q)=0) a=pi;break; else strcpy(a.num, a.s=-1; return a; SCORE stuM=G002G004G001,96,G007G008G006G015G013,94,G012G014,91; SCORE t; char m10;The original data : if(i%4=0) printf(%s %3d,stui.num,stui.s);nnEnter the number : gets (m); t=fun(stu,m); The data :n%s %4dn,t.num,t.s); t=fun(stu,%s %4dn55.3/*已知学生的记录由学号和学习成绩构成,M名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2