C++上机作业答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一章作业答案.1.编写程序,将华氏温度转化为摄氏温度:公式:C=(5/9)*(F-32)程序代码:#includeiostreamusingnamespacestd;voidmain(){floatF,C;coutPleaseinputF:;cinF;C=5*(F-32)/9.0;coutC=Cendl;}运行结果:2.编写程序,输入圆柱体的半径r和高h,计算圆柱体的体积。程序代码:#includeiostreamusingnamespacestd;#definePI3.14159voidmain(){floatr,h,v;coutPleaseinputrh:;cinrh;v=PI*r*r*h;coutv=vendl;}运行结果:3.输入三角形的三条边a,b,c,利用海伦公式计算三角形的面积area.若则area=程序代码:#includeiostream#includemath.husingnamespacestd;voidmain(){floata,b,c,p,area;coutPleaseinputabc:;cinabc;if((a+bc)&&(b+ca)&&(a+cb)){p=(a+b+c)/2.0;area=sqrt(p*(p-a)*(p-b)*(p-c));coutarea=areaendl;}elsecoutinputerror!endl;}运行结果:4.输入a,b,c的值,求一元二次方程:的解。程序代码:#includeiostream#includemath.husingnamespacestd;voidmain(){floata,b,c,p,x1,x2;coutPleaseinputabc:;cinabc;p=b*b-4*a*c;if(p=0){x1=(-b+sqrt(p))/(2*a);x2=(-b-sqrt(p))/(2*a);coutx1=x1endl;coutx2=x2endl;}elsecoutNOrealroot!;}运行结果第二章作业答案1.输入一个整数,计算该数的阶乘。程序代码:#includeiostreamusingnamespacestd;voidmain(){inti,n,p=1;cinn;for(i=1;i=n;i++)p=p*i;coutn!=pendl;}运行结果:2.连续输入若干个整数,输入0结束。统计其正整数的个数,并计算其中正整数的总和、平均值并输出。程序代码:#includeiostreamusingnamespacestd;voidmain(){inta,n=0;floatavg,sum=0;do{cina;if(a0){n++;sum+=a;}}while(a!=0);avg=sum/n;coutn=nendl;coutavg=avgendl;coutsum=sumendl;}3.输出所有的水仙花数。所谓“水仙花数”是一个三位数,其各位数字的立方和等于该数本身。如153=13+53+33程序代码:#includeiostreamusingnamespacestd;voidmain(){inta,b,c,n;for(n=100;n1000;n++){a=n%10;b=n%100/10;c=n/100;if(n==a*a*a+b*b*b+c*c*c)coutnendl;}}运行结果:第三章作业答案1.编写程序输出两个数的最大公约数和最小公倍数。2.计算100---300之内所有素数的和。3.计算s=1-1/3+1/5-1/7+…1/994.N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。第一题:程序代码://用辗转相除法求最大公约数;#includeiostreamusingnamespacestd;voidmain(){intm,n,r,temp;cinmn;temp=m*n;while(r=m%n){m=n;n=r;}cout最大公约数=nendl;cout最小公倍数=temp/nendl;}运行结果:第二题:程序代码:#includeiostreamusingnamespacestd;voidmain(){intn,i,s=0;for(n=100;n300;n++){for(i=2;in;i++)if(n%i==0)break;if(i==n)s+=n;}couts=sendl;}运行结果:第三题:程序代码:#includeiostreamusingnamespacestd;voidmain(){intn=1;floats=0,f=1,p;for(n=1;n100;n+=2){p=f/n;s=s+p;f=-f;}couts=sendl;}运行结果:第四题:程序代码:#includeiostreamusingnamespacestd;voidmain(){intn,a,b,c,d;for(n=1000;n10000;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)coutnendl;}}运行结果:第四次作业答案1.编写两个函数,分别计算两个整数的最大公约数和最小公倍数,并在主函数中调用该函数,并输出结果。2.编写一个判断素数的函数,函数原型为:intisprime(intn),在主函数中调用该函数,计算100—1000之间所有素数的和。3.编写一个函数,f(n)=,并在主函数中输出f(10)的值。(说明自然对数ln的函数原型为doublelog(floatx).4.编写一个计算阶乘的函数,函数原型为intfac(intn),在主函数中调用该函数,计算:S=M!+N!.第一题:程序代码:#includeiostreamusingnamespacestd;//求最大公约数intgcd(intm,intn){intr;while(r=m%n){m=n;n=r;}returnn;}//求最小公倍数intlcd(intm,intn){returnm*n/gcd(m,n);}voidmain(){inta,b;cinab;cout最大公约数为:gcd(a,b)endl;cout最小公倍数为:lcd(a,b)endl;}运行结果:第二题:程序代码:#includeiostreamusingnamespacestd;//判断素数的函数,若n为素数,函数返回1,否则返回0;intisprime(intn){inti;for(i=2;in;i++)if(n%i==0)return0;return1;}voidmain(){inti,s=0;for(i=100;i1000;i++)if(isprime(i))s=s+i;couts=sendl;}运行结果:第三题:程序代码:#includeiostream#includemath.husingnamespacestd;doublef(intn){inti;doubles=0;for(i=2;i=n;i++)s=s+log(i);returnsqrt(s);}voidmain(){coutf(10)endl;}运行结果:第四题:程序代码:#includeiostreamusingnamespacestd;//用递归编写计算阶乘的函数intfac(intn){if(n==0||n==1)return1;elsereturnn*fac(n-1);}voidmain(){intM,N,s;cinMN;s=fac(M)+fac(N);coutM!+N!=sendl;}运行结果:第五章第六次上机内容1、定义一个3行4列的数组,计算所有数据的平均值,并输出最大值和最小值和它的行号和列号。2、编写程序,实现一个一维数组的反序存放。3、用选择排序法实现10整数由小到大排序。4、用冒泡法实现10整数由大到小排序。第一题:程序代码:#includeiostream.hvoidmain(){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;i3;i++)for(j=0;j4;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;}coutmax=maxendl;cout行号:m列号:nendl;coutmin=minendl;cout行号:k列号:lendl;}运行结果:第二题:程序代码:#includeiostream.h#defineN6voidmain(){inta[N]={12,10,20,21,30,25};inti,t;for(i=0;iN/2;i++){t=a[i];a[i]=a[N-i-1];a[N-i-1]=t;}for(i=0;iN;i++)couta[i];coutendl;}运行结果:第三题:程序代码:#includeiostream.h#defineN10//选择排序voidmain(){inta[N]={30,21,15,38,25,35,18,28,45,20};inti,j,t,k;for(i=0;iN-1;i++){k=i;for(j=i+1;jN;j++)if(a[j]a[k])k=j;if(k!=i){t=a[i];a[i]=a[k];a[k]=t;}}for(i=0;iN;i++)couta[i];coutendl;}运行结果:第四题:程序代码:#includeiostream.h#defineN10//冒泡排序,由大到小排序voidmain(){inta[N]={30,21,15,38,25,35,18,28,45,20};inti,j,t,k;for(i=0;iN-1;i++){k=0;for(j=0;jN-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;iN;i++)couta[i];coutendl;}运行结果:第七次作业1.定义一个二维数组inta[3][4],分别用指针法和下标法输出其内容。2.用数组作为函数参数,并通过函数调用还回最大值,最小值和平均值。函数原型维:voidfun(inta[10],int*max,int*min,float*avg)3.编写一个函数voidfun(inta[],intn),将a[]中的n个元素按反序存放,在main函数中调用该函数,分别用数组和指针作为实参。4.用冒泡法或选择法编写一个排序的函数,然后在主程序中调用该函数实现10个整数的排序。第一题程序代码:#includestdio.hvoidmain(){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;i3;i++){for(j=0;j4;j++)printf(%3d,a[i][j]);printf(\n);}//用列指针实现;p=&a[0][0];for(i=0;i

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功