实验八结构体答案.doc

上传人:xt****7 文档编号:126088332 上传时间:2020-03-21 格式:DOC 页数:7 大小:50KB
返回 下载 相关 举报
实验八结构体答案.doc_第1页
第1页 / 共7页
实验八结构体答案.doc_第2页
第2页 / 共7页
实验八结构体答案.doc_第3页
第3页 / 共7页
实验八结构体答案.doc_第4页
第4页 / 共7页
实验八结构体答案.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《实验八结构体答案.doc》由会员分享,可在线阅读,更多相关《实验八结构体答案.doc(7页珍藏版)》请在金锄头文库上搜索。

1、实验八 结构体一实验目的与要求1掌握结构体和共用体类型定义的方法;2掌握结构体和共用体变量、数组、指针的定义和赋初值的方法;3掌握结构体和共用体变量、数组、指针的引用方法;二实验范例,熟悉下列程序,并掌握算法。1#include main() union int a; char b2; c;/共用体变量的所有成员共用一段内存,其内存大小为/所有成员中字节数最多成员的字节数 c.a=65; puts(c.b); printf(%dn,sizeof(c) ); 运行结果:2main() union struct int x,y; in; int a,b; e; e.a=1; e.b=2; e.in

2、.x=e.a*e.b; e.in.y=e.a+e.b; /共用体变量成员的赋值最后一次赋值为有效值 printf(%d %d,e.in.x,e.in.y); 运行结果:3struct w char low ; char high ; ; union u struct w byte ; int word ; uu; main ( ) uu.word = 0x1234 ; printf(%04xn, uu.word); printf(%02xn, uu.byte.high) ; printf(%02xn, uu.byte.low); uu.byte.low = 0xff ; printf(%04x

3、n, uu.word) ; 运行结果:4输入5本书的名称和单价,按照单价进行排序。要求:采用结构数组存储数据,使用冒泡或选择排序算法实现排序。参考程序:#includestruct book char name10; float price;void sort(struct book bb,int n)int i,j; struct book t; for(i=1;in;i+) for(j=0;jbbj+1.price) t=bbj;bbj=bbj+1;bbj+1=t;void main()int i; struct book b5=计算机,23,音乐,15,语文,24,数学,21,英语,20

4、; sort(b,5); for(i=0;i5;i+) printf(n%stt%.2f,bi.name,bi.price); printf(n);5用结构体和函数调用方式编写程序。要求实现:(1) 在被调函数search()中,能根据学生姓名,查找学生,并返回是否查找成功。(2) 在主函数中,从键盘上输入5位学生的姓名和电话号码到结构体数组中,输入待查学生的姓名,调用search()函数,最后输出待查学生的电话号码。参考程序:#include#includestruct student char name10;char tel12;int search(struct student s,ch

5、ar name,int n)int i;for(i=0;in;i+) if(strcmp(si.name,name)=0) return i;return -1;void main()struct student s5;int i,loc;char n10;printf(请输入5位学生的姓名和电话号码:);for(i=0;i=0) printf(要找学生的电话号码是:%sn,sloc.tel);else printf(该学生不存在n);6用函数调用方式编写程序,要求实现:(1) 在main函数中读入10名学生记录,存入结构数组s,调用fun函数,把平均成绩和分数最低的学生记录输出到屏幕上。(2

6、) 被调函数fun求出10名学生的平均成绩并统计分数最低的学生记录(注意:分数最低的学生可能不止一个),fun的参数是数组s的首地址和数组h的首地址(h中存放分数最低的学生记录),fun的返回值是分数最低的学生的人数。一个学生记录放在如下结构中:struct student char num10; int score;参考程序:#includestruct student char num10; int score;int fun(struct student s,struct student h,int n,float *aver)int i,j=0,total,min;total=min=

7、s0.score;for(i=1;in;i+) /求最低分数min及所有学生成绩的总和 if(si.scoremin) min=si.score; total=total+si.score;*aver=(float)total/n; /求平均成绩for(i=0;in;i+) /将成绩最低的学生启示保存在h数组中 if(min=si.score) hj+=si;return j; /带回最低分数学生的人数void main()struct student s5,h5;int i,count;float aver;printf(请输入5位学号的姓名和考试成绩:);for(i=0;i5;i+) sc

8、anf(%s%d,si.num,&si.score);count=fun(s,h,5,&aver);printf(所有学生的平均成绩为:%fn,aver);printf(分数最低学生记录为:n);for(i=0;icount;i+) printf(%st%dn,hi.num,hi.score);三、实验内容( 按要求设计以下程序,并调试分析运行结果 ,此部分完成在实验报告上)1.(sy8-1.c)已知学生的记录有学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。已给出函数的首部,请完成该函

9、数。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include #include #include #define N 10typedef struct sschar num10;int s; STU;void fun( STU a, STU *s) int i,min;min=a0.s;for(i=0;iN;i+)if(ai.smin)min=ai.s;*s=ai;main()STU aN= A01,81,A02,89,A03,66,A04,87,A05,77,A06,90,A07,79,A08,61,A09,80,A10,71 , m ;i

10、nt i;printf(* The original data *n);for(i=0;iN; i+)printf(N0=%s Mark=%dn, ai.num,ai.s);fun( a,&m);printf(* THE RESULT *n);printf( The lowest : %s ,%dn, m.num, m.s);2. (sy8-2.c)学生的记录由学生成绩组成,N 名学生的数据已在主函数中放入结构体数组s 中,请编写函数fun,它的功能是:把分数最低的学生数据放在h所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。请勿改动主函数main和其它函数中的任

11、何内容,仅在函数fun的花括号中填入所编写的若干语句。#include #define N 16typedef structchar num10;int s; STREC;int fun ( STREC *a, STREC *b )int i,j=0,min;min=a0.s;for(i=1;iN;i+) /求最低分数min if(ai.smin) min=ai.s;for(i=0;iN;i+) /将成绩最低的学生启示保存在h数组中 if(min=ai.s) bj+=ai;return j; /带回最低分数学生的人数main ()STREC sN= GA05,85, GA03,76, GA02

12、,69, GA04,85,GA01,91, GA07,72, GA08,64, GA06, 87,GA015,85, GA013,91, GA012,64, GA014,91,GA011,91, GA017,64, GA018,64, GA016,72;STREC hN;int i, n;n=fun ( s, h );printf (The %d lowest score :n, n);for (i=0; in; i+)printf (%s %4dn, hi. num, hi. s);printf (n);3. (sy8-3.c)学生的记录有学号和成绩组成,N 名学生的数据已在主函数中放入结构体函数组s 中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输出.若没找到指定学号,在结构提变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号