同济大学c++实验1到实验8前三题_第1页
同济大学c++实验1到实验8前三题_第2页
同济大学c++实验1到实验8前三题_第3页
同济大学c++实验1到实验8前三题_第4页
同济大学c++实验1到实验8前三题_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验4:1.#include iostream.h void main()int n,sum=0;for(n=1;sum+=n,n+=2)if(n=20) break;cout sum=sumendl;2.#include iostream.h void main()int x;cout ” input x: ” x;if(x=0) cout 0elsewhile(x!=0)coutx%10;x=x/10;cout1e-4;i+)s=s+1.0/t;t=t+i;cout ” s=” s1e-4;n+)pi=pi*t;t=(float)(2*n)*(2*n)/(2*n-1)*(2*n+1);co

2、ut ”pi= ” piendl;4. ( 1)#include “iostream.h ”#include “iomanip.h ”void main()int i,j;for(i=1;i=9;i+) coutsetw(20-i);for(j=1;j=2*i-1;j+)couti;cout=1;i-) coutsetw(9-i) ”;c=9-i+ A;for(j=1;j=2*i;j+)coutc;coutendl;6.#include “iostream.h ”void main()int m,m1,m2,m3;for(m=100;m1000;m+)m1=m%10;m2=m/10%10;m3

3、=m/100;if(m1*m1*m1+m2*m2*m2+m3*m3*m3=m) coutm” t ” ;7.#include iostream.h #include iomanip.h void main()int x,y,z,k=0;for(x=1;x=6;x+)for(y=x+1;y=6;y+)for(z=5;z=6;z+)if(xy&yz) k+;coutx At yt zendl;)cout ”满足条件的方案有:kendl;)8.#include iostream.h #include Stdlib.h #include time.h void main()int a,n,i,k;do

4、uble s=0,temp=0;srand(time(NULL);a=rand()%9+1;n=rand()%6+5;for(i=1;i=n;i+)temp=temp*10+a;s=s+temp;cout s=sa;x=a;dox1=x;x=2.0/3*x+a/(3*x*x);while(fabs(x-x1)1e-5);cout ”编程求得 x=xendl;cout “调用函数求得 x=pow(a,1.0/3)endl;实验5:#include stdlib.h #include iostream.h void main()int a10,i,max,min;float ave;for(i=0

5、;i10;i+)ai=rand()%71+30;cout ”数组a的内容如下:nfor(i=0;i10;i+)coutai ,:coutendl;max=min=ave=a0;for(i=1;imax)max=ai;if(aimin)min=ai;) cout max=max,min= min,ave=ave/10endl;2. #include #define N 20#include Stdlib.h void main()int aN,i,j,k;cout 排序前:n ”;for(i=0;iN;i+)ai=rand()%101;coutai ,:)for(i=0;iN-1;i+)k=i;

6、for(j=i+1;jak)k=j;if(k!=i)int t=ak; ak=ai; ai=t;)cout 排序后:n ;for(i=0;iN;i+)coutai ,:3.#include ibstream.h#include stdlib.h void main()int i,j,s1O,t,n;for(i=0;i10;i+)si=rand()%101;coutsi :)coutendl;cinn;forO=0;j=0;i)(si+1=si;)sO=t;)for(i=0;i10;i+) coutsi :)4.见第四章习题编程题1答案。5.(1)#include #include void m

7、ain()int a1010,i,j,n;cinn;for(i=0;in;i+)ai0=1;aii=1;for(i=2;in;i+)for(j=1;ji;j+)aij=ai-1j+ai-1j-1;for(i=0;in;i+)for(j=0;j=i;j+)coutsetw(6)aij;)coutendl;)(2)#include #include void main()int a1010,i,j,n;cinn;for(i=0;in;i+)ai0=1;aii=1;)for(i=2;in;i+)for(j=1;ji;j+)aij=ai-1j+ai-1j-1;for(i=0;in;i+)coutset

8、w(n-i)*3)for(j=0;j=i;j+) coutsetw(6)aij;coutendl;6.方法一:#include “stdio.h ”#include “string.hvoid main() char s80,ch;int i,len;gets(s);len=strlen(s);for(i=0;ilen/2;i+)ch=si;si=slen-i-1;slen-i-1=ch;puts(s);方法二:#include “stdio.h ”#include “string.hvoid main() char *p,*p1,*p2,ch;int i,len=0;p=p1=p2=new

