版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.结构类型结构类型 是指由用户自行定义的是指由用户自行定义的不同数据类型不同数据类型的组合体。的组合体。学生的基本数据:学生的基本数据: 学号学号 长整型长整型姓名姓名 字符型数组字符型数组年龄年龄 整形整形性别性别 字符型字符型成绩成绩 实型数组实型数组2.结构类型的构建结构类型的构建结构类型结构类型一般形式为:一般形式为:struct 结构类型名结构类型名 类型类型1 成员成员1; 类型类型2 成员成员2; 类型类型n 成员成员n; ;2.结构类型的构建结构类型的构建示例示例struct stu1 /定义一个定义一个stu1数据类型数据类型 long Num; /成员成员1:长整型:长整
2、型 学号学号 char Name; /成员成员2:字符型:字符型 姓名姓名 char Sex; /成员成员3:字符型:字符型 性别性别 int Age; /成员成员4: 整整 型型 年龄年龄 float Scorce3; /成员成员5:实型数组:实型数组 成绩成绩 ;1.结构类型变量的定义结构类型变量的定义方法方法1:先定义结构类型,再定义结构变量:先定义结构类型,再定义结构变量step1:构建结构类型:构建结构类型如:如:struct stu1 long Num; char Name; char Sex; float Score3;step2:定义相应变量:定义相应变量如:如:struct
3、stu1 a,b,c;1.结构类型变量的定义结构类型变量的定义方法方法2:定构建结构类型的同时定义相应变量:定构建结构类型的同时定义相应变量如:如:struct stu1 long Num; char Name; char Sex; float Score3; a,b,c;2.结构类型变量的引用结构类型变量的引用引用规则如下:引用规则如下:(1)结构变量和结构体中成员,都不能单独引用;)结构变量和结构体中成员,都不能单独引用;(2)只能将结构变量与结构体成员)只能将结构变量与结构体成员合起来合起来引用。引用。引用格式:结构变量引用格式:结构变量 . 结构体成员结构体成员如:如:a . age3
4、.结构类型变量的初始化结构类型变量的初始化(1)定义结构变量同时进行初始化。如:)定义结构变量同时进行初始化。如:struct student long Num; char Name20; float Score3;a=520,”WangXin”,78.5,49.5,90;(2)也可以先定义结构变量,再进行初始化。如:)也可以先定义结构变量,再进行初始化。如:struct student long Num; char Name20; float Score3;main( ) struct student a; a=520,”WangXin”,78.5,49.5,90;例例6-1 分析程序,写出
5、运行结果分析程序,写出运行结果main()struct stu1 long Num; char Name20; char sex; int age; float Score3; a=99123L,Wang Xin,F,23,78.5,49.5,90.0;int i; printf(num:%1d name:%s sex:%c age: %dn, a.Num,a.Name,a.sex,a.age); for (i=0;i3;i+) printf (%8.1f,a.Scorei);例例6-2 编写求两复数之和的程序编写求两复数之和的程序struct stu3 int x; int y; ; mai
6、n( ) struct stu3 a,b,c; scanf(%d,%d,%d,%d,&a.x,&a.y,&b.x,&b.y); c.x=a.x+b.x;c.y=a.y+b.y; printf(c=%d+%din,c.x,c.y); (3)结构变量占用的存储空间)结构变量占用的存储空间(size):是结构体中所有:是结构体中所有成员所占空间之和。如:成员所占空间之和。如:struct student long Num; char Name20; float Score3;main( ) struct student a; printf(%dn,sizeof(a);
7、1.结构类型数组的定义结构类型数组的定义(1)在构建结构类型的同时定义相应的数组。)在构建结构类型的同时定义相应的数组。(2)先构建结构类型,再定义相应的数组。)先构建结构类型,再定义相应的数组。2.结构数组的初始化结构数组的初始化在构建结构类型的同时对数组初始化。如:在构建结构类型的同时对数组初始化。如:struct stu4 long Num; char Name20; float Score3;a2= 520 , “WanXin”, 78.5,49.5,90 , 240, “LiMing” , 66.5,72.5,88 ;上例中的存储关系:上例中的存储关系:例例6-3输入输入50个学生的
8、基本信息个学生的基本信息(如图如图6-1所示所示),计算各,计算各个学生的平均分,并输出各人的学号、姓名及平均。个学生的平均分,并输出各人的学号、姓名及平均。main( )int i,j;float s;struct stu5 /*定义名为定义名为stu5的结构类型的结构类型*/long num; /*学号学号*/char name20; /*姓名姓名*/float score3; /*三门课成绩三门课成绩*/float ave; /*平均分平均分*/a50; /*50个学生个学生,各个学生具有以上信息各个学生具有以上信息*/ for(i=0;i50;i+) printf(请输入第请输入第%d
9、个同学的学号个同学的学号,姓名姓名,(i+1); scanf(%Ld,%s,&ai.num,); printf(请输入第请输入第%d个同学三门课成绩个同学三门课成绩,(i+1); for(j=0;j3;j+) scanf(%f,&ai.scorej); /*输入第输入第i个同学三门课成绩个同学三门课成绩*/ for(i=0;i50;i+) /*下面求各人三门课平均值下面求各人三门课平均值*/ s=0.0; for (j=0;j3;j+) s=s+ai.scorej; /*第第i个同学的第个同学的第j门课成绩累加门课成绩累加*/ ai.ave=s/3.0; for(
10、i=0;inum,p-name,p-age,p-score); printf (num:%Ld name:%s age:%2d score:%4.1fn, (*p).num,(*p).name,(*p).age,(*p).score);2.指向结构数组的指针指向结构数组的指针指针变量也可以指向结构数组,其定义方法和指向一般指针变量也可以指向结构数组,其定义方法和指向一般数组一样。如数组一样。如:struct student long Num; char Name20; float Score3;a2,*p=a;struct student long Num; char Name20; floa
11、t Score3;struct student a2,*p=a;结构体成员的引用的形式:结构体成员的引用的形式:例例6-5 指向结构数组的指针示例。指向结构数组的指针示例。main ( )struct stu7 int x; float y; char z; a3=2,1.5,x,3,4.6,y,4,7.8,z; struct stu7 *p; /*定义指向结构类型指针定义指向结构类型指针*/ int i; /*定义变量定义变量i*/ p=a; /*P指针指向结构数组指针指向结构数组a*/ for(i=0;i agestruct person char name20; int age;aLi
12、,20,*p=&a;则对结构体变量则对结构体变量a中成员中成员age错误的引用是(错误的引用是( )。)。2.(2010.4单选)已知单选)已知:A s - num B *pp -num C (*pp) - num D (*pp).numStruct person char name15; long num; float score;s , *pp=&s;则对结构变量成员正确的引用是(则对结构变量成员正确的引用是( )。)。1. 已知已知如下程如下程序代码,序代码,分析并分析并写出它写出它的运算的运算结果。结果。题题1分析分析2. 下列哪个是正确的结构变量的定义?下列哪个是正确
13、的结构变量的定义?A struct AAA int a;int b; int c; int d; a , b , c;B struct BBB int a;int b; int c; int d; struct BBB a , b , c; C struct CCC int a;int b; int c; int d; struct CCC a ; b ; c;D struct DDD int a;int b; int c; int d; DDD a , b , c; 3. 已知有如下结构类型的定义:已知有如下结构类型的定义:A a=1; B a.a=2; C a.a.a=3; D a.a.a
14、.a=4; 下列哪个是正确的对结构类型变量下列哪个是正确的对结构类型变量a的赋值?(的赋值?( )4. 下列哪个是正确的对结构类型变量的赋值(下列哪个是正确的对结构类型变量的赋值( )。)。A struct T1 int a;T1 a=1 ; B struct T1 int a;T1=1 ;C struct T1 int a;struct t1 a ; a.a=1;D struct T1 int a;T1.a=1 ;5. 已知有如下定义:已知有如下定义:A 1 B 2 C 3 D 4那么那么printf(%d,sizeof(a);的输出结果是(的输出结果是( )。)。6. 已知有如下定义:已知有如下定义:A 1 B team2 C 3 D team4那么那么printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国巯基乙酸异辛酯行业前景动态及供需趋势预测报告
- 2024-2030年中国多制层封装芯片和嵌入式多制层封装芯片行业发展趋势与需求前景预测报告
- 2024-2030年中国单向电平转换器行业竞争态势与供需前景预测报告
- 2024-2030年中国光学冷加工行业运行态势及前景规划研究报告
- 给排水课程设计自我总结
- 配汽机构摇臂轴课程设计
- 深孔钻相关行业投资规划报告
- 网络监控系统相关行业投资规划报告范本
- 全国卷2025届高三英语下学期4月经典模拟题3含解析
- 2025届高考生物一轮复习课时作业三十种群的特征和种群数量的变化含解析新人教版
- 设计构成基础课件 1-点线面
- 2022年高考语文真题试卷(全国乙卷 )讲评教学专用课件
- 咯血的介入治疗
- 教师专业成长概述教师专业发展途径PPT培训课件
- 球磨机安装专项施工方案
- 阀门压力等级对照表优质资料
- GMP质量管理体系文件 中药材干燥SOP
- YY/T 0874-2013牙科学旋转器械试验方法
- GB/T 25217.10-2019冲击地压测定、监测与防治方法第10部分:煤层钻孔卸压防治方法
- GB/T 21010-2007土地利用现状分类
- 下库大坝混凝土温控措施(二次修改)
评论
0/150
提交评论