C语言程序设计的试题及答案.docx

上传人:田海滨 文档编号:429870 上传时间:2025-07-20 格式:DOCX 页数:8 大小:47.89KB
下载 相关 举报
C语言程序设计的试题及答案.docx_第1页
第1页 / 共8页
C语言程序设计的试题及答案.docx_第2页
第2页 / 共8页
C语言程序设计的试题及答案.docx_第3页
第3页 / 共8页
C语言程序设计的试题及答案.docx_第4页
第4页 / 共8页
C语言程序设计的试题及答案.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、charnum111;charname11;f1.oatscore(3;f1.oataverage;);intmain()structudjypesiu=“200601JWang二80.0,85.0.70叫:stu.avc11ge=rti=0jarca=PPp-rp-11p11ntf(,arca=%.3n.p-arva);return0;5.#inc1.udcstructint_char(inti;charch;);intmain()structint_charx=9,N;printf(*t%5cn,x.i+20,x.ch-2);return0;6.#inc1.udcintInain0stru

2、ctdataintm;intn;union(inty;imz;da;structdataintdata;intdata.m=3;intdata.n=6;in(da(a.da.y=intda(a.n+inidata.n;i11da(a.da.z=intda(a.m-intdata.n;pri11tf(*%5d%5dn,intdata.da.yjntda1.a.da.z):return0:7.Winu1.udeintnain()(inti:oatsun-average=0;(intnum:charnanc(10;intscorc(2:f1.oataverage;:structstudentstru

3、ctstudentda(a2)=1.Mzhangsan60.70h(2.M1.isi89.90|);fdrti=0;i2:i+)datai.average=(data(i.score(0datai.score1.JV2.0;sun-average=sun-average+data(i.average:juim_average=sum_averageZ2:fbr(i=0;idatai).ave11gc)prin!f(*%5d%10s%5.2.datai.nun.da1.a(i.namc,da1.a(i.average);rc1.urn0:8.Minc1.udestructint_dataintd

4、1.,d2;);intmain()structint.datadata2=(2,3,5,6);inti;intsm=10;for(i=0i2i+)scanf(%d.datai.dI.dataiJ.d2);sum=datai.dIdatai.d2sum;printf(sum=%d)w3um);return0;输入:203040509.#iw1.udein(main()unionexastruct(inta;intb;out;intc;intd;e;c.out.a=10;c.out.b);return0;e.out,b=20;e.c=2:c.d=5;Primfr%d,%d11,c.out.a,10

5、 #inc1.udcstructstinta;intb;unionintc;intf;)c;intmain()(structsty;y.a=10;y,c,e=20;y.c.f=y.a;y,b=y.c.e;printf(M%d,%dn*y.c.ey,c.f);return0;)11.#inc1.udestructsia(inta:charb;):structstb(inta:charb:structMac:;i11(nain()strc(stby;y.a=i:y.b=X:y.c.a=y.a5*2:y.c.b=y.b-:Prin1.fr%d.%cW.y.CayCb):return0;)12. W

6、inc1.udeunionst(inta2:intb(2:intc;):intmain()unionsiy;y.a(0=10:y.c=30;return0:y.b1.1=20;printf(w%d,%dnwy.a(O,y.a(1);13. ffinc1.udestruct1.wo(intn;charch;:voidmain()struct(woexI三(5,V);rintR%d,%cn*exI.n+I0.ex1.ch-1):J14. Winc1.udestructIwo(intn;charch:;voidfunc(s1.ructIWoeX2);voidmain()structtwoex1.=u

7、ts.ins.x.ou1.s.ins.y):17.#inc1.udcstructabcinta,b,c;);intmain()structabes2=123,4J,6;intt;t=s(0.as1J.c;printf(wt=%dn,);returnO;18.inc1.udestructst(intx.y;Jdaia(2=1.10.2.20);intmain()structStttP=data;Prin1.f(%dnpy);printf(%dn,(+p)-x);retmO:)19.ffinc1.udestructn(inix:charc:voidfundstructnb)b.x=20;b.c=,

8、y,:)intmain()structna=1().,x*;func(八);Prin1.f(%d.%c”.a.x,a.c);returnO:)20. inc1.udeintnain()(structEXAMP1.Estructintx:inty;in:inia:intb:Je:e.a=1;c.b=2;c.in.x=c.a*c.b;c,in.y=c.a+c.b;Prifnf1.(%d”,c.in.x,c.in.y);return0;解答:1.162.A2.average=78,333.324.area=78,55.296.7.-33x1Zhangsan65.008. sum=1509. 5,20

9、10.IOJO11.20.X12.30,2013.1514.6.v15.3.316.15.717.t=718.10219.0.x20.2.3三.补充程序1.该程序完成的功能是从屏窑上输入日期(年、月、H),计算其为该年的第几天。/inc1.udestruc(daieiype(iniyear:intmonth:iniday:inimain()intdays=0j;structdatejvpedate:intnon.day112J=(31.28.31,3031,0.313130.31J0.31);Prin1.fr清输入日期(年月日An)scanfCt%d%d%d,);fr(i=IJ=3)print

10、f(所输入日期是该年第d天.);return0;)2.该程序完成的功能是从屏群上输入口期(年、月、日),计算其为该年的第几天。inc1.udestructdatejye(intyear:inimonth;in(day:):intmain()inidays=O.i:ininun.day112=(3128.31,3031.30,3131.30.31,30311:PrinIf(请输入日期(年月日)nw);scanty%d%d%dN,&date.ycan&date.inonth9&hte.n-dayi-1.+days:days=days+date.day:if(date,year%4=三=0Ada1.

11、e.year%100!=0|da1.e.yearn400=0)&)days=days+1.;printf(所输入H期是该年第d天W.);return0;3.该加了完成的功能是从群幕卜.输入日期(年、小Ib.计比其为该年的笫儿&inc1.udestructdate_type(intyear:intmonth;intday;):intmain()inidays=0.i;structdate-typedate:intmon.day112J=131,283130,31.30.31,31303130.31):Prin1.fc右输入日期(月日)A):scanf(H%d%d%d,);for(i=I;u+)d

12、ays=moo_dayi1+days;days=days+dae.day:if(date.ye4iro4=0&da1.e.year%I(X)!=O)&date.inon1.h=3)days=days+1;printf(w所输入日期是该年第d大,);return0;)4.该程序实现从键盘输入1名职工的信息:职工号、姓名、月工资,由prim函数完成这名职工信息的输出,inc1.udestructCmP1.oycJIyPecharnun20;charnane20;oapay:;voidPrint(StnIC1.emp1.oyeeJypeenp1.):in(nain()structCmPIOyxypc

13、cmp:PrintfV请输入职匚信息(职工号姓立月工资W):SCann,%s%s%.):print():return0;voidprint()IPrirnf(*职工号姓名月工资*w):primf(,%8s%8s%IO.2n-):)5.该程序完成从键盘输入10名学生信息(学号、姓名、成绩).用一个排序函数sort完成按学生成绩降序排列,并输出学生成绩排行卷。inc1.ude#e11OJ;intnum;f1.oatscore;voidsort(structs(ud_typestuhi11n);incmain()inii;structstudtypestuN;PrimfrP1.easeinput%d

14、studentsnamenumscoren*.N);fbr(i=OUsort(stu.N):rinf(,Tesortis:n):for(i=OJdefineN10struc(stud-(ype(charnanw(10;intnum:11oatscore:voidsort(structS1.udiyPCstu.intn);intmain()inii:structStudtypcstu(N;PnntnP1.easeinput%dstudentsnamenumscorcn*,N);fbr(i=O;i10. inti,k,j;structStudJypc(;for(i=0;i#icfincN10str

15、uctStuc1.JypccharnamcIO);intnum;oatscore;voidSOrtiStrUCIs(ud_typestuhE1.n);intmain()jinti;printftP1.easeinput%dstudentsnamenumscorcn.N);for(i=0j;if(k!=i)r(i=Oiint11ain()(enumWCCkjyPCmtm=1.tue.wed.1.hu.iri.stau11workday;inti:doPrin1.f(P1.easeinputintcgcrtcnd:-!)n);scanf(%d,);workday=()i;switch()cases

16、un:PrintfrSundayn);break;casemorintf(Mondayn):break:casetue:printf(Tuesdayn):break;casewed:printf(Wednesdayn):break;casethurintf(Thursdayn);break:caseiri:prin1.f(Fridayn):break;caseS1.arprintf(Saturdayn);break;defau1.t:PrinIfr1.nPUterrrn);break:case-kprintf(Gix1.bye!n);)whi1.c();return0;解.答:1.&date.

17、year.&diite.month.&datc.daydays=no11-dayi-1+daysdays=days+idays2.structdatc-typcdatei=3days3.&date.year.&date.HKnth.&i1.atc.dayi7.structstud-typcstuNstructs(ud_typcstu.intnk=ik=j8.stui.rwmc,Astui.num,&stui.scorestructStUdJyPCstu,intnstructstud_typetk!=i9.structSUKuyPestu(Nstui.nametui.nm,stuij.score

18、k=jstuk=t10.&ienumweekjypeworkdayi!=-1.四.改错咫解答:五.编程一解答:六.编程二解答:第九章指针一.埴空I.假定在维数组b10中,元素b5J的指针为p,则p+4所指向的元素为。2.指针变域是一种专门存放的变成。3.函数中的形参和调用时的实参都是变量时,传递方式为值传递;形参和实参都是数组名时,传递方式为-4.设有数组a10;则数组元素a3的地址可以写成,5.定义intbIO;若元/b5的指针为p1.元素b9)的指针为p2.则p2-p1.的值为。6.ini*p,a;则语句P=&a;中的运算符&是符叽7.设iniaH=O.I23.456.789).*p=a,

19、则1+4=。8.定义in(a(10J=(11.12,13,14,15,*p=a(5J;假设&a|0和&a(1.的值分别是2000和2002,则P的值是.9.对变俄的访问方式有直接访问和间接访问两种。其中,将变以a的地址存放在另外一个变fitP中,访问时先从P中取出变na的地址,再按照a的地址访问a的值,该方式称为访问.10.int-p的含义是.11.定义in1.a10=1.1./23.141.*p=&a5):则表达式af1.+*p的值是,12.定义inia1.=1,357.9.11.13,15.1Z19).*p=a:执行语句Prin1.f(%dp+7):输出结果是。13.定义intm=5.n=

20、9,t.*=m*q=n:用,执行语句t=*p:*p=*q;*q=t:此时In的值是14.己知inta(5=(2,3.4.5,6Jjint*p=a+2:则表达式*p*a3的值是,15.假定在一维数组ajray10j.元素aray5J的指针为p.则p-4所指向的元索为(.16.数组名代表的是.17.若ima3U3=1,2,3,456,7,8.9);则1.(a+2)+1)的值是.18.若inia)3)=1.2.3.456.7.8.9):则*(*a+1.)的值是.19.若有inta3=(10.12.30hP|iJa+1是数组元索的地址。20.函数调用时参数有值传递和传递两种参数传递方式。解答:1.b9

21、2.地址3.地址传通4.&a(3J或a+35.46.取地址7.48.20109.间接10.定义指针变1.p,p指向整型变层,II.1112.813.914.2015.aay1.16,数组元索的首地址17.818.219.a1.20.地址二.阅读程序写结果I.#inc1.udcintmain()inti=0,a(5=(11,1.2,13,*q:for(q=a;qvoidfun(int*p);intmain()inta51=3.该程序实现输入两个整数,按先小后大的顺序输出,调用函数实现交就位比/inc1.udevoidswap();intmain()(intx.y;Printf(“请输入两个数(空

22、格分隔):);scanf(%d%d-)iif(xy)swap();printf(%4d%4dn,x,y);returnO;voidswap(intp1.,intp2);p=*p1.;*p1.=*p2;*p2=p;4该程序实现输入两个或数,按先小后大的顺序输出,调用函数实现交换位置.*inc1.1.cvoidswap();intmain()intx,y;Printf(请输入两个数(空格分隔):);scanf(%d%d.&x.&y);if()swap(&x.&y):printf(%4d%4dn,);returnO;)voidswap(int*p1.,int*p2)intp;*p1=*p2;*p2=

23、p;J5.该程序实现输入两个整数,按先小后大的顺序输出,网用函数实现交座位良”#inc1.udcvoidswap(int,inty);intmain()(intx,y;PrinIf(请输入两个c.int*d)(a=30;b=40;*c=a+b;1*d=*d-a:)voidain()inta=10.b=20.c=30.d=40:f(a.b.&c,&d):PrinIf(-%d.%d.%d.%ab,c.d):7.Winc1.udevoidas(int*cp.int*dp)intx=4.y=3;*cp=+x+y;*dp=xy;voidmain()(intc.d;ast(&c,&d);printf(%d

24、n%dn.c.d);8.#inc1.udevoidI1.IainO(charsJ=ABCD,*p:for(=s+1.tpvoidnain()(char*=1.amastudent.:p=p+3;printfV%s,p);10.inc1.udevoidmain)(char*p=Thisisaprograne.;p=p+10:pri11tf(.p);11.秒inc1.udevoidadd(int*p.intn)(int*pe11d=p+n:fOrf;p12. SincIiKicinif(intx,int*y);voidmain()inta,b,c;a=3;b=5;c=f(a.b);printf(%

25、d,%ddn.a.b,c);intf(intx.int*y)inta=2;x=x+a;*y=x+a;rctum(八);13.#i1.u1.evoidfun(intx,int*y);intnwin()inta=2.b=3,*c=&b;fin(a.c);pri11f(a=%d.b=d.c=%dn.a.b.*c):returnO;)voidfun(intx.int,ty)in(a=4;*y=x+a;x=*ty;J14./inc1.udevoidub(intx.inty.in(*z)(*z=y-x;)intmain()in(a.b.c:sub(10.5.&a):SUb(7.a.&b);sub(a.b.

26、c):printf(%4d,%4d.%Wn,a.b.c);returnO;15. #inc1.u17.Winc1.udevoidf(i11x.int*y)(x=x%IO;*y=*y1.(Hx;intmain()(inta=88,b=99Jc;C=&b:Ra,c);printi(,%dn,a,b);returnOi)18.WinC1.Udevoidnain()chara117=Teacher,To11.Good!;char*p=aO:p=p+3:pri111.f(nn.aO.p):19.Ainc1.udcvoidmain()(chara(1171=Tcachcr,-Tom-,Good!;cha

27、r(*p)7=a;printf(%sn%s11,a(O,+p);)20.inc1.1.cvoidast(intx,inty,int4a,int*b)*a=x+y;*b=*a-y;voidmain()inta,b,c.d;a=IO;b=20;asi(a,b.&c.&d);prinif(%d,%dn.c.d);解答:I.162.3I3.03647817184.Iamacachcr.5.firsCa=3,b=2SCCOnd:a=3,b=2third:a=2,b=36.10.20,70,107.828.BCDC1.)D9.mastudent.10.programc.11.111213141512.3.

28、7,213.a=2,b=6.c=614.-5.-12.-715.1.ANG16.517.88.)718.TeacherTomCherTom19.TeacherTomTom20.30.10三,补充程序I.该程序实现输入两个整数,按先小后大的顺序输出,调用函数实现交换构.置,析Iic1.udevoidswap(int*x.int*y):intmain()(intx.y:PrinIf(清输入两个数(空格分隔):);scanf(,%d%d,&x.&y);if(xy)swap();printf(-%4d%4dW,y);returnO;voidswap(int*p1.,intp2)intp;:2.该程序实

29、现输入两个整数,按光小后大的顺序输出,调用函数实现交换位置:Sinc1.udevoidswap(int*x.int*y):intmain()(incx,y;Prin1.f(请输入两个数(空格分隔):”);scanf(%d%d.&x,&y):if()SWap(&x,&y);print1.(%4d%4d5二数(空格分隔):Xscanf(%d%d.&x.&y);if(xy)swap();printf(%4d%4in,);returnO:Jvoidswap(inttp1.inn2)printf(Yes,%s是1.u文!na);CkCPrirHfrNo,%s不是Ia1.文!W,a);return0;)1

30、0.判断一个字符串是否为回文(指1从左至右和从4i至左读都是一样的字符串)inc1.ude#defineN11intmain()inti=0.n=0;uharaN=三;charp1.,p2:PrinMr请输入小于%d位的整数:”.N-I):scanf(%s.a);for(p2=a:(*p2)!=X):p2+):p1.=a;p2=a+n-1.:for(i=I;p1.n2)printf(Yes,%s是何文M,a);e1.seprintf(No,s不是M文!n-,a);return0;)解答:1.&x,&yp=*p1.p1.=4p24p2=p2.xyx,yint*p1.,int*p2intp3.in

31、t*x,inty&x,&y&x,&yintp4.int*x,int*yxyx.yp=*p1.5.&x.&yx.y*p1.=*p2*p2=p6.p=bpbgkp1.+p2-四.改错剧解答:五.编程一解答:六.编程二解答:第十章文件一,填空解答:二,阅读程序写结果解答:三,补充程序解答:四.改播题1.下列给定程序中,函数ftn()的功能是:从字符中S中,取出所有大写字母.程序的功能是从文件中读出字符串,进行如上处理后,输出到屏幕上。注意:不要改动main函数,不得增行或副行,也不得更改程序的结构.#inc1.u=As(i=A&SIiK=Z)si=si+32;S1.iJ=tVO:Jintmain()

32、chars;FI1.EIp;gets(三):if(fp=fbpen(dontent.txtw)=NU1.1.)PrinIf(Cannotopenfi1.enPressanykeytoexit!):return1:)un(三):fputs(fp.s):printfCn):fc1.ose(f):return0:)3.程序功能说明:该程序完成从文本文件中读入10名学生信息(学号、姓名、成绩).并用格式输出显示到屏幕EWincIudeWefineN=IOstructstuexit!w);ge(inti:sruc1.Studjypes1.uN;FI1.Etfp:If(fp=fbpen(,dtudent

33、x,ww)=NU1.1.)printf(Cannotopenfi1.enPressanykeytoexit!*);getch():for(i=0zi请改E0#inc1.ude#dc!mcN10structstudent(charnamc10:intnum:intage:charaddrI5:sN:voidsave()intmain()(inti:printf(p1.caxcinputstudentinformatknzn);for(i=0j6.以下程序中有五处播读,请改正.Minc1.udcinc1.udeintmain()FI1.Efp;charch;if(fp=fopcn(,dAtcst.txtw+)=NU1.1.)printf(,CannotOPCPrcssanykeyexit!);gctch();returnI;Printf(inputa3ringA);ch=getchar();whi1.e(ch!=n)(puts(ch.fp);ch=getchar();rewind(tp);ch=fgec(f):whi1.e(ch!=EOF)(putchar(ch):ch=fgec(f):Prin1.fiCn);fc!ose(fp):returnO:J7.以F程序中有五处错误,谙谀正C#inc1.udeWinc1.udeintnain()(FI1.E*f:ch

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

宁ICP备18001539号-1