ImageVerifierCode 换一换
格式:DOCX , 页数:72 ,大小:90.49KB ,
资源ID:30337296      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30337296.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++基础例题100道.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c++基础例题100道.docx

1、c+基础例题100道/* 1 、打印出所有的 水仙花数 。所谓 水仙花数 是指一个三位数,其各位数字立方和等于 该数本身。例如, 153 是一水仙花数,因为 153 = 13 + 53 + 33 。 */ #include void 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 ,

2、因此 6 是完数 。编程序找出 1000 之内的所有完数,并按下面的格式输 出其因子:6 - 1,2,3 */ #include void 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 由键盘

3、输入。 */#includevoid main()double a,sn=0.0,sum=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;

4、coutsum=sum h1=h1endl;/* 5 、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一 个。第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩 下的一半零一个。到第 10 天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。*/ #include void main()int number,i;number=1;for(i=10;i1;i-)number=(number+1)*2; coutnumber=numberendl;第 4 章 函数/* 1 、写一函数用 气泡法 对输入的 10个字符按由小到大的顺序排列。 *

5、/ #includevoid main()int i,j,temp,a10;coutplease input ten numbers: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) */ #include double fun (double,double);void main()double n,x,sum;coutinput n and xnx; sum=fun(n,x);c

6、outPn(x)=sum1)return (2*n1-1)*x1*fun(n1-1,x1)-(n1-1)*fun(n1-2,x1)/n1;/* 3 、编写一函数,由实参传来一字符串,统计此字符串中字母、数字、空格、和其它字符的个数,并在主函数中输入字符串以及输出上述结果。 */#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;

7、while(ai!=0)if (ai=a&ai=A&ai=0 & ai=9) number+;/ 统计数字个数else others+;/ 统计其他数个数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

8、 (ly=1) a1=29;/366 天else a1=28;/365 天 for(i=0;imonth-1;i+) / 当前月之前所有月天数累加和sum+=ai;sum+=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,i

9、nt);int cmultiple(int,int,int);void main()int x,y,d,m;coutxy;d=cdivisor(x,y); m=cmultiple(x,y,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 c

10、multiple(int x2,int y2,int d1)/ 最小公倍数return x2*y2/d1;/ 两数相乘结果除以它们的最大公约数为最小公倍数/* 6 、写一函数,将两个字符串连接。 */#include #include void 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 、写一函数,将一个字符串的元音字母复制到另一个字符串,然后输出。 */ #i

11、nclude#includevoid scpy(char *,char *);void main()const int size=100;char asize=Hello world;char bsize=Net;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 个数字字符, 但每两个数字间空一空格。 如

12、输入 1990,应输出 1 9 9 0 。 */#include#includevoid outs(char a);void main()const int size=10;char asize;cin.getline(a,size);outs(a);void outs(char a10)int i;if(strlen(a)=4)for(i=0;i4;i+)coutai ;else coutinput error.endl;d。要求改为:d、第 5 章 数组/* 1 、将一个数组中的值按逆序重新存放,例如,原来顺序为: a、b、c、c、 b、a。 */#includevoid back(cha

13、r *);void main()char a50=abcdefg;couta=aendl;back(a);#includevoid back(char *p)int i=0;while(*p!=0)p+;/ 把指针定位到字符串末尾i+;/ 统计字符个数cout0;i-)/ 逆序输出void tri(int a1515) int i,j; for(i=0;i15;i+) for(j=0;j=i;j+) if(j=0|j=i)/ 三角形第一列和对角线被赋值为 1 aij=1;else aij=ai-1j-1+ai-1j;/ 算出其余的数组元素 /* 3 、编一程序,将两个字符串连接起来,不要用 s

14、trcat 函数。 */#include#includevoid scat(char *,char *);void main()const int size=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 、打印 魔方阵 。所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相 等

15、。例如:三阶魔方阵:8 1 63 5 74 9 2 要求打印由 1 到 n2 的自然数构成的所有魔方阵。 */ 方法一:输出 N 介魔方阵,但每介只输出一种。#includevoid square(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

