版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c+ 与数据结构基础简明教程课后习题答案1-7-1 / 输出一个数的10 倍#include using namespace std; int main() couta; coutresult=a*10endl; return 0; 1-7-2 / 输出两个数中的较小的#include using namespace std; int main() double x,y,min; coutplease input two numbersxy; min=(xy?y:x); coutthe smaller is minendl; return 0; 1-7-3 / 输入半径计算周长和面积#incl
2、ude using namespace std; int main() coutrad; double c,s; c=2*3.14*rad; s=3.14*rad*rad; cout 周长是 cendl; cout 面积是 sendl; return 0; 1-7-4 / 将 10000 秒化成小时分钟秒#include using namespace std; int main() int hour,min,second; hour=10000/3600; min=(10000%3600)/60; second=10000-hour*3600-60*min; couthourhoursmin
3、minutessecondsecondsendl; return 0; 1-7-5 / 将一个三位数倒叙输出#include using namespace std; int main() int num,num_bai,num_shi,num_ge; coutnum; num_bai=num/100; num_shi=(num-num_bai*100)/10; num_ge=num-num_bai*100-num_shi*10; coutnum_geendl; coutnum_shiendl; coutnum_baiendl; return 0; 2-3 / 简单的输入输出#include
4、using namespace std; int main() double y,n; coutn; if (n0) y=n+1; if (n0) y=n*n; if (n=0) y=0; coutthe result is: y; return 0; 2-4 / 输出学生学号和对应的成绩等级#include using namespace std; int main() double fenshu; int xuehao; char dengji; int i; for (i=1;i=10;i+) onerror:coutfenshu; if (fenshu=90&fenshu=80
5、&fenshu=600&fenshu=0&fenshu60) dengji=d; if (fenshu0) cout100) couterror; goto onerror; coutthe id isiendl; coutthe score isdengjiendl; return 0; 2-5 / 判断输入字符类别#include using namespace std; int main() char zifu; int ascii; coutzifu; ascii=zifu; if (ascii=48&ascii=57) cout=97&asci
6、i=122) cout=65&ascii=90) cout 大写字母 n; goto end; cout其他字符 ; coutendl; end: return 0; 2-6 / 求圆周率的近似值#include #include using namespace std; int main() int xishu=-1; double danshu=1.0; int i=1; double sifenzhipi=0; do xishu=xishu*(-1); danshu=1.0/(2*i-1); sifenzhipi=sifenzhipi+xishu*danshu; i+; whil
7、e(danshu=0.000001); coutsetprecision(15)sifenzhipi*4endl; return 0; 2-7 / 输出斐波那契数列前40 个数,以8*5 的格式输出#include #include using namespace std; int main() int b=2; int feibo1=0; int feibo2=1; coutsetw(9)0setw(9)1; for(int i=1;i=38;i+) int a=feibo2; feibo2=feibo1+feibo2; feibo1=a; coutsetw(9)feibo2; b=b+1;
8、 if(b%8=0) coutendl; return 0; 2-8 / 统计输入的元音字母个数#include using namespace std; int main() char zimu; int a,e,i,o,u; a=e=u=i=o=0; begin:cinzimu; switch(zimu) case a :a+;break; case e :e+;break; case i :i+;break; case o :o+;break; case u :u+;break; case # :goto end; goto begin; end:coutaendleendliendlo
9、endluendla+e+i+o+u; return 0; 2-10 / 计算 5!+6!+7! #include using namespace std; int main() int i,j; int sum=0; for (i=5;i=7;i+) int jiecheng=1; for (j=1;j=i;j+) jiecheng=jiecheng*j; sum=sum+jiecheng; coutsum; return 0; 2-11 / 从 2 开始 100 个素数#include using namespace std; int main() int num=1; int sushu
10、=0; start:; num+; for (int i=2;i=num;i+) if(num%i=0) break; if (i=num) coutnumendl; sushu+=1; if(sushu!=100) goto start; return 0; 2-12 / 百钱买百鸡问题#include using namespace std; int main() int x,y,z; for(x=0;x=100;x+) for(y=0;y=100;y+) for(z=0;z=100;z+) if (x+y+z=100&5*x+3*y+z/3=100&z%3=0) cout
11、xtytzendl; return 0; 2-13 #include using namespace std; int main() int a,b,c,d,e; c=0; cina; cout 输入 aendl该数的三次方是a个连续奇数 ; b=1; e=a*a*a; while (c!=e) d=b; c=0; for (int i=1;i=a;i+) c=c+d; d=d+2; b=b+2; /coutb-2; int f=b-4; for (int j=1;j=a;j+) f=f+2; coutf ; cout 的和 n; return 0; 2-14 / 输出四方 *形状#inclu
12、de using namespace std; int main() int i,j; for (i=1;i=9;i+) j=1; for(j=1;j=6&i+j=14&j-i=4&i-j=4) cout*; else cout ; coutendl; return 0; 3-1-1 / 向数组 a 中输入 10 个整数,求其中的最大值,最小值和10 个数的算术平均值#include using namespace std; int main() int a10; for(int i=0;iai; int max=a0,min=a0,sum=a0; for(int j=
13、0;jaj?max:aj); min=(minaj?min:aj); double ave=sum/10.00; coutmaxendlminendlaveendl; return 0; 3-1-2 #include using namespace std; int main() int score10; int sum=0,a=0,b=0; for(int i=0;iscorei; sum=sum+scorei; double ave=sum/10.0; for(int j=0;jave) a+; if(scorej60) b+; cout 成绩大于平均值的人数是aendl成绩小于60 的人
14、数 bendl; return 0; 3-3-1 #include using namespace std; int main() int a10,sum=0,min,max; double ave; int *ptoa=a; for (int i=0;i*(a+i); sum+=*(a+i); min=*(a); max=*(a); for (int j=1;j=9;j+) min=(min*(a+j)?max:*(a+j); coutmaxendlminendl; ave=sum/10.0; coutaveendl; return 0; 3-3-2 #include using names
15、pace std; int main() int a10,sum=0,j=0,c=0; / 定义数组a,sum 是各学生成绩之和,j 是小于 60 的个数, c 是大于平均值的个数double ave=0; / 定义平均值int *ptoa=a; / 使用指针for (int i=0;i*(ptoa+i); sum+=*(ptoa+i); if (*(ptoa+i)60) j+; ave=sum/10.0; / 计算平均值/coutaveendl; / 可以输出平均值for (int k=0;kave) c+; coutcendlj; return 0; 3-3-3 #include usin
16、g namespace std; int main() char string100; cinstring; int i=0,an=0,in=0; cout 您输入的字符串; while (stringi!=0) if(stringi=a) an+; if(stringi=i) in+; coutstringi; i+; coutendlanendlinendl; return 0; 3-3-3a #include using namespace std; int main() char a100; / 定义存放字符串的数组char *ptoa=a; / 使用指针int i=0,an=0,in
17、=0; /an ,in 分别为 a, i 的个数cina; while (*(ptoa+i)!=0) /a 【 i】 cout*(ptoa+i); switch (*(ptoa+i) / 判断 case a : an+;break; case i : in+;break; i+; coutendlanendlin; return 0; 3-3-4 #include using namespace std; int main() int a33; for (int i=0;i=2;i+) for(int j=0;j*(*(a+i)+j); cout*(*(a+0)+0)+*(*(a+1)+1)+
18、*(*(a+2)+2)endl; cout*(*(a+0)+2)+*(*(a+1)+1)+*(*(a+2)+0)endl; return 0; 3-3-5v1 #include using namespace std; int main() int a11=2,4,5,8,12,14,16,18,20,30,0,b,i,m,j; cinb; a10=b; if (b30) goto end2; for(i=0;ib) m=i+1; goto end; end:; for (j=10;j=m+1;j-) aj=aj-1; am=b; end2:; for (int k=0;k=10;k+) co
19、utakendl; return 0; 3-3-5v2 #include using namespace std; int main() int i,j,temp; int a11=2,4,5,8,12,14,16,18,20,30; cina10; for (i=0;i=10;i+) for(j=0;jaj+1) temp=aj+1; aj+1=aj; aj=temp; for (int k=0;k=10;k+) coutak ; coutn; return 0; 3-3-5v3 #include using namespace std; int main() int a11=2,4,5,8
20、,12,14,16,18,20,30,num,i,j; coutnum; if (numa9) a10=num; else for (i=0;inum) for(j=9;j=i;j-) aj+1=aj; ai=num; break; for (i=0;i=10;i+) coutai ; return 0; 3-3-5final #include void main() int a11=2,4,5,8,12,14,16,18,20,30,b,i=0,j=10; cinb; while(aib&ii) aj=aj-1; j-; ai=b; cout 输入插入后的结果:; for(i=0;i
21、11;i+)coutai ; coutendl; 3-3-6 #include using namespace std; int main() int a53,s5=0,0,0,0,0,temp; for (int i=0;i=4;i+) cout请输入第 i+1行的数据 endl; for (int j=0;j*(*(a+i)+j); *(s+i)+=*(*(a+i)+j); /* / 注释掉的部分可以输出每行数据之和for (int k=0;k=4;k+) cout*(s+k)endl; */ for (int m=0;m=4;m+) for (int n=0;n*(s+n+1) temp
22、=*(s+n+1); *(s+n+1)=*(s+n); *(s+n)=temp; for (int l=0;l=4;l+) coutendl*(s+l); coutendl; system(pause); return 0; 4-3 #include using namespace std; int fun1(int x,int y); int fun2(int x,int y); int fun3(int x,int y); int fun4(int x,int y); int main() int a,b; coutab; cout 两个数的和的平方是fun1(a,b)endl; cout
23、 两个数的平方和是fun2(a,b)endl; cout 两个数的差的平方是fun3(a,b)endl; cout 两个数平方的差是fun4(a,b)endl; return 0; int fun1(int x,int y) int z=(x+y)*(x+y); return z; int fun2(int x,int y) int z=x*x+y*y; return z; int fun3(int x,int y) int z=(x-y)*(x-y); return z; int fun4(int x,int y) int z=x*x-y*y; return z; 4-4 #include
24、using namespace std; double jc(int x); int sm(int x); int main() int m,n,s2; double s1; cinmn; s1=jc(m)/(jc(n)*jc(m-n); s2=sm(m)-sm(n); couts1endls2; return 0; double jc(int x) double s=1; for (int i=1;i=x;i+) s*=i; return s; int sm(int x) int s=0; for (int i=1;i=x;i+) s+=i; return s; 4-6 #include #
25、include using namespace std; double jxf(int n); double txf(int n); double f(double x); /const pi=3.1415927; int main() int n; double y1,y2; cinn; y1=jxf(n); y2=txf(n); couty1endly2; return 0; double jxf(int n) double sum=0,s; for (int i=0;i=n-1;i+) s=(i*3.14)/n; sum+=(3.14/n)*f(s); return sum; doubl
26、e txf(int n) double sum=0,s1,s2; for (int i=0;i=n-1;i+) s1=i*3.14/n; s2=(i+1)*3.14/n; sum+=3.14/n*(f(s1)+f(s2); sum/=2.0; return sum; double f(double x) double y; y=sin(x)+cos(x); return y; 4-6v1 #include #include using namespace std; double jxf(int n); double txf(int n); double f(double x); const p
27、i=3.1415927; int main() int n; double y1,y2; cinn; y1=jxf(n); y2=txf(n); if (abs(y1-2)abs(y2-2) cout矩形法 ; else cout梯形法 ; return 0; double jxf(int n) double sum=0; for (int i=0;i=n-1;i+) sum+=pi/n*f(i*pi/n); return sum; double txf(int n) double sum=0; for (int i=0;i=n-1;i+) sum+=pi/n*(f(i*pi/n)+f(i+1
28、)*pi/n); sum/=2; return sum; double f(double x) double y; y=sin(x)+cos(x); return y; 4-6v2error #include #include using namespace std; double jxf(int n); double txf(int n); double f(double x); const pi=3.1415927; int main() int n; double y1,y2; cinn; y1=jxf(n); y2=txf(n); if (abs(y1-2)abs(y2-2) cout
29、矩形法 ; else cout梯形法 ; return 0; double jxf(int n) double sum=0; for (int i=0;i=n-1;i+) sum+=pi/n*f(i*pi/n); return sum; double txf(int n) double sum=0; for (int i=0;i=n-1;i+) sum+=pi/n*(f(i*pi/n)+f(i+1)*pi/n); sum/=2; return sum; double f(double x) double y; y=sin(x)+cos(x); return y; 4-7 #include us
30、ing namespace std; int my(int x,int y); int mb(int x,int y); int main() int a,b,max,min; cinab; max=my(a,b); min=mb(a,b); coutmaxendlminy?y:x);i=1;i-) if (x%i=0&y%i=0) return i; int mb(int x,int y) for (int i=(xy?x:y);i=1;i+) if (i%x=0&i%y=0) return i; 4-11 #include using namespace std; void
31、 delchar(char *s1,char s2); int main() char s1100; char s2; cins1s2; delchar(s1,s2); return 0; void delchar(char *s1,char s2) for (int i=1;*(s1+i)!=0;i+) if (*(s1+i)=s2) for (int j=0;*(s1+i+j)!=0;j+) *(s1+i+j)=*(s1+i+j+1); couts1; 4-12 #include #include using namespace std; int check(int a,int b,int
32、 c); double s(double a,double b,double c); int main() double a,b,c; cinabc; if (check(a,b,c) couts(a,b,c); else coutc&abs(a-b)c) return 1; else return 0; double s(double a,double b,double c) double p=(a+b+c)/2; double area=sqrt(p*(p-a)*(p-b)*(p-c); return area; 4-13 #include #include using names
33、pace std; fun (int n,int k); pow10 (int x); int main() int n,k; cinnk; coutfun(n,k)n|k1) return 0; else int s; s=n/pow10(k-1); s=s%10; return s; int pow10 (int x) int s=1; for (int i=1;i=x;i+) s*=10; return s; 4-14 #include using namespace std; double ave(int p4,int i); int main() int a54; for (int
34、i=0;i=4;i+) for (int j=0;jaij; for (i=0;i=4;i+) coutave(a,i)endl; system(pause); return 0; double ave(int p4,int i) double sum=0; for(int j=0;j=3;j+) sum+=pij; sum/=4; return sum; 4-15 #include using namespace std; int find(char str,char a); int main() char str100,a; cinstra; coutfind(str,a)+1; syst
35、em(pause); return 0; int find(char str,char a) for (int i=0;stri!=0;i+) if (stri=a) return i; break; if (stri=0) return -1; 4-16 /4_16 #include using namespace std; int change (int n,int r,int *a); int main() coutplease input n and r(2=r=16)nr; int i=change(n,r,a); for (int j=i-1;j=0;j-) switch (aj)
36、 case 11:couta;break; case 12:coutb;break; case 13:coutc;break; case 14:coutd;break; case 15:coute;break; default: coutaj; system(pause); return 0; int change (int n,int r,int *a) int i=0; while (n!=0) *(a+i)=n%r; n/=r; i+; return i; 4-17 #include using namespace std; const int n=5; int init(int an)
37、; void fun1(int an); void fun2(int an); void fun3(int an,int sum); void fun4(int an); int main() int sum=0; int a2n; sum=init(a); cout(1)endl; fun1(a); cout(2)endl; fun2(a); cout(3)endl; fun3(a,sum); cout(4)endl; fun4(a); return 0; int init(int an) int sum=0; for (int i=0;ia1i; sum+=a1i; return sum;
38、 void fun1(int an) for (int i=0;i85) couta0i a1iendl; void fun2(int an) for (int i=0;i=n-1;i+) if (a1i60) couta0i a1iendl; void fun3(int an,int sum) int aveplus=0; double ave=sum/n; for (int i=0;i=ave) aveplus+; coutaveplusendl; void fun4(int an) for (int i=0;i=n-1;i+) for (int j=0;ja1j+1) int temp1
39、=a1j+1; a1j+1=a1j; a1j=temp1; int temp2=a0j+1; a0j+1=a0j; a0j=temp2; for (i=0;i=n-1;i+) couta0i a1iendl; 5-5 / 计算当前日期是一年之中的第几天#include using namespace std; / 定义日期类class date private: /y 年 m 月 d 天 nod 一年中的第几天ly 是否是闰年int y,m,d,nod,ly; public: date (int ioy=2009,int iom=5,int iod=1) y=ioy; m=iom; d=iod
40、; int checkdate(); int issleapyear(); void print(); int numberofdays(); ; / 是否是闰年int date:issleapyear() return ly=(y%400=0)|(y%4=0&y%100!=0); / 计算一年之中的第几天int date:numberofdays () int a213=0,31,29,31,30,31,30,31,31,30,31,30,31,0,31,28,31,30,31,30,31,31,30,31,30,31; nod=0; for (int i=0;i0&m0&a
41、mp;d=31); / 输出void date:print () couty年m月d日 是该年的第 numberofdays ()天endl; / 主函数int main() date d1; date d2(1991,5,2); int y,m,d; coutymd; date d3(y,m,d); d1.print(); d2.print(); if(d3.checkdate() d3.print(); else couterror; system(pause); system(cls); system(pause); return 0; 5-6 / 判断 15,31 是否偶数,素数#include using namespace std; / 定义整数类class interger private: i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年护士资格考试法律知识巩固习题
- 2025-2026年贵州省北师大版高中语文古诗文鉴赏专项训练试卷
- 2025年北京市人教版初中数学下册第6章同步练习题
- 2025-2026年交通安全法规与驾驶心理测试卷
- 2026年天津市北师大版高中生物必修第一册细胞分裂知识点巩固习题
- 2025-2026年北师大版九年级英语上册第6单元语法测试卷
- 2025-2026年四川省人教版初中物理上册第4章单元测试卷
- 2025-2026年重庆市苏教版二年级语文上册第5单元课后练习题
- GABA受体亚型选择性激动剂研发管线资本化路径
- ESG合规要求对串激电机整流子重金属工艺项目的融资约束分析
- 2026年秋季学期新交际英语(新版)一年级上册教学计划及进度表
- 2026广东珠海市轨道交通局招聘2人笔试参考题库及答案详解
- 河道采砂后砂坑生态平复治理施工方案
- 生态环境法学 课件全套 周珂
- 1.1 数说祖国 课件 (共18张) 北师大版数学四年级上册
- 2026宁夏农垦集团部分所属企业招聘27人笔试题库及参考答案详解(夺分金卷)
- 2026年重症医学科西院区机械通气培训试题及答案
- 煤化工产业发展研究及技术创新与产业链布局策略分析报告
- 2025年高考真题-生物(江西卷) 含解析
- 2026年教师资格证(高中)《学科知识与教学能力》真题
- 2026年川教版小学信息科技四年级上册教学设计全册
评论
0/150
提交评论