实验6:1.编一判断m是否为素数的函数,并在主函数中利用它输出十对最小的孪生素数。所谓孪生素数是指两个相差为2的素数,如3和5,11和13。输出形式如图2.6.1。函数形式为:boolisprime(intm);#includeiostream.hintisprime(intm)//判别m是否为质数{inti;for(i=2;m%i!=0;i++);return(i==m);}voidmain(){intx,count=0;x=2;while(1){if(isprime(x)&&isprime(x+2)){count++;cout(x,x+2)endl;if(count=10)break;}x++;}}2.编一函数,功能为构造正整数x的逆序数。再编一主函数,输出10个大于10000的最小的回文数。回文数是指顺读和倒读都相同的数,如5、151、3553等。函数形式为:intreverse(intx);#includeiostream.h#includestdlib.h#includetime.hintf(inta){intb,c=0;while(a!=0){b=a%10;c=c*10+b;a/=10;}returnc;}voidmain(){intx,i,k=0,t;booltag=true;srand(time(NULL));for(x=10000;k10;x++){if(f(x)==x){coutxendl;k++;if(k==10)break;}}}3.编一函数,功能为判断一字符串是否为回文,如果是回文则返回1,否则返回0。回文是指顺读和倒读都一样的字符串,如“deed”和“level”是回文。在主函数中对输入的字符串加以调用。函数形式为:inthuiwen(chars[]);#includeiostream.h#includestring.h#includestdio.hinthuiwen(chars[]){inti,n=0;charch,s1[80];strcpy(s1,s);//原来的字符串保留在s1中while(s[n])n++;//求字符串长度for(i=0;in/2;i++)//构造逆序的字符串{ch=s[i];s[i]=s[n-i-1];s[n-i-1]=ch;}if(strcmp(s1,s)==0)return1;elsereturn0;}voidmain(){chars[80];inti,count=0;cout输入5个字符串:endl;for(i=0;i5;i++){gets(s);if(huiwen(s))count++;}cout回文个数:countendl;}4.函数的功能是将学生成绩从高分到低分排序,并统计优秀与不及格的人数。用下面两种方法实现:(1)函数形式为:intfun(ints[],intn,int*x);要求优秀人数通过return返回,不及格人数通过指针参数返回结果。(2)函数形式为:voidfun(ints[],intn,int&x,int&y);要求优秀与不及格的人数通过引用参数返回结果。分别编二个程序,学生数从键盘输入。方法一:#includeiostream.h#defineN10intfun(inta[],intn,int*x){inti,j,k;*x=0;for(i=0;in-1;i++){k=i;for(j=i+1;jn;j++)if(a[j]a[k])k=j;if(k!=i){intt=a[k];a[k]=a[i];a[i]=t;}}for(i=0;in;i++)if(a[i]=60)*x=*x+1;return(n-*x);}voidmain(){inta[N],i,n,pass,npass;cinn;for(i=0;in;i++)cina[i];npass=fun(a,n,&pass);coutpass=pass,npass=npassendl;cout成绩由高到低依次为:\n;for(i=0;in;i++)couta[i]endl;}方法2:#includeiostream.h#defineN10voidfun(inta[],intn,int&x,int&y){inti,j,k;x=0;for(i=0;in-1;i++){k=i;for(j=i+1;jn;j++)if(a[j]a[k])k=j;if(k!=i){intt=a[k];a[k]=a[i];a[i]=t;}}for(i=0;in;i++)if(a[i]=60)x=x+1;y=n-x;}voidmain(){inta[N],i,n,pass,npass;cinn;for(i=0;in;i++)cina[i];fun(a,n,pass,npass);coutpass=pass,npass=npassendl;cout成绩由高到低依次为:\n;for(i=0;in;i++)couta[i]endl;}5.编一函数,功能为统计字符串中各个字母(不区分大、小写)出现的频率,同时找出频率出现最高的字母及次数。。函数形式为:voidfreq(chars[],intp[],char&chmax,int&max)#includeiostream.h#includestdio.h#includestring.hvoidfreq(chars[],intp[],char&chmax,int&max){for(inti=0;i26;i++)p[i]=0;strlwr(s);i=0;while(s[i]!='\0'){if(s[i]='a'&&s[i]='z')p[s[i]-'a']++;i++;}max=p[0];intk=0;for(i=1;i26;i++)if(p[i]max){max=p[i];k=i;}chmax=k+97;}voidmain(){intp[26],i,max;chars[80],chmax;gets(s);freq(s,p,chmax,max);for(i=0;i26;i++)if(p[i])coutchar(i+97)----p[i]endl;coutchmax----maxendl;}6.编写函数max,其功能是将字符串s中最大字符的地址返回,再编写一个主函数,调用该函数,将字符串s中从最大字符开始的子串中的小写字母转换成大写字母,然后输出新字符串s。例如,假设s的内容为“qwertyou”,则从最大字符’y’开始的子串为“you”,处理后的s为“qwertYOU”。函数形式为:char*max(chars[]);#includeiostream.h#includestring.h#includestdio.hchar*max(chars[]){char*p=s;inti=1,imax=0;while(s[i]!='\0'){if(s[i]s[imax])imax=i;i++;}while(s[imax]!='\0')//等价于strupr(&s[imax]);{s[imax]-=32;imax++;}returnp;}voidmain(){chars[100];gets(s);coutmax(s)endl;}7.编一函数,求级数的部分和,当最后一项的值小于eps时结束。设eps的默认值为10-6。函数形式为:doublefun(doublex,doubleeps=1e-6);#includeiostream.h#includemath.hdoublefun(doublex,doubleeps=1e-6){intn=1;doublet=1,s=0;while(fabs(x/t)1e-6){s=s+x/t;n=n+2;t=-t*n*(n-1);}returns;}voidmain(){doublex;cinx;coutfun(x)endl;}8.编写两个同名的函数,分别求出整型数的两点间距离和浮点型数的两点间距离,调试成功后,再将其改为用函数模板实现。函数形式为:doubledist(intx1,inty1,intx2,inty2);doubledist(doublex1,doubley1,doublex2,doubley2);#includeiostream.h#includemath.hdoubledist(intx1,inty1,intx2,inty2){return(sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));}doubledist(doublex1,doubley1,doublex2,doubley2){return(sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));}voidmain(){intx1,x2,y1,y2;doublex11,x12,y11,y12;cinx1y1x2y2;cinx11y11x12y12;coutdist1=dist(x1,y1,x2,y2)endl;coutdist2=dist(x11,y11,x12,y12)endl;}用函数模板来实现:#includeiostream.h#includemath.htemplateclassTdoubledist(Tx1,Ty1,Tx2,Ty2){return(sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));}voidmain(){intx1,x2,y1,y2;doublex11,x12,y11,y12;cinx1y1x2y2;cinx11y11x12y12;coutdist1=dist(x1,y1,x2,y2)endl;coutdist2=dist(x11,y11,x12,y12)endl;}实验7:1、#includeiostream.h#defineN5structstudent{char*num;intscore;};studentmax(students[],intn){studentt=s[0];for(inti=1;in;i++)if(s[i].scoret.score)t=s[i];returnt;}voidmain(){students[N],maxs;inti;for(i=0;iN;i++){s[i].num=newchar[10];//假设学号不超过9位cins[i].nums[i].score;}maxs=max(s,N);coutmaxs.num''maxs.scoreendl;}2、#includeiostream.h#includestring.h#defineN5structbook{charname[30];doubleprice;};voidsort(bookb[],intn){inti,j;bookt;for(i=0;in-1;i++)for(j=0;jn-1-i;j++)if(strcmp(b[j].name,b[j+1].name)0){t=b[j];b[j]=b[j+1];b[j+1]=t;}}voidmain(){bookb[N];inti;for(i=0;iN;i++)cinb[i].nameb[i].price;sort(b,N);for(i=0;iN;i++)coutb[i].name''b[i].priceendl;}3、#includeiostream.hvoidmain(){structdate{intyear;intmonth;intday;}d;intdpm[12]={31,28,31,30,31,3