[!] CC++层序设计教程 课后实验答案(第一章~第七章).doc_第1页
[!] CC++层序设计教程 课后实验答案(第一章~第七章).doc_第2页
[!] CC++层序设计教程 课后实验答案(第一章~第七章).doc_第3页
[!] CC++层序设计教程 课后实验答案(第一章~第七章).doc_第4页
[!] CC++层序设计教程 课后实验答案(第一章~第七章).doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

免费! C/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; 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=sqrt(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;couttendl;实验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 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;char 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;elsecout你输入了非法的运算符。endl;图太多, 不截了。实验3.6#include iostream.h#include math.hvoid main()int a,b,c;double x1,x2;cout请输入一元二次方程的系数a、b、c:abc;if(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;elsecout方程无解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.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.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;elsef=1000*e+100*d+10*c+b;if(b9)cout你输入的数太大,请重新输入;endl;else 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+)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#include 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,max; 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); for(i=0;*(a+i)!=0;i+) if(ai=a)bi=ai-32;elsebi=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;i19;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;i10;i+)if(i+m10)s2i+m=s1i;elses2i+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(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,方便做第四问: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+)s1jk=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;coutendl1、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()char s1=VISUAL C+ PROGRAM,s2=VISUAL C+ PROGRAM,*p,*q,t;int i,l;cout原数组为:endl;for(i=0;s1i;i+)couts1i;coutendl;l=strlen(s1);for(i=0;il/2;i+)t=s1i;s1i=s1l-i-1;s1l-i-1=t;cout用下标法倒置得:endl;for(i=0;s1i;i+)couts1i;coutendl;p=s2;q=&s2l-1;for(;pq;p+,q-)t=*p;*p=*q;*q=t;cout用地址法倒置得:endl;for(i=0;s2i;i+)couts2i;coutendl;实验5.7#include iostream.hvoid main()int i,j;char s40=asdfghjkloiIuuyVVYTFtcu,t;for(i=0;si;i+)coutsi;coutendl;cout输入要删除的字符:t;for(i=0;si;i+)if(si=t)for(j=i;sj;j+)sj=sj+1;for(i=0;si;i+)coutsi;coutendl;实验6.1#include iostream.hbool isprime(int m)int i,j;for(i=1,j=0;im;i+)if(m%i!=0)continue;j+;if(j=1)return true;elsereturn false;void main()int i,count=0;for(i=3;count10;i+)if(isprime(i) & isprime(i+2)cout(i,i+2)=10000 & x=100000 & x=999999)s=x/100000+x/10000%10*10+x/1000%10*100+x/100%10*1000+x/10%10*10000+x%10*100000;return s;void main()int x,i;for(i=10000,x=0;x10;i+)if(i=reverse(i)coutiendl;x+;实验6.3#include iostream.h#include stdio.hint palindrome(char s)char s140;int i,n;for(i=0,n=-1;si;i+)n+;for(i=0;si;i+)s1i=sn-i;for(i=0,n=0;si;i+)if(si!=s1i)n+;if(n=0)return 1;elsereturn 0;void main()char s40;cout请输入字符串:endl;gets(s);if(palindrome(s)cout该字符串回文。endl;elsecout该字符串不回文。endl;实验6.4(1)#include iostream.hint fun(int s,int n,int *x) int i,j,t,imax,n1,x1; n1=n;x1=*x; n=0;*x=0; for(i=0;in1-1;i+) imax=i; for(j=i+1;jsimax)imax=j; t=si; si=simax; simax=t; for(i=0;in1;i+) if(si=90)n+; return n;void main()int n,x,i,n1;cout请输入学生数:n;n1=n;int *s=new intn1;cout请输入n1个同学的成绩:endl;for(i=0;isi;cout请输入及格分:x;n=fun(s,n,&x); for(i=0;in1;i+)coutsi ;coutendl; cout优秀成绩的人数为:nendl; cout不及格人数为:xendl;实验6.4(2)#include iostream.hvoid fun(int s,int n,int &x,int &y) int i,j,t,imax,n1,x1; x1=x;x=0; for(i=0;in-1;i+) imax=i; for(j=i+1;jsimax)imax=j; t=si; si=simax; simax=t; for(i=0;in;i+) if(si=90) y+; void main()int n,x,i,y(0);cout请输入学生数:n;int *s=new intn; cout请输入n个同学的成绩:endl;for(i=0;isi;cout请输入及格分:x;fun(s,n,x,y); for(i=0;in;i+)coutsi;coutendl; cout优秀成绩的人数为:yendl; cout不及格人数为:xendl;实验6.8#include iostream.h#include math.hdouble dish(int x1,int x2,int y1, int y2)double s;s=sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);return s;double dish(double x1,double x2,double y1,double y2)double s;s=sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);return s;void main() double x1,x2,y1,y2; cout请输入A点横坐标x1:x1; cout请输入A点纵坐标y1:y1; cout请输入B点横坐标x2:x2; cout请输入B点纵坐标y2:y2; if(x1=(int)x1 & x2=(int)x2 & y1=(int)y1 & y2=(int)y2) coutdish(int)x1,(int)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论