资源描述
实 验 报 告 六
课程名称:C 语言程序设计
成 绩:
实验项目名称:结构体、共用体 实验时间:
指导教师(签名) :
班级:计教 101 姓名:傅倩 学号:010701140
实 验 目 的:
1.掌握结构体类型变量的定义和使用; 2.掌握结构体类型数组的概念和使用;
3.掌握共用体的概念与使用;
4.掌握链表的各种典型的操作。
5. 理解和掌握枚举类型的说明、枚举变量的声明及其初始化,正确使用枚举值。
实 验 环 境:
Turbo2.0
实 验 内 容 及 过 程:
1. 写出下列程序的运行结果,并上机验证是否正确。
main()
{ enum tean{my,your=4,his,her=his+10} ;
printf("%d%d%d%d\n",my,your,his,her);
}
程序的运行结果: 04515
2.下面程序的功能是:建立枚举类型 weekday,假设今天是星期二,计算十天后是星期几。请填空,并写
出运行结果。
实验步骤与要求:
①上机前请完成下列程序填空,并写出运行结果。
②上机输入程序,并验证结果是否正确。
程序 1.
main()
{enum weekday{sun, mon ,tue, wed, thu, fri, sat};
enum weekday day;
int i;
day=tue;
i=(day+10)%7;
printf("\nThe day is %d", i );
}
程序运行结果是:The day is 5
程序 2.
main()
{enum weekday{sun, mon, tue, wed, thu, fri, sat};
char name[7][4]={"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
enum weekday day;
day=tue;
day=(enum weekday)((day+10)%7);
printf("\nThe day is %s", name[ day ] );
}
程序运行结果是:The day is fri
第1页共7页
3.结构体和共用体的定义和使用。
实验步骤与要求:
(1)上机前写出下列程序的运行结果。
(2)上机输入程序,并验证结果是否正确。
程序 1.
typedef union
{ long i;int k[5];char c;
}DATE;
struct date
{ int cat;DATE cow;double dog;}too;
DATE max;
main()
{printf("%d",sizeof(struct date)+sizeof(max));
}
程序运行结果: 30
程序 2.
main()
{union bt
{int k;
char c[2];
}a;
a.k=-7;
printf(″%o,%o\n″,a.c[0],a.c[1]);
}
程序运行结果: 177771 ,177777 程序 3.
main()
{ union example
{ struct
{ int x; int y;}in;
int a; int b;
}e;
e.a=1; e.b=2;
e.in.x=e.a*e.b; e.in.y=e.a+e.b;
printf(″%d,%d″,e.in.x, e.in.y);
}
程序运行结果: 4,8
4.完成下列有关结构体与共用体的程序设计
(1)有五个学生,每个学生的数据包括学号,姓名,三门课的成绩,从键盘输入五个学生的数据,要求
打印出每个学生的平均成绩,以及最高分的学生的数据(包括学号,姓名,三门课的成绩,平均分数)。
实验步骤与要求:
①用一个函数输入五个学生的数据;
②用一个函数求总平均分;
第2页共7页
③用函数找出最高分学生数据,
④总平均分和最高分的学生的数据都在主函数中输出。
(2)三个人围成一圈,从第一个人开始顺序报号 1,2,3。凡报到"3"者退出圈子,找出最后流在圈子中的人
原来的序号。
(3)建立一个链表,每个结点包括:学号,姓名,性别,年龄。输入一个年龄,如果链表中的结点所包
含的年龄等于此年龄,则将此结点删去。
实 验 结 果 及 分 析:
1 枚举类型定义的是常量,如果没有赋值,第一个值就为零,在赋值后,后一个数会自动加一。
2.1 枚举元素作为常量,它们是有值的,C 语言编译按定义时的顺序使它们的值为 0,1,2。。 。,所以
tue=2,i=(2+10)%7=5,所以输出的数是 5.
2.2 利用强制类型转换,把 5 赋值给 fri,然后输出字符串 fri.
3.1 sizeof 函数是计算字节的,要熟悉变量类型符所占的字节;
3.2 %o 输出的是八进制的数字,int 是十六位,按高低位排,不足的补 1,所以输出是八进制的数。
3.3 结构体与共用体的结合运用,共用体是看值大的。
4.(1)
循环语句,运用 scanf 函数输入,将结构体与指针结合使用。
本题中运用多个 for
4.(2)
第3页共7页
展开阅读全文