《c++基础练习题100道.docx》由会员分享,可在线阅读,更多相关《c++基础练习题100道.docx(43页珍藏版)》请在优知文库上搜索。
1、*1、打印出所有的“水仙花数“。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=13+53+33o*/#includevoidmain()(inti,a=0,b=0,c=0;for(i=100;i1000;i+)(a=i%10;b=i10%10;c=i100%10;if(a*a*a+b*b*b+c*c*c=i)cout,i=i1,2,3*/#includevoidmain()(inti,j,sum=0za50,k,t;for(i=l;i=1000;i+)(sum=0;for(j=l;ji;j+)(if(i%j=0)(sum+=j;ak+=j;
2、)t=k;if(sum=i)(couti,;for(k=0;kt;k+)(coutak;if(kt-l)cout,;coutendl;)k=0;)*3、求Sn=a+aa+aaa+.+aa.a之值,其中a是一个数字。例如:2+22+222+.+22222(此时n=5),n由键盘输入。*/#includevoidmain()(doublearsn=O.O,sum=O.O;intn,i;couta;coutn;sn=a;sum=a;for(i=2;i=n;i+)(sum=sum*10+a;sn+=sum;)cout,Sn=snendl;)*4、一球从100米高度自由落下,每次落地后反跳回原高度的一半
3、,再落下。求它在第10次落地时,共经过了多少米第10次反弹多高*/#includevoidmain()(doublehl=100zh2=100,sum=0.0;inti;for(i=l;i=10;i+)(sum+=h2;hl=hl2.0;h2=hl*2;cout,sum=,sum,hl=,hlendl;*5、猴子吃桃问题。猴子第一天摘下假设干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。*/#includevoidmain()(intnu
4、mber,i;number=l;for(i=10;il;i-)number=(number+1)*2;coutnnumber=,numberendl;)第4章函数*K写一函数用“气泡法”对输入的10个字符按由小到大的顺序排列。*/#includevoidmain()inti,j,temp,a10;cout,pleaseinputtennumbers:n;for(i=0;iai;for(i=0;i10;i+)/每循环一次确定数组中一个数的位置for(j=i+l;jaj)(temp=aj;aj=ai;ai=tem;)cout,resortresult=;for(i=0;i10;i+)coutai1
5、)*/#includedoublefun(double,double);voidmain()(doublen,rsum;cout,inputnandx,nx;sm=fun(n,x);cout,P,nn(,x,*),=,suml)return(2*nl-l)*xl*fun(nl-lzxl)-(nl-l)*fun(nl-2,xl)nl;)*3、编写一函数,由实参传来一字符串,统计此字符串中字母、数字、空格、和其它字符的个数,并在主函数中输入字符串以及输出上述结果。*/#includevoidjudge(chara);voidmain()(constintsize=100;charasize;cin
6、.getline(azsize);judge(a);)voidjudge(chara100)判断字符类型(intIetter=Oznumber=0zOthers=Ozi=0;while(ai!=0,)(if(ai=,a,ai=,A,&ai=,O&ai=,9,)number+;统计数字个数elseOtherS+;统计其他数个数i+;coutletter=letternumber=number,others=,othersendl;)*4、给出年、月、日,计算该日是该年的第几天。*/#includeintlead(int);voidmain()(intly,yearzmonth,date,i,su
7、m=0;coutyearmonthdate;inta12=31,0,31,30,31z30,31,31,30,31,30,31);Iy=Iead(year);if(Iy=I)al=29;/366天elseal=28;/365天for(i=0;imonth-l;i+)/当前月之前所有月天数累加和sum+=ai;sum+=date;加上当前月天数COUt”你输入的日期是当年的第”sum”天,)intlead(inty)/判断闰年(if(y%4=0&y%100!=0)(y%400=0)return1;/是闰年elsereturn0;不是闰年)/*5、写两个函数,分别求两个整数的最大公约数和最小公倍数
8、,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。*/#includeintCdivisor(int,int);intCmultiple(intzint,int);voidmain()(intx,y,d,m;coutxy;d=cdivisor(x,y);m=cmultiple(x,y,d);coutcommondivisoris,dendlucommonmultipleis,mendl;)intCdivisor(intxlzintyl)最大公约数(intr,temp;if(xlyl)(tem=xl;xl=yl;yl=temp;)WhiIe(x:Uyl)/当较大数除以较小数余数等于O时,
9、较小数为最大公约数(r=xl%yl;xl=yl;yl=r;)returnyl;intCmultiple(intx2,inty2zintdl)最小公倍数(returnx2*y2dl;/两数相乘结果除以它们的酿大公约数为最小公倍数)/*6、写一函数,将两个字符串连接。*/#include#includevoidmain()(constintsize=100;charasize,bsize;coutinputtwostring:endl;cin.getline(a,size);cin.getline(bzsize);strcat(a,b);cout,a=,aendl;)*7、写一函数,将一个字符串的
10、元音字母复制到另一个字符串,然后输出。*/#include#includevoidscy(char*,char*);voidmain()constintsize=100;charasize=nHelloworld,;charbsize=Net,;cout,a=,ab=,bendl;scpy(a,b);cout,a=,aendl;)voidscpy(char*p,char*q)(while(*q!=f0,)if(*q=,a,II*q=A,*q=,e,*q=,E,I*q=,i,II*q=,I,II*q=,o*q=,0,II*q=,u,II*q=U,)*p+=*q;q+;)*8、写一函数,输入一个四
11、位数字,要求输出这4个数字字符,但每两个数字间空一空格。如输入1990,应输出“199Omo*/#include#includevoidouts(chara);voidmain()constintsize=10;charasize;cin.getline(azsize);outs(a);)voidouts(chara10)(inti;if(strlen(a)=4)for(i=0;i4;i+)coutai,;elsecout,inpterror.endl;)第5章数组*1、将一个数组中的值按逆序重新存放,例如,原来顺序为:a、b、c.do要求改为:d、c、b、ao*/#includevoidback(char*);voidmain()(chara50=abcdefg;cout,a=,aendl;back(a);)#includevoidback(char*p)inti=0;while(*p!=,0,)(P+;/把指针定位