版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
结构类型《计算机软件基础》本章重点难点本章重点:结构类型定义;结构变量的定义、初始化和成员引用;结构数组的定义、初始化和成员引用;结构指针变量的定义、初始化和成员引用;灵活应用结构类型和相应变量解决应用问题。本章难点:结构指针变量的定义和应用。01.结构类型与结构变量02.结构数组03.结构数组主要内容01结构类型与结构变量1.结构类型的声明格式:struct
结构类型名{数据类型1成员变量1;
数据类型2成员变量2; ……
数据类型n成员变量n;};例如:structstudent/*类型名为student*/{longnum; /*学号*/charname[20]; /*姓名*/chargender; /*性别*/intage; /*年龄*/doublescore[3];/*3门课成绩*/};2.结构变量的定义1.先声明结构类型,再定义结构变量。 structstudentstu1,stu2;2.在声明结构类型的同时定义结构变量。structstudent{longnum; charname[20];chargender; intage; doublescore[3]; }stu1,stu2;3.结构类型名可以省略。struct{longnum; charname[20];chargender; intage; doublescore[3];}stu1,stu2;此三种定义stu1和stu2方式等价3.用typedef定义数据类型typedefstructstudentSTUDENT;与typedefstructstudent{longnum; charname[20];chargender; intage; doublescore[3]; }STUDENT;是等价的关键字typedef用于为系统固有的或自定义的数据类型定义一个别名。下面两条定义结构变量语句是等价的。STUDENTstul,stu2;structstudentstul,stu2;4.结构变量的初始化
结构变量的成员可以在定义时通过将成员的初值置于花括号之内来进行初始化。structstudentstu1={230701001,"张丽",'F',19,{85.0,77.0,90.0}};√structstudentstu1;stu1={230701001,"张丽",'F',19,{85.0,77.0,90.0}};ⅹ5.结构变量的引用成员运算符“.”:访问结构变量的成员,优先级最高。例如:stu1.age=19;若成员本身又是结构类型,逐层引用最内层的成员。例如:structdate/*结构类型名为date*/{intyear; /*年*/intmonth; /*月*/intday; /*日*/};structstudent1{longnum; charname[20]; chargender; structdatebirth; doublescore[3]; }stu3;若stu3变量的出生年份是2001年,月份是10月,日期是23日,具体赋值语句为:stu3.birth.year=2001;stu3.birth.month=10;stu3.birth.day=23;初始化方式scanf("%d,%d,%d",&stu3.birth.year,&stu3.birth.month,&stu3.birth.day);6.结构类型应用举例#include<stdio.h>structcomplex{intreal;intimaginary;};intmain(){structcomplexa,b,c; /*定义三个复数a,b,c*/scanf("%d,%d,%d,%d",&a.real,&a.imaginary,&b.real,&b.imaginary);c.real=a.real+b.real;/*分别求两复数实部,虚部系数和*/c.imaginary=a.imaginary+b.imaginary;printf("c=%d+%di\n",c.real,c.imaginary);return0;}例6-1
编写求两复数之和的程序。计算结构类型所占内存的字节数时,一定要使用函数sizeof(struct类型名)或sizeof(变量名)02结构数组1.结构数组的定义1)在定义结构类型的同时定义结构数组。struct结构类型名{
成员列表;}数组名[数组长度];2)先定义结构类型,再定义结构数组。
struct结构类型名数组名[数组长度];2.结构数组的初始化1)在定义结构类型的同时对结构数组变量初始化。structstudent2{longnum;charname[20];doublescore[3];}stu4[2]={{230701002,"ZhangLin",{78.0,80.5,64.0}},{230701003,"GaoDong",{60.5,83.0,92.5}}};2)在结构类型定义好之后,在定义变量的同时进行初始化。structstudent2stu4[2]={{230701002,"LiFang",78.0,80.5,64.0},{230701003,"GaoDong",60.5,83.0,92.5}};3.结构数组应用举例
例6-2
输入50名学生的基本信息,计算各学生的平均分,并输出每名学生的学号、姓名及平均成绩。/*②数据输入*/for(i=0;i<M;i++){scanf("%ld,%s",&stu5[i].num,stu5[i].name);for(j=0;j<3;j++)scanf("%f",&stu5[i].score[j]);}/*①定义名为student3的结构*/#defineM50/*M代表学生数*/structstudent3{longnum;charname[20];doublescore[3];doubleavg;}stu5[M];/*50名学生的数组*/3.结构数组应用举例
例6-2输入50名学生的基本信息,计算各学生的平均分,并输出每名学生的学号、姓名及平均成绩。/*③计算每名同学三门课成绩的平均值*/for(i=0;i<M;i++){s=0.0;for(j=0;j<3;j++)s=s+stu5[i].score[j];stu5[i].avg=s/3.0; }/*④输出50名同学的基本信息*/for(i=0;i<M;i++) printf("no%2dnum:%1dname:%savg:%4.1f\n",i,stu5[i].num,stu5[i].name,stu5[i].avg);03结构指针1.指向结构变量的指针定义形式为:
struct结构类型名*指针变量名;结构变量成员的引用有3种等价形式:①结构变量.成员名②(*指针变量名).成员名(不常用)③指针变量名->成员名例题:structstudent4{longnum;charname[20];intage;double
score;}stu6={230701002,"LiFang",19,80.5},*p=&stu6;/*引用*/printf("num:%ldname:%sage:%2dscore:%4.1f\n",stu6.num,,stu6.age,stu6.score);printf("num:%ldname:%sage:%2dscore:%4.1f\n",p->num,p->name,p->age,p->score);printf("num:%ldname:%sage:%2dscore:%4.1f\n",(*p).num,(*p).name,(*p).age,(*p).score);2.指向结构数组的指针①structstudent4{longnum;charname[20];intage;doublescore;}stu7[3],*p=stu7;②structstudent4{longnum;charname[20];intage;double
score;};structstudent4stu7[3],*p=stu7;等价3.结构指针应用举例structtest{intx;doubley;charz;}a[3]={{2,1.5,'x'},{3,4.6,'y'},{4,7.8,'z'}};structtest*p;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业店铺装修协议:2024版改造项目
- 二零二五年度金融科技产品测试与评估合同3篇
- 人工智能在智能穿戴-深度研究
- 二零二五年度跨区域数据安全协议搭建与执行合同4篇
- 2025至2031年中国图书检测仪行业投资前景及策略咨询研究报告
- 二零二四年校服销售与校园信息化建设合作合同3篇
- 2025至2031年中国CO2气体焊机行业投资前景及策略咨询研究报告
- 2025年度环保项目投资合作协议范本
- 2025至2030年中国立式工作灯数据监测研究报告
- 2025至2030年中国白小豆数据监测研究报告
- 卫生服务个人基本信息表
- 医学脂质的构成功能及分析专题课件
- 高技能人才培养的策略创新与实践路径
- 广东省湛江市廉江市2023-2024学年八年级上学期期末考试数学试卷(含答案)
- 2024年湖北省知名中小学教联体联盟中考语文一模试卷
- 安徽省芜湖市2023-2024学年高一上学期期末考试 生物 含解析
- 交叉口同向可变车道动态控制与信号配时优化研究
- 燃气行业有限空间作业安全管理制度
- 数列练习题(含答案)基础知识点
- 人教版(2024新版)七年级上册英语期中+期末学业质量测试卷 2套(含答案)
- 安华农业保险股份有限公司北京市地方财政生猪价格指数保险条款(风险敏感型)
评论
0/150
提交评论