如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第七章结构体、共用体与枚举型基本要求重点结构体类型、结构体变量的定义及初始化,结构体变量的引用。主要内容7.1结构体类型与结构体类型变量7.1.1结构体类型的定义7.1.2结构体类型变量的定义7.1.2结构体类型变量的定义7.1.2结构体类型变量的定义7.1.2结构体类型变量的定义voidmain(){structemployeeemp1,emp2;/*定义employ类型的结构体变量emp1、emp2*/struct{intyear,month,day;}date1,date2;/*直接定义日期结构体类型变量*/emp1.no=100;/*赋职工号*/strcpy(emp1.name,"zhangsan");/*赋职工姓名*/strcpy(emp1.addr,"Nanjing");/*赋家庭地址*/emp2=emp1;/*将职工emp1的信息赋给emp2*/printf("no=%d\t",emp2.no);/*输出职工信息*/printf("name=%s\t",emp2.name);printf("addr=%s\t",emp2.addr);stud1.no=101;/*输入学号与成绩*/stud1.eng=90;/*输入成绩*/stud1.phy=95;stud1.math=100;printf("eng=%.2f\t",stud1.eng);/*输出学生成绩*/printf("phy=%.2f\t",stud1.phy);printf("math=%.2f\n",stud1.math);date1.year=1999;/*输入入学日期*/date1.month=9;date1.day=1;printf("year=%d\t",date1.year);/*输出入学日期*/printf("month=%d\t",date1.month);printf("day=%d\n",date1.day);}例9.2求某同学上学期8门课程的总成绩与平均成绩。程序如下:main(){inti;structst{charxm[8];floatcj[9];floattcj,acj;}stu;scanf(″%s″,stu.xm);/*输入*/for(i=1;i<=8;i++)scan(″%f″,&stu.cj[i]);stu.tcj=0.0;/*求总成绩*/for(i=1;i<=8;i++)stu.tcj+=stu.cj[i];stu.acj=stu.tcj[i]/8;/*求平均成绩*/printf(″%s总成绩=%6.2f,平均成绩=%6.2f″,stu.tcj,stu.acj);}7.1.2结构体类型变量的定义(1)结构体变量的初始化与数组类似,在定义结构体变量时可进行初始化。(2)提倡使用第一种方式定义结构体变量。(3)结构体变量的作用域与普通变量的作用域相同,即在函数外定义的结构体变量具有文件作用域。在函数内定义的结构体变量具有块作用域。(4)定义结构体变量时可以指定其存储类型。7.1.3结构体变量的引用7.1.3结构体变量的引用7.1.3结构体变量的引用7.1.3结构体变量的引用7.1.3结构体变量的引用7.2结构体类型数组7.2.1结构体类型数组的定义7.2.1结构体类型数组的定义7.2.2结构体类型数组元素成员的引用7.2.2结构体类型数组元素成员的引用7.3结构体类型指针#include“stdlib.h”/*需要使用malloc()*/#include“stdio.h”structdata/*定义结构体*/{intday,month,year;};structstu/*定义结构体*/{charname[20];longnum;structdatabirthday;/*嵌套的结构体类型成员*/};voidmain()/*定义main()函数*/{structstu*student;/*定义结构体类型指针*/student=(structstu*)malloc(sizeof(structstu));/*为指针变量分配安全的地址*/printf("Inputname,number,year,month,day:\n");scanf("%s",student->name);/*输入学生姓名、学号、出生年月日*/scanf("%ld",&student->num);scanf("%d%d%d",&student->birthday.year,&student->birthday.month,&student->birthday.day);printf("\nOutputname,number,y