C++编程题1.100~200间的素数#includeiostream#includecmath#includeiomanipusingnamespacestd;intmain(){intm,k,i,n=0;boolprime;for(m=101;m=200;m=m+2){prime=true;k=int(sqrt(m));for(i=2;i=k;i++)if(m%i==0){prime=false;break;}if(prime){coutsetw(5)m;n=n+1;}if(n%10==0)coutendl;}coutendl;return0;}例3.15译密码#includeiostreamusingnamespacestd;intmain(){charc;while((c=getchar())!='\n'){if((c='a'&&c='z')||(c='A'&&c='Z')){c=c+4;if(c'Z'&&c='Z'+4||c'z')c=c-26;}coutc;}coutendl;return0;}17、求Sn=a+aa+aaa+……+aa…a(n个a)的值,n由键盘输入。#includeiostreamusingnamespacestd;intmain(){inta,n,i=1,sn=0,tn=0;couta,n=:;cinan;while(i=n){tn=tn+a;//赋值后的tn为i个a组成数的值sn=sn+tn;//赋值后的sn为多项式前i项之和a=a*10;++i;}couta+aa+aaa+...=snendl;return0;}18、.求1!+2!……+20!、#includeiostreamusingnamespacestd;intmain(){floats=0,t=1;intn;for(n=1;n=20;n++){t=t*n;//求n!s=s+t;//将各项累加}cout1!+2!+...+20!=sendl;return0;}20、找出1000之内所有的完数例如6的因子是1.2.3而6=1+2+3,所以6是完数#includeiostreamusingnamespacestd;intmain(){intm,s,i;for(m=2;m1000;m++){s=0;for(i=1;im;i++)if((m%i)==0)s=s+i;if(s==m){coutmisa完数endl;coutitsfactorsare:;for(i=1;im;i++)if(m%i==0)couti;coutendl;}}return0;}21、2/1,3/2,5/3,8/5,13/8,21/13,…前20项之和#includeiostreamusingnamespacestd;intmain(){inti,t,n=20;doublea=2,b=1,s=0;for(i=1;i=n;i++){s=s+a/b;t=a;a=a+b;//将前一项分子与分母之和作为下一项的分子b=t;//将前一项的分子作为下一项的分母}coutsum=sendl;return0;}24、输出图形#includeiostreamusingnamespacestd;intmain(){inti,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;//输出完一行*号后换行}return0;}习题:1、求最大公约数和最小公倍数,用主函数条用两个函数#includeiostreamusingnamespacestd;intmain(){inthcf(int,int);intlcd(int,int,int);intu,v,h,l;cinuv;h=hcf(u,v);coutH.C.F=hendl;l=lcd(u,v,h);coutL.C.D=lendl;return0;}inthcf(intu,intv){intt,r;if(vu){t=u;u=v;v=t;}while((r=u%v)!=0){u=v;v=r;}return(v);}intlcd(intu,intv,inth){return(u*v/h);}3、判别素数的函数#includeiostreamusingnamespacestd;intmain(){intprime(int);/*函数原型声明*/intn;coutinputaninteger:;cinn;if(prime(n))coutnisaprime.endl;elsecoutnisnotaprime.endl;return0;}intprime(intn){intflag=1,i;for(i=2;in/2&&flag==1;i++)if(n%i==0)flag=0;return(flag);}4、.求a!+b!+c!的值,用一个函数fac(n)求n!。4#includeiostreamusingnamespacestd;intmain(){intfac(int);inta,b,c,sum=0;coutentera,b,c:;cinabc;sum=sum+fac(a)+fac(b)+fac(c);couta!+b!+c!=sumendl;return0;}intfac(intn){intf=1;for(inti=1;i=n;i++)f=f*i;returnf;}7、.验证哥德巴赫猜想:一个不小于6的偶数可以表示为两个素数之和。7#includeiostream#includecmathusingnamespacestd;intmain(){voidgodbaha(int);intn;coutinputn:;cinn;godbaha(n);return0;}voidgodbaha(intn){intprime(int);inta,b;for(a=3;a=n/2;a=a+2){if(prime(a)){b=n-a;if(prime(b))coutn=a+bendl;}}}intprime(intm){inti,k=sqrt(m);for(i=2;i=k;i++)if(m%i==0)break;if(ik)return1;elsereturn0;}11、用递归方法求f(n)=12+22+……+n2#includeiostreamusingnamespacestd;intmain(){intf(int);intn,s;coutinputthenumbern:;cinn;s=f(n);coutTheresultissendl;return0;}intf(intn){if(n==1)return1;elsereturn(n*n+f(n-1));}例5.2用数组Fibonacci数列#includeiostream#includeiomanipusingnamespacestd;intmain(){inti;intf[20]={1,1};for(i=2;i20;i++)f[i]=f[i-2]+f[i-1];for(i=0;i20;i++){if(i%5==0)coutendl;coutsetw(8)f[i];}coutendl;return0;}例5.3用冒泡法对10个数排序#includeiostreamusingnamespacestd;intmain(){inta[10];inti,j,t;coutinput10numbers:endl;for(i=0;i10;i++)//输入a[0]~a[9]cina[i];coutendl;for(j=0;j9;j++)//共进行9趟比较for(i=0;i9-j;i++)//在每趟中要进行(10-j)次两两比较if(a[i]a[i+1])//如果前面的数大于后面的数{t=a[i];a[i]=a[i+1];a[i+1]=t;}//交换两个数的位置,使小数上浮coutthesortednumbers:endl;for(i=0;i10;i++)//输出10个数couta[i];coutendl;return0;}例5.4将二维数组行列元素互换,存到另一个数组中a=12356b=142536#includeiostreamusingnamespacestd;intmain(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;coutarraya:endl;for(i=0;i=1;i++){for(j=0;j=2;j++){couta[i][j];b[j][i]=a[i][j];}coutendl;}coutarrayb:“endl;for(i=0;i=2;i++){for(j=0;j=1;j++)coutb[i][j];coutendl;}return0;}例5.5求3×4二维数组中最大元素值及其行列号#includeiostreamusingnamespacestd;intmain(){inti,j,row=0,colum=0,max;inta[3][4]={{5,12,23,56},{19,28,37,46},{-12,-34,6,8}};max=a[0][0];//使max开始时取a[0][0]的值for(i=0;i=2;i++)//从第0行~第2行for(j=0;j=3;j++)//从第0列~第3列if(a[i][j]max)//如果某元素大于max{max=a[i][j];//max将取该元素的值row=i;//记下该元素的行号icolum=j;//记下该元素的列号j}coutmax=max,row=row,colum=columendl;return0;}例5.7用选择法对数组中10个整数按由小到大排序#includeiostreamusingnamespacestd;intmain(){voidselect_sort(intarray[],intn);//函数声明inta[10],i;coutentertheoriginlarray:endl;for(i=0;i10;i++)//输入10个数cina[i];coutendl;select_sort(a,10);//函数调用,数组名作实参coutthesortedarray:endl;for(i=0;i10;i++)//输出10个已排好序的数couta[i];coutendl;return0;}voidselect_sort(intarray[],intn)//形参array是数组名{inti,j,k,t;for(i=0;in-1;i++){k=i;for(j=i+1;jn;j++)if(array[j]array[k])k=j;t=array[k];array[k]=array[i];array[i]=t;}}习题:6、打印出杨辉三角(要求打印出10行)#includeiostream#includeiomanipusingnamespacestd;intmain(){constintn=11;inti,j,a[n][n];for(i=1;in;i++){a[i]