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

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7606280.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道c+基础例题100道/* 3、求Sn=a+aa+aaa+aaa之值,其中a是一个数字。例如:2+22+222+22222(此时n=5),n由键盘输入。*/#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次反弹多高?*/#includevoi

2、d 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、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。*/#includevoid main() int number,i; number=1; for(i=10;i1;i-) n

3、umber=(number+1)*2; coutnumber=numberendl;第4章 函数/* 1、写一函数用气泡法对输入的10个字符按由小到大的顺序排列。*/#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) */#includedoub

4、le 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、编写一函数,由实参传来一字符串,统计此字符串中字母、数字、空格、和其它字符的个数,并在主函数中输入字符串以及输出上述结果。 */#includevoid judge(char a);void main() const int size=100; char asize; cin

5、.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+;/统计其他数个数 i+; coutletter=letter number=number others=othersendl;/* 4、给出年、月、日,计算该日是该年的第几天。 */#includeint lead(int);void main() int ly,year,mo

6、nth,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; sum+=date; /加上当前月天数 cout你输入的日期是当年的第sum天;int lead(int y)/判断闰年 if(y%4=0&y%100!=0)|(y%400=0) return 1;/是闰年 else return 0;/不

7、是闰年/* 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,d); coutcommon divisor is dendlcommon multiple is mendl;int cdivisor(int x1,int y1)/最大公约数 int r,temp; if (x1y1)

8、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、写一函数,将两个字符串连接。 */#include#includevoid main() const int size=100; char asize,bsize; coutinput two string:endl; cin.getl

9、ine(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; couta= ab= bendl; scpy(a,b); couta= aendl;void scpy(char *p,char *q) while(*q!=0) if (*q=

10、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); outs(a);void outs(char a10) int i; if(strlen(a)=4) for(i=0;i4;i+) coutai ; el

11、se 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+;/统计字符个数 cout0;i-)/逆序输出 p-; cout*p; coutendl;/* 2、打印出杨辉三角形(要求打印出前15行)。(杨

12、辉三角最本质的特征是,它的两条斜边都是由数字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)/当输出百位数之后输出2个空格保持整齐 cout ; else cout ;/当输出百位数之后输出1个空格保持

13、整齐 coutendl ;/每行输出结束后换行 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、编一程序,将两个字符串连接起来,不要用strcat函数。 */#include#includevoid scat(char *,char *);void main() const int size=100; char asize=Hello; char bsize=Bye; cou

14、ta=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 square(int a10,int k,int n);void m

15、ain() 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)/当数组列越出范围时候,确定数组正确位置 k-=n;

16、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阶魔方阵:endl; 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阶魔方阵 in

17、t 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 = false; goto END; for(i = 0;i n;i+)/每列是否相等 NowSum = 0; for(j = 0;j n;j+) NowSum += pji; if(NowSum != sum) YesOrNo =

18、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)/求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 = -

19、1;/一维数组首地址的值赋-1 c0-1 while(b_val0 m) /-1 if(+b_valc m) /分别从0开始累加每个元素值,并限制不超出最大阶数/b00 10 11 20 21 22.66.70.77 80.88 判断魔方 89 012345678/ 78 80.87 判断魔方 88 89 012345687/ 67.70.76 88 012345768/ 012345786/ 012345867 ./ 876543210 for(k = 0;k c;k+) /是否与前面数字重复,如有重复元素跳出,否则使K下标等于C下标 if(b_valk = b_valc) break; i

20、f(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;j n;j+) pij = ab_val+k; /a0-a8 /判断是否为n阶魔方阵 if(Judge(p,n) printA(p,n); else c-; delete b_val;void evaluate(in

21、t *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阶方阵的阶数n couts; if(!strcmp(s.c_str(),e) | !strcmp(s.c_str(),E) break; else if(s.find_first_not_of(0123456789) != string:npos) cout请输入有效的数字,不能含有非数字的字符。endl; continue; else n = 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运算结束!endl;

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

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