1、C+程序设计教程 第2版教学素材习题05答案习题5答案1参考答案#include float average(float a,float b,float c,float d) return (a+b+c+d)/4; void main( ) float a,b,c,d; cout请输入四个数:abcd; cout四个数的平均值为:; coutaverage(a,b,c,d)endl;2参考答案#include int odd(int a) if(a%2) return 1; else return 0;void main( ) int a,oddsum=0,evensum=0; cout请输入
2、正整数,以1作为结束:a; while(a!=-1) if(odd(a) oddsum+; else evensum+; cina; cout奇数个数为:oddsumendl; cout偶数个数为:evensumendl;3参考答案#include #include #define PI 3.1415926float distance(float x1,float x2,float y1,float y2) float dist=0; return sqrt(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);void fun(float x1,float x2,float y1,f
3、loat y2,float &r,float &d,float &c,float &area) r=distance(x1, x2, y1, y2); d=2*r; c=2*PI*r; area=PI*r*r;void main( ) float x1,x2,y1,y2,r,d,c,area; cout请输入圆心和圆上一点的坐标:x1y1x2y2; fun(x1, x2, y1, y2, r, d, c, area); cout圆的半径为:rn圆的直径为:dn 圆的周长为:cn圆的面积为:areaendl;4参考答案#include double fact(int n) int i; doub
4、le f=1; for(i=1;i=n;i+) f*=i; return(f);double com(int n, int k) return(fact(n)/(fact(k)*fact(n-k); void main( ) int n,k; coutk):nk; cout C(n,k)= com(n,k)endl;5参考答案#include #include double ex(double x,double eps) int i=1; double e=1,t=1; while(fabs(t)eps) t=t*x/i; e=e+t; i+; return(e);void main( ) d
5、ouble x,eps; cout请输入x和eps的值:xeps; cout e*x ex(x,eps)endl;6参考答案#include #include int isprime(int x) int k, i; k=sqrt(x); for( i=2; i=k+1) return(1); else return(0); void main( ) int n,k=0; for( n=2; n=1000; n+) if( isprime(n) cout n t; k+; if(k%5=0) cout endl; cout endl;7参考答案#includevoid print(int n)
6、 for(int i=1;i=n/2;i+) if(n%i=0) couti ; coutendl;void wanshu(int n) int a,s=0; a=n/2; for(int i=1;i=a;i+) if(n%i=0) s+=i; if(s=n) coutn its factors are ; print(n); void main() for(int i=1;i=1000;i+) wanshu(i);8参考答案#include int min(int x, int y) /重载函数 1 return( xy ? x : y ); float min(float x, float
7、 y) /重载函数 2 return( xy ? x : y ); double min(double x, double y) /重载函数 3 return( xy ? x : y ); void main( ) int m=6, n=8; cout m 和 n中的小数为:min(m,n)endl; float a=4.8f, b=6.3f; cout a 和 b中的小数为:min(a,b)endl; double x=7.87, y=9.24; cout x 和 y中的小数为:min(x,y)endl;9参考答案#include inline float max(float x, floa
8、t y, float z) float t=xy?x:y ; return(tz?t:z);void main( ) float m, n, k; coutmnk; cout m,n,k三个数中的最大值为:max(m,n,k) endl;10参考答案#include #include float fac(float n=10) float f=1; if (n0) coutn0,data error!endl; exit(-1); else if(n=0 | n=1) f=1 ; else f=n*fac(n-1) ; return(f);void main() float n,y; cout
9、input a real number:n; y=fac(n); coutn!=yendl; y=fac(); /没有参数缺省为10 cout10!=yendl;11参考答案#include void prdrev(int x) /反向输出 if(x0) cout x%10; prdrev(x/10); void main( ) int x; cout x; cout 反向输出:; prdrev(x); cout endl;12参考答案#include int fib(int n) int f; if(n=1|n=2) f=1; else f=fib(n-1)+fib(n-2); return
10、 f;void main() int n; cout请输入n的值:n; coutFibonacci数列的前n项为:endl; for(int i=1;i=n;i+) coutfib(i) ;13参考答案#include void main() int x,n; float p(int,int); coutnx; coutn=n x=xendl; coutP(n,x)=p(n,x)endl;float p(int n,int x) float f; if(n=0) f=1; else if(n=1) f=x; else f=(2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x)/n;
11、 return f;14参考答案#include #include void dec_to_bin(int num,int base);void main() int decnum,base=2; coutdecnum; coutendl; cout十进制 decnum = ; dec_to_bin(decnum,base); cout二进制0) dec_to_bin(num/base, base); coutnum%base; 15参考答案#include void PrintTriangle_1(int n) for(int i=1;i=n;i+) for(int j=1;j=i;j+)
12、cout* ; coutendl; void PrintTriangle_2(int n) for(int i=1;i=n;i+) for(int j=1;j=(n-i);j+) cout ;/两个空格 for(int k=1;k=(2*i-1);k+) cout *;/*前有一个空格 coutendl; void main( ) int n; coutn; PrintTriangle_1(n); PrintTriangle_2(n);16参考答案#includedouble f(double x) return(x*(x+1);double integral(double a,double b,double n) double h=(b-a)/n,sum=0,i; for(i=a;ib;i+=h) sum+=f(i); return (sum*h);void main() double n,sum,a,b; cout请输入积分的上限a、下限b及划分的矩形块数n:abn; sum=integral(a,b,n); cout积分值为:sumendl;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1