ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:112KB ,
资源ID:12566053      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12566053.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《C语言程序设计》实 验 报 告5.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《C语言程序设计》实 验 报 告5.docx

1、C语言程序设计实 验 报 告5C语言程序设计实 验 报 告 ( 5 )学号: 姓名: 班级: 成绩:实验名称:结构体与共用体综合实验实验地点:实验室所使用的工具软件及环境:Windows XP系统;Visual C+ 6.0 一、实验目的:1)熟悉结构体与共用体的正确用法:2) 理解结构体与共用体的特殊性;二、实验内容:按题目要求编程并上机调试程序。1、VC+ 6.0上机介绍(请参考VC+5.0完成,)2、课堂练习一、填空题 38.1 /*给定程序中,函数fun的功能是:将形参指针所指结构体数组中的三个元素按num成员进行升序排列。请勿改动主函数main与其他函数中的任何内容,仅在横线上填写所

2、需的若干表达式或语句。注意:部分源程序给出如下。*/# include typedef struct int num; char name10; PERSON;void fun(PERSON student) PERSON a; if(student0.numstudent1.num) a=student0; student0=student1; student1=a; if(student0.numstudent2.num) a=student0; student0=student2; student2=a; if(student1.numstudent2.num) a=student1;

3、student1=student2; student2=a; main() PERSON student=5,Rose,2,Charl,6,Kate; int i; fun(student); printf(nThe result is :n); for(i=0;i3;i+) printf(%d,%sn,studenti.num,studenti.name);getch();程序运行结果示例:41.1/*给定程序中,函数fun的功能是:将形参student所指结构体数组中年龄最小者的数据作为函数值返回,并在main函数中输出。请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上

4、填写所需的若干表达式或语句。注意:部分源程序给出如下?*/# include typedef struct char name10; int age; STUDENT;STUDENT fun(STUDENT student,int n) STUDENT min; int i; min=student0; for(i=1;istudenti.age) min=studenti; return min;main() STUDENT student3=alice,17,baren,16,caren,18; STUDENT min; min=fun(student,3); printf(nThe mi

5、n age result n); printf(nName : %s,Age : %dn,min.name,min.age);getch();程序运行结果示例:79.1/*已知学生的记录由学号和学习成绩组成,N名学生的数据已存入student结构体中,给定程序的功能是找出成绩最高的学生记录,通过形参返回主函数。请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。注意:部分源程序给出如下。*/# include # include # define N 10typedef struct s char num10; int s; student;fun(

6、student STU,student *s) student a; int i; a=STU0; for(i=1;ia.s) a=STUi; *s=a;main() student STUN= 01,81,02,89,03,66,04,87,05,77,06,90,07,79,08,61,09,80,10,71 ,m; int i; printf(The original datan); for(i=0;iN;i+)printf(No=%s Mark=%dn,STUi.num,STUi.s); fun(STU,&m); printf(The highst : %s,%dn,m.num,m.s

7、);getch();程序运行结果示例:95.1/*请补充函数fun,该函数的功能是建立一个带头结点的单向链表并输出到文件file.dat和屏幕上,各结点的值为对应的下标,链表的结点数及输出的文件名作为参数传入。请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。注意:部分源程序给出如下。*/# include# includetypedef struct s int data; struct s *next;NODE;void fun(int n,char *filename) NODE *h,*p,*s ; FILE *f; int i; h=p=

