内容发布更新时间 : 2025/5/4 9:34:17星期一 下面是文章的全部内容请认真阅读。
数学与软件科学学院 实验报告
一、实验目的
(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()来计算每个学生的总分和平均分,最后,