




已阅读5页,还剩77页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验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”0;elsewhile(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);cout”pi=”piendl; 5.(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=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+;coutxtytzendl;cout”满足条件的方案有:”kendl; 8.#include “iostream.h”#include “stdlib.h”#include “time.h”void main()int a,n,i,k;double 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;i10;i+)ai=rand()%71+30;cout”数组a的内容如下:n”;for(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;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 “iostream.h”#include “stdlib.h”void main() int i,j,s10,t,n;for(i=0;i10;i+)si=rand()%101;coutsi” “;coutn;for(j=0;j=0;i)si+1=si;s0=t;for(i=0;i10;i+)coutsi” “; 4. 见第四章习题编程题1答案。 5. (1)#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+) 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+)coutsetw(n-i)*3)” “;for(j=0;j=i;j+)coutsetw(6)aij;coutendl; 6. 方法一:#include “stdio.h”#include “string.h”void 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.h”void main() char *p,*p1,*p2,ch;int i,len=0;p=p1=p2=new char80;gets(p1);while(*p2!=0)p2+;p2;while(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是否为素数的函数,并在主函数中利用它输出十对最小的孪生素数。所谓孪生素数是指两个相差为2的素数,如3和5,11和13。输出形式如图2.6.1。 函数形式为: bool isprime(int m); #include “iostream.h” int 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); #include”iostream.h” #include”stdlib.h” #include”time.h” int 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 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; for(i=0;iai; npass=fun(a,n,&pass); cout”pass=”pass”,npass=”npassendl; cout”成绩由高到低依次为:n”; for(i=0;in;i+) coutaiendl; 方法2: #include #define N 10 void 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); 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.h” void 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; 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,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+); 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)*(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; 实验7:1、#include iostream.h#define N 5struct student char *num; int score;student max(student s,int n) student t=s0; for(int i=1;it.score) t=si; return t;void main() student sN,maxs; int i; for(i=0;isi.numsi.score; maxs=max(s,N)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医护理学(第5版)课件 第十章 其他常用中医护理技术
- 三农产品包装与运输管理手册
- 物理力学概念引入与实践活动设计
- 政府部门信息化建设和数据治理方案
- 销售员工心态培训课程
- 可行性研究报告封面格式
- 建筑智能化系统设计技术规范
- 零售业O2O营销模式创新与实施策略
- 绿色建筑材料应用技术规范书
- 机器人技术及其在物流行业的应用手册
- GB/T 5023.5-2008额定电压450/750 V及以下聚氯乙烯绝缘电缆第5部分:软电缆(软线)
- GB/T 23445-2009聚合物水泥防水涂料
- 瓷贴面教学课件
- 尺骨冠突骨折课件
- 北师大版七年级下册第一章整式的乘除计算题专项训练
- 2022年苏州健雄职业技术学院单招考试面试试题及答案解析
- 植物生理教案
- 乳腺癌改良根治术
- 新版(七步法案例)PFMEA
- 临床护理重点专科建设项目评审标准
- 二倍角的三角函数说课稿
评论
0/150
提交评论