《C++语言程序设计》习题参考答案广西电大责任教师张统文编1《C++语言程序设计》习题参考答案广西电大责任教师张统文编教材名称:C++语言程序设计主编:李宁出版社:中央广播电视大学出版社版本:2000年7月第1版第一章C++语言概述自测题P21.1-1CP81.2-1形式参数表1.2-2main1.2-3;1.2-4}1.2-5main1.2-6显示器输出流1.2-7键盘输入流1.2-8头文件1.2-9intf();1.2-101241.2-11×1.2-12×1.2-13√1.2-14√1.2-15×1.2-16√1.2-17ABCFG1.2-18D1.2-19DP111.3-1OBJ1.3-2source.cpp习题一(P12)1-11.C2.类型修饰符3.main4.语句以分号(;)结束5.{6.7.8..h9.source.obj10.Main11.char*Hi(constchar*);12.331-21.√2.√3.×4.×5.√6.×7.√8.×1-31.ABFI2.D3.ABCD4.B1-4#includeiostream.hvoidmain(){cout”C++语言程序设计”endl;}1-5#includeiostream.hvoidmain(){inti,j,k;cout”请输入3个整数:”;《C++语言程序设计》习题参考答案广西电大责任教师张统文编2cinijk;coutendli”+”j”+”k”=”i+j+kendl;}第二章基本数据类型与表达式自测题P152.1-1常量变量2.1-2存储格式所能实施的操作P182.2-1√2.2-2×2.2-38(常量123456789123L超过了长整型表示的2.2-4C2.2-5longx=0L;范围,VC++自动默认为双精度型数据)2.2-6110P212.3-162.3-2162.3-3“C:\\TOOL\\ARJ.EXE”2.3-4‘D’682.3-5‘a’+c-‘A’c2.3-6“Areyouready?”2.3-7131P232.4-1enumFANCY{DOG,CAT=3,COCK=5,MOUSE,SANKE,GOAT=11,HORSE};2.4-2Sattoday-1(说明:VC++不支持枚举数据进行算术运算)2.4-3(本题有错,因为C++输入流不支持枚举数据的输入)P252.5-1543.213.27863e+22.5-23.3333333.3333333P262.6-1CP342.7-1表达式的值变量i的值(6)(6)(0)(0)(11)(11)(9)(9)(8)(8)(-11)(-11)(2)(2)(10)(10)(2)(2)(251)(251)(327)(327)(135)(135)(72)(72)(41)(41)(0)(0)(10)(10)(3)(3)(说明:上机结果为22)(321)(320)(257)(257)(40)(74)2.7-262812.7-37252.7-4342.7-5662.7-63142.7-7592.7-8f=++p;2.7-9f=p--;2.7-10CD2.7-11EHI2.7-12a*a+2*a*b+b*b2.7-13c*c*sin(A)*sin(B)/(2*sin(A+b))2.7-143234.0‘D’《C++语言程序设计》习题参考答案广西电大责任教师张统文编3P412.8-1xy+32.8-2x!=3&&x=-32.8-3B2.8-4C2.8-5BC2.8-6AD2.8-7D2.8-8C2.8-9A2.8-10CD2.8-11D2.8-12B2.8-13!isMaleAge=55Age=50&&isMaleAge20||!isMaleP432.9-1typedefunsignedcharAGE;P452.10-1ABCGI2.10-2y=x?0:12.10-3CDG2.10-4赋值、复合赋值、++、--2.10-5后增1和后减1习题二(P47)2-1表达式的值变量i的值(17)(17)(-9)(-9)(5)(5)(1)(1)(11)(11)(2)(2)(说明:题目印刷错,把I改为i)(32)(32)(13)(13)(7)(7)(251)(250)(说明:题目印刷错,把b=251改为i=251)(325)(325)(201)(201)(2)(2)(0)(0)(10)(10)(105)(105)(50)(50)(231)(230)(626)(626)(25)(38)2-21.y=(x100?100:0);2.73.174.D:MyDir\MyFile.Dat5.‘C’‘F’6.48+n‘U’或char(48+n)‘U’或n+’0’‘U’7.JunthisMonth+1(说明:VC++不支持枚举数据参加算术运算,此例无法编译)8.(说明:题目有错,cinm;编译出错,C++不支持枚举数据输入)9.12.34569.87653e310.3.666674.0411.–5745.0‘G’12.9213.What’syourname?14.7715.244316.74317.3118.61019.3720.5221.f=++p+5;22.f=p---5;23.x+y=324.x3&&x=-525.a*a*a+3*a*a*a*b+3*a*b*b+b*b*b26.1.0/2*a*sqrt((b+2*c)/5)《C++语言程序设计》习题参考答案广西电大责任教师张统文编427.IsMaleAge30Age45&&!IsMaleAge=50||IsMale2-32-41.B2.A3.AB4.B5.A6.ABCD7.CEFHI8.CEFGHJ9.C10.C11.A12.AB13.C2-5//P50习题2-5#includeiostream.h#includemath.hvoidmain(){doublea,r;coutendl请输入正五边形的边长:;cina;r=1.0/2*a*sqrt((10+2*sqrt(5))/5);coutendl正五边形外接圆的半径:rendl;}2-6//P50习题2-6#includeiostream.h#includemath.hvoidmain(){doublea,b,c,area,s;coutendl请输入三角形的三条边的长度:;cinabc;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));coutendl三角形的面积:areaendl;}《C++语言程序设计》习题参考答案广西电大责任教师张统文编52-7//P50习题2-7#includeiostream.h#includemath.hvoidmain(){doublex1,y1,z1,x2,y2,z2,d;coutendl请输入空间第一个点的座标:;cinx1y1z1;coutendl请输入空间第二个点的座标:;cinx2y2z2;d=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1));coutendl两点间的距离:dendl;}第三章C++程序的流程控制自测题P523.1-1顺序条件分支循环只有一个入口和一个出口P653.2-1false3.2-2AB3.2-3B3.2-4t=x;x=y;y=t;3.2-5if(!OK)y=1;elseif(READY)y=-1;elsey=0;3.2-6123n-13.2-7XYZ3.2-8if(k==1||k==2||k==3)cout”A”;elseif(k==4||k==5)cout”B”;elsecout”C”;或if(k=1&&k=3)cout”A”;elseif(k=4&&k=5)cout”B”;elsecout”C”;3.2-9switch(x){case0:case1:case2:cout”X”;break;case20:case21:case22:cout”Y”;break;default:cout”C”;break;};3.2-10ABD3.2-11AD3.2-12BC3.2-13BCDP783.3-1283.3-2213.3-3for(inti=10;i100;i++)cout”P”;3.3-41173.3-5i=0;while(i10){couti;i++;}3.3-6for(i=20;i0;i--)couti;习题三(P82)3-11.yz或zy2.true3.A4.A5.x+=y;y=x-y;x-=y;6.y=OK?(READY?-1:0):1;7.ABC8.XYZ9.ABC10.22《C++语言程序设计》习题参考答案广西电大责任教师张统文编611.2312.for(inti=100;i;i--)cout’P’;13.4614.if(k==1||k==2)cout’A’;elseif(k==3||k==4||k==5)cout’B’;elsecout’C’;或if(k=1&&k=2)cout’A’;elseif(k=3&&k=5)cout’B’;elsecout’C’;15.switch(x){case1:case2:case3:cout’X’;break;case19:case20:case21:case22:cout’Y’;break;default:cout’Z’;break;}16.133-21.ABC2.ABD3.C4.ACD3-3//P84习题3-3#includeiostream.hvoidmain(){intweekday;coutendl今天星期几?;cinweekday;if(weekday==0)coutSundayendl;elseif(weekday==1)coutMondayendl;elseif(weekday==2)coutTuesdayendl;elseif(weekday==3)coutWednesdayendl;elseif(weekday==4)coutThursdayendl;elseif(weekday==5)coutFridayendl;elseif(weekday==6)coutSaturdayendl;elsecout表示星期几的数必须在0--6之间!endl;}《C++语言程序设计》习题参考答案广西电大责任教师张统文编73-4//P84习题3-4#includeiostream.hvoidmain(){inta,b,c,d,max;cout请输入4个整数:;cinabcd;max=a;if(maxb)max=b;if(maxc)max=c;if(maxd)max=d;coutendl;cout最大的数是:maxendl;}3-5//P84习题3-5#includeiostream.hvoidmain(){inta,b,c,d,temp;cout请输入4个整数:;cinabcd;cout排序前:a''b''c''dendl;//求最小数存入aif(ab){temp=a;a=b;b=temp;}if(ac){temp=a;a=c;c=temp;}if(ad){temp=a;a=d;d=temp;}//求第二小数存入bif(bc){temp=b;b=c;c=temp;}if(bd){temp=b;b=d;d=temp;}//求第三小的数存入cif(cd){temp=c;c=