当前位置:首页 > C语言程序设计方案实验报告实验七结构体和联合体程序设计方案
实验七、结构体程序设计
一、实验目的
1. 掌握结构体类型变量和数组、共用体类型变量和数组以及枚举类型变量的定义和使用。
2. 掌握链表的基本,初步学会对链表进行操作。
3. 通过编程和调试程序,加深对结构体和共用体概念的理解。 4. 实验前复习结构体类型、共用体类型和枚举类型的概念。
二、实验内容及步骤:
1、编程利用结构体实现输入若干学生的学号、姓名和成绩,求平均分以及高于平均分的同学。
要求:1) 求平均分的过程由函数实现。
2)打印格式为:学生学号 姓名 成绩,且其过程由函数实现。 程序代码:
#include
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(\。
scanf(\。 p=head。
for(i=1。i q=(STU)malloc(sizeof(ST))。 scanf(\。 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=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(\。 scanf(\。 h=createlink(n)。 ave=average(h)。 printf(\平均成绩为:%lf\\n\。 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。 三、问题讨论 1、结构体变量何时可以整体引用,何时只能引用结构体成员变量? 2、结构体和数组有什么区别? 四、实验总结 1 总结本次实验完成情况、相关知识掌握情况 2 总结本次实验编辑、编译、连接、运行所取得的经验 3 分析本次实验出现的主要错误最直接原因
共分享92篇相关文档