计算机C++编程答案(1).doc_第1页
计算机C++编程答案(1).doc_第2页
计算机C++编程答案(1).doc_第3页
计算机C++编程答案(1).doc_第4页
计算机C++编程答案(1).doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

2.8题#include using namespace std;int main()char c1=C, c2=h, c3=i, c4=n, c5=a;c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;coutpassword is:c1c2c3c4c5endl;return 0;3.2题#include #include using namespace std;int main ( )float h,r,l,s,sq,vq,vz;const float pi=3.1415926;coutrh;l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=3.0/4.0*pi*r*r*r;vz=pi*r*r*h;coutsetiosflags(ios:fixed)setiosflags(ios:right)setprecision(2);coutl= setw(10)lendl;couts= setw(10)sendl;coutsq=setw(10)sqendl;coutvq=setw(10)vqendl;coutvz=setw(10)vzendl;return 0;3.3题#include using namespace std;int main ()float c,f;coutf;c=(5.0/9.0)*(f-32); /注意5和9要用实型表示,否则5/9值为0cout摄氏温度为:cendl;return 0;3.4题#include using namespace std;int main ( )char c1,c2;cout请输入两个字符c1,c2:;c1=getchar(); /将输入的第一个字符赋给c1c2=getchar(); /将输入的第二个字符赋给c2cout用putchar函数输出结果为:;putchar(c1);putchar(c2);coutendl;cout用cout语句输出结果为:;coutc1c2endl;return 0;3.4题另一解#include using namespace std;int main ( )char c1,c2;cout请输入两个字符c1,c2:;c1=getchar(); /将输入的第一个字符赋给c1c2=getchar(); /将输入的第二个字符赋给c2cout用putchar函数输出结果为:;putchar(c1);putchar(44);putchar(c2);coutendl;cout用cout语句输出结果为:;coutc1,c2endl;return 0;3.5题#include using namespace std;int main ( )char c1,c2;int i1,i2; /定义为整型couti1i2;c1=i1;c2=i2;cout按字符输出结果为:c1 , c2endl;return 0;3.8题#include using namespace std;int main ( ) int a=3,b=4,c=5,x,y;coutc & b=c)endl;cout(a|b+c & b-c)endl;coutb) & !c|1)endl;cout(!(x=a) & (y=b) & 0)endl;cout(!(a+b)+c-1 & b+c/2)endl;return 0;3.9题include using namespace std;int main ( )int a,b,c;coutabc;if(ab)if(bc)coutmax=c;elsecoutmax=b;else if (ac)coutmax=c;elsecoutmax=a;coutendl;return 0;3.9题另一解#include using namespace std;int main ( )int a,b,c,temp,max ;coutabc;temp=(ab)?a:b; /* 将a和b中的大者存入temp中 */max=(tempc)?temp:c; /* 将a和b中的大者与c比较,最大者存入maxcoutmax=maxendl;return 0;3.10题#include using namespace std;int main ( )int x,y;coutx;if (x1)y=x;coutx=x, y=x=y;else if (x10) / 1x10y=2*x-1;coutx=x, y=2*x-1=y;else / x10y=3*x-11;coutx=x, y=3*x-11=y;coutendl;return 0;3.11题#include using namespace std;int main ()float score;char grade;coutscore;while (score100|score0)coutscore;switch(int(score/10)case 10:case 9: grade=A;break;case 8: grade=B;break;case 7: grade=C;break;case 6: grade=D;break;default:grade=E;coutscore is score, grade is gradeendl;return 0;3.12题#include using namespace std;int main ()long int num;int indiv,ten,hundred,thousand,ten_thousand,place;/*分别代表个位,十位,百位,千位,万位和位数*/coutnum;if (num9999)place=5;else if (num999)place=4;else if (num99)place=3;else if (num9)place=2;else place=1;coutplace=placeendl;/计算各位数字ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10000)/1000;hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);coutoriginal order:;switch(place)case5:coutten_thousand,thousand,hundred,ten,indivendl;coutreverse order:;coutindivtenhundredthousandten_thousandendl;break;case 4:coutthousand,hundred,ten,indivendl;coutreverse order:;coutindivtenhundredthousandendl;break;case 3:couthundred,ten,indivendl;coutreverse order:;coutindivtenhundredendl;break;case 2:coutten,indivendl;coutreverse order:;coutindivtenendl;break;case 1:coutindivendl;coutreverse order:;coutindivendl;break;return 0;3.13题#include using namespace std;int main () long i; /i为利润float bonus,bon1,bon2,bon4,bon6,bon10;bon1=100000*0.1; /利润为10万元时的奖金bon2=bon1+100000*0.075; /利润为20万元时的奖金bon4=bon2+100000*0.05; /利润为40万元时的奖金bon6=bon4+100000*0.03; /利润为60万元时的奖金bon10=bon6+400000*0.015; /利润为100万元时的奖金couti;if (i=100000)bonus=i*0.1; /利润在10万元以内按10%提成奖金else if (i=200000)bonus=bon1+(i-100000)*0.075; /利润在10万元至20万时的奖金else if (i=400000)bonus=bon2+(i-200000)*0.05; /利润在20万元至40万时的奖金else if (i=600000)bonus=bon4+(i-400000)*0.03; /利润在40万元至60万时的奖金else if (i=1000000)bonus=bon6+(i-600000)*0.015; /利润在60万元至100万时的奖金elsebonus=bon10+(i-1000000)*0.01; /利润在100万元以上时的奖金coutbonus=bonusendl;return 0;3.13题另一解#include using namespace std;int main ()long i;float bonus,bon1,bon2,bon4,bon6,bon10;int c;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;couti;c=i/100000;if (c10) c=10;switch(c)case 0: bonus=i*0.1; break;case 1: bonus=bon1+(i-100000)*0.075; break;case 2:case 3: bonus=bon2+(i-200000)*0.05;break;case 4:case 5: bonus=bon4+(i-400000)*0.03;break;case 6:case 7:case 8:case 9: bonus=bon6+(i-600000)*0.015; break;case 10: bonus=bon10+(i-1000000)*0.01;coutbonus=bonusendl;return 0;3.14题#include using namespace std;int main ()int t,a,b,c,d;coutabcd;couta=a, b=b, c=c,d=db)t=a;a=b;b=t;if (ac)t=a; a=c; c=t;if (ad)t=a; a=d; d=t;if (bc)t=b; b=c; c=t;if (bd)t=b; b=d; d=t;if (cd)t=c; c=d; d=t;coutthe sorted sequence:endl;couta, b, c, dendl;return 0;3.15题#include using namespace std;int main ()int p,r,n,m,temp;coutnm;if (nm)temp=n;n=m;m=temp; /把大数放在n中, 小数放在m中p=n*m; /先将n和m的乘积保存在p中, 以便求最小公倍数时用while (m!=0) /求n和m的最大公约数r=n%m;n=m;m=r;coutHCF=nendl;coutLCD=p/nendl; / p是原来两个整数的乘积return 0;3.16题#include using namespace std;int main ()char c;int letters=0,space=0,digit=0,other=0;coutenter one line:=a & c=A & c=0 & c=9)digit+;elseother+;coutletter:letters, space:space, digit:digit,other:otherendl;return 0;3.17题#include using namespace std;int main ()int a,n,i=1,sn=0,tn=0;coutan;while (i=n)tn=tn+a; /赋值后的tn为i个a组成数的值sn=sn+tn; /赋值后的sn为多项式前i项之和a=a*10;+i;couta+aa+aaa+.=snendl;return 0;3.18题#include using namespace std;int main ()float s=0,t=1;int n;for (n=1;n=20;n+)t=t*n; / 求n!s=s+t; / 将各项累加cout1!+2!+.+20!=sendl;return 0;3.19题#include using namespace std;int main ()int i,j,k,n;coutnarcissus numbers are:endl;for (n=100;n1000;n+)i=n/100;j=n/10-i*10;k=n%10;if (n = i*i*i + j*j*j + k*k*k)coutn ;coutendl;return 0;3.20题#include using namespace std;int main()const int m=1000; / 定义寻找范围int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;int i,a,n,s;for (a=2;a=m;a+) / a是21000之间的整数,检查它是否为完数n=0; / n用来累计a的因子的个数s=a; / s用来存放尚未求出的因子之和,开始时等于afor (i=1;ia;i+) / 检查i是否为a的因子if (a%i=0) / 如果i是a的因子n+; / n加1,表示新找到一个因子s=s-i; / s减去已找到的因子,s的新值是尚未求出的因子之和switch(n) / 将找到的因子赋给k1,.,k10case 1:k1=i; break; / 找出的笫1个因子赋给k1case 2:k2=i; break; / 找出的笫2个因子赋给k2case 3:k3=i; break; / 找出的笫3个因子赋给k3case 4:k4=i; break; / 找出的笫4个因子赋给k4case 5:k5=i; break; / 找出的笫5个因子赋给k5case 6:k6=i; break; / 找出的笫6个因子赋给k6case 7:k7=i; break; / 找出的笫7个因子赋给k7case 8:k8=i; break; / 找出的笫8个因子赋给k8case 9:k9=i; break; / 找出的笫9个因子赋给k9case 10:k10=i; break; / 找出的笫10个因子赋给k10if (s=0) / s=0表示全部因子都已找到了couta is a 完数endl;cout1) coutk1,1表示a至少有2个因子if (n2) cout,2表示至少有3个因子,故应再输出一个因子if (n3) cout,3表示至少有4个因子,故应再输出一个因子if (n4) cout,5) cout,6) cout,7) cout,8) cout,9) cout,k10;coutendlendl;return 0;3.20题另一解#include using namespace std;int main()int m,s,i;for (m=2;m1000;m+)s=0;for (i=1;im;i+)if (m%i)=0) s=s+i;if(s=m)coutm is a完数endl;coutits factors are:;for (i=1;im;i+)if (m%i=0) couti ;coutendl;return 0;3.20题另一解#include using namespace std;int main()int k11;int i,a,n,s;for (a=2;a=1000;a+)n=0;s=a;for (i=1;ia;i+)if (a%i)=0)n+;s=s-i;kn=i; / 将找到的因子赋给k1k10if (s=0)couta is a 完数endl;coutits factors are:;for (i=1;in;i+)coutki ;coutknendl;return 0;3.21题#include using namespace std;int main()int i,t,n=20;double a=2,b=1,s=0;for (i=1;i=n;i+)s=s+a/b;t=a;a=a+b; / 将前一项分子与分母之和作为下一项的分子b=t; / 将前一项的分子作为下一项的分母coutsum=sendl;return 0;3.22题#include using namespace std;int main()int day,x1,x2;day=9;x2=1;while(day0)x1=(x2+1)*2; / 第1天的桃子数是第2天桃子数加1后的2倍x2=x1;day-;couttotal=x1endl;return 0;3.23题#include #include using namespace std;int main()float a,x0,x1;couta; / 输入a的值x0=a/2;x1=(x0+a/x0)/2;dox0=x1;x1=(x0+a/x0)/2;while(fabs(x0-x1)=1e-5);coutThe square root of a is x1endl;return 0;3.24题#include using namespace std;int main()int i,k;for (i=0;i=3;i+) / 输出上面4行*号for (k=0;k=2*i;k+)cout*; / 输出*号coutendl; /输出完一行*号后换行for (i=0;i=2;i+) / 输出下面3行*号for (k=0;k=4-2*i;k+)cout*; / 输出*号coutendl; / 输出完一行*号后换行return 0;3.25题#include using namespace std;int main()char i,j,k; /* i是a的对手;j是b的对手;k是c的对手*/for (i=X;i=Z;i+)for (j=X;j=Z;j+)if (i!=j)for (k=X;k=Z;k+)if (i!=k & j!=k)if (i!=X & k!=X & k!=Z)coutA-i B-j C-kendl;return 0;4.1题#include using namespace std;int main()int hcf(int,int);int lcd(int,int,int);int u,v,h,l;cinuv;h=hcf(u,v);coutH.C.F=hendl;l=lcd(u,v,h);coutL.C.D=lu)t=u;u=v;v=t;while (r=u%v)!=0)u=v;v=r;return(v);int lcd(int u,int v,int h)return(u*v/h);4.2题#include #include using namespace std;float x1,x2,disc,p,q;int main()void greater_than_zero(float,float);void equal_to_zero(float,float);void smaller_than_zero(float,float);float a,b,c;coutabc;disc=b*b-4*a*c;coutroot:0)greater_than_zero(a,b);coutx1=x1,x2=x2endl;else if (disc=0)equal_to_zero(a,b);coutx1=x1,x2=x2endl;elsesmaller_than_zero(a,b);coutx1=p+qiendl;coutx2=p-qi0时方程的根 */x1=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);void equal_to_zero(float a,float b) /* 定义一个函数,用来求disc=0时方程的根 */x1=x2=(-b)/(2*a);void smaller_than_zero(float a,float b) /* 定义一个函数,用来求disc0时方程的根 */p=-b/(2*a);q=sqrt(-disc)/(2*a);4.3题#include using namespace std;int main()int prime(int); /* 函数原型声明 */int n;coutn;if (prime(n)coutn is a prime.endl;elsecoutn is not a prime.endl;return 0;int prime(int n)int flag=1,i;for (i=2;in/2 & flag=1;i+)if (n%i=0)flag=0;return(flag);4.4题#include using namespace std;int main()int fac(int);int a,b,c,sum=0;coutabc;sum=sum+fac(a)+fac(b)+fac(c);couta!+b!+c!=sumendl;return 0;int fac(int n)int f=1;for (int i=1;i=n;i+)f=f*i;return f;4.5题#include #include using namespace std;int main()double e(double);double x,sinh;coutx;sinh=(e(x)+e(-x)/2;coutsinh(x)=sinhendl;return 0;double e(double x)return exp(x);4.6题#include #include using namespace std;int main()double solut(double ,double ,double ,double );double a,b,c,d;coutabcd;coutx=solut(a,b,c,d)=1e-5);return(x);4.7题#include #include using namespace std;int main()void godbaha(int);int n;coutn;godbaha(n);return 0;void godbaha(int n)int prime(int);int a,b;for(a=3;a=n/2;a=a+2)if(prime(a)b=n-a;if (prime(b)coutn=a+bendl;int prime(int m)int i,k=sqrt(m);for(i=2;ik) return 1;else return 0;4.8题#include using namespace std;int main()int x,n;float p(int,int);coutnx;coutn=n,x=xendl;coutPn(x)=p(n,x)endl;return 0;float p(int n,int x)if (n=0)return(1);else if (n=1)return(x);elsereturn(2*n-1)*x*p(n-1),x)-(n-1)*p(n-2),x)/n);4.9题#include using namespace std;int main()void hanoi(int n,char one,char two,char three);int m;coutm;coutThe steps of moving m disks:endl;hanoi(m,A,B,C);return 0;void hanoi(int n,char one,char two,char three)/将n个盘从one座借助two座,移到three座void move(char x,char y);if(n=1) move(one,three);elsehanoi(n-1,one,three,two);move(one,three);hanoi(n-1,two,one,three);void move(char x,char y)coutxyendl;4.10题#include using namespace std;int main()void convert(int n);int number;coutnumber;coutoutput:endl;if (number0)cout-;number=-number;convert(number);coutendl;return 0;void convert(int n)int i;char c;if (i=n/10)!=0)convert(i);c=n%10+0;cout c;4.11题#include using namespace std;int main()int f(int);int n,s;coutn;s=f(n);coutThe result is sendl;return 0;int f(int n);if (n=1)return 1;elsereturn (n*n+f(n-1);4.12题#include #include using namespace std;#define S(a,b,c) (a+b+c)/2#define AREA(a,b,c) sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)-b)*(S(a,b,c)-c)int main()float a,b,c;coutabc;if (a+bc & a+cb & b+ca)coutarea=AREA(a,b,c)endl;elsecoutIt is not a triangle!endl;return 0;4.14题#include using namespace std;/#define LETTER 1int main()char c;cinc;#if LETTERif(c=a & c=A & c=Z)c=c+32;#endifcoutcendl;return 0;4.15题#include using namespace std;#define CHANGE 1int main()char ch40;coutinput text:endl;gets(ch);#if (CHANGE)for (int i=0;i=a& chiA& chiZ)chi+=1;else if (chi=z|chi=Z)chi-=25;#endifcoutoutput:endlchendl;return 0;4.16题file#include using namespace std;int a;int main()extern int power(int);int b=3,c,d,m;coutenter an integer a and its power m:am;c=a*b;couta*b=cendl;d=power(m);couta*m=dendl;return 0;4.16题fileextern int a;int power(int n)int i,y=1;for(i=1;i=n;i+)y*=a;return y;5.1题#include #include using namespace std;#include int main()int i,j,n,a101;for (i=1;i=100;i+)ai=i;a1=0;for (i=2;isqrt(100);i+)for (j=i+1;j=100;j+)if(ai!=0 & aj!=0)if (aj%ai=0)aj=0; coutendl;for (i=1,n=0;i=100;i+)if (ai!=0)coutsetw(5)ai ;n+;if(n=10)coutendl;n=0;coutendl;return 0;5.2题#include using namespace std;/#include int main()int i,j,min,temp,a11;coutenter data:endl;for (i=1;i=10;i+)coutaiai; /输入10个数coutendlThe original numbers:endl;for (i=1;i=10;i+)coutai ; / 输出这10个数coutendl;for (i=1;i=9;i+) /以下8行是对10个数排序min=i;for (j=i+1;jaj) min=j;temp=ai; /以下3行将ai+1a10中最小者与ai 对换ai=amin;amin=temp;coutendlThe sorted numbers:endl;for (i=1;i=10;i+) / 输出已排好序的10个数coutai ;coutendl;return 0;5.3题#include using namespace std;int main()int a33,sum=0;int i,j;coutenter data:endl;for (i=0;

温馨提示

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

评论

0/150

提交评论