资源描述:
《结构体练习题.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、结构体练习题:第1题:计算日期的差值(1)编写一函数,计算两个日期之间的时间差,并将其值返回。日期以年、月、日表示。“时间差”以天数表示。注意考虑日期之间的闰年。函数的输入参数为日期1和日期2,函数的返回值为时间差,单位为天数。(2)编写一程序,在主函数中输入两个日期,调用上述函数计算两个日期之间的时间差,并将结果输出。为了计算简便,假设用户输入的日期1总是早于日期2。参考代码:#includestructdate{intyear;intmonth;intday;};intisLeap(intyear);intdif(structdatea,struc
2、tdateb);voidmain(){structdatea,b;printf("请输入日期1(空格分隔,年月日):");scanf("%d%d%d",&a.year,&a.month,&a.day);printf("请输入日期2(空格分隔,年月日,晚于日期1):");scanf("%d%d%d",&b.year,&b.month,&b.day);printf("相差天数为:");printf("%d天",dif(a,b));}intisLeap(intyear)//判断一个年份是否是闰年的函数{if(year%400==0
3、
4、(year%4==0&&yea
5、r%100!=0))return1;elsereturn0;}intdif(structdatea,structdateb){inti;longday=0,day1=0,day2=0;intd[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};//day变量为年份a到年份b前一年的年份总天数for(i=a.year;i6、的年内总天数for(i=1;i7、rint(),输出全体记录信息;c)编写函数search(),检索一个指定的学生信息并返回,由主函数打印到屏幕上;d)说明,访问结构的时候,什么时候应该用运算符“.”,什么时候应该用运算符“->”。(运算符前是结构体变量时用“.”,是指向结构体变量的指针时用“->”)参考代码:#include#include#defineN3//增加程序的可扩展性structstudent{charname[20];charnum[15];charplace[20];charid[20];intage;charaddress[100];charse
8、x;charphone[15];}stu[N];voidinput(structstudentstu[]);voidprint(structstudentstu[]);voidsearch(structstudentstu[],charname[]);voidmain(){charname[20];input(stu);print(stu);printf("请输入想要查找的学生姓名:");scanf("%s",name);search(stu,name);}voidinput(structstudentstu[]){for(inti=0;i9、f("请输入第%d个学生的信息:",i+1);printf("姓名:");scanf("%s",stu[i].name);printf("学号:");scanf("%s",stu[i].num);printf("籍贯:");scanf("%s",stu[i].place);printf("身份证号:");scanf("%s",stu[i].id);printf("年龄:");scanf("%d",&stu[i].age);printf("家庭住址:");scanf("%s",stu[i].address);fflush(stdin);