C语言-结构体与共用体的应用 下载本文

内容发布更新时间 : 2025/2/12 1:49:18星期一 下面是文章的全部内容请认真阅读。

西安邮电大学

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

实验名称: 结构体与共用体的应用

院系名称: 通信与信息工程学院

专业名称: 通信工程 班 级:

1614班

学生姓名: 由鹏

学号(8位): 05162005 任课教师: 王西龙

实验时间: 2017 年 6 月 25 日

1

一. 实验目的及实验环境

(1)掌握结构体类型变量的定义和使用; (2)掌握结构体类型数组的概念和使用; (3)掌握共用体的概念和使用; (4)了解枚举类型的概念和使用; (5)掌握用typedef定义类型。 实验环境:DevC++ 5.11

二. 实验内容

1.某班有若干个学生(假设为10),每个学生的信息包括学号、姓名、三门课的成绩,从键盘输入这些学生的信息,要求打印出三门课总平均成绩,以及最高分的学生数据(包括学号、姓名、三门课的成绩、平均成绩)。

2.N个人围成一圈,从第一个人开始按顺序报号1、2、3。凡遇到“3”者退出圈子,找出最后留在圈子中的人原来的序号。

3.某单位有n名职工参加计算机水平考试,设每个人的信息包括准考证号、姓名、年龄和成绩。单位规定30岁以下的职工必须进行考试,分数为百分制,60分为及格;30岁以上的职工进行操作考试,成绩分为A、B、C、D四个等级,C以上为及格,统计及格人数,并输出每位考试的成绩。

4.建立一个学生通讯录,要求能按所记录的通信人姓名(英文)、学号分别进行排序,最后输出排序后的通讯录。

三.实验步骤

1.第一题程序及运行结果: #include #define N 10 struct student {

char num[6]; char name[20]; float score[3];

float avr; }stu[N]; int main() {

int i,j,maxi;

float sum,max,average; for(i=0;i

printf(\ printf(\

scanf(\ printf(\

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

printf(\

1

scanf(\ } }

average=0; max=0; maxi=0;

for(i=0;i

sum=0;

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

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

max=sum; maxi=i; } }

average/=N;

printf(\ No. name score1 score2 score3 average\\n\ for(i=0;i

printf(\ printf(\ printf(\ %9.2f\ printf(\ %9.2f\ printf(\ %8.2f\\n\ }

printf(\

printf(\ printf(\ stu[maxi].score[1],stu[maxi].score[2],stu[maxi].avr); }

2.第二题程序及运行结果: #include int main() {

int i; int k; int m; int n; int *p;

int num[50];

printf(\ scanf(\ p=num;

for(i=0;i

*(p+i)=i+1; } i=0; k=0; m=0;

while(m

2