实验13结构体的定义、引用与赋初值(精)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验13 结构体的定义、引用与赋初值
一、实验目的
1.掌握结构体类型和结构体类型变量的定义方法。
2.掌握结构体类型变量成赋值员赋值和引用方法。
3.学会使用结构体数组。
二、实验要求
1.通过阅读和编写程序,掌握结构体类型和结构体类型变量的定义方法。
2.通过阅读和编写程序,掌握结构体类型变量成赋值员赋值和引用方法。
3.通过阅读和编写程序,学会使用结构体数组,以及用结构体类型变量作为函数参数。
三、实验内容
1.阅读程序,指出程序的功能,并写出运行结果。
main ()
{
struct people
{
char name[11];
int age;
};
int i ,j;
struct people pe[10];
for ( i=1 ; i<=10; i++ )
{
printf ( “ %s %d” ,pe[i] , &pe[i].age );
scanf ( “ %s %d” ,pe[i] , pe[i].age );
}
printf (“ Enter a number in range 1----10\n” );
scanf (“ %d ” , &j);
printf (“ The %dth person : %s , %d \n ” , j, pe[j].name ,pe[j].age );
}
问:
(1)本程序的功能是什么?
(2)请自己设计一组数据并输入,写出输出结果。
2 . 设有10个学生,每个学生包括学号、姓名、三门课的成绩。求每个学生的总成绩并输出总分为最高的学生的各门课的成绩及总分。
struct student
{
int num;
char name [10] ;
int score [3];
int total ;
}s [10];
main ()
{
int i, j, k, sum;
k=0;
for ( i=0;i<10; i++)
{
sum=0;
scanf ( “ %d %s”, &s[i].num , s[i].name );
for ( j=0;j<3; j++)
{
scanf ( “ %d ”, );
;
}
s[i].total = sum ;
if ( s[i] .total > s[k].total )
;
}
printf ( “成绩最好的学生是: ” );
printf ( “ %s, %d , %d, %d, %d \n ” ) ;
请仔细阅读程序完成下列练习。
(1)填空完善程序。
(2)运行程序时,数据输入的格式是什么(举例说明)?
(3)若要再定义一个变量MAX保存总分最高的学生信息,则MAX的定义语句是什么?其位置一般应在哪里?
(4)试定义一个函数disp(),通过参数传递来显示学生的所有信息。
(5)在main()函数中调用disp(),显示总分最高的学生信息。
(6)程序通过上述修改后,结构体类型struct student 的定义放在在main()函数中,可能会出现什么问题?
四、实验思考题
1.使用结构体类型数组编写一个程序用来输入并显示教师的基本情况信息。教师的基本情况信息包括:姓名、性别、出生年月日、住址、电话、月收入。要求使用嵌套的结构体类型表示出生年月日,模拟输如下列两个教师的信息,并按下列格式输出在屏幕上。
姓名性别出生日期住址电话月收入
1. 李四女1965年5月8日莲花小区6号7432156 1200.00
2. 王五男1972年8月9日和平里12号8654367 950.00
2. 建立50 名学生信息登记表,其中包括学号、姓名、性别、住址及5门课程的成绩。程序要求完成如下功能:
(1)输入50 名学生的数据。
(2)显示每个学生5门课程中的最高分和最低分。
(3)显示50 名学生中每门课程中不及格的人数。
(4)检索学号为num的学生的5 门课程成绩,其中num 由键盘输入。