实验二十五结构体和共用体实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档