1、编程实例例313求Fibonacci数列前40个数。这个数列有如下特点:第1、2个数为1、1。从第3个数开始,每个数是其前面两个数之和。#include#includeusingnamespacestd;intmain() longf1,f2; inti; f1=f2=1; for(i=1;i=20;i+) /设备输出字段宽度为12,每次输出两个数 coutsetw(12)f1setw(12)f2; /每输出完4个数后换行,使每行输出4个数 if(i%2=0)coutendl; f1=f1+f2;/左边的f1代表第3个数,是第1、2个数之和 f2=f2+f1;/左边的f2代表第4个数,是第2、
2、3个数之和 return0;例314100200间的素数#include#include#includeusingnamespacestd;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;例315译密码#includeusingnamespacestd;intmain()
3、charc;while(c=getchar()!=n) if(c=a&c=A&cZ&cz) c=c-26; coutc;coutendl;return0;习题:16、统计个数#includeusingnamespacestd;intmain()charc;intletters=0,space=0,digit=0,other=0;coutenteroneline:=a&c=A&c=0&c=9) digit+;else other+;coutletter:letters,space:space,digit:digit,other:otherendl;return0;17、求Sn=a+aa+aaa+
4、aaa(n个a)的值,n由键盘输入。#includeusingnamespacestd;intmain()inta,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;return0;18、.求1!+2!+20!、#includeusingnamespacestd;intmain()floats=0,t=1;intn;for(n=1;n=20;n+)t=t*n;/求n!s=s+t;/将各项累加cout1!+2!+.+20
5、!=sendl;return0;19、求“水仙花数”例153=13+33+53#includeusingnamespacestd;intmain()inti,j,k,n;coutnarcissusnumbersare: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; return0;#includeusingnamespacestd;intmain()intm,s,i;for(m=2;m1000;m+)s=0;for(i=1;im;i+)if(m%i)=0)s=
6、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项之和#includeusingnamespacestd;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、输出图形#incl
7、udeusingnamespacestd;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、求最大公约数和最小公倍数,用主函数条用两个函数#includeusingnamespacestd;intmain()inthcf(int,int);intlcd(int,int,int);intu,v,h
8、,l;cinuv;h=hcf(u,v);l=lcd(u,v,h);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、判别素数的函数#includeusingnamespacestd;intmain()intprime(int);/*函数原型声明*/intn;coutn;if(prime(n)coutnisaprime.endl;elsecoutnisnotaprime.endl;return0;intp
9、rime(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#includeusingnamespacestd;intmain()intfac(int);inta,b,c,sum=0;coutabc;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、.验证哥德巴赫猜想:一个不小
10、于6的偶数可以表示为两个素数之和。7#include#includeusingnamespacestd;intmain()voidgodbaha(int);intn;coutn;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;ik)return1;elsereturn0;11、用递归方法求f(n)=12+22+n2#includeu
11、singnamespacestd;intmain()intf(int);intn,s;coutn;s=f(n);coutTheresultissendl;return0;intf(intn)if(n=1)return1;elsereturn(n*n+f(n-1);例52用数组Fibonacci数列#include#includeusingnamespacestd;intmain()inti;intf20=1,1;for(i=2;i20;i+)fi=fi-2+fi-1;for(i=0;i20;i+)if(i%5=0)coutendl;coutsetw(8)fi;coutendl;return0;
12、例5.3用冒泡法对10个数排序#includeusingnamespacestd;intmain()inta10;inti,j,t;coutinput10numbers:endl;for(i=0;iai; coutendl; for(j=0;j9;j+)/共进行9趟比较 for(i=0;iai+1)/如果前面的数大于后面的数 t=ai;ai=ai+1;ai+1=t;/交换两个数的位置,使小数上浮 coutthesortednumbers:endl;for(i=0;i10;i+)/输出10个数coutai;coutendl;return0;例54将二维数组行列元素互换,存到另一个数组中a=123
13、56b=14 25 36#includeusingnamespacestd;intmain()inta23=1,2,3,4,5,6;intb32,i,j;coutarraya:endl;for(i=0;i=1;i+)for(j=0;j=2;j+) coutaij; bji=aij; coutendl;coutarrayb:“endl;for(i=0;i=2;i+)for(j=0;j=1;j+) coutbij;coutendl;return0;例55求34二维数组中最大元素值及其行列号#includeusingnamespacestd;intmain()inti,j,row=0,colum=0
14、,max;inta34=5,12,23,56,19,28,37,46,-12,-34,6,8;max=a00;/使max开始时取a00的值for(i=0;i=2;i+)/从第0行第2行 for(j=0;jmax)/如果某元素大于max max=aij;/max将取该元素的值 row=i;/记下该元素的行号i colum=j;/记下该元素的列号j coutmax=max,row=row,colum=columendl; return0;例5.7用选择法对数组中10个整数按由小到大排序#includeusingnamespacestd;intmain()voidselect_sort(intarr
15、ay,intn);/函数声明inta10,i;coutentertheoriginlarray:endl;for(i=0;iai;coutendl;select_sort(a,10);/函数调用,数组名作实参coutthesortedarray:endl;for(i=0;i10;i+)/输出10个已排好序的数 coutai;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(arrayjarrayk)k=j;t=arrayk;ar
16、rayk=arrayi;arrayi=t;习题:6、打印出杨辉三角(要求打印出10行)#include#includeusingnamespacestd;intmain()constintn=11;inti,j,ann;for(i=1;in;i+)aii=1;ai1=1;for(i=3;in;i+)for(j=2;j=i-1;j+)aij=ai-1j-1+ai-1j;for(i=1;in;i+)for(j=1;j=i;j+)coutsetw(5)aij;coutendl;coutendl;return0;C语言部分1.编程计算1,1+2,1+2+3,1+2+3+n各项值的积答案:#includ
17、eusingnamespacestd;voidmain() inti,n,mul=1,sum=0; coutn; for(i=1;i=n;i+) sum+=i; mul*=sum; coutThemultipleis:mulj) returni; else returnj;charmax(charc1,charc2,charc3) charch; if(c1c2) ch=c1; else ch=c2; if(c3ch) ch=c3; returnch;floatmax(floatx,floaty) if(xy) returnx; else returny;doublemax(doublex1,
18、doublex2,doublex3) doubley; if(x1x2) y=x1; else y=x2; if(x3y) y=x3; returny;3.请编写一个函数intfind(chars,chart),该函数在字符串s中查找字符串t,如果找到,则返回字符串t在字符串s中的位置(整数值);否则返回-1。注意:用数组方式及两重循环来实现该函数。答案:intfind(chars,chart) inti,j,slen,tlen; slen=strlen(s); tlen=strlen(t);i=0;j=0; while(islen&j=tlen) returni-tlen+1; else r
19、eturn-1;4.写一程序,将字符串a的所有字符传送到字符串b中,要求每传送3个字符后放一个空格,例如,字符串a为”abcdefg”,则b为”abcdegg”。答案:#include#include#defineN40voidfun(chars,chart)inti=0,j=0;while(si)tj=si; i+; j+; if(i)%3=0) tj=; j+; tj=0;main()charaN,bN;printf(请输入原始字符串a:);gets(a);fun(a,b);printf(加入空格后的字符串b:);puts(b);5.编程判断一个数是否为素数。答案:#include#inc
20、ludeusingnamespacestd;intprime(intm) inti,flag=1; for(i=2;i=int(sqrt(m);i+) if(m%i=0) flag=0; break; returnflag;intmain(void) intn; coutn; if(prime(n) coutn是素数!endl; else coutn不是素数!endl; return0;6.编程打印九九乘法表:11=112=222=413=323=633=9.答案:#includeusingnamespacestd;voidmain() inti,j; for(i=1;i=9;i+) for(
21、j=1;j=i;j+) printf(%1d*%1d=%2d,j,i,i*j);printf(n); 7.请编写一个程序,程序的功能是打印以下图案。* *答案:#includeusingnamespacestd;voidmain() inti,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+) cout; for(j=1;j=2*i-1;j+) cout*; cout=1;i-) for(j=1;j=4-i;j+) cout; for(j=1;j=2*i-1;j+) cout*; coutendl; 8.写出下面程序的运行结果:#includevoidaverage(fl
22、oat*p,intn) inti; floatsum=0; for(i=0;in;i+,p+) sum+=(*p); coutsum/n;voidmain() floatscore22=1,2,3,4; average(*score,4);答案:2.5C+部分1定义一个满足如下要求的Date类。(1)用下面的格式输出日期:日/月/年(2)可运行在日期上加一天操作;(3)设置日期。答案:#includeusingnamespacestd;externinti=0;classDatepublic: set(inty,intm,intd);add();print();private:intyear;intmonth;intday;Date:set(inty,intm,intd)year=y;month=m;day=d;Date:add()switch(month)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1