面向对象的程序设计语言——C第二版陈志泊 主编 王春玲 孟伟编着 第2到7章课后编程题答案.doc

上传人:本田雅阁 文档编号:2414715 上传时间:2019-03-26 格式:DOC 页数:34 大小:127.01KB
返回 下载 相关 举报
面向对象的程序设计语言——C第二版陈志泊 主编 王春玲 孟伟编着 第2到7章课后编程题答案.doc_第1页
第1页 / 共34页
面向对象的程序设计语言——C第二版陈志泊 主编 王春玲 孟伟编着 第2到7章课后编程题答案.doc_第2页
第2页 / 共34页
面向对象的程序设计语言——C第二版陈志泊 主编 王春玲 孟伟编着 第2到7章课后编程题答案.doc_第3页
第3页 / 共34页
面向对象的程序设计语言——C第二版陈志泊 主编 王春玲 孟伟编着 第2到7章课后编程题答案.doc_第4页
第4页 / 共34页
面向对象的程序设计语言——C第二版陈志泊 主编 王春玲 孟伟编着 第2到7章课后编程题答案.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《面向对象的程序设计语言——C第二版陈志泊 主编 王春玲 孟伟编着 第2到7章课后编程题答案.doc》由会员分享,可在线阅读,更多相关《面向对象的程序设计语言——C第二版陈志泊 主编 王春玲 孟伟编着 第2到7章课后编程题答案.doc(34页珍藏版)》请在三一文库上搜索。

1、 C+第二单元课后编程题 /第一题#include void main() float a,b,c; cout请输入三角形的三条边长:endl; couta; coutb; coutc; if(a=0|b=0|c=0|(a+b=c)|(a+c)=b|(b+c=a) cout此三条边不能组成三角形!endl; else if(a*a+b*b=c*c|a*a+c*c=b*b|b*b+c*c=a*a) cout此三角形是直角三角三角形!b&ac) cout此直角三角形的面积是:S= b*c/2a&bc) cout此直角三角形的面积是:S= a*c/2endl; else cout此直角三角形的面积是

2、:S= a*b/2endl; else cout此三角形不是直角三角形!endl ; /第二题#include void main() int length8,a8,b8 ; int max=0,min=0,m=0,n=0; coutdata typetmemory used(bytes)(各种数据类型的存储长度是 :); length0=sizeof(short int); /获取短整型长度 coutnshort inttlength0; length1=sizeof(int); /获取整型长度 coutnint tlength1; length2=sizeof(long int); /获取

3、长整型长度 coutnlong int tlength2; length3=sizeof(char); /获取字符型长度 coutnchar t length3; length4=sizeof(float); /获取单浮点型长度 (单精度) coutnfloat tlength4; length5=sizeof(double); /获取双浮点型长度 (双精度) coutndouble tlength5; length6=sizeof(long double); / 获取长双浮点型长度 (长双精度) coutnlong doubletlength6; length7=sizeof(bool);

4、/获取布尔型长度 coutnbool tlength7endl; for(int i=0;ilengthmax)/求取长度最大的类型的存取位置max=i;if (lengthilengthmin)/求取长度最小的类型的存取位置min=i; for(int j=0;j8;j+) if(lengthmax=lengthj) am=j; m+; if(lengthmin=lengthj) bn=j; n+; m-; n-; coutThe longest length is from(存储长度最大的数据类型是:) =0) max= am; switch (max) case 0:coutshort

5、intendl;break;case 1:coutintendl;break;case 2:coutlong intendl;break;case 3:coutcharendl;break;case 4:coutfloatendl;break;case 5:coutdoubleendl;break;case 6:coutlong doubleendl;break;case 7:coutboolendl; break; m-; coutThe shortest length is from(存储长度最小的数据类型是 :) =0) min= bn; switch (min) case 0:cout

6、short int.endl;break;case 1:coutint.endl;break;case 2:coutlong intendl;break;case 3:coutcharendl;break;case 4:coutfloatendl;break;case 5:coutdoubleendl;break;case 6:coutlong doubleendl;break;case 7:coutboolendl; break; n-; /第三题#include using namespace std; void main() double F,C; cout请输入一个华氏温度: F; C

7、=(F-32)*5/9; cout转换成的摄氏温度为:ntC=Cendl; /第四题#include using namespace std; void main() int x,i=0; int a100;/数组长度100可以再增大 cout请输入一个十进制正整数: x; while(x0)/x只能大于0,不能大于等于0(进入死循环) ai=x%2; i+ ; x=x/2; i-;/把最后一次加的1减出去,实际没存入数 cout转化成的二进制数为:=0) coutai; i-; coutendl; C+第三单元课后编程题/第一题#includevoid main() int i,k=0,su

8、m=0; int a50; for(i=1;i=0) sum+=ak; k-; cout1到100所有3的倍数的数的和是:sum=sumendl; /第二题#include void main() int i,k,N,sum1=0,sum2=0; cout输入的整数总个数为:N; cout请输入要输入的整数:endl; for( i=0;ik; if(k%2=0) sum1+=k; else sum2+=k; cout输入的所有整数中的所有偶数之和是:tsum1=sum1endl; cout输入的所有整数中的所有奇数之和是:tsum2=sum2endl; /第三题 #include void

