




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章作业答案.1.编写程序,将华氏温度转化为摄氏温度:公式:C=(5/9)*(F-32)程序代码:#include<iostream>usingnamespacestd;voidmain(){floatF,C;cout<<"PleaseinputF:";cin>>F;C=5*(F-32)/9.0;cout<<"C="<<C<<endl;
}
运行结果:2.编写程序,输入圆柱体的半径r与高h,计算圆柱体的体积。程序代码:#include<iostream>usingnamespacestd;voidmain(){floatr,h,v;cout<<"Pleaseinputrh:";cin>>r>>h;v=PI*r*r*h;cout<<"v="<<v<<endl;}运行结果:3.输入三角形的三条边a,b,c,利用海伦公式计算三角形的面积area.若则area=程序代码:#include<iostream>#include<math.h>usingnamespacestd;voidmain(){floata,b,c,p,area;cout<<"Pleaseinputabc:";cin>>a>>b>>c;if((a+b>c)&&(b+c>a)&&(a+c>b)){p=(a+b+c)/2.0;area=sqrt(p*(p-a)*(p-b)*(p-c));cout<<"area="<<area<<endl;}elsecout<<"inputerror!"<<endl;}运行结果:4.输入a,b,c的值,求一元二次方程:的解。程序代码:#include<iostream>#include<math.h>usingnamespacestd;voidmain(){floata,b,c,p,x1,x2;cout<<"Pleaseinputabc:";cin>>a>>b>>c;p=b*b-4*a*c;if(p>=0){x1=(-b+sqrt(p))/(2*a);x2=(-b-sqrt(p))/(2*a);cout<<"x1="<<x1<<endl;cout<<"x2="<<x2<<endl;}elsecout<<"NOrealroot!";}运行结果第二章作业答案1.输入一个整数,计算该数的阶乘。程序代码:#include<iostream>usingnamespacestd;voidmain(){inti,n,p=1;cin>>n;for(i=1;i<=n;i++) p=p*i;cout<<n<<"!="<<p<<endl;}运行结果:2.连续输入若干个整数,输入0结束。统计其正整数的个数,并计算其中正整数的总与、平均值并输出。程序代码:#include<iostream>usingnamespacestd;voidmain(){inta,n=0;floatavg,sum=0;do{cin>>a;if(a>0){n++;sum+=a;}}while(a!=0);avg=sum/n;cout<<"n="<<n<<endl;cout<<"avg="<<avg<<endl;cout<<"sum="<<sum<<endl;}3.输出所有的水仙花数。所谓“水仙花数”是一个三位数,其各位数字的立方与等于该数本身。如153=13+53+33
程序代码:#include<iostream>usingnamespacestd;voidmain(){inta,b,c,n;for(n=100;n<1000;n++){a=n%10;b=n%100/10;c=n/100;if(n==a*a*a+b*b*b+c*c*c) cout<<n<<endl;}}运行结果:作业答案1.
编写程序输出两个数的最大公约数与最小公倍数。2.
计算100---300之内所有素数的与。3.
计算s=1-1/3+1/5-1/7+…1/994.N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。第一题:程序代码://用辗转相除法求最大公约数;#include<iostream>usingnamespacestd;voidmain(){intm,n,r,temp;cin>>m>>n;temp=m*n;while(r=m%n){m=n;n=r;}cout<<"最大公约数="<<n<<endl;cout<<"最小公倍数="<<temp/n<<endl;}运行结果:第二题:程序代码:#include<iostream>usingnamespacestd;voidmain(){intn,i,s=0;for(n=100;n<300;n++){for(i=2;i<n;i++) if(n%i==0)break;if(i==n)s+=n;}cout<<"s="<<s<<endl;}运行结果:第三题:程序代码:#include<iostream>usingnamespacestd;voidmain(){intn=1;floats=0,f=1,p;for(n=1;n<100;n+=2){p=f/n;s=s+p;f=-f;}cout<<"s="<<s<<endl;}运行结果:
第四题:程序代码:#include<iostream>usingnamespacestd;voidmain(){intn,a,b,c,d;for(n=1000;n<10000;n++){a=n/1000;//千位b=n%1000/100;//百位c=n%100/10;//十位d=n%10;//个位if(9*n==d*1000+c*100+b*10+a) cout<<n<<endl;}}运行结果:第四次作业答案1.
编写两个函数,分别计算两个整数的最大公约数与最小公倍数,并在主函数中调用该函数,并输出结果。2.
编写一个判断素数的函数,函数原型为:intisprime(intn),在主函数中调用该函数,计算100—1000之间所有素数的与。3.
编写一个函数,f(n)=,并在主函数中输出f(10)的值。(说明自然对数ln的函数原型为doublelog(floatx).4.
编写一个计算阶乘的函数,函数原型为intfac(intn),在主函数中调用该函数,计算:S=M!+N!.第一题:程序代码:#include<iostream>usingnamespacestd;//求最大公约数intgcd(intm,intn){intr;while(r=m%n){m=n;n=r;}returnn;}
//求最小公倍数intlcd(intm,intn){returnm*n/gcd(m,n);}voidmain(){inta,b;cin>>a>>b;cout<<"最大公约数为:"<<gcd(a,b)<<endl;cout<<"最小公倍数为:"<<lcd(a,b)<<endl;}运行结果:第二题:程序代码:#include<iostream>usingnamespacestd;//判断素数的函数,若n为素数,函数返回1,否则返回0;intisprime(intn){inti;for(i=2;i<n;i++) if(n%i==0)return0;return1;}voidmain(){inti,s=0;for(i=100;i<1000;i++) if(isprime(i))s=s+i;cout<<"s="<<s<<endl;}运行结果:第三题:程序代码:#include<iostream>#include<math.h>usingnamespacestd;doublef(intn){inti;doubles=0;for(i=2;i<=n;i++) s=s+log(i);returnsqrt(s);}voidmain(){ cout<<f(10)<<endl;}运行结果:第四题:程序代码:#include<iostream>usingnamespacestd;//用递归编写计算阶乘的函数intfac(intn){if(n==0||n==1)return1;elsereturnn*fac(n-1);}voidmain(){intM,N,s;cin>>M>>N;s=fac(M)+fac(N);cout<<M<<"!+"<<N<<"!="<<s<<endl;}运行结果:第五章第六次上机内容1、
定义一个3行4列的数组,计算所有数据的平均值,并输出最大值与最小值与它的行号与列号。2、
编写程序,实现一个一维数组的反序存放。3、
用选择排序法实现10整数由小到大排序。4、
用冒泡法实现10整数由大到小排序。
第一题:程序代码:#include<iostream.h>voidmain(){inta[3][4]={{12,6,25,10},{14,9,20,16},{30,22,5,21}};inti,j,m,n,k,l,max,min;max=min=a[0][0];m=n=0;for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]>max){max=a[i][j];m=i;n=j;} elseif(a[i][j]<min){min=a[i][j];k=i;l=j;}cout<<"max="<<max<<endl;cout<<"行号:"<<m<<"列号:"<<n<<endl;cout<<"min="<<min<<endl;cout<<"行号:"<<k<<"列号:"<<l<<endl;}运行结果:
第二题:程序代码:#include<iostream.h>#defineN6voidmain(){inta[N]={12,10,20,21,30,25};inti,t;for(i=0;i<N/2;i++){t=a[i];a[i]=a[N-i-1];a[N-i-1]=t;}for(i=0;i<N;i++) cout<<a[i]<<"";cout<<endl;
}
运行结果:
第三题:程序代码:#include<iostream.h>#defineN10//选择排序voidmain(){inta[N]={30,21,15,38,25,35,18,28,45,20};inti,j,t,k;for(i=0;i<N-1;i++){k=i; for(j=i+1;j<N;j++) if(a[j]<a[k])k=j; if(k!=i){t=a[i];a[i]=a[k];a[k]=t;}}for(i=0;i<N;i++) cout<<a[i]<<"";cout<<endl;}运行结果:第四题:程序代码:#include<iostream.h>#defineN10//冒泡排序,由大到小排序voidmain(){inta[N]={30,21,15,38,25,35,18,28,45,20};inti,j,t,k;for(i=0;i<N-1;i++){k=0; for(j=0;j<N-i-1;j++) if(a[j]<a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;k=1;}if(k==0)break;}for(i=0;i<N;i++) cout<<a[i]<<"";cout<<endl;}运行结果:第七次作业1.定义一个二维数组inta[3][4],分别用指针法与下标法输出其内容。2.用数组作为函数参数,并通过函数调用还回最大值,最小值与平均值。函数原型维:voidfun(inta[10],int*max,int*min,float*avg)3.编写一个函数voidfun(inta[],intn),将a[]中的n个元素按反序存放,在main函数中调用该函数,分别用数组与指针作为实参。4.用冒泡法或选择法编写一个排序的函数,然后在主程序中调用该函数实现10个整数的排序。
第一题程序代码:#include<stdio.h>voidmain(){inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};inti,j;int*p;int(*pp)[4];//用下标法实现;for(i=0;i<3;i++){for(j=0;j<4;j++) printf("%3d",a[i][j]);printf("\n");}
//用列指针实现;p=&a[0][0];for(i=0;i<12;i++) printf("%3d",*(p+i));printf("\n");
//用行指针实现;pp=a;for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%3d",*(*(pp+i)+j));printf("\n");}}
运行结果截图:
第二题:程序代码:#include<stdio.h>voidfun(inta[10],int*max,int*min,float*avg){inti,s=0;*max=*min=a[0];for(i=0;i<10;i++){if(*max<a[i])*max=a[i];elseif(*min>a[i])*min=a[i];s+=a[i];}*avg=s/10.0;}
voidmain(){inta[10]={10,21,8,22,40,23,32,26,30,12};intmax,min;floatavg;fun(a,&max,&min,&avg);printf("max=%d\n",max);printf("min=%d\n",min);printf("avg=%6.2f\n",avg);}
运行结果截屏:第三题:程序代码:#include<stdio.h>voidfun(inta[],intn){inti,t;for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-i-1];a[n-i-1]=t;}}
voidmain(){inta[6]={20,12,6,21,29,15};int*p,i;//用数组作为函数的实参;printf("原先数组的序列:\n");for(i=0;i<6;i++) printf("%4d",a[i]);printf("\n");printf("用数组作为实参,交换后的序列:\n");fun(a,6);for(i=0;i<6;i++) printf("%4d",a[i]);printf("\n");//用指针作为函数的实参printf("用指向数组的指针作为实参,再次交换后的序列:\n");p=a;fun(p,6);for(i=0;i<6;i++) printf("%4d",a[i]);printf("\n");}
运行结果截屏:第四题:程序代码:#include<stdio.h>//用选择法编写数组排序函数,按从小到大顺序排序voidsort1(inta[],intn){inti,j,k,t;for(i=0;i<n-1;i++){k=i; for(j=i+1;j<n;j++) if(a[k]>a[j])k=j; if(k!=i){t=a[i];a[i]=a[k];a[k]=t;}}}//用冒泡法排序,按从小到大顺序排序
voidsort2(inta[],intn){inti,j,t,f;for(i=0;i<n;i++){f=1;for(j=0;j<n-i-1;j++) if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;f=0;}if(f==1)break;}}
voidmain(){inta[10]={40,23,26,20,35,55,12,43,37,45};inti;printf("排序前的序列:\n");for(i=0;i<10;i++) printf("%4d",a[i]);printf("\n");printf("选择排序后的序列:\n");sort1(a,10);for(i=0;i<10;i++) printf("%4d",a[i]);printf("\n冒泡排序后的序列:\n");sort2(a,10);for(i=0;i<10;i++) printf("%4d",a[i]);printf("\n");}
运行结果截屏:第八次作业1.
设数组a[N]中已经有n个数并已按从小到大顺序排序。要求输入一个数x,将其插入到数组中,使数组仍然有序。#include<iostream>usingnamespacestd;voidmain(){inta[10]={4,6,8,10,20};inti,j,x;cin>>x;for(i=0;i<9;i++){if(a[i]>x)//寻找插入点; { for(j=9;j>i;j--)//将元素向后移动一位; a[j]=a[j-1]; a[i]=x;//空出位置,插入元素x; break; }}for(i=0;i<10;i++) cout<<a[i]<<"";}2.
编写函数intff(char*s),判断s所指字符串是否为“回文串”,即前后对称。如abcba为回文串,若是返回1,否则返回0,并在主程序中调用该函数,对输入的字符串进行判断。#include<iostream.h>#include<string.h>intff(char*s){intn,i;n=strlen(s);for(i=0;i<n/2;i++) if(s[i]!=s[n-i-1])return0;return1;}voidmain(){charss[20];cin>>ss;if(ff(ss))cout<<"YES!"<<endl;elsecout<<"NO!"<<endl;}3.
编写一个函数voidstrcp(char*s1,char*s2),将字符数组s1中下标为偶数的元素复制到另一个字符数组s2中。在主程序中调用该函数,输出这个字符串。#include<iostream.h>//将字符串s1中下标为偶数的字符复制到s2中。voidstrcp(char*s1,char*s2){inti=0,j=0;for(i=0;s1[i]!='\0';i++) if(i%2==0)s2[j++]=s1[i];s2[j]='\0';}intmain(){chars[]="Nanchang!";charss[10];strcp(s,ss);cout<<s<<endl;cout<<ss<<endl;return0;}4.
输入一行字符,统计其中字母,数字,空格与其他字符的个数。#include<iostream.h>intmain(){chars[100];intB=0,L=0,D=0,S=0,T=0,i;cin.getline(s,100,'\n');for(i=0;s[i]!='\0';i++) if(s[i]>='A'&&s[i]<='Z')B++; elseif(s[i]>='a'&&s[i]<='z')L++; elseif(s[i]>='0'&&s[i]<='9')D++; elseif(s[i]=='')S++; elseT++;cout<<"大写字符个数:"<<B<<endl;cout<<"小写字符个数:"<<L<<endl;cout<<"数字字符个数:"<<D<<endl;cout<<"空格字符个数:"<<S<<endl;cout<<"其他字符个数:"<<T<<endl;return0;}第九次作业1、编写一个程序,采用类计算n!,并输出10!的值.#include<iostream.h>classJS{public: JS(inta)//构造函数; {n=a;} intfac()//计算N的阶乘; {inti,p=1; for(i=1;i<n;i++) p=p*i; returnp; }private: intn;};intmain(){JSobj(10);//定义对象;ints;s=obj.fac();//调用对象的方法计算阶乘;cout<<s<<endl;return0;}2、定义并实现一个矩形类,有长宽两个属性,定义一个构造函数初始化对象,用成员函数GetS()、GetL分别计算其面积与周长。#include<iostream.h>classRect{public: Rect(intx,inty)//定义构造函数用于初始化对象; {a=x;b=y;} intGetS()//计算面积的成员函数; {returna*b;} intGetL()//计算周长的成员函数; {return2*(a+b);}private: inta,b;//矩形的长与宽;};
intmain(){Rectobj(5,2);//定义一个矩形对象;intS,L;S=obj.GetS();//调用矩形对象的成员函数计算面积;L=obj.GetL();//调用矩形对象的成员函数计算周长;cout<<"S="<<S<<endl;cout<<"L="<<L<<endl;return0;}3、定义一个Circle类,有数据成员R(半径),定义构造函数,用成员函数GetArea()计算面积,构造一个Circle对象进行测试。#include<iostream.h>classCircle{public: Circle(floatr)//构造函数 {R=r;} doubleGetArea() {returnPI*R*R;}private: floatR;//圆的半径;};
voidmain(){CircleC(2.0);doubles;s=C.GetArea();cout<<"S="<<s<<endl;}4、定义一个圆柱体类,有数据成员底面半径R与高H,用成员函数GetV计算其体积,定义构造函数,在主函数中定义一个对象进行测试。#include<iostream.h>classCylinder{public: Cylinder(floatr,floath)//构造函数 {R=r;H=h; } doubleGetV()//计算圆柱体的体积; { returnPI*R*R*H; }private: floatR,H;//声明圆柱体的半径与高;};voidmain(){Cylinderyzt(3,5);doublev;v=yzt.GetV();cout<<"圆柱体的体积为="<<v<<endl;}
5、设计一个点类Point,有两个数据成员x与y,定义一个构造函数初始化对象。为这个点类增加一个友元函数,通过该友元函数计算两个点之间的距离。#include<iostream.h>#include<math.h>classPoint{public: Point(floata,floatb)//构造函数; {x=a;y=b;} frienddoublejs(PointA,PointB);//声明友元函数;private: floatx,y;//声明点的坐标;};
//计算两点之间的距离doublejs(PointA,PointB){doublexx=A.x-B.x;doubleyy=A.y-B.y;doubles=sqrt(xx*xx+yy*yy);returns;}voidmain(){PointA(2,5),B(6,9);//定义两个点对象;doubless;ss=js(A,B);cout<<"距离="<<ss<<endl;}期中考试1、输入三角形的三条边a,b,c,利用海伦公式计算三角形的面积。若p=(a+b+c)/2,则S=。要求判断a,b,c能否组成一个三角形。#include<iostream.h>#include<math.h>voidmain(){floata,b,c,p,area;cout<<"请输入三角形的三条边:"<<endl;cin>>a>>b>>c;if((a+b>c)&&(a+c>b)&&(b+c>a)){p=(a+b+c)/2.0;area=sqrt(p*(p-a)*(p-b)*(p-c));cout<<"S="<<area<<endl;;}else cout<<"不能构成三角形!\n";}
2、输入一个日期,计算该日期是该年的第
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 我心中的未来城市想象画想象写物结合类作文12篇范文
- 金融咨询服务协议
- 门面租房协议书合同
- 2022学年上海复旦附中高一(下)期末历史试题及答案
- 2021学年上海华二紫竹高一(下)期中地理试题及答案
- 《中国古代文化史讲座:中华传统文化教育教案》
- 工地无伤赔偿协议书
- 八月装修公司活动方案
- 公交公司为民活动方案
- 公交宣传活动方案
- 《redis讲解》PPT课件
- TOM全面品质管理PPT课件
- 风机基础施工强条执行记录表
- (完整版)澳洲不随行父母同意函
- 模具报价表精简模板
- 客诉处理与应对技巧
- 哈工大桥梁基础与墩台复习总结盛洪飞
- 框架六层中学教学楼工程施工方案
- 浅析Zabbix平台在电力企业信息设备监控中的应用
- 螯合树脂资料
- 电力工程监理规划
评论
0/150
提交评论