上海电力学院C语言程序设计实验十

上传人:lis****211 文档编号:102864521 上传时间:2022-06-07 格式:DOCX 页数:10 大小:287.95KB
返回 下载 相关 举报
上海电力学院C语言程序设计实验十_第1页
第1页 / 共10页
上海电力学院C语言程序设计实验十_第2页
第2页 / 共10页
上海电力学院C语言程序设计实验十_第3页
第3页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
上海电力学院实验报告课程名称C语言程序设计实验项目实验10结构体姓名学号班级专业信息安全_-laiHaiHMaBiaiBnaiaaMHHaiHHaaiBHHHaHiaHHaBHwai同组人姓名无指导教师姓名实验日期.20181.刀.14H一、实验目的(1) 掌握结构体类型变量的定义和使用;(2) 掌握结构体类型数组的概念和使用;(3) 了解共用体的概念与使用。二、实验内容和步骤1.定义一个结构体变量(包括年、月、日),计算给定日期在本年中是第几天。调试并改正程序中的错误。#includestructdtintyear;intmonth;intday;date;intmain()intdays(intyear,intmonth,intday);printf(PleaseinputY,M,Dn);scanf(%d%d%d”,&date.year,&date.month,&date.day);printf(n%d%d%dis:%ddaysn”,date.year,date.month,date.day,days(date.year,date.month,date.day);intdays(intyear,intmonth,intday)inti,day_sum=0;staticintday_tab13=0,31,28,31,30,31,30,31,31,30,31,30;for(i=0;i=3)day_sum+=1;returnday_sum;12.输入和运行以下程序,分析运行结果。#includeuniondata(inti2;floata;longb;charc4;u;intmain()(scanf(%d,%d”,&u.i0,&u.i1);printf(i0=%d,i1=%d,a=%f,b=%1d,c0=%c,c1=%c,c2=%c,c3=%c”,u.i0,u.i1,u.a,u.b,u.c0,u.c1,u.c2,u.c3);2 输入两个整数10000、20000给u.i0和u.il,分析运行结果。 然后将scanf语句改为:scanf(%ld”,&u.b);输入60000给b,分析运行结果。#includeuniondatainti2;floata;longb;charc4;u;intmain()scanf(%ld”,&u.b);printf(i0=%d,i1=%d,a=%f,b=%1d,c0=%c,c1=%c,c2=%c,c3=%c”,u.i0,u.i1,u.a,u.b,u.c0,u.c1,u.c2,u.c3);3白尊II.-11?fBw擀i|wrt如1神A、iU9i*|imaiMlGl上如EfbinF.th1H州1;C1ws.V|rFM6vw|dr在左里-A心婆MfE4内巨fBisH口出三Iz.FreT:LmS_Cal?3|c1#-Z.,E?re-iHTMrLarPiLn|iw1b|iprlvIfLtia-ld411-id.W上逸*电1-UF#jc*Bit.l|fl1.U_L1|.u.a.b.fcPi*.|.*.1.ii_C1):共用体union共有8字节长度更改前:10000占用了低4个字节,20000占用了高4个字节,int是整形,i0读取低4个字节,即10000,i1读取高4个字节,即20000,a是浮点型,读取低4个字节,有效位6位,即0.000000,b是长整型,存储方式与int相同,读取低4个字节,所以b=10000,char是字符型,c0读取最低的4位,但输入的不是单个字符,使用苗俞出会导致乱码,c1,c2,c3同理,若输出改为d则会分别读取8位输入数字对应的二进制数,并将其转成十进制。更改后:60000占用了低4个字节,int是整形,i0为60000,float为0.000000,long是长整型,值与int相同,所以b=60000,字符数组仍旧乱码。3、程序填空。(1)结构体变量案例。编程输出两个小孩的记录信息。1个男孩和1个女孩,其姓名首字母分别为“R”和“HT;男孩15岁,女孩比男孩小1岁子;男孩的成绩为75,女孩的成绩为82。#includeintmain()structchildren/*定义结构体类型*/charinitial;/*姓名首字母*/intage;/*年龄*/intgrade;/*成绩*/boy,girl;boy.initial=R;girl.initial=H;boy.age=15;4girl.age=boy.age-1;girl.grade=82;boy.grade=75;printf(boy:%cis%dyearsoldandgotagradeof%dn”,boy.initial,boy.age,boy.grade);printf(girl:%cis%dyearsoldandgotagradeof%dn,girl.initial=H,girl.age=boy.age-1,girl.grade=82);return0;C.ienv=trror”,4*-U-1l|S(AvLdfl侦kb|nwiiaoWWnd&w1utfii.esft1*Fv|Iblab-ilEl二m皂b1!云通为!H金In”IrueIElij44rMn1Sat,也SLuifrdUri1*mu,miwnprlnftlCBDy:!IsUiMMt.litltl1Rbv.dfpEtMy.fkjui*:1HVaakawfeifrw*tri*l-11(|lr|1d*jidjulhdi14Z1*4XTFuJiHlejLX.findinG1IW用Mm(2)结构体数组案例设有三个候选人,Zhang,Wang和Li,设有10个人参加投票,每次输入一个得票的候选人的名字,要求最后输出各候选人的得票结果,请设计程序对候选人的得票数进行统计。#include#includestructperson/*候选人信息结构体,这是一个全局的结构体数组*/charname20;/*姓名*/intcount;/*得票数*/stu3=Zhang”,0,Wang”,0,Li”,0;intmain()inti,j;charleader_name20;for(i=1;i=10;i+)/*设有10个人参加投票*/scanf(%s”,leader_name);/*输入得票人姓名*/for(j=0;j3;j+)if(strcmp(leader_name,stuj.name)=0)5stuj.count+;printf(n);for(i=0;i3;i+)printf(%5s:%dn”,stui.name,stui.count);return0;(3)指向结构体的指针案例。每个学生包括学号、姓名和成绩数据,要求找出成绩最高者的姓名和成绩。(设有4个学生)。#includeintmain()structstudentintnum;charname20;floatscore;stu4,*p;inti,temp=0;floatmax;for(i=0;i4;i+)scanf(%d%s%f,&stui.num,&stui.name,&stui.score);max=stu0.score;for(i=1;imax)6max=stui.score;temp=i;p=stu+temp;printf(nThemaxscore:n);printf(No.:%dnname:%snscore:%4.1fn”,p-num,p-name,p-score);return0;K-Qm.i-.k怦of-。胃客*(4)结构体数组中存放有3个人的姓名和年龄,以下程序可以输出其中最年长者的姓名和年龄。unf_nu上5叫1p.上日J-w);回总u口JlUBigLiikiiheIudwfdin.IiLbviwlnf)1ErucfLaJt福呷4fllJitAJN4倾。出lik-stw*trpvi;prlfvtfiHd.;Idnnaw-;Ifa|k-*191,.-Hmhtrp-siefe;Hvtmft#includestructmancharname20;intage;person=Lifeng”,20,Yangfan”,21,Sunping”,18;intmain()inti,k;k=0;for(i=1;ipersonk.age)k=i;printf(%sn%dn”,personk.name,personk.age);7return0;4、编写程序,然后上机调试运行。(1)学生记录由学号、姓名、成绩组成,幕上。使用结构体数组,将下列学生的数据按成绩从高到低排序后显示到屏#includevoidmain()structstudentintnum;charname20;floatscore;stu5,temp;inti,j,N=5;for(i=0;i5;i+)scanf(%d%s%f,&stui.num,&stui.name,&stui.score);for(i=0;iN-1;i+)for(j=0;jstuj+1.score)temp=stuj+1;8stuj+1=stuj;stuj=temp;for(i=0;ialdbVaifitUli.BHIIl.tltl.UMi,itetaIJ:IPIMuJ机虹HVJ*It*rrp,Jxh*014IWhy:Fir|a.F|LiI_Fmd顼用|,打&L廿山#宾C7(2)学生记录由学号、姓名、成绩组成,保存在文本文件中,将下列学生中不及格学生的姓名显示出来,并保存到另一个二进制文件中。#include#includestructstudentintnum;charname100;intscore;9students5;intmain()(inti;FILE*fo,*fi;fo=fopen(disqualified.txt”,wb”);fi=fopen(student.txt,r);for(i=0;i5;i+)fscanf(fi,%d%s%d,&studentsi.num,&studentsi.name,&studentsi.score);for(i=0;i5;i+)if(studentsi.score60)printf(%s,不及格n,studentsi.name),fprintf(fo,%d%s%dn,studentsi.num,studentsi.name,studentsi.score);return0;10三、实验总结将程序编写和测试过程中出现的各种问题(需要的话可以截图)、解决方法详细总结在这部分。四、实验报告要求1、根据实验内容中各个不同实验的要求写出测试数据和调试结果(要求采用截图的方式给出程序运行结果)。2、编写相应的程序,写出完整的程序代码,包括注释,注意书写的层次结构。3、整理上机步骤,总结经验和体会。4、上交的实验报告分两种形式:打印稿由部分同学上交,电子稿全部提交,电子稿的命名方法统一采用形式:8位学号姓名.doc以及所有的源代码文件11
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!