实验9 结构体、共用体与枚举类型答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 ;

相关文档
最新文档