16、,j=0;i=n*n;i+,j-,k+)/n 为阶数,从 1 开始给数组赋值if(j=n)/ 当数组行列都越出范围时候,确定数组正确位置 j+=2;k-=1;else if(j=n)/ 当数组列越出范围时候,确定数组正确位置 k-=n;else if(ajk!=0)/ 当数组原位置有数时候,确定数组位置 j+=2;k-=1;ajk=i;/ 方法二:输出 N 介魔方阵所有魔方阵。#include #include #include using namespace std;void printA(int *p,int n)/ 输出这个 n 阶魔方阵coutendl 下面是一个 n 阶魔方阵 :en

17、dl;int i,j;for(i = 0;i n;i+)for(j = 0;j n;j+) coutsetw(4)pij;coutendl;coutendlendl;bool Judge(int *p,int n)/ 判断是否为 n 阶魔方阵int i,j,sum = 0,NowSum = 0;bool YesOrNo = true;for(j = 0;j n;j+)/ 第一行总和sum += p0j;for(i = 1;i n;i+)/ 判断每行总和是否相等NowSum = 0;for(j = 0;j n;j+)NowSum += pij; if(NowSum != sum)YesOrNo

18、= false;goto END;for(i = 0;i n;i+)/ 每列是否相等NowSum = 0;for(j = 0;j n;j+)NowSum += pji; if(NowSum != sum)YesOrNo = false;goto END;NowSum = 0;for(i = 0,j = 0;i n,j = 0,j n;i-,j+)/ 次对角线是否相等NowSum += pij; if(NowSum != sum)YesOrNo = false;goto END;END: return YesOrNo; void combination(int *p,int n,int *a)/

19、 求 m = n*n 个数 (1,2,3 m) 的全排列int m = n*n;static int Num = 0;int *b_val = new intm;int c = 0,k,i,j; b_valc = -1;/ 一维数组首地址的值赋 -1 c0-1 while(b_val0 m) /-1if(+b_valc m) / 分别从 0 开始累加每个元素值,并限制不超出最大阶数/b00 10 11 20 21 22.66.70.77 80.88判断魔方 89 012345678/ 7880.87 判断魔方 88 89 012345687/ 67.70.76 88 012345768/ 01

20、2345786/ 012345867 ./ 876543210for(k = 0;k c;k+) / 是否与前面数字重复,如有重复元素跳出,否则使 K下标等于 C 下标if(b_valk = b_valc) break;if(k = c)/ 如果没有重复元素,就可以确定当前元素值,并继续排列下一个下标的数组元素 if(c+1 m) /1 2 3.7 8 如果不满足条件,则生成了一组排列方式,否则继续排列下一个元素/ 8 +c; /1 2 3.7 8 b_valc = -1;/ continue;else / 生成了一组排列方式k = -1;for(i = 0;i n;i+)for(j = 0;

21、j n;j+)pij = ab_val+k; /a0-a8 / 判断是否为 n 阶魔方阵if(Judge(p,n)printA(p,n);elsec-;delete b_val;void evaluate(int *p,int n)/ 给 n 阶方阵的元素赋值int i;int *AllNum = new int3*3;for(i = 1;i = n*n;i+)AllNumi - 1 = i;combination(p,n,AllNum);delete AllNum;void main()int i,n,*a;string s;do/ 输入 n 阶方阵的阶数 ncouts;if(!strcmp

22、(s.c_str(),e) | !strcmp(s.c_str(),E)break;else if(s.find_first_not_of(0123456789) != string:npos)endl;cout 请输入有效的数字,不能含有非数字的字符。 continue;elsen = atoi(s.c_str();if(n1)cout=1。endl;continue;/ 分配内存a = new int*n;for(i = 0; i n; i+)ai = new intn;cout 正在运算,请等待。 。 endl;/ 给 n 阶方阵的元素赋值evaluate(a,n); cout 运算结束

23、! endl;for(i = 0; i n; i+)delete ai;delete a;while(1);return;/* 5 、求一个 3x3 矩阵对角线元素之和。 */#includeint dia(int a3);void main()int i,j,sum,a33=2,3,5,6,2,3,1,9,0;couta= ;for(i=0;i3;i+)for(j=0;j3;j+) coutaij;coutendl ;sum=dia(a); coutnsum=sumendl;int dia(int a33)int i,j,sum=0;for(i=0;i3;i+)/ 主对角线之和for(j=i;j=i;j+)sum+=aij;for(j=0;j3;j+)/ 另一个对角线之和 for(i=2-j;i=2-j;i

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1