9、main() int a,b,t; int r,x; coutab; x = a * b; if (a b) /替换,保证a为较大的数 t = a; a = b; b = t; while (b != 0) r = a % b; a = b; b = r; cout最大公约数为:aendl;cout最小公倍数为:x/aendl; /最小公倍数即为两个数的乘积除以最大公约数/第四题#include#includevoid main() int a10,b10; int i,m=0,n=0,c,d,e;/f=0,g; cout请输入10个正整数:endl; for(i=0;iai; m+=ai;

10、c=m/10; for(i=0;i10;i+) bi=(ai-c)*(ai-c); n+=bi; / f+=abs(ai*ai-c*c); d=n/10; / g=f/10; e=(int)sqrt(d); cout这10个正整数的平均值为:tcendl; cout这10个数的方差为: tdendl; cout这10个数的标准方差为: teendl; / coutf gendl; /第五题#includevoid main() char a4; int i; cout请输入4个字母:endl; for(i=0;iai; cout反向输出这4个字母为:=0) / 用while时的语句 /for(

11、i=3;i=0; i-) coutai ; i-; / 用while时的语句 (包括大括号,for不需要) coutn; /第六题#includevoid main() int a10=0,1,2,3,4,5,6,7,8,9; int i,j,k; cout所有的水仙花数为:endl; for(i=1;i10;i+) for(j=0;j10;j+) for(k=0;k10;k+) if( ai*100+aj*10+ak=(ai*ai*ai)+ (aj*aj*aj)+(ak*ak*ak) coutaiajakendl; /第七题#includevoid main() long double i,

12、sum1=1,sum2=0; for(i=1;i=50;i+) sum1 *=i; / coutsum1endl; sum2 +=sum1; cout1!+2!+.+50!=sum2endl;/第八题#include#includevoid main() float a,b,c,d; float x,x1,x2; cout请输入一元二次方程的二次项系数,一次项系数,常数项:endl; couta; coutb; coutc; d=b*b-4*a*c; if(a=0) cout方程不是二次方程!endl; x=(float)-c)/b; cout方程的解为:tx=xendl; else if(d

13、=0) cout方程有两个相等的实根!endl; x1=x2=(float)-b)/(2*a ); cout方程两个相等的实根是:tx1=x2=x10) cout方程有两个不等的实根!endl; x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); cout方程两个不等的实根分别是:tx1=x1tx2=x2endl; else cout方程无实根,但有两个不相等的虚根!endl; cout方程两个不等的虚根分别是: endl; couttx1=(float)-b)/(2*a)+sqrt(-d)/(2*a)iendl; couttx2=(float)-b)/(2

14、*a)-sqrt(-d)/(2*a)iendl; /第九题 #include void main() int i,j,k; for(i=3;i=0;i-) j=i; while(j0) cout ; j-; cout0) cout#; k-; switch (i) case 0: case 1: case 2: coutendl; break; case 3: coutendl; break; for(i=1;i0) cout ; j-; cout0) cout#; k-; switch (i) case 0: case 1: case 2: coutendl; break; case 3:

15、coutendl; break; /第十题#include void main() int year,month,day; cout请输入年月日信息:endl; coutyear; coutmonth; coutday; while(month12|day31|day(28+(year%4=0&year%100!=0)|(year%400=0) cout您输入有误!请重新输入年月日信息:endl; coutyear; coutmonth; coutday; switch(month) case 1: cout这一天是:year年 的第 day 天 endl; break; case 2: co

16、ut这一天是:year年 的第 31+day 天 endl; break; case 3: cout这一天是:year年 的第 31+28+(year%4=0&year%100!=0)|(year%400=0)+day 天 endl; break; case 4: cout这一天是:year年 的第 2*31+28+(year%4=0&year%100!=0)|(year%400=0)+day 天 endl; break; case 5: cout这一天是:year年 的第 2*31+30+28+(year%4=0&year%100!=0)|(year%400=0)+day 天 endl; b

17、reak; case 6: cout这一天是:year年 的第 3*31+30+28+(year%4=0&year%100!=0)|(year%400=0)+day 天 endl; break; case 7: cout这一天是:year年 的第 3*31+2*30+28+(year%4=0&year%100!=0)|(year%400=0)+day 天 endl; break; case 8: cout这一天是:year年 的第 4*31+2*30+28+(year%4=0&year%100!=0)|(year%400=0)+day 天 endl; break; case 9: cout这一

18、天是:year年 的第 5*31+2*30+28+(year%4=0&year%100!=0)|(year%400=0)+day 天 endl; break; case 10: cout这一天是:year年 的第 5*31+3*30+28+(year%4=0&year%100!=0)|(year%400=0)+day 天 endl; break; case 11: cout这一天是:year年 的第 6*31+3*30+28+(year%4=0&year%100!=0)|(year%400=0)+day 天 endl; break; case 12: cout这一天是:year年 的第 6*3

