C语言程序设计 实验九 结构体和共用体 答案 西北民大 电气院

实验九 结构体和共用体

一,实验目的:

1,掌握结构体类型变量的定义和使用. 2,掌握结构体类型数组的概念和应用. 3,掌握共用体的概念和使用.

4,了解链表的概念,初步学会对链表进行操作. 二,实验准备:

1,复习结构体的概念和定义方法. 2,复习共用体的概念和定义方法. 3,源程序.

三,实验步骤及内容: 程序改错

typedef union { long x[2]; int y[4]; char z[8]; } MYTYPE;

typedef union them; main()

{ printf(\}

修改后的程序:

typedef union { long x[2]; int y[4]; char z[8]; } MYTYPE;

MYTYPE them;

main()

{ printf(\}

程序填空

以下程序建立了一个带有头结点的单向链表,结点中的数据可由键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data与不放数据,表空的条件是ph―>next==NULL).

#include ______ struct list {int data ;struct list *next ;};

_ struct list *creatlist()

{ struct list *p, *q, *ph; int a ;

ph=(struct list *)malloc(sizeof(struct list)); p=q=ph;

printf(\,enter -1 to end :\\n\scanf(\while (a!=-1)

{ p=(struct list *)malloc(sizeof(struct list)); p->data=a; q->next=p;

ph->next=p;

scanf(\}

p->next =\return(ph); }

main()

{struct list *head; head=creatlist(); }

3,有5个学生,每个学生的数据包括学号,姓名,三门课成绩,从键盘输入5个学生数据,要求打印出三门课总平均成绩,以及最高分的学生的数据(包括学号,姓名,三门课成绩,平均成绩).

要求:用一个input函数输入5个学生数据;用一个average函数求总平均分;用max函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出.(习题9.5)

源程序:

#include #define N 5 struct student {

char num[6]; char name[8]; float score[3]; float avr;} stu[N];

int i,j,maxi;

float sum,max,average; void main() {

printf(\请输入学生信息:\\n\ for(i=0;i<5;i++) {printf(\

scanf(\

printf(\

scanf(\ for(j=0;j<3;j++)

{printf(\

scanf(\ }

printf(\ }

average=0; max=0;

for(i=0;i<5;i++) {

sum=0;

for(j=0;j<3;j++)

sum+=stu[i].score[j]; stu[i].avr=sum/3; average+=stu[i].avr; if (sum>max)

{max=sum;maxi=i;} }

average/=N;

printf(\ name score1 score2 core3 average\\n\for(i=0;i

{printf(\for(j=0;j<3;j++)

printf(\printf(\

printf(\printf(\

score :student %s,%s.\\n\printf(\

score :m,m,m,average: %5.2f\\n\ stu[maxi].score[1],stu[maxi].score[2],stu[maxi].avr); getch();}

4,输入和运行以下程序: union data {

int i[2]; float a; long b; char c[4]; };

main()

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4