实验九结构体

  • 格式:doc
  • 大小:109.00 KB
  • 文档页数:4

单 元 教 案 续 页

- 2 - 实验九 结构体、共用体与枚举类型

实验时间: 年 月 日

【实验目的】

1、掌握结构体类型、共用体类型和结构体类型变量的定义方法;

2、掌握结构体类型变量成员赋值和引用方法;

3、学会使用结构体数组;

4、掌握共用体和枚举类型数据的使用。

【实验内容】

1、结构体类型的定义;

2、结构体变量的定义、赋值与使用;

3、结构体数组与结构体指针的定义与使用;

4、共用体类型的定义,共用体变量的定义与使用;

5、枚举类型的定义与使用;

6、链表与动态内存分配;

7、自定义类型的使用。

【实验步骤】

一、在E或F盘上建立以自己的学号命名的文件夹。

二、上机验证与分析题

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;

}

2、写出程序ex9_2.c运行的结果。 单 元 教 案 续 页

- 3 - /*文件名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);

}

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);

}

4、运行下列程序,写出结果

/*文件名ex9_4.c*/

#include

void main()

{

struct List

{ 单 元 教 案 续 页

- 4 - 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、试用结构体定义一个工厂职工的信息表,包含如下成员:工号、姓名、性别、年龄、参加工作日期、联系电话。源程序以ex9_5.c命名,保存在自己的文件夹内。

2、试用结构体定义一个学院教师的信息表,包含如下成员:工号、姓名、性别、年龄、参加工作日期、联系电话。源程序以ex9_6.c命名,保存在自己的文件夹内。

3、5位同学《C语言程序设计》课程考核成绩如下表所示:

班级

(char banji) 学号

(int num) 姓名

(char name) C语言程序设计课程考核成绩

(float score)

本网络102班 010002 张小兵 89

本软件103班 020001 李莉嘉 54

本软件106班 030008 王明星 68

本网络103班 040006 刘 伟 92

本网络106班 050007 吴 菲

49

试编程求这5位同学该门课程的平均成绩,并输出成绩不及格的同学的班级、学号、姓名与成绩等信息。源程序以ex9_7.c命名,保存在自己的文件夹内。

4、5位职工的月收入如下表所示:

部门

(char department) 工号

(int num) 姓名

(char name) 月收入

(float salary)

技术科 010002 张援朝 6800

生产科 020006 李明瑞 2600

检验科 030018 王国庆 4800

后勤部 040026 刘小兵 3700

经营科 050068 吴 伟 1900

试编程求这5位职工的平均月收入,并输出月收入小于3000元的职工的部门、工号、姓名与月收入等信息。源程序以ex9_8.c命名,保存在自己的文件夹内。

5、已知仓库存书的信息如下表所示 单 元 教 案 续 页

- 5 - 书号

(ISBN) 书名

(title) 作者

(author) 出版社

(publisher) 出版日期

(pubdate) 价格(元)

(price)

7115177810 Java实用教程 李钟尉 人民邮电出版社 2008年5月 32.00

7113101015 汇编语言程序设计 白小明 中国铁道出版社 2009年8月 35.00

7302108535 C语言程序设计 谭浩强 清华大学出版社 2005年7月 26.00

7301123713 网络工程实用教程 汪新民 北京大学出版社 2008年2月 34.00

7111283812 软件工程概论 郑人杰 机械工业出版社 2010年3月 28.00

试编程求书的平均价格,并输出价格小于30元的书籍的书号、书名、作者、出版社、出版日期,价格等信息。源程序以ex9_9.c命名,保存在自己的文件夹内。

【实验小结】

应知:

1、结构体、共用体、枚举类型的概念及其定义方法;

2、结构体变量、共用体变量、枚举类型变量的定义;

3、动态内存分配的概念及动态内存分配函数。

4、链表的概念。

应会:

1、结构体变量、共用体变量、枚举类型变量的使用;

2、结构体数组及结构体指针的使用;

3、动态内存分配函数的使用;

4、链表的使用。

【实验思考】

1、当定义一个结构体变量时,系统为它分配的内存空间是多少?

2、结构体与数组的区别是什么?

3、用结构体指针作为函数参数与用结构体变量作为函数参数有什么不同?