19、1+4*30+28+(year%4=0&year%100!=0)|(year%400=0)+day 天 endl; break; /第十一题#includevoid main() float x,y; cout请输入x的值:endlx; if( x0) y=x; coutty=y10) y=4*x*x*x-x*x; coutty=yendl; else y=x*x; coutty=yendl; /第十二题#include void main() int i,chicken,rabbit;/n=0; for(i=0;i=100;i+) chicken=i/2; while(100-i)%4=0)

20、 rabbit=(100-i)/4; / n+; cout鸡兔各有:endl; cout鸡 chicken=chicken只t; cout兔 rabbit=rabbit只endl; break; /coutnendl; C+第四单元课后编程题/第一题#include#includefloat LiangDianJvLi(float x0,float y0,float x1,float y1) float x,y,D; x=x0-x1; y=y0-y1; D=sqrt(x*x+y*y); return D; void main() float ax,ay,bx,by; cout请输入a,b两点的

21、坐标(数字间用空格隔开):endlaxaybxby; cout请确认一下两点坐标:endlt; couta(ax,ay)tb(bx,by)endl; cout点a(ax,ay)到点b(bx,by)的距离是:endl; couttD=LiangDianJvLi(ax,ay,bx,by)endl; /第二题#includelong JieCheng(long n) if(n=0|n=1)/(n=0) return 1; return JieCheng(n-1)*n;void main() long a,b,c; cout请输入a,b,c的值:endl; couta; coutb; coutc; c

22、outa!+b!+c!的值是:endl; coutta!+b!+c!=(JieCheng(a)+JieCheng(b)+JieCheng(c)endl; /第三题#include#includevoid HuiWenShuZi(int);void main() int n; cout请输入一个整数(整数位数不超过50):endl; coutn; HuiWenShuZi(n);void HuiWenShuZi(int a) int b,d,i=1,j; int c51; b=a; d=abs(a);/输入为0是,下面的while不执行,但i仍然是1和输入的是一位数字相同 while(d0) ci

23、=d%10; d=(d-ci)/10; i+; i-; if(i%2=0) j=i/2;/当输入是一位数字时,i=1,j=0,不执行while,直接到最后一个else while(j=1) if(cj=ci/2+1) j-; i+=2; else couttb不是回文数字!endl; break; if(j=0) couttb是回文数字!=1) if(cj=ci/2+2) j-; i+=2; else couttb不是回文数字!endl; break; if(j=0) couttb是回文数字!endl; /第四题#includefloat Average(float,float,float);

24、float Average(float,float,float,float);float Average(float,float,float,float,float); void main() int N; float a1,a2,a3,b1,b2,b3,b4,c1,c2,c3,c4,c5; cout请输入您总共选修的课程门数:endlN; while(N!=3&N!=4&N!=5) cout您输入有误,请重新输入:endlN; if(N=3) cout请输入3门选修课的成绩:endla1a2a3; cout您3门选修课程的平均分为:Average(a1,a2,a3)endl; else if

25、(N=4) cout请输入4门选修课的成绩:endlb1b2b3b4; cout您4门选修课程的平均分为:Average(b1,b2,b3,b4)endl; else if(N=5) cout请输入5门选修课的成绩:endlc1c2c3c4c5; cout您5门选修课程的平均分为:Average(c1,c2,c3,c4,c5)endl; float Average(float x1,float x2,float x3) float X; X=(x1+x2+x3)/3; return X; float Average(float y1,float y2,float y3,float y4) fl

26、oat Y; Y=(y1+y2+y3+y4)/4; return Y; float Average(float z1,float z2,float z3,float z4,float z5) float Z; Z=(z1+z2+z3+z4+z5)/5; return Z; /第五题/该程序采用递归的方法把整数转化为字符串#include using namespace std;int main(void) int number; /变量 void IntToStr(int n);/函数原型 coutnumber; cout转换结果是:endl; coutt ; if(number0) /如果输

27、入的是负数 cout-;/输出负号 number=-number;/转换为正数解决 IntToStr(number);/调用递归函数 coutendl; return 0;/*该函数用递归的方法把整数转换成为字符串*/void IntToStr(int n) if(n/10)!=0)/如果N为1位数字,则输出 IntToStr(n/10);/如果N不是1位整数则递归分析 cout(char)(48+n%10);/输出该位数字/第六题#include int j=0;void ZhuanHuan(int n) int i,m; m=n%10; / j=(j+m)*10; cout0) Zhuan

28、Huan(i); void main()int a;cout请输入一个整数:a;ZhuanHuan(a);coutendl;/coutj/10endl;/第七题#includeint Average1(int,int,int);float Average2(float,float,float); void main() int a1,a2,a3; float b1,b2,b3; int N; cout您要输入的3个数字是否全为整型或浮点型?endl请按情况选择您要输入的3个数的类型的序号: endl; coutt1. 3个数字全为整型!endlt2. 3个数字全为浮点型!endlt3. 3个数字整型、浮点

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1