内容发布更新时间 : 2024/12/23 16:46:30星期一 下面是文章的全部内容请认真阅读。
数学与软件科学学院 实验报告
一、实验目的
(1) 掌握C语言环境下结构体和共用体类型变量的定义和使用方法; (2) 掌握结构体类型数组的概念和使用;
(3) 掌握指向结构体变量的指针变量、尤其是链表概念;
二、实验内容
1. 首先熟悉结构体类型变量的基本声明方法、结构体类型变量的内存分配原则、初始化和引用结构体变量及其成员变量的基本方法;然后掌握结构体变量的输入、输出方法。(参见教材例7.1,请给该例加上输入功能)
#include
struct person { main() {
for(i=1;i<=10;i++) { }
scanf(\for(j=0;j<3;j++) { }
if(strcmp(leader_name,leader[j].name)==0)
leader[j].count++;
int i,j;
char leader_name[20]; char name[20]; int count;
}leader[3]={\
}
2.基于结构体数组的应用实验。
(1) 有n个学生,每个学生的数据包括学好(num)、姓名(name[20])、性别(sex)、年龄(age),以及三门课程的成绩(score[3])。要求:在main()函数中输入这些学生的这些数据,然后设计一个函数count()来计算每个学生的总分和平均分,最后,打印出所有数据信息(包含原来输入的学生原始数据信息和求解出来的新信息)。
for(i=0;i<3;i++)
printf(\
#include
#define N 3 #define M 3
typedef struct student {
int score[N]; char name[20]; int sex; int age;
char num[20]; }STUDENT;
main() {
STUDENT stu[M]; int i,j,average,total; char name[20];
clrscr();
for(i=0;i fflush(stdin); printf(\ scanf(\ fflush(stdin); } printf(\scanf(\fflush(stdin); printf(\ printf(\scanf(\fflush(stdin); printf(\scanf(\ for(j=0;j printf(\ scanf(\} for(i=0;i printf(\ } for(j=0;j printf(\} for(i=0;i total=0; for(j=0;j total=total+stu[i].score[j]; stu[i].score[N]=total/N; } } for(i=0;i { for(j=0;j printf(\ } } } 3.用结构体变量作函数参数。 #include struct data { int a,b,c; }; main() { void func(struct data); struct data arg; arg.a=27; arg.b=3; arg.c=arg.a+arg.b; printf(\ printf(\ func(arg); printf(\} void func(struct data parm) { printf(\parm.b=%d parm.c=%d\\n\ printf(\ parm.a=18; parm.b=5; parm.c=parm.a*parm.b; printf(\parm.b=%d parm.c=%d\ printf(\} 三、实验准备 (1) 复习有关结构体方面的所有知识,尤其是7.6节所学的动态存储分配技术; (2) 编写所选实验题目的程序代码和流程图; (3) 检查源程序并给出其可能的运行结果说明。 四、实验步骤 (1) 上机验证所选题目的程序设计结果,并做相应测试和分析; (2) 进行实验分析; (3) 总结结构体程序设计和实现的基本方法及其经验,尤其是链表技术; (4) 编写实验报告。 五、实验结果 1. 首先熟悉结构体类型变量的基本声明方法、结构体类型变量的内存分配原则、初始化和引用结构体变量及其成员变量的基本方法;然后掌握结构体变量的输入、输出方法。 统计候选人选票: 2.基于结构体数组的应用实验。 (1) 有n个学生,每个学生的数据包括学好(num)、姓名(name[20])、性别(sex)、年龄(age),以及三门课程的成绩(score[3])。要求:在main()函数中输入这些学生的这些数据,然后设计一个函数count()来计算每个学生的总分和平均分,最后,