9、char80;gets(p1);while(*p2!= 0 )p2+;p2 -Iwhile(p1ch;while(1) for(i=0;si!=0 ;i+)if(si=ch)break;if(si=0 )break;for(j=i;sj!=0 ;j+)sj=sj+1;sj= 0;puts(s);8.方法一:#include #include“stdio.h ”void main()char s80;gets(s);int i=0;while(si!=0 )if(si= A&si= A&*p=Z)*p=*p+32;p+;puts(s);实验6:1 .编一判断m是否为素数的函数,并在主函数中利用它

10、输出十对最小的挛生素数。所谓挛 生素数是指两个相差为2的素数,如3和 5,11和 13。输出形式如图2.6.1 。函数形式为:bool isprime(int m);#include“iostream.hint isprime(int m) / 判别 mt 否为质数 int i;for(i=2;m%i!=0;i+);return (i=m);void main()int x,count=0;x=2;while(1) if(isprime(x)&isprime(x+2)count+;cout ”( “ x” , ” x+2” ) ” =10)break;x+;2 .编一函数,功能为构造正整数 x

11、的逆序数。再编一主函数,输出10个大于10000的最小的回文数。回文数是指顺读和倒读都相同的数,如5、 151、 3553等。函数形式为:int reverse (int x);#include ” iostream.h#include ” stdlib.h#include ” time.hint f(int a) int b,c=0;while(a!=0)b=a%10;c=c*10+b;a/=10;return c;void main() int x,i,k=0,t; bool tag=true;srand(time(NULL);for(x=10000;k10;x+) if(f(x)=x)c

12、outxendl;k+;if(k=10)break;3编一函数,功能为判断一字符串是否为回文,如果是回文则返回1,否则返回0。回文是指顺读和倒读都一样的字符串,如deed”和level ”是回文。在主函数中对输入的字符串加以调用。函数形式为:int huiwen(char s);#include #include #include int huiwen(char s) int i,n=0;char ch,s180;strcpy(s1,s); / 原来的字符串保留在s1 中while(sn)n+; / 求字符串长度for(i=0;in/2;i+) / 构造逆序的字符串 ch=si; si=sn-

13、i-1; sn-i-1=ch; if(strcmp(s1,s)=0) return 1;elsereturn 0;void main() char s80; int i,count=0;cout ”输入5个字符串:” endl;for(i=0;i5;i+) gets(s);if(huiwen(s)count+;cout ”回文个数:” countendl;4函数的功能是将学生成绩从高分到低分排序,并统计优秀与不及格的人数。用下面两种 方法实现:1)函数形式为:int fun(int s,int n,int *x);要求优秀人数通过return 返回,不及格人数通过指针参数返回结果。2)函数形式

14、为:void fun(int s,int n,int &x,int &y);要求优秀与不及格的人数通过引用参数返回结果。分别编二个程序,学生数从键盘输入。方法一:#include #define N 10int fun(int a,int n,int *x)int i,j,k;*x=0;for(i=0;in-1;i+)k=i;for(j=i+1;jak)k=j;if(k!=i)int t=ak; ak=ai; ai=t;for(i=0;i=60) return(n-*x);void main()int aN,i,n,pass,npass;cinn;for(i=0;iai;npass=fun(a

15、,n,&pass);cout pass=pass”,npass= npassendl;cout ”成绩由高到低依次为:nfor(i=0;in;i+) coutaiendl;)方法 2:#include #define N 10void fun(int a,int n,int &x,int &y)int i,j,k;x=0;for(i=0;in-1;i+)k=i;for(j=i+1;jak)k=j;if(k!=i)int t=ak; ak=ai; ai=t;for(i=0;i=60)x=x+1;y=n-x;void main()int aN,i,n,pass,npass;cinn;for(i=0

16、;iai;fun(a,n,pass,npass);cout ” pass=” pass”,npass= ” npassendl;cout ”成绩由高到低依次为:n for(i=0;in;i+) coutaiendl;5. 编一函数,功能为统计字符串中各个字母(不区分大、小写)出现的频率,同时找出频 率出现最高的字母及次数。函数形式为:void freq(char s,int p,char &chmax,int &max)#include“iostream.h#include “stdio.h ”#include “string.hvoid freq(char s,int p,char &chm

