




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1理学计算机软件基础自考本科理学计算机软件基础自考本科2.结构类型的构建结构类型一般形式为:struct 结构类型名 类型1 成员1; 类型2 成员2; 类型n 成员n; ;第1页/共34页2.结构类型的构建示例struct stu1 /定义一个stu1数据类型 long Num; /成员1:长整型 学号 char Name; /成员2:字符型 姓名 char Sex; /成员3:字符型 性别 int Age; /成员4: 整 型 年龄 float Scorce3; /成员5:实型数组 成绩 ;第2页/共34页1.结构类型变量的定义方法1:先定义结构类型,再定义结构变量step1:构建结
2、构类型如:struct stu1 long Num; char Name; char Sex; float Score3;step2:定义相应变量如:struct stu1 a,b,c;第3页/共34页1.结构类型变量的定义方法2:定构建结构类型的同时定义相应变量如:struct stu1 long Num; char Name; char Sex; float Score3; a,b,c;第4页/共34页2.结构类型变量的引用引用规则如下:(1)结构变量和结构体中成员,都不能单独引用;(2)只能将结构变量与结构体成员合起来引用。引用格式:结构变量 . 结构体成员如:a . age第5页/共3
3、4页3.结构类型变量的初始化(1)定义结构变量同时进行初始化。如:struct student long Num; char Name20; float Score3;a=520,”WangXin”,78.5,49.5,90;第6页/共34页(2)也可以先定义结构变量,再进行初始化。如:struct student long Num; char Name20; float Score3;main( ) struct student a; a=520,”WangXin”,78.5,49.5,90;第7页/共34页例6-1 分析程序,写出运行结果main()struct stu1 long Num
4、; 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);第8页/共34页例6-2 编写求两复数之和的程序struct stu3 int x; int y; ; main( ) struct stu3 a,b,c; scanf(%d,%d,%d,%d,&a.
5、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); 第9页/共34页(3)结构变量占用的存储空间(size):是结构体中所有成员所占空间之和。如:struct student long Num; char Name20; float Score3;main( ) struct student a; printf(%dn,sizeof(a);第10页/共34页1.结构类型数组的定义(1)在构建结构类型的同时定义相应的数组。一般形式一般形式示例示例struct 结构类型名结构类型名 成员表列;成员表列;数组名
6、数组名 数组长度数组长度;struct student long Num; char Name20; float score3;No8class 45;第11页/共34页(2)先构建结构类型,再定义相应的数组。一般形式一般形式示例示例在已经定义好结构类型后,使用如下在已经定义好结构类型后,使用如下形式定义结构数组:形式定义结构数组:struct 结构类型名结构类型名 数组名数组名 数组长度数组长度struct student No8class 45;第12页/共34页2.结构数组的初始化在构建结构类型的同时对数组初始化。如:struct stu4 long Num; char Name20;
7、float Score3;a2= 520 , “WanXin”, 78.5,49.5,90 , 240, “LiMing” , 66.5,72.5,88 ;第13页/共34页上例中的存储关系:a0a1NumNameScore3NumNameScore3520WanXin78.549.590240LiMing 66.572.588第14页/共34页例6-3输入50个学生的基本信息(如图6-1所示),计算各个学生的平均分,并输出各人的学号、姓名及平均。main( )int i,j;float s;struct stu5 /*定义名为stu5的结构类型*/long num; /*学号*/char n
8、ame20; /*姓名*/float score3; /*三门课成绩*/float ave; /*平均分*/a50; /*50个学生,各个学生具有以上信息*/ 第15页/共34页for(i=0;i50;i+) printf(请输入第%d个同学的学号,姓名,(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;
9、j+) s=s+ai.scorej; /*第i个同学的第j门课成绩累加*/ ai.ave=s/3.0; for(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);第18页/共34页2.指向结构数组的指针指针变量也可以指向结构数组,其定义方法和指向一般数组一样。如:struct student long Num; char Name20; float Score3;a2,*p=a;struct student l
10、ong Num; char Name20; float Score3;struct student a2,*p=a;第19页/共34页结构体成员的引用的形式:形式形式示例示例结构变量结构变量 . 成员名成员名;a . Num;(*指针变量名)指针变量名) . 成员成员;(*p) . Num;指针变量名指针变量名- 成员名成员名;P - Num ;第20页/共34页例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; /*定义指向结构类型指针
11、*/ int i; /*定义变量i*/ p=a; /*P指针指向结构数组a*/ for(i=0;i agestruct person char name20; int age;aLi ,20,*p=&a;则对结构体变量a中成员age错误的引用是( )。第22页/共34页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;则对结构变量成员正确的引用是( )。第23页/共34页1. 已知如下程序代码,分析并写出
12、它的运算结果。第24页/共34页题1分析queue_t0queue_t1 成员成员1成员成员2 成员成员1成员成员2iPiece0iPiece1iBlock0iBlock1iPiece0iPiece1iBlock0iBlock112345678第25页/共34页2. 下列哪个是正确的结构变量的定义?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
13、; struct CCC a ; b ; c;D struct DDD int a;int b; int c; int d; DDD a , b , c; 第26页/共34页3. 已知有如下结构类型的定义:A a=1; B a.a=2; C a.a.a=3; D a.a.a.a=4; 下列哪个是正确的对结构类型变量a的赋值?( )第27页/共34页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 ;第28页/共34页5. 已知有如下定义:A 1 B 2 C 3 D 4那么printf(%d,sizeof(a);的输出结果是( )。第
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超市提成合同协议书
- 邻居违建调解协议书
- 道路损毁修复协议书
- 高中宿舍承包协议书
- ufc比赛伤亡协议书
- 单位章程及联营协议书
- 衣柜闲置转让协议书
- 车位包租返租协议书
- 路人死亡赔偿协议书
- 高中就业合同协议书
- 铁路旅客运输服务铁路客运车站服务工作课件
- 《面试技巧与策略》课件
- 2023年贵州省粮食储备集团有限公司面向社会公开招聘工作人员15人笔试参考题库附带答案详解
- 公司注册合同协议
- 心功能分级课件
- 行为资产定价理论综述
- 2025年美丽中国第六届全国国家版图知识竞赛测试题库(中小学组)
- 至诚则成立信于行主题班会
- 2024年四川雅安中考满分作文《与书为伴》
- 人音版2025-2026学年一年级音乐下册教学工作计划(及进度表)
- 《人工智能基础(Python实现)》全套教学课件
评论
0/150
提交评论