1、同济大学C+前六章所有习题答案实验1.1#include iostream.h#include iomanip.hvoid main() int x; cinx; int y; y=x*x; coutx*x=hexyendl;实验1.2#include iostream.hvoid main() float x=1,y=2,h=3,s; s=h*(x+y)/2.0; cout上底为1,下底为2,高为3的梯形面积为:sendl;实验1.3#include iostream.hvoid main() float x,y,z,s; cout请输入三门成绩x,y,z:xyz; s=(x+y+z)/3;
2、 cout三门课平均成绩为:sendl;实验2.1#include iostream.h#include iomanip.hvoid main() float s1,s2,s3; double aver; cout输入三个数据:s1s2s3; aver=(s1+s2+s3)/3; aver=aver*100+0.5; aver=(int)aver; aver=aver/100; cout平均值=averendl;实验2.2#include iostream.h#include math.hvoid main() double x,y,z; cout请输入直角三角形的两直角边长:xy; z=sq
3、rt(x*x+y*y); cout该直角三角形的斜边长为:zendl;实验2.4#include iostream.hvoid main()double a,b,c,t,ave;cout请输入三个数abc;if (ab) t=a;else t=b;if (tc) t=t;else t=c;ave=(a+b+c)/3;cout三个数的平均值为ave,其中最小的数为:tendl;实验2.3#include iostream.hvoid main()double x,y,r,t;cout请输入x yxy;r=x*x+y*y;if (r=4) t=12*3.1415926;else t=0;coutt
4、endl;实验2.5#include iostream.hvoid main()char c1=f,c2=l,c3=y;coutc1c2c3z) c1=c1-26;if(c2z) c2=c2-26;if(c3z) c3=c3-26;coutc1c2c3xy; if(x=0|y=0) coutinput errory) r1=x/y; r2=x%y; else r1=y/x; r2=y%x; cout商= r1 余数= r2endl; 实验3.2#include iostream.hvoid main() int x,y; cout请输入上网时间x:x; if(x=65) y=130; else
5、 if(x=50) y=x*2; else if(x=10) y=x*2.5; else y=30;cout上网费用y为:yendl;实验3.3#include iostream.hvoid main() float x,y1,y2; int xp; coutx; if(x=3000) y1=0.7*x; else if(x=2000) y1=0.8*x; else if(x=1000) y1=0.9*x; else y1=x; xp=(int)x/1000 switch(xp) case 实验3.5#include iostream.hvoid main() double x,y,a; ch
6、ar z; cout请输入您要计算的式子xzy; if(z=42) a=x*y; coutxy=aendl; else if(z=43) a=x+y; coutxy=aendl; else if(z=45) a=x-y; coutxy=aendl; else if(z=47) a=x/y; coutxy=aendl; else cout你输入了非法的运算符。endl;图太多, 不截了。实验3.6#include iostream.h#include math.hvoid main() int a,b,c; double x1,x2; cout请输入一元二次方程的系数a、b、c:abc; if(
7、b*b-4*a*c)0) x1=(-b+sqrt(b*b-4*a*c)/(2*a); x2=(-b-sqrt(b*b-4*a*c)/(2*a); cout方程的解为:x1=x1;x2=x2endl; else if(b*b-4*a*c)=0) x1=x2=(-b)/(2*a); cout方程的解为:x1=x1=x2=x2endl; else cout方程无解endl;实验 4.1#include iostream.hvoid main() int n,sum(0); for(n=1; ;n+=2) sum=sum+n; if(n=19) break; coutsum=sumendl;实验 4.
8、6#include iostream.hvoid main()int i,j,k;for(i=0;i=9;i+) for(j=0;j=9;j+) for(k=0;k100) coutijkendl; 实验 4.9#include iostream.h#include math.hvoid main() double x1,x0,x; int a; cout请输入a:a; x1=a; do x0=x1; x1=2/3.0*x0+a/(3.0*x0*x0); while (fabs(x1-x0)1.0e-5); cout用迭代法算出a的立方根x为:x1endl; x=a; x=pow(x,1/3.
9、0); cout用pow(x,1/3)公式算出a的立方根x为:xendl;实验4.2#include iostream.hvoid main() int a,b,c,d,e,f; cout请输入要逆序的数:a; b=a/1000; c=a%1000/100; d=a%100/10; e=a%10; if(b=0 & c!=0) f=100*e+10*d+c; else if(c=0 & d!=0) f=10*e+d; else if(d=0 & e!=0) f=e; else f=1000*e+100*d+10*c+b; if(b9) cout你输入的数太大,请重新输入;endl; else
10、cout所求得的逆序数为:f;0.0001;i+) t+=i; s+=(1/t); coutsendl;实验4.4#include iostream.hvoid main() int n; double s=2,a,i; cout请输入n值:n; for(i=1;in;i+) a=(2*i)*(2*i)/(2*i-1)*(2*i+1); s=s*a; coutsendl;实验4.5#include iostream.h#include iomanip.hvoid main() int i,j; for(i=1;i10;i+) coutsetw(11-i); for(j=0;j2*i-1;j+)
11、couti; coutendl; coutendl; char c; for(i=0;i9;i+) c=i+A; coutsetw(i+2); for(j=0;j2*(9-i);j+) coutc; coutendl; 实验4.7#include iostream.hvoid main() int i,j,k,t=0; for(i=1;i5;i+) for(j=i+1;j6;j+) for(k=5;k7;k+) if(jk) couti j kendl; t+; cout满足条件的方案数为:tendl;实验4.8#include iostream.h#include stdlib.h#incl
12、ude stdio.h#include time.hvoid main() int i,a,n,temp,s=0; srand(unsigned)time(NULL); a=rand()%9+1; n=rand()%6+5; temp=0; for(i=1;i=n;i+) temp=temp*10+a; s+=temp; couta n sendl;不要问我为什么这么写随机函数,我也不知道为什么,我是上网找了一个很高级很高级的产生随机函数的方法,然后套进来的。实验5.1#include iostream.h#include stdlib.hvoid main() int a10,i,min,m
13、ax; double ave=0; for(i=0;i10;i+) ai=int(rand()%71+30); for(i=1,min=a0;iai)min=ai; for(i=1,max=a0;i10;i+) if(maxai)max=ai; for(i=0;i10;i+) coutaiendl; ave+=ai; ave=ave/10; cout最大值为:max;最小值为:min;平均值为:ave;实验5.8#include iostream.h#include string.h#include stdio.hvoid main() char a80,b80; int i; gets(a)
14、; for(i=0;*(a+i)!=0;i+) if(ai=a) bi=ai-32; else bi=ai; bi=0; for(i=0;*(b+i)!=0;i+) coutbi; coutendl;cout用strupr函数求得:strupr(a)endl;实验5.2#include iostream.h#include stdlib.h#include stdio.h#include time.h void main( ) int i,j,t,s20; srand(unsigned)time(NULL); for(i=0;i20;i+)si=rand()%100+1; for(i=0;i1
15、9;i+) t=si; for(j=i+1;jt) si=sj; sj=t; t=si; for(i=0;i20;i+)coutsiendl;实验5.3#include iostream.h#include stdlib.h#include stdio.h#include time.hvoid main() int i,s110,s210,m; srand(unsigned)time(NULL); for(i=0;i10;i+) s1i=rand()%100+1; cout移动前数据endl; for(i=0;i10;i+) couts1i ; coutendl输入右移位数m; for(i=0
16、;i10;i+) if(i+m10) s2i+m=s1i; else s2i+m-10=s1i; cout右移m位后数据endl; for(i=0;i10;i+) couts2i ; coutendl;实验5.4这是我迄今为止做过的最麻烦的一道题#include iostream.h#include stdlib.h#include stdio.h#include time.h#include iomanip.hvoid main() /建立A、B矩阵: int i,j,k,s144,s244,s344,s444,s544,t3; srand(unsigned)time(NULL); for(
17、i=0;i4;i+) for(j=0;j4;j+) s1ij=rand()%41+30; cout矩阵A为:endl; for(i=0;i4;i+) for(j=0;j4;j+) coutsetw(6)s1ij; coutendl; for(i=0;i4;i+) for(j=0;j4;j+) s2ij=rand()%35+101; coutendl矩阵B为:endl; for(i=0;i4;i+) for(j=0;j4;j+) coutsetw(6)s2ij; coutendl; for(i=0;i4;i+) for(j=0;j4;j+) s3ij=s1ij+s2ij; /拷贝一下矩阵A,方便
18、做第四问: for(i=0;i4;i+) for(j=0;j4;j+) s4ij=s1ij; s5ij=s1ij; /第一问: coutendl矩阵C为:endl; for(i=0;i4;i+) for(j=0;j4;j+) coutsetw(6)s3ij; coutendl; /第二问: t0=s300; for(i=0;i4;i+) for(j=0;jt0) t1=i; t2=j; t0=s3ij; coutendlC矩阵中最大值为:t0其下标为(t1,t2)endl; /第三问之A的下三角: for(i=0;i3;i+) for(j=i+1;j4;j+) for(k=0;k4;k+) s
19、1jk=s1jk-s1ik/s1ii*s1ji; coutendl以下三角显示矩阵A得:endl; for(i=0;i4;i+) for(j=0;j4;j+) coutsetw(6)s1ij; cout0;i-) for(j=i-1;j=0;j-) for(k=0;k4;k+) s2jk=s2jk-s2ik/s2ii*s2ji; coutendl以下三角显示矩阵B得:endl; for(i=0;i4;i+) for(j=0;j4;j+) coutsetw(6)s2ij; coutendl; /第四问: for(i=0;i4;i+) t0=s40i; s40i=s42i; s42i=t0; co
20、utendl1、3行互换后A矩阵得:endl; for(i=0;i4;i+) for(j=0;j4;j+) coutsetw(6)s4ij; coutendl; /第五问: t1=0; t2=0; for(i=0;i4;i+) t1+=s5ii; t2+=s53-i3-i; t0=t1+t2; coutendl两对角线之和为:t0endl;实验5.5#include iostream.h#include iomanip.hvoid main() int n,i,j,a1010; for(i=0;i10;i+) for(j=0;j10;j+) aij=1; coutn; for(i=2;in;i+) for(j=1;ji;j+) aij=ai-1j-1+ai-1j; for(i=0;in;i+) for(j=0;ji+1;j+) coutsetw(5)aij; coutendl; for(i=0;in;i+) for(j=0;jn-i;j+) cout ; for(j=0;ji+1;j+) coutsetw(6)aij; coutendl; 实验5.6#include iostream.h#include string.hvoid main()
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2