c,c++程序设计教程 龚沛曾(新版)实验六答案.doc_第1页
c,c++程序设计教程 龚沛曾(新版)实验六答案.doc_第2页
c,c++程序设计教程 龚沛曾(新版)实验六答案.doc_第3页
c,c++程序设计教程 龚沛曾(新版)实验六答案.doc_第4页
c,c++程序设计教程 龚沛曾(新版)实验六答案.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

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+); 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的逆序数。再编一主函数,输出10个大于10000的最小的回文数。回文数是指顺读和倒读都相同的数,如5、151、3553等。 函数形式为:int reverse (int x);#includeiostream.h#includestdlib.h#includetime.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)coutxendl;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-i-1; sn-i-1=ch; if(strcmp(s1,s)=0) return 1; else return 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)函数形式为: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) *x=*x+1; return(n-*x);void main()int aN,i,n,pass,npass; cinn; for(i=0;iai; npass=fun(a,n,&pass); coutpass=pass,npass=npassendl; cout成绩由高到低依次为:n; for(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;iai; fun(a,n,pass,npass); coutpass=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 &chmax,int &max) for(int i=0;i=a&si=z) psi-a+; i+; max=p0; int k=0; for(i=1;imax) 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;i26;i+) if(pi)coutchar(i+97) -piendl; coutchmax-maxsimax)imax=i; i+; while(simax!=0) /等价于strupr(&simax);simax-=32;imax+;return p;void main()char s100; gets(s); coutmax(s)endl;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编写两个同名的函数,分别求出整型数的两点间距离和浮点型数的两点间距离,调试成功后,再将其改为用函数模板实现。函数形式为:double dist(int x1, int y1, int x2, int y2);double dist(double x1, double y1, double x2, double y2);#include #include double dist(int x1,int y1,int x2,int y2)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 x1,x2,y1,y2; double x11,x12,y11,y12; cinx1y1x2y2; cinx11y11x12y12; coutdist1=dist(x1,y1,x2,y2)endl; coutdist2=dist(x11,y11,x12,y12)endl;用函数模板来实现:#include #include template double dist(T x1,T y1,T x2,T y2)return(sqrt(x1-x2)*

温馨提示

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

评论

0/150

提交评论