《《C语言程序设计》课后习题参考答案.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》课后习题参考答案.docx(13页珍藏版)》请在优知文库上搜索。
1、一、单项选择题14CCAB58DADC二、填空题1 .链接2 .#3 .main4 ./5 .h6 .穷举法、递归法、回溯法(贪心法、分治法)三、应用题1、#includeintmain()printf(,tt*nn,)printf(tttClanguageprogramnn);printf(tt*nn);return0;编辑C程序源代码今编译C程序,生成目标程序)链接目标程序,生成可执行文件T运行,查看结果1.B2.C3.C4.D5.A1. x=l;y=l;z=l:2. -I3. 2.24. 123535145. 12353514第3章答案:答案:答案:答案:答案:41O3YESYES一、选
2、择超1,A2、B3、A4,A5、A二、埴空题1、while,do.while,for语句2、循环体、循环表达式、循环变量3、s=74、1=85、*第5章1、选择题1.B2、B3、C4、B5、D6,C7、A8、B9、A10,二、填空题1、j=9:i=0:2、(l)temp10=0;(2)Strcpy(temp,str):3,(1)i3:aii4、(i%4)=0;(3)printf(11w);二、编程题1、includevoidmain()inti,j,a10,t;for(i=0:i10;i+)scanf(,i);for(j=lJ10J+)for(i=0iai+l)(t=ai+ljai+l=ai;
3、ai=t;for(i-0:i10:i+)printfC%5d,1ai):2、includedefineN6voidmain()(inti,j.aNjN=(O;for(i=0:iN;i+)ai0=aii=l;for(i=l;iN;i+)for(j=lJNJ+)aij=ai-lj-l+ai-lj;printf(*a06XOfcfIAfon*);for(i=0;iN;i+)(for(j=0;j=i;j+)printf(*%dt*,aij);Printf(n);)3、 includevoidmain()floatscore35,avgl-0,avg3,sum3=0);inti,j;for(i-0;i3
4、;i+)for(j=0:j5:j)PrinIf(“第%d门课,第%d个学生的成绩是:”,i,j);scanf(44%f,scoreij);)for(i=0:i3;i+)for(j=0;j5:j+)sumi+=scoreij:avgi=sumi5;for(i-0:i3:i+)(printf(“第d门课的平均成绩为%.2fn,i,avgi):avgl+=avgi;)Printf(“各科总平均成绩为2fn”,avgl3);)第6章一、选择题1,A2.C3、D4.A5.C6.A7、D8、D9、C10.B二、地空咫1、(1)m(2)m%i=0returnm2、(1)max=x(i)(j)(2)maxJZ
5、i*1、#includeintsct(intm,intn);intgcd(intm,intn);voidmain()intm,n,t;Prinlf(“请输入正整数*n:):scanf(44%d,%d,n1&n):if(mn)t=m:m=n:n=t;prinlf(%d,%d的最小公倍数为%dn”,m,n,sct(m,n);/主函数调用scl()函数)intset(intin,n)floatMax=O,Min=O;voidtnain()(floataverage(floatarray,intn):loalave,score10;inti:for(i=0:i10;i+)scanf(w%f,&scor
6、eil):ave=averae(score,10)printf(4*max-%6.2fnmin-%6.2fnaverage-%6.2fnw,Max,Min,ave);)floataverage(flwtarray,intn)(inti;floataver,sum-array0;Max=Min=array0;for(i-l:iMix)Max=arrayi:elseif(rrayi+;Mincludevoidfun(chara,char,b)(a=b;fa)+;)intmain()(charcl=A,c2=a,pl,p2;PI=&C1;p2=&c2;fun(pl,p2);printf(%cn,cl
7、,c2);return0;第8题代码Wincludeintf(int,inty)if(*x*y)returnx;elsereturny;)intmain()inta=7,b=8,p,q,r;P=&a;q=&b;r=Yp,q);Prlntfr%d,%d,%dn”,a,b,r);return0;)二、填空题(1)84(2)3S(3)04)7(5)0(6)int*(7)-1(8)sn三始程题1.用fti计方法完成,通过但私输入10个整数.按照由小到大的顺序输Hh通过械盘输入3个字符申.判断式长咬.按照从人到小的圃序输出.(1)lnclde用指针实现:由键盘输入10个整数,将他们按由小到大的顺序排列/
8、i11tmain。/”主函数/(i11ti,m,a10),p=a,k,j,t;/*定义变量*/PrIntfr输入10个数:for(i=0;i三9;i+*)scanf(%d,p+l);/输入数字,直到结束/for(i=0;iV9;+)/对输入的十个数进行排序*/(k三i;for(j=i+l;j=9;j+)if(*(pk)v”(pj)k=j;t(p+k);*(p+k)-(p*i);(p*i)-t;)for(i-0;i9;i+*)排序后输出结果/Prinm*d-(p+l);return0;TheEnd7(2)WincludeincludeMdefineN3ntmain()指针实现:通过键做输入3个字
9、符申,判断其长度,按照从大到小的班序输出(charstrN128),*s(N;char,p=NU1.1.;i11ti,k,j;Prlntf(请输入3字符申:n);for(i=0;iN;i+*)scanf(u%sstr(i);sli=strl;)for(l=O;lN-l;l+)k=i;for(j=i*l;jN;j+*)if(strcmp(sk)rsbDO)k=j;if(k!叫P-s(i;SIi)NkMk)叩:)Prlntf(排序后;n);for(i=0;iN;i*)prlntf(%sn,s(.);2.如写一个函数:亶求使用指针将数空中n个数拉逆序存故.voidinv(i11*.i11n)Ii11
10、t*p.m,(,*i.*j:m=(n-1)/2:i=x;j=x+n-l;p=x+m;fortivoidInaino(i11li.a11(10.i*p=ar11PrinIfC1怆入原数组元素:n-);for(i=0:i10;i+,p+)SCanf(%d.p);printf(-);=arr;inv(p.l);printf(逆序存放后的数组:n);fbr(p-arp:3.用指计法输入输出二维效绢等元素.includevoidmain()i11ta3)(4rptr;nti,j;Ptr=a(0);for(i=0;i3;i+)for(j=0J4J*)scanf(%d,ptr);/指针的去示方法/Ptr=a
11、(0);for(i=0;i3;i*)for。=0;j4;j+)printf(*%4d,*ptr);pri11tf();intmaths,Chinese,english,sum::voidmain()StuctstudentstuN+l:/stuO存储全班平均成绩,stui存储第i个学生的成绩inti,m_ave=0,JaVe=O,e_ave=0:Printf(“请输入各学生的姓名、数学、语文和英语成绩n);for(i=l;i=N;i+)Printf(第%d个学生:”,i);Scanf(w%s,stui.name):SCanr(,stui.math,stui.Chinese,4stui.e11iish);Stui.sum-stui.nathstui.Chinesestui.english:m_ave+=stui.oaths;c_ave+=stui.Chinese:eave+=stui.onlisth;stuj.maths=m.ave/N;stuO).chinese=c_ave/N:stu0.e11listh=e-avcN:for(i=l:iprintf(%st%dtdt%dt%dnw,stui.name,stui.maths,stui.Chinese,stui.englisth,s