17、ax,int &max) for(int i=0;i= a&si= z)psi- a+;i+;max=p0; int k=0;for(i=1;i26;i+)max=pi;k=i; chmax=k+97;void main()int p26,i,max; char s80,chmax;gets(s);freq(s,p,chmax,max);for(i=0;isimax)imax=i;i+;while(simax!= 0 ) / 等价于 strupr(&simax);simax-=32;imax+; return p;void main()char s100;gets(s);coutmax(s)e

18、ndl;7 .编一函数,求级数的部分和,当最后一项的值小于eps时结束。设eps的默认值为10-6函数形式为:double fun(double x, double eps=1e-6);#include #include double fun(double x,double eps=1e-6)int n=1;double t=1,s=0;while(fabs(x/t)1e-6)s=s+x/t;n=n+2;t=-t*n*(n-1);return s;void main()double x;cinx;coutfun(x)endl;8编写两个同名的函数,分别求出整型数的两点间距离和浮点型数的两点间距

19、离,调试成 功后,再将其改为用函数模板实现。函数形式为:double dist(int x1, int y1, int x2, int y2);double dist(double x1, double y1, double x2, double y2);#include #include return(sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);double dist(double x1,double y1,double x2,double y2) return(sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);void main()int

20、x1,x2,y1,y2;double x11,x12,y11,y12;cinx1y1x2y2;cinx11y11x12y12;cout ” dist1= ” dist(x1,y1,x2,y2)endl;cout ” dist2= ” dist(x11,y11,x12,y12)endl;用函数模板来实现:#include #include template double dist(T x1,T y1,T x2,T y2) return(sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);void main()int x1,x2,y1,y2;double x11,x12,y11

21、,y12;cinx1y1x2y2;cinx11y11x12y12;cout ” dist1= ” dist(x1,y1,x2,y2)endl;cout ” dist2= ” dist(x11,y11,x12,y12)endl;实验6:1 .编一判断m是否为素数的函数,并在主函数中利用它输出十对最小的挛生素数。所谓挛 生素数是指两个相差为2的素数,如3和 5, 11和 13。输出形式如图2.6.1 。函数形式为:bool isprime(int m);#include iostream.hint isprime(int m)/判别m是否为质数 int i;for(i=2;m%i!=0;i+);r

22、eturn (i=m);void main()int x,count=0;x=2;while(1) if(isprime(x)&isprime(x+2)count+;cout(x,x+2)=10)break;x+;2 .编一函数,功能为构造正整数 x的逆序数。再编一主函数,输出10个大于10000的最小的回文数。回文数是指顺读和倒读都相同的数,如5、 151、 3553等。函数形式为:int reverse (int x);#includeiostream.h#includestdlib.h#includetime.h int f(int a) int b,c=0;while(a!=0)b=a

23、%10;c=c*10+b;a/=10;return c;void main() int x,i,k=0,t; bool tag=true;srand(time(NULL);for(x=10000;k10;x+)if(f(x)=x)coutxendl;k+;if(k=10)break;3编一函数,功能为判断一字符串是否为回文,如果是回文则返回1,否则返回0。回文是指顺读和倒读都一样的字符串,如“ deed”和“level ”是回文。在主函数中对输入的字符 串加以调用。函数形式为:int huiwen(char s);#include #include #include int huiwen(ch

24、ar s)int i,n=0;char ch,s180;strcpy(s1,s);/原来的字符串保留在s1 中while(sn)n+;/求字符串长度for(i=0;in/2;i+)/构造逆序的字符串 ch=si; si=sn-i-1; sn-i-1=ch; if(strcmp(s1,s)=0)return 1;elsereturn 0;void main() char s80; int i,count=0;cout 输入5个字符串:endl;for(i=0;i5;i+) gets(s);if(huiwen(s)count+;cout 回文个数:countendl;4函数的功能是将学生成绩从高分

25、到低分排序,并统计优秀与不及格的人数。用下面两种 方法实现:1)函数形式为:int fun(int s,int n,int *x);要求优秀人数通过return 返回,不及格人数通过指针参数返回结果。2)函数形式为:void fun(int s,int n,int &x,int &y);要求优秀与不及格的人数通过引用参数返回结果。分别编二个程序,学生数从键盘输入。方法一:#include #define N 10 int fun(int a,int n,int *x)int i,j,k;*x=0;for(i=0;in-1;i+)k=i;for(j=i+1;jak)k=j;if(k!=i)int t=ak; ak=ai; ai=t;)for(i=0;i=60)*x=*x+1;return(n-*x);void main()int aN,i,n,pass,npass;cinn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论