实验9 结构体、共用体与枚举类型答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验九结构体、共用体与枚举类型
实验时间:年月日
一、上机验证与分析题
1、写出程序ex9_1.c运行的结果。
/*文件名ex9_1.c*/
#include
struct HAR
{
int x,y;
struct HAR *p;
}h[2];
int main()
{
h[0].x=1;
h[0].y=2;
h[1].x=3;
h[1].y=4;
h[0].p=&h[1];
h[1].p=h;
printf("%d %d\n",(h[0].p)->x,(h[1].p)->y);
return 0;
}
答案:3 2
2、写出程序ex9_2.c运行的结果。
/*文件名ex9_2.c*/
#include "stdio.h"
void main()
{
int z;
union data
{
int x;
int y;
}a;
a.x=3;
a.y=6;
z=a.x+a.y;
printf("z=%d\n",z);
}
答案:z=12
3、阅读程序ex9_3.c,预测结果并上机验证。
/*文件名ex9_3.c*/
#include
void main()
{
union data
{
int i;
char ch;
float f;
}a,b,c;
a.i=9;
b=a;
c=b;
printf("b.i=%d,c.i=%d\n",b.i,c.i);
}
答案:b.i=9,c.i=9
4、运行下列程序,写出结果
/*文件名ex9_4.c*/
#include
void main()
{
struct List
{
int data ;
struct List *next;
};
struct List a[3]={1,&a[1],2,&a[2],3,&a[0]}, * p;
p=&a[1] ;
printf("%d\n",--p->data);
printf("%d\n",p->next->data);
printf("%d\n",p--->data);
}
答案:1
3
1
三、编程题:
1、试用结构体定义一个工厂职工的信息表,包含如下成员:工号、姓名、性别、年龄、参加工作日期、联系电话。源程序以ex9_5.c命名,保存在自己的文件夹内。解:struct worker
{ char number[20];
char name[20];
char sex;
int age;
char worked_time[80];
char phone[20]; };
注:本题答案中变量的名称和类型可由学生自行取,只要遵守标识符的命名规则和数据类型与实际情况相吻合。
2、试用结构体定义一个学院教师的信息表,包含如下成员:工号、姓名、性别、年龄、参加工作日期、联系电话。源程序以ex9_6.c命名,保存在自己的文件夹内。解:
struct teacher
{ char number[20];
char name[20];
char sex;
int age;
char worked_time[80];
char phone[20]; };
注:本题答案中变量的名称和类型可由学生自行取,只要遵守标识符的命名规则和数据类型与实际情况相吻合。
试编程求这5位同学该门课程的平均成绩,并输出成绩不及格的同学的班级、学号、姓名与成绩等信息。源程序以ex9_7.c命名,保存在自己的文件夹内。
解:
#include
struct student
{
char banji[20];
char num[8];
char name[20];
float score;
}stu[5] = {{"本网络102","01002","张小兵",89},
{"本软件103班","02001","李莉嘉", 54},
{"本软件106班","03008","王明星", 68},
{"本网络103班","04006","刘伟", 92},
{"本网络106班","05007","吴菲", 49}};
main()
{
int i;
float average, s=0;
for(i=0; i<5; i++)
{
s += stu[i].score;
if(stu[i].score<60)
{
printf("班级:%s ",stu[i].banji);
printf("学号:%d ",stu[i].num);
printf("姓名:%s ",stu[i].name);
printf("成绩:%.2f\n",stu[i].score);
}
}
average = s/5 ;