c语言结构体和联合体实验原理,C语言程序设计实验报告实验七结构体和联合体程序设计.doc...

C语言程序设计实验报告实验七结构体和联合体程序设计

《C语言程序设计》实验报告

实验七、结构体和联合体程序设计

学号 姓名 一、实验目的

掌握结构体类型变量和数组、共用体类型变量和数组以及枚举类型变量的定义和使用。

掌握链表的基本,初步学会对链表进行操作。

通过编程和调试程序,加深对结构体和共用体概念的理解。

实验前复习结构体类型、共用体类型和枚举类型的概念。

二、实验内容及步骤:

1、编程利用结构体实现输入若干学生的学号、姓名和成绩,求平均分以及高于平均分的同学。

要求:1 求平均分的过程由函数实现。 2)打印格式为:学生学号 姓名 成绩,且其过程由函数实现。

程序代码:

#include

#include

typedef struct student int num;

char name[20];

int score;

struct student *next; ST,*STU;

STU createlink int n int i; STU p,q,head; if n 0 return NULL ; head STU malloc sizeof ST ; printf "input datas:\n" ; scanf "%d %s %d",&head- num,head- name,&head- score ; p head; for i 1;i n;i++ q STU malloc sizeof ST ; scanf "%d %s %d",&q- num,q- name,&q- score ; p- next q; p q; p- next NULL; return head ; void list STU head STU p head; int i 0; double sum 0; for ;p! NULL;p p- next sum sum+ double p- score ; i++; p head; while p! NULL if double p- score sum/i printf "高于平均的学生为:%d %s %d\n",p- num,p- name,p- score ; p p- next; double average STU head

int i 0; double sum 0; for ;head! NULL;head head- next sum sum+ double head- score ; i++; return sum/i ; void main STU h;

int n;

double ave;

printf "input number of node:" ;

scanf "%d",&n ;

h createlink n ;

ave average h ;

printf "平均成绩为:%lf\n",ave ;

list h ; 对程序进行测试,并观察运行结果。将程序的运行情况写在下面。

『运行结果:』

input number of node:10

input datas:

1 A 98

2 B 87

3 C 76

4 D 67

5 E 89

6 F 54

7 G 88

8 H 57

9 I 68

10 J 94

平均成绩为:77.800000

高于平均成绩的学生为:

1 A 98

2 B 87

5 E 89

7 G 88

10 J 94

Press any key to continue

2、编写一个程序,利用联合变量,求任意输入字符的ASCII码值。例如:输入”A”则输出65。

程序代码:

#include

union ASCII char ch;

int t;

p;

void main printf "请输入一个字符:" ;

scanf "%c",&p.ch ;

printf "%d\n",p.ch ; 对程序进行测试,并观察运行结果。将程序的运行情况写在下面。

『运行结果:』

请输入一个字符:A

65

Press any key to continue

三、问题讨论

1、答:当对结构体变量赋值时,可以整体引用,一般情况下不能对结构体变量整体引用,只能引用其成员。?答:结构体也是和数组类似的一种构造类型。但和数组不同的是结构体的各个分量可以分别具有不同的数据类型。四、实验总结

4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值