- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二十五结构体和共用体实验
实验二十五 结构体和共用体实验
实验要点
一、结构体数组
1、结构体数组的定义、初始化
若数组元素的类型为结构体类型,数组为结构体数组。
定义结构体数组的同时也可对数组进行初始化操作。例如,
struct student
{int number; /*学号*/
char name[10]; /*姓名*/
float score[4]; /*四门课程成绩*/
float total; /*总分*/
float ave; /*平均成绩*/
}stu[3]={ {461,liu,{80,78,67,80},0,0},{032,geng,{98,78,86,90}, 0,0},
{103, qian,{79,89,68,80},0,0} };
可以定义指向结构体数组元素的指针变量,然后通过指针对数组元素操作。
2、结构体数组的引用
结构体数组元素也是通过数组名和下标来引用,但要注意只能对最低级的成员进行存取和运算。引用的一般形式为:数组名[下标].成员名。例如,stu[1].number 、stu[0].score[2]、 stu[2].ave,当结构体类型的指针指向结构体类型的变量时,通过指针引用结构体数组元素的形式和通过指针引用结构变量形式一样,为: (*指针变量名).成员名 或 指针变量名-成员名。例如,语句“p=stu[1];”之后,可以有(*p).number、(p-1)-score[2]、p-ave;等语句。
二、共用体的定义和使用
1,共用体的关键字为union,其他定义方法同结构体。
2,共用体也分为共用体类型和共用体变量,在程序设计过程中,要注意区分。
三、关于共用体变量的几点说明
a) 给共用体变量赋值时,只能对共用体的一个成员赋值,而不能对整个共用体变量赋值。
b) 对共用体变量而言,只有最近一次被赋值的成员是有效的,其他成员无效。
c) 共用体变量不能在定义时初始化。
d) 若共用体的成员是构造类型的,则需要逐级引用至最低级的成员。
e) 共用体变量的地址和共用体各个成员的地址是相同的,但是它们的类型是不同的。
四、结构体与共用体的异同
1,在结构体中,各成员各自占用自己的内存空间,他们是同时存在的,一个结构体变量的总长度等于所有成员长度之和。
2,在共用体中,所有成员不能同时占用它的内存空间,他们是不能同时存在的,一个共用体变量的长度等于最长的成员项的长度。
一、实验名称:结构体和共用体实验
二、实验目的:
1、通过实验掌握结构体和共用体的基本概念2、进一步掌握结构体与共用体的类型定义、变量说明和成员项的使用3、进一步掌握结构体和共用体的使用方法
三、实验内容:
1、请完成程序填充(注意:不得加行、减行、加句、减句)。功能:该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。
#include stdio.h
struct STUDENT
{ char name[16];
int math;
int english;
int computer;
int average;
};
void GetAverage(struct STUDENT *pst) /* 计算平均成绩 */
{ int sum=0;
sum = ____________;
pst-average = sum/3;
}
void main()
{ int i;
struct STUDENT st[4]={{Jessica,98,95,90},{Mike,80,80,90},
{Linda,87,76,70},{Peter,90,100,99}};
for(i=0;i4;i++)
{ GetAverage(____________); }
printf(Name\tMath\tEnglish\tCompu\tAverage\n);
for(i=0;i4;i++)
{ printf(%s\t%d\t%d\t%d\t%d\n,st[i].name,st[i].math,st[i].english,
st[i].computer,st[i].average); }
}
2、仔细分析程序的运行结果,掌握“-〉”和“*”运算符的优先级及++在前在后的含义。
#includestdio.h
stru
您可能关注的文档
最近下载
- Unit 5 Play by the rules--单元话题满分范文(教师版)新版 2025年新外研版八年级上册.docx
- ISO9001:质量管理体系标准理解.pptx VIP
- 第四版(2025)国际压力性损伤溃疡预防和治疗临床指南解读PPT课件.pptx VIP
- 水泥生产环保知识培训课件.pptx VIP
- 物理一组卷高一上抛追击.pdf VIP
- 建设工程材料市场信息价查询-北京工程造价信息2025年第1期.doc VIP
- 一种用于吊篮停放的悬挑休息平台.pdf VIP
- CECS456-2016 格网土石笼袋、护坡工程袋应用技术规程(OCR).pdf
- 人教版语文小升初试卷含答案.docx VIP
- 水泥安全生产培训课件.ppt VIP
原创力文档


文档评论(0)