实验08-结构体和共用体的应用_第1页
实验08-结构体和共用体的应用_第2页
实验08-结构体和共用体的应用_第3页
实验08-结构体和共用体的应用_第4页
实验08-结构体和共用体的应用_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验8 结构体和共用体的应用实验目的:1掌握结构体类型变量的定义和使用;2掌握使用结构指针和结构变量名使用结构成员的方法;3掌握结构体类型数组的概念和使用;4了解共用体的概念与使用。实验内容:1程序阅读理解训练。1) 输入并运行下面的程序,分析输出的结果。#include struct stuint num;float TotalScore;void f(struct stu p)struct stu s2=20044,550,20045,537;p.num=s1.num;p.TotalScore=s1.TotalScore;void main( ) struct stu s2=20041,7

2、03,20042,580;f(s0);printf(%d %3.0fn,s0.num,s0.TotalScore);2) 输入并运行下面的程序,分析输出的结果。#include struct stuchar name10;int num;void f(char *name,int num)struct stu s2=SunDan,20044,Penghua,20045;num=s0.num;strcpy(name,);void main( ) struct stu s2=YangSan,20041,LiSiGuo,20042,*p;p=&s1;f(p-name,p-num);pr

3、intf(%s %dn,p-name,p-num);思考:将“printf(%s %dn,p-name,p-num);”改为“printf(%s %dn,(*p).name, (*p).num);”和“printf(%s %dn, , s1.num);”会怎样?其实表达是一样的.不过表达的方式不同3) 输入并运行下面的程序,分析输出的结果。#include union dataint i2;float a;long b;char c4;u;void main()scanf(%d,%d,&u.i0,&u.i1);printf(i0=%d,i1=%d,a=%f,b=%1d,c0=%c

4、,c1=%c,c2=%c,c3=%cn,u.i0,u.i1,u.a,u.b,u.c0,u.c1,u.c2,u.c3);只是给i2赋值.其他的并没有赋值所以得出只有i0,i1有值输出输入两个整数10000、20000给u.i0和u.il,分析运行结果。然后将scanf语句改为:scanf(ld,&u.b);输入60000给b,再分析运行结果。long b 是一个长整型的数.2程序填空(根据题意在空白处填入适当的内容,使程序变得完整,并上机进行调试验证) 1) 程序说明:下列程序输出两个小孩的记录信息。1个男孩和1个女孩,其姓名首字母分别为“R”和“H”;男孩15岁,女孩比男孩小1岁子;男孩的成绩

5、为75,女孩的成绩为82。(该案例涉及结构体变量的定义、初始化和结构体变量成员的引用)。#include void main()struct children /定义结构体类型.char initial; /姓名首字母.int age; /年龄.int grade; /成绩.boy,girl;boy.initial=R;girl.initial=H;boy.grade=75;boy.age=15;girl.age=boy.age-1;girl.grade=82;printf(boy:%c is %d years old and got a grade of %dn, boy.initial,

6、boy.age, boy.grade);printf(girl:%c is %d years old and got a grade of %dn, girl.initial, girl.age, girl.grade);请写出运行结果:这个程序是一个简单的结构体的运用2) 程序说明:设有4个学生,每个学生包括学号、姓名和成绩数据,要求找出成绩最高者的姓名和成绩并输出。(本题涉及指向结构体数组的指针的定义和使用)#include void main()struct studentint num;char name20;float score;stu4,*p;int i,temp=0;float

7、 max;for(i=0;i4;i+)scanf(%d%s%f,&stui.num, ,&stui.score);max=stu0.score;for(i=1;i4;i+)if(maxstui.score ) /maxnum,p-name,p-score);输入:16101 Zhang 90.516102 Wang 8616103 Li 98.016104 Zhou 77请写出运行结果:3) 程序说明:有一个结构体变量stu,内含学生学号、姓名和三门课成绩。要求在mian()中赋值,在函数print中打印输出学生信息。(本题涉及结构体指针作为函数参数的使用) #include

8、 #include #define FORMAT %dn%sn%fn%fn%fnstruct studentint num;char name20;float score3;void print(struct student *p);void main()struct student stu;stu.num=12345;strcpy(,Li Min);stu.score0=68;stu.score1=87; stu.score2=98.9;print(&stu);void print(struct student *p)printf(FORMAT,p-num,p-name,p-score0,p-score1, p-score2 );printf(n) ;3程序设计(根据题意编写程序并上机进行调试)1) 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,要求打印出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。要求:用input函数输入10个学生数据;用average函数求总平

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论