8、(NODE *)malloc(sizeof(NODE); h-data=0; for(i=1;idata=i; p-next=s; p=p-next; p-next=NULL; if(f=fopen(filename,w)=NULL) printf(Can not open file.dat!); exit(0); p=h; fprintf(f,THE LISTn); printf(THE LISTn); while(p) fprintf(f,%3d,p-data); printf(%3d,p-data); if(p-next!=NULL) fprintf(f,-); printf(-); p

9、=p-next; fprintf(f,n); printf(n); fclose(f); p=h; while(p) s=p; p=p-next; free(s); main() char *filename=file.dat; int n; printf(nPlease input n:); scanf(%d,&n); fun(n,filename); getch();程序运行结果示例: 二、改错题 35.2/*下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。请修改函数fun中的

10、错误,得出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构?*/# include # include # include typedef struct a int data; struct a *next; NODE;int fun(NODE *h) int sum=0; NODE *p; p=h-next; /*error*/ while(p!=NULL) if(p-data%2=0) sum+=p-data; /*error*/ p=p-next; return sum;NODE *link(int n) NODE *h,*p,*s; int i; h=p=(

11、NODE*)malloc(sizeof(NODE); for(i=1;idata=rand()%16; s-next=p-next; p-next=s; p=p-next; p-next=NULL; return h;printlink(NODE *h) NODE *p; p=h-next; printf(nnTHE LIST :nn HEAD); while(p) printf(-%d ,p-data); p=p-next; printf(n);main() NODE *head; int sum; head=link(5); printlink(head); sum=fun(head);

12、printf(nThe result SUM=%d,sum); getch(); 程序运行结果示例:44.2/*下列给定程序中,函数的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m10)名学生,并将这些学生数据存放在一个动态分配的连续存储区中,将此存储区的首地址作为函数值返回。请修改函数fun中的错误,得出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。*/# include # include # include # define N 10typedef struct s char num10; int s; STUDENT;STUDENT *fun

13、(STUDENT a,int m) STUDENT bN,*t; int i,j,k; /*error*/ t=(STUDENT *)malloc(sizeof(STUDENT); for(i=0;iN;i+) bi=ai; for(k=0;km;k+) for(i=j=0;ibj.s) j=i; /*error*/ strcpy(tk.num,bj.num); tk.s=bj.s; bj.s=0; return t;printresult(STUDENT a,FILE *pf) int i; for(i=0;i10) printf(nGive the number of the studen

14、ts who have better score: ); scanf(%d,&m); Order=fun(a,m); printf(*THE RESULT *n); printf(The top :n); for(i=0;im;i+) printf( %s %dn,Orderi.num,Orderi.s); free(Order); getch();程序运行结果示例:88.2/*下列给定程序中的函数link的功能是:创建带头结点的单向链表,并为各结点数据域赋0到max-1的值。请修改函数link中的错误,得出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程序的结构。*/#

15、include # include # include typedef struct a int data; struct a *next; NODE;NODE *link(int n,int max) NODE *h=NULL,*p,*s; int i; s=(NODE*)malloc(sizeof(NODE); h=s; /*error*/ p=s; for(i=1;idata=rand()%(max-1); s-next=p-next; p-next=s; p=p-next; s-next=NULL; /*error*/ return h;printlink(NODE *h) NODE

16、*p; p=h-next; printf(nnTHE LIST :nn HEAD); while(p) printf(-%d ,p-data); p=p-next; printf(n);main() NODE *head; head=link(10,20); printlink(head); getch();程序运行结果示例:89.2/*下列给定程序是建立一个带头结点的单向链表,并用随机函数为各结点数据域赋值。函数fun的作用是求出单向链表结点(不包括头结点)数据域中的最大值,并且作为函数值返回。请修改函数fun中的错误,得出正确的结果。注意:不要改动main函数,不能增行或删行,也不能更改程

17、序的结构?*/# include # include # include typedef struct a int data; struct a *next; NODE;fun(NODE *h) int max=-1; NODE *p; /*error*/ p=h-next; while(p) if(p-datamax) max=p-data; /*error*/ p=p-next; return max;printresult(int s,FILE *pf) fprintf(pf,nThe max in link : %dn,s);NODE *link(int n,int m) NODE *

18、h,*p,*s; int i; h=p=(NODE*)malloc(sizeof(NODE); h-data=9999; for(i=1;idata=rand()%m; s-next=p-next; p-next=s; p=p-next; p-next=NULL; return h;printlink(NODE *h,FILE *pf) NODE *p; p=h-next; fprintf(pf,nTHE LIST:nn HEAD); while(p) fprintf(pf,-%d ,p-data); p=p-next; fprintf(pf,n);main() NODE *head; int

19、 m; head=link(12,100); printlink(head,stdout); m=fun(head); printf(nTHE RESULT :n); printresult(m,stdout); getch();程序运行结果示例:三、设计题17.3/*学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组student中,请编写函数fun,它的功能是按分数的高低排列学生的记录,高分在前。请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。*/# include # define M 10typed

20、ef struct char num10; int s; SCORE;void fun(SCORE a ) int i,j; SCORE k; for(i=0;iM;i+) for(j=i+1;jM;j+) if(ai.saj.s) k=ai; ai=aj; aj=k; main () SCORE studentM=002,69,004,85,001,91,007,72,008,64,006,87,015,85,012,64,014,91,011,66; int i;FILE *out; fun(student); printf(The data after sorted :n); for(i

21、=0;iM;i+) if(i)%4=0) printf(n); printf(%s %4d ,studenti.num,studenti.s); printf(n); out=fopen (outfile.dat,w); for(i=0;iM;i+) if(i)%4=0 & i) fprintf(out,n); fprintf(out,%4d,studenti.s); fprintf(out,n); fclose (out); getch();程序运行结果示例:41.3/*学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数fun,它的功能是:函数返回指定学

22、号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)。请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。 */# include # include # define M 10typedef struct char num10; int s; SCORE;SCORE fun(SCORE *p,char *q) SCORE a; int i; for(i=0;iM;i+) if(strcmp(pi.num,q)=0) a=pi;b

23、reak; else strcpy(a.num, ); a.s=-1; return a;main () SCORE stuM=G002,69,G004,85,G001,96,G007,72,G008,64,G006,87,G015,85,G013,94,G012,64,G014,91; SCORE t; char m10; int i;FILE *out; printf(The original data :n); for(i=0;iM;i+) if(i%4=0) printf(n); printf(%s %3d,stui.num,stui.s); printf(nnEnter the number : ); gets (m); t=fun(stu,m); printf( The data : ); printf(n%s %4dn,t.num,t.s); printf(n); out=fopen (outfile.dat,w); t=fun(stu,G013); fprintf(out,%s %4dn,t.num,t.s); fclose (out); getch();程序运行结果示例:55.3/*已知学生的记录由学号和学习成绩构成,M名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1