资源描述:
《c语言结构体实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《C语言程序设计》实验指导及报告书2014/2015学年第2学期姓名:苗倩倩____________学号:__090313135____________班级:___0903131___________指导教师:__黄瑜岳____________计算机科学与工程学院2009实验七结构体一、实验目的1.通过实验了解结构体的基本概念。2.掌握结构体类型的定义、结构体变量的定义和使用。3.掌握结构体变量的初始化。二、预习内容1.在学生登记表中,姓名为字符型;学号为字符型;年龄为整型;性别为字符型;成绩为整型。如何定义学生的结构?struct
2、student{charname[20];charnum[20];intage;charsex;intscore;};2.结构体变量如何初始化?1,可以在定义时进行初始化赋值;structstu{charname[20];charnum[20];intage;charsex;intscore;}a={”Miao”,”01”,20,’m’,90};不能再结构体内赋初值。3.结构体变量如何引用?如何给结构变量赋值?structstu{charname[20];charnum[20];intage;charsex;intscore;}st
3、u1,stu2;三、实验内容1.分析下列程序#include"stdio.h"#include"string.h"structstudent{longnum;charname[8];floatscore;}stu1,stu2;main(){inti,j;stu1.num=303111;strcpy(stu1.name,"zhang");stu1.score=88.5;stu2=stu1;printf("%ld,%s,%.2f",stu2.num,stu2.name,stu2.score);}要求:输入程序,并调试运行,写出程序运行结
4、果。程序功能输出学生2的信息运行结果303111,zhang,88.502.找出以下程序的错误,并改正。#includemain(){structstudent{intnum;charname[10];charsex;stuctstu,*p;}structstudentstu,*p;student.name=120;stu.name=”Lily”;scanf(“%s”,stu.name);scanf(“%c”,stu.sex);p=&stu.sex;p=stu.name;p=stu;}问:该程序错误的地方有哪些?如
5、何改正?改:1.结构体定义完要加分号。2.结构体定义时只能跟一个结构体名(stuctstu,*p;)3.应该是结构体变量名.成员名(student.name=120;)4.scanf里面要加&3.程序设计(1)定义一个结构体变量(包括年月日),计算该日是本年中的第几天?注意闰年问题。#includestructdata{intyear;intmonth;intday;};voidmain(){structdatadate;printf("请输入年,月,日:");scanf("%d,%d,%d",&date.year
6、,&date.month,&date.day);inti,t=0;intrun[13]={0,31,29,31,30,31,31,31,31,30,31,30,31};intping[13]={0,31,28,31,30,31,31,31,31,30,31,30,31};if((date.year%400==0)
7、
8、(date.year%100!=0&&date.year%4==0))for(i=0;i9、];t=t+date.day;printf("%d",t);}(2)写一个函数days,实现上面的计算,由主函数将年、月、日传递给days函数,计算后将日子数传回主函数输出。#includeintdays(intyear,intmonth,intday){inti,t=0;intrun[13]={0,31,29,31,30,31,31,31,31,30,31,30,31};intping[13]={0,31,28,31,30,31,31,31,31,30,31,30,31};if((year%400==0)
10、
11、(y
12、ear%100!=0&&year%4==0))for(i=1;i