版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上上机7 结构体与共用体一、 目的掌握结构体类型、共用体类型以及相应类型变量的定义方法和引用方法。学习运用链表解决实际问题。二、 要求1. 掌握结构体类型与结构体变量的定义、引用和初始化方法。2. 熟悉结构体与共用体的区别。三、 内容及步骤1、 程序s7-1.c是按学生姓名查询其排名和平均成绩,查询可连续进行,直到键入0时结束。试完善该程序。#include <stdio.h>#include <string.h>#define NUM 4struct studentint rank;char *name;float score;struct s
2、tudent stu=3,”Tom”,89.5,4,”Mary”,76.5,1,”Jack”,98.0,2,”Jim”,92.0;void main()char str10;int i;doprintf(“Enter a name:”);【指导】连续查询可以在do循环语句中实现。其算法步骤如下:输入一个学生姓名;与已知结构体数组中的姓名进行比较。如果找到与输入的学生姓名相同者,则输出该学生的姓名、排名和平均成绩;如果查找的人数大于等于NUM,则输出:Not found;如果输入的学生姓名是0,则结束查询,程序运行结束;否则转向继续执行。注意:这里的转向构成了循环,可以用循环语句实现。源程序s7
3、-1.c: #include <stdio.h>#include <string.h>#define NUM 4struct studentint rank;char *name;float score;struct student stu=3,"Tom",89.5,4,"Mary",76.5,1,"Jack",98.0,2,"Jim",92.0;void main()char str10;int i;doprintf("Enter a name:");scanf(&qu
4、ot;%s",str);for(i=0;i<4;i+)if(!strcmp(str,)printf("%s的排名:%d,平均分为:%.1fn",str,stui.rank,stui.score);while(*str!='0');2、有4名学生,每人有两门课程的考试成绩。试完善程序s7-2.c,编写函数index()检查总分高于160分和任意一科不及格的两类学生,将结果输出到屏幕上,并写出运行结果。#include <stdio.h>struct studentchar name10;int num;float
5、score1;float score2;stu4=“李一”,1,84.0,82.0,“王二”,2,71.0,73.0,“赵三”,3,90.0,68.0,“刘四”,4,67.0,56.0;void main()struct student *p;int index(struct student * pt);p=stu;index(p);【指导】调用函数index()时,实参是结构体指针变量。因此,定义函数index()时,形参也应该是一个同类型的结构体指针变量,例如struct student * pt。程序要检查两类学生:总分高于160分和任意一科不及格的。可以分别用两条for循环语句for(
6、i=0;i<4;i+,pt+)来实现。 总分高于160分可以表示为pt->score1+pt->score2>160;任意一科不及格可以表示为pt->score1<60|pt->score2<60。int index(struct student * pt)int i;float sum;printf("总分高于160的学生有:");for(i=0;i<4;i+)sum=stui.score1+stui.score2;if(sum>160)printf("%sn",);prin
7、tf("不及格的学生有:");for(i=0;i<4;i+)if(stui.score1<60|stui.score2<60)printf("%sn",);return 0;3、分析并测试下列程序的输出结果。#include<stdio.h>void main()unionint a;int b;s3,*p;int n=1,k;for(k=0;k<3;k+)sk.a=n;sk.b=sk.a*2;n+=2;p=s;printf("%d,%dn",p->a,+p->a);程
8、序输出的结果为: 共用体所有元素共用一个储存区域,故a,b没有区别。 【指导】注意理解共用体的内存分配和正确使用。四、 编程1. 结构体变量的成员包括年、月、日,输入日期并计算该日是当年中第几天。源程序1: #include <stdio.h>struct dateint year;int month;int day;a;void main()int i=0;printf("请输入日期,用空格间隔n");scanf("%d%d%d",&a.year,&a.month,&a.day); switch(a.month)ca
9、se 12:i=30;case 11:i+=31;case 10:i+=30;case 9:i+=31;case 8:i+=31;case 7:i+=30;case 6:i+=31;case 5:i+=30;case 4:i+=31;case 3:(a.year%400=0)|(a.year%4=0&&a.year%100=0)?(i+=29):(i+=28);case 2:i+=31;case 1:i+=a.day; printf("%d %d %d是%d年的第%d天。n",a.year,a.month,a.day,a.year,i);/1.结构体变量的成
10、员包括年、月、日,输入日期并计算该日是当年中第几天。 2. 使用结构体变量输入学生姓名、学号及三门课的成绩,计算各自的平均成绩。源程序2: #include <stdio.h>struct studentchar name20; int num20;float score1,score2,score3;a3;void main()int i;float sum3; for(i=0;i<3;i+)printf("请输入学生姓名:");gets();printf("请输入学生学号:");gets(ai.num);printf("请输入学生成绩:");scanf("%f%f%f",&ai.s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临沂大学《高层建筑结构设计》2021-2022学年第一学期期末试卷
- 2024-2030年中国奢侈品市场营销模式及投资竞争力分析报告
- 2024-2030年中国外科吸烟器行业市场发展趋势与前景展望战略分析报告
- 2024-2030年中国增氧机行业运营趋势及发展策略分析报告
- 2024-2030年中国吊索具市场供需格局预测及未来5发展趋势报告
- 2024-2030年中国卫浴垫产业未来发展趋势及投资策略分析报告
- 2024-2030年中国半导体激光心脑血管治疗仪行业市场运营模式及未来发展动向预测报告
- 2024-2030年中国医用机器人市场发展走向及投资规划分析报告
- 2024年幼儿园食品安全工作计划
- 2024年子女抚养权确认协议
- 小学综合实践二年级上册第3单元《神奇的影子》教材分析
- 金坛区苏科版二年级上册劳动《06树叶书签》课件
- 教师课堂教学技能大赛试题题库及答案
- 教科版科学五年级上册《用水计量时间》学习任务单
- 2022-2033年度秋学期四年级语文上册教学进度表
- 法国近代教育史课件
- 船舶管理教案
- 化工石油工程项目管道安装技术教材(33张幻灯片)课件
- 路基标准化施工要点
- “宁轩”中式茶馆设计(毕业设计作品完整版)
- 雅思考试介绍-PPT课件
评论
0/150
提交评论