资源描述:
《浙师大C语言上机实验12结构体答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、上机实验十二指针班级学号姓名一.实验目的和要求(1)掌握结构、结构数组、结构指针的定义及使用;(2)掌握简单的链表的定义及使用;(3)掌握共用体和枚举类型的定义及使用;(4)掌握文件的简单的定义、打开、写、关闭等操作。二.实验内容【实验题1】程序填空,结构类型structscore包含一名学生的3门学科成绩和个人平均成绩,要求输入某位学生的三门课程成绩,并计算其平均成绩。(1)用普通的结构变量实现#includestructscore{//定义结构类型intmath;//数学成绩intphys;//物理成绩i
2、ntchem;//化学成绩floataver;//平均成绩};voidmain(){structscores;//定义结构变量sscanf(“%d%d%d”,&s.math,&s.phys,&s.chem);//输入s的前三个成员(三科成绩)s.aver=(float)(s.math+s.phys+s.chem)/3;//计算s的平均成绩分量printf(“aver:%.2f”,s.aver);//输出s的平均成绩分量}(2)用结构指针#includestructscore{//定义结构类型intmath
3、;//数学成绩intphys;//物理成绩intchem;//化学成绩floataver;//平均成绩};voidmain(){structscores,*p;//定义结构变量s和结构指针pp=&s;//令p指向sscanf(“%d%d%d”,&p->math,&p->phys,&p->chem);//输入p的前三个分量(三科成绩)p->aver=(float)(p->math+p->phys+p->chem)/3;//计算p的平均成绩分量printf(“aver:%.2f”,p->aver);//输出p的平均成绩分量}【
4、实验题2】程序填空,定义一个关于平面点的结构类型,并定义一个含5个元素的结构数组,用于存放5个平面点;然后输入这些点的坐标值,并统计位于半径为3、以原点为圆心的圆之内的点的个数。#includestructpoint{//定义结构类型structpointdoublea;doubleb;};voidmain(){inti,num=0;structpointp[5];//定义结构数组pprintf(“Input5points:”);for(i=0;i<5;i++)scanf(“%lf%lf”,&p[i].a
5、,&p[i].b);//输入5个点的坐标for(i=0;i<5;i++)//统计位于指定圆内的点的个数if((p[i].a*p[i].a+p[i].b*p[i].b)<9)num++;printf(“num=%d”,num);}l运行程序,输入1.02.1-34.239.0-84.5-1-0.25-1.3输出num=【实验题3】程序改错,要求输入5名学生的学号、姓名和成绩,将这5名学生按成绩的降序排序后输出。#includestructstudent{//定义结构类型intnum;//学号charname
6、[20];//姓名floatscore;//成绩};voidmain(){inti,j;structstudents[5],temp;printf(“Inputinformationof5students:”);for(i=0;i<5;i++)scanf(“%d%s%f”,&s[i].num,&s[i].name,&s[i].score);/*******/for(i=4;i>0;i--)for(j=0;j
7、j+1]=temp;}printf(“Afterbubblesorted:”);//输出成绩分量for(i=0;i<5;i++)printf(“%d%s%.1f”,s[i].num,s[i].name,s[i].score);}101Mike78102Jane95103Zuma67104Suri89.5105Gwen74.5改正后,运行程序,若输入:则输出:【实验题4】建立静态链表#include#includemain(){structstu{intnum;floatscor
8、e;structstu*next;//定义结构体指针next};structstua,b,c,*head,*p;a.num=101;a.score=75.5;b.num=102;b.score=59;c.num=103;c.score=97;//填充三个单元的数据域head=