实验十一 结构体(struct)与共用体(union)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验十一结构体(struct)与共用体(union)

实验目的

理解并掌握使用不同数据类型的变量组合成一个数据的组合体-结构体与共用体的定义与引用;正确使用结构体数组、结构体与函数及指向结构体的指针。

要点提示

1.结构体定义的一般格式为:

struct 结构体类型名

{数据类型成员名1;

数据类型成员名2;

……

数据类型成员名n;

};

2.结构体变量的说明

struct 结构体类型名结构体变量名;

3.引用结构体成员

结构体变量名.成员名

共用体与结构体有相似的使用形式

实验内容

●结构体的定义与引用

●结构体与函数

●结构体数组

●指向结构体的指针

●共用体的定义与引用

实验步骤

读懂并输入程序,完成填空后输出结果

1.建立学习成绩单结构,并建立一个同学王林(wanglin)的记录。

#include

main()

{struct grade /* 定义结构体类型*/

{int number;

char name;

int math;

int english;

};

struct 【】wanglin; /* 说明结构体变量*/

printf("Please input the number, name, math, english:\n");

scanf("%d,%d,%d",&【】,& wanglin. name,【】& wanglin.english);

printf("wanglin 'grade is: %d/%d/%d\n", wanglin. number, , wanglin.math, wanglin.english);

}

程序执行过程与结果:

Please input the number, name, math, english::

26,A, 85,90

wanglin ' grade is:

#include

main()

{struct grade /* 定义结构体类型*/

{int number;

char name;

int math;

int english;

};struct grade wanglin; /* 说明结构体变量*/

printf("Please input the number, name, math, english:\n");

scanf("%d,%c,%d,%d",&wanglin. number,& wanglin. name,& wanglin. math,& wanglin.english);

printf("wanglin 'grade is: %d/%c/%d/%d\n", wanglin. number, , wanglin.math, wanglin.english);

}

Please input the number, name, math, english:

26,A,85,90

wanglin 'grade is: 26/A/85/90

Press any key to continue

请再建立一个刘芳(liufang)的成绩记录, 比较一下。

2.结构体与函数

main()

{struct /* 局部定义结构*/

{int a;

char b;

}【】;

variable.a=1111;

variable.a=A;

fun(variable.a);

printf(" a=%d\n", variable.a);

printf(" a=%d\n", variable.b);

}

fun(nam)

struct

{int x;

char y;

}【】; /*定义形参*/

{printf(" x1=%d\n",nam.x);

nam.x=2222; /*重新赋值*/

nam.y=B;

printf(" x2=%d\n",nam.x);

printf(" x2=%d\n",nam.y);

return;

}

程序执行结果如下:

main()

{ struct /* 局部定义结构*/

{int a;char b;

}variable;

variable.a=1111;

variable.b='A';

fun(variable.a);

printf(" a=%d\n", variable.a);

printf(" b=%d\n", variable.b);

}

fun(nam)

struct

{int x;

char y;

}nam; /*定义形参*/

{printf(" x1=%d\n",nam.x);

nam.x=2222; /*重新赋值*/

nam.y='B';

printf(" x2=%d\n",nam.x);

printf(" x2=%d\n",nam.y);

return;

}

x1=1111

x2=2222

x2=66

a=1111

b=65

Press any key to continue

3.结构体数组

将作业1稍加改动,建立起3个同学的成绩单。

#include

main()

{struct grade /* 定义结构体类型*/

{int number;

char name;

int math;

int english;

};

struct grade 【】; /* 说明结构体数组, */

printf("Please input the number, name, math, english:\n");

for(i=0;i<2;i++)

{

scanf("%d,%d,%d",&【】,& mate[i]. name,【】& mate[i].english);

printf(" all grade is: %d/%d/%d\n", mate[i]. number, mate[i].name, mate[i].math, mate[i].english);

}

}

#include

main()

{

struct grade /* 定义结构体类型*/

相关文档
最新文档