c++基础例题100道(37页).doc
《c++基础例题100道(37页).doc》由会员分享,可在线阅读,更多相关《c++基础例题100道(37页).doc(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-c+基础例题100道-第 37 页/* 1、打印出所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153 = 13 + 53 + 33。 */#includevoid main()int i, a=0, b=0, c=0;for(i=100;i1000;i+)a=i%10;b=i/10%10;c=i/100%10;if(a*a*a+b*b*b+c*c*c=i)couti=iendl;/* 2、一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3,而6 = 1 + 2 + 3,因此6是完数。编程序找出1000之内的
2、所有完数,并按下面的格式输出其因子:6 -1,2,3 */#includevoid main()int i,j,sum=0,a50,k,t;for(i=1;i=1000;i+)sum=0;for(j=1;ji;j+)if(i%j=0)sum+=j;ak+=j;t=k;if(sum=i)couti;for(k=0;kt;k+)coutak;if(kt-1)cout,;coutendl;k=0;/* 3、求Sn=a+aa+aaa+aaa之值,其中a是一个数字。例如:2+22+222+22222(此时n=5),n由键盘输入。*/#includevoid main()double a,sn=0.0,s
3、um=0.0;int n,i;couta;coutn;sn=a;sum=a;for(i=2;i=n;i+)sum=sum*10+a;sn+=sum;coutSn=snendl;/* 4、一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过了多少米?第10次反弹多高?*/#includevoid main()double h1=100,h2=100,sum=0.0;int i;for(i=1;i=10;i+)sum+=h2;h1=h1/2.0;h2=h1*2;coutsum=sum h1=h1endl;/* 5、猴子吃桃问题。猴子第一天摘下若干个桃子,当
4、即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。*/#includevoid main()int number,i;number=1;for(i=10;i1;i-)number=(number+1)*2;coutnumber=numberendl;第4章 函数/* 1、写一函数用气泡法对输入的10个字符按由小到大的顺序排列。*/#includevoid main()int i,j,temp,a10;coutplease input ten numbe
5、rs:n;for(i=0;iai;for(i=0;i10;i+) /每循环一次确定数组中一个数的位置for(j=i+1;jaj)temp=aj;aj=ai;ai=temp;coutresort result=;for(i=0;i10;i+)coutai 1) */#includedouble fun (double,double);void main()double n,x,sum;coutinput n and xnx;sum=fun(n,x);coutPn(x)=sum1)return (2*n1-1)*x1*fun(n1-1,x1)-(n1-1)*fun(n1-2,x1)/n1;/* 3
6、、编写一函数,由实参传来一字符串,统计此字符串中字母、数字、空格、和其它字符的个数,并在主函数中输入字符串以及输出上述结果。 */#includevoid judge(char a);void main()const int size=100;char asize;cin.getline(a,size);judge(a);void judge(char a100)/判断字符类型int letter=0,number=0,others=0,i=0;while(ai!=0)if (ai=a&ai=A&ai=0 & ai=9) number+;/统计数字个数else others+;/统计其他数个数
7、i+;coutletter=letter number=number others=othersendl;/* 4、给出年、月、日,计算该日是该年的第几天。 */#includeint lead(int);void main()int ly,year,month,date,i,sum=0;coutyearmonthdate;int a12=31,0,31,30,31,30,31,31,30,31,30,31;ly=lead(year);if (ly=1)a1=29;/366天else a1=28;/365天for(i=0;imonth-1;i+) /当前月之前所有月天数累加和sum+=ai;s
8、um+=date; /加上当前月天数cout你输入的日期是当年的第sum天;int lead(int y)/判断闰年if(y%4=0&y%100!=0)|(y%400=0) return 1;/是闰年else return 0;/不是闰年/* 5、写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。 */#includeint cdivisor(int,int);int cmultiple(int,int,int);void main()int x,y,d,m;coutxy;d=cdivisor(x,y);m=cmultiple(x,y,
9、d);coutcommon divisor is dendlcommon multiple is mendl;int cdivisor(int x1,int y1)/最大公约数int r,temp;if (x1y1)temp=x1;x1=y1;y1=temp;while(x1%y1)/当较大数除以较小数余数等于0时,较小数为最大公约数r=x1%y1;x1=y1;y1=r;return y1;int cmultiple(int x2,int y2,int d1)/最小公倍数return x2*y2/d1;/两数相乘结果除以它们的最大公约数为最小公倍数/* 6、写一函数,将两个字符串连接。 */#
10、include#includevoid main()const int size=100;char asize,bsize;coutinput two string:endl;cin.getline(a,size);cin.getline(b,size);strcat(a,b);couta=aendl;/* 7、写一函数,将一个字符串的元音字母复制到另一个字符串,然后输出。 */#include#includevoid scpy(char *,char *);void main()const int size=100;char asize=Hello world;char bsize=Net;
11、couta= ab= bendl;scpy(a,b);couta= aendl;void scpy(char *p,char *q)while(*q!=0)if (*q=a|*q=A|*q=e|*q=E|*q=i|*q=I|*q=o|*q=O|*q=u|*q=U)*p+=*q;q+;/* 8、写一函数,输入一个四位数字,要求输出这4个数字字符,但每两个数字间空一空格。如输入1990,应输出1 9 9 0。 */#include#includevoid outs(char a);void main()const int size=10;char asize;cin.getline(a,size)
12、;outs(a);void outs(char a10)int i;if(strlen(a)=4)for(i=0;i4;i+)coutai ;else coutinput error.endl;第5章 数组/* 1、将一个数组中的值按逆序重新存放,例如,原来顺序为:a、b、c、d。要求改为:d、c、b、a。 */#includevoid back(char *);void main()char a50=abcdefg;couta=aendl;back(a);#includevoid back(char *p)int i=0;while(*p!=0)p+;/把指针定位到字符串末尾i+;/统计字符
13、个数cout0;i-)/逆序输出p-;cout*p;coutendl;/* 2、打印出杨辉三角形(要求打印出前15行)。(杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。) */#includevoid tri(int a15);void main()int i,j,a1515;tri (a);couta= ;for(i=0;i15;i+)/遍历整个数组for(j=0;j=i;j+)cout=1&aij=9)/当输出个位数之后输出4个空格保持整齐cout=10&aij=99)/当输出十位数之后输出3个空格保持整齐cout=100&aij=999)/
14、当输出百位数之后输出2个空格保持整齐cout ;else cout ;/当输出百位数之后输出1个空格保持整齐coutendl ;/每行输出结束后换行void tri(int a1515)int i,j;for(i=0;i15;i+)for(j=0;j=i;j+)if(j=0|j=i)/三角形第一列和对角线被赋值为1aij=1;else aij=ai-1j-1+ai-1j;/算出其余的数组元素/* 3、编一程序,将两个字符串连接起来,不要用strcat函数。 */#include#includevoid scat(char *,char *);void main()const int size=
15、100;char asize=Hello;char bsize=Bye;couta=a b=bendl;scat(a,b);couta=a after link a and bendl;void scat(char *p,char *q)while(*p!=0)/确定数组a的插入位置p+;while(*q!=0)*p=*q;p+;q+;/* 4、打印魔方阵。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如:三阶魔方阵:8 1 63 5 74 9 2 要求打印由1到n2的自然数构成的所有魔方阵。 */方法一:输出N介魔方阵,但每介只输出一种。#includevoid squa
16、re(int a10,int k,int n);void main()int n,i,j,k,a1010=0;coutinput an odd number:n;k=n/2;/确定第一个数列数square(a,k,n);for(i=0;in;i+)for(j=0;jn;j+)couttaij;coutendl;void square(int a10,int k,int n)int i,j;for(i=1,j=0;i=n*n;i+,j-,k+)/n为阶数,从1开始给数组赋值if(j=n)/当数组行列都越出范围时候,确定数组正确位置j+=2;k-=1;else if(j=n)/当数组列越出范围时候
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 基础 例题 100 37
限制150内