《2023年C编程实例.pdf》由会员分享,可在线阅读,更多相关《2023年C编程实例.pdf(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、例313 求 Fibonacci 数列前 40 个数。这个数列有如下特点:第 1、2 个数为 1、1。从第 3 个数开始,每个数是其前面两个数之和。#include#include usingnamespacestd;intmain()longf1,f2;inti;f1=f2=1;for(i=1;i=20;i+)/设备输出字段宽度为 12,每次输出两个数 coutsetw(12)f1setw(12)f2;/每输出完 4 个数后换行,使每行输出 4 个数 if(i%2=0)coutendl;f1=f1+f2;/左边的 f1 代表第 3 个数,是第 1、2 个数之和 f2=f2+f1;/左边的 f
2、2 代表第 4 个数,是第 2、3 个数之和 return0;例 314 100200 间的素数#include#include#include usingnamespacestd;intmain()intm,k,i,n=0;boolprime;for(m=101;m=200;m=m+2)prime=true;k=int(sqrt(m);for(i=2;i=k;i+)if(m%i=0)prime=false;break;if(prime)coutsetw(5)m;n=n+1;if(n%10=0)coutendl;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项
3、式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 coutendl;return0;例 315 译密码#include usingnamespacestd;intmain()charc;while(c=getchar()!=n)if(c=a&c=A&cZ&cz)c=c-26;coutc;coutendl;return0;习题:16、统计个数#include 间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数
4、的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两usingnamespacestd;intmain()charc;intletters=0,space=0,digit=0,other=0;coutenteroneline:=a&c=A&c=0&c=9)digit+;else other+;coutletter:letters,space:space,digit:digit,other:otherendl
5、;return0;17、求 Sn=a+aa+aaa+aaa(n 个 a)的值,n 由键盘输入。#include usingnamespacestd;intmain()inta,n,i=1,sn=0,tn=0;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两coutan;while(i=n)tn=tn+a;/赋值后的 tn 为 i 个 a 组
6、成数的值 sn=sn+tn;/赋值后的 sn 为多项式前 i 项之和 a=a*10;+i;couta+aa+aaa+.=snendl;return0;18、.求 1!+2!+20!、#include usingnamespacestd;intmain()floats=0,t=1;intn;for(n=1;n=20;n+)t=t*n;/求 n!s=s+t;/将各项累加 cout1!+2!+.+20!=sendl;return0;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一
7、行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 19、求“水仙花数”例 153=13+33+53#include usingnamespacestd;intmain()inti,j,k,n;coutnarcissusnumbersare:endl;for(n=100;n1000;n+)i=n/100;j=n/10-i*10;k=n%10;if(n=i*i*i+j*j*j+k*k*k)coutn;coutendl;return0;#include usingnamespacestd;intmain()int
8、m,s,i;for(m=2;m1000;m+)s=0;for(i=1;im;i+)间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两if(m%i)=0)s=s+i;if(s=m)coutmisa 完数endl;coutitsfactorsare:;for(i=1;im;i+)if(m%i=0)couti;coutendl;return0;21
9、、2/1,3/2,5/3,8/5,13/8,21/13,前 20 项之和#include usingnamespacestd;intmain()inti,t,n=20;doublea=2,b=1,s=0;for(i=1;i=n;i+)s=s+a/b;t=a;a=a+b;/将前一项分子与分母之和作为下一项的分子 b=t;/将前一项的分子作为下一项的分母 coutsum=sendl;return0;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小
10、公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 24、输出图形#include usingnamespacestd;intmain()inti,k;for(i=0;i=3;i+)/输出上面 4 行*号 for(k=0;k=2*i;k+)cout*;/输出*号 coutendl;/输出完一行*号后换行 for(i=0;i=2;i+)/输出下面 3 行*号 for(k=0;k=4-2*i;k+)cout*;/输出*号 coutendl;/输出完一行*号后换行 return0;习题:1、求最大公约数和最小公倍数,用主函数条用两个函数#incl
11、ude usingnamespacestd;intmain()inthcf(int,int);间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两intlcd(int,int,int);intu,v,h,l;cinuv;h=hcf(u,v);l=lcd(u,v,h);return0;inthcf(intu,intv)intt,r;if(vu)t
12、=u;u=v;v=t;while(r=u%v)!=0)u=v;v=r;return(v);intlcd(intu,intv,inth)return(u*v/h);3、判别素数的函数#include usingnamespacestd;intmain()间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两intprime(int);/*函数原型声
13、明*/intn;coutn;if(prime(n)coutnisaprime.endl;else coutnisnotaprime.endl;return0;intprime(intn)intflag=1,i;for(i=2;in/2&flag=1;i+)if(n%i=0)flag=0;return(flag);4、.求 a!+b!+c!的值,用一个函数 fac(n)求 n!。4#include usingnamespacestd;intmain()intfac(int);inta,b,c,sum=0;coutabc;sum=sum+fac(a)+fac(b)+fac(c);couta!+b!
14、+c!=sumendl;return0;intfac(intn)intf=1;for(inti=1;i=n;i+)f=f*i;returnf;7、.验证哥德巴赫猜想:一个不小于 6 的偶数可以表示为两个素数之和。7#include#include usingnamespacestd;intmain()voidgodbaha(int);intn;coutn;godbaha(n);return0;voidgodbaha(intn)间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一
15、行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两intprime(int);inta,b;for(a=3;a=n/2;a=a+2)if(prime(a)b=n-a;if(prime(b)coutn=a+bendl;intprime(intm)inti,k=sqrt(m);for(i=2;ik)return1;elsereturn0;11、用递归方法求 f(n)=12+22+n2#include usingnamespacestd;intmain()intf(int);intn,s;coutn;间的素数例译密
16、码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两s=f(n);coutTheresultissendl;return0;intf(intn)if(n=1)return1;else return(n*n+f(n-1);例 52 用数组 Fibonacci 数列#include#include usingnamespacestd;intmain()inti;
17、intf20=1,1;for(i=2;i20;i+)fi=fi-2+fi-1;for(i=0;i20;i+)if(i%5=0)coutendl;coutsetw(8)fi;coutendl;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两return0;例 5.3 用冒泡法对 10 个数排序#include usingnamespacest
18、d;intmain()inta10;inti,j,t;coutinput10numbers:endl;for(i=0;iai;coutendl;for(j=0;j9;j+)/共进行 9 趟比较 for(i=0;iai+1)/如果前面的数大于后面的数 t=ai;ai=ai+1;ai+1=t;/交换两个数的位置,使小数上浮 coutthesortednumbers:endl;for(i=0;i10;i+)/输出 10 个数 coutai;coutendl;return0;例 54 将二维数组行列元素互换,存到另一个数组中 a=123 56b=14 间的素数例译密码习题统计个数求个的值由键盘输入赋值
19、后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 25 36#include usingnamespacestd;intmain()inta23=1,2,3,4,5,6;intb32,i,j;coutarraya:endl;for(i=0;i=1;i+)for(j=0;j=2;j+)coutaij;bji=aij;coutendl;coutarrayb:“endl;for(i=0;i=2;
20、i+)for(j=0;j=1;j+)coutbij;coutendl;return0;例 55 求 34 二维数组中最大元素值及其行列号#include 间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两usingnamespacestd;intmain()inti,j,row=0,colum=0,max;inta34=5,12,23,56,
21、19,28,37,46,-12,-34,6,8;max=a00;/使 max 开始时取 a00的值 for(i=0;i=2;i+)/从第 0 行第 2 行 for(j=0;jmax)/如果某元素大于 max max=aij;/max 将取该元素的值 row=i;/记下该元素的行号 i colum=j;/记下该元素的列号 j coutmax=max,row=row,colum=columendl;return0;例 5.7 用选择法对数组中 10 个整数按由小到大排序#include usingnamespacestd;intmain()voidselect_sort(intarray,intn
22、);/函数声明 inta10,i;coutentertheoriginlarray:endl;for(i=0;iai;coutendl;select_sort(a,10);/函数调用,数组名作实参 coutthesortedarray:endl;for(i=0;i10;i+)/输出 10 个已排好序的数 coutai;coutendl;return0;voidselect_sort(intarray,intn)/形参 array 是数组名 inti,j,k,t;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(arrayjarrayk)k=j;t=arrayk;ar
23、rayk=arrayi;arrayi=t;习题:6、打印出杨辉三角(要求打印出 10 行)#include#include usingnamespacestd;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两intmain()constintn=11;inti,j,ann;for(i=1;in;i+)aii=1;ai1=1;for(i=3;
24、in;i+)for(j=2;j=i-1;j+)aij=ai-1j-1+ai-1j;for(i=1;in;i+)for(j=1;j=i;j+)coutsetw(5)aij;coutendl;coutendl;return0;C语言部分 1.编程计算 1,1+2,1+2+3,1+2+3+n 各项值的积 答案:#include usingnamespacestd;voidmain()间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个
25、素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 inti,n,mul=1,sum=0;coutn;for(i=1;i=n;i+)sum+=i;mul*=sum;coutThemultipleis:mulj)returni;else returnj;charmax(charc1,charc2,charc3)charch;if(c1c2)ch=c1;else 间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小
26、公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 ch=c2;if(c3ch)ch=c3;returnch;floatmax(floatx,floaty)if(xy)returnx;else returny;doublemax(doublex1,doublex2,doublex3)doubley;if(x1x2)y=x1;else y=x2;if(x3y)y=x3;returny;3.请编写一个函数 intfind(chars,chart),该函数在字符串 s 中查找字符串 t,如果找到,则返回字符串 t 在字符串 s 中的位置(整数值)
27、;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两否则返回-1。注意:用数组方式及两重循环来实现该函数。答案:intfind(chars,chart)inti,j,slen,tlen;slen=strlen(s);tlen=strlen(t);i=0;j=0;while(islen&j=tlen)returni-tlen+1;else re
28、turn-1;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 4.写一程序,将字符串 a 的所有字符传送到字符串 b 中,要求每传送 3 个字符后放一个空格,例如,字符串 a 为”abcdefg”,则 b 为”abcdegg”。答案:#include#include#defineN40 voidfun(chars,chart)inti=0
29、,j=0;while(si)tj=si;i+;j+;if(i)%3=0)tj=;j+;tj=0;main()间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两charaN,bN;printf(请输入原始字符串 a:);gets(a);fun(a,b);printf(加入空格后的字符串 b:);puts(b);5.编程判断一个数是否为素数。答案
30、:#include#include usingnamespacestd;intprime(intm)inti,flag=1;for(i=2;i=int(sqrt(m);i+)if(m%i=0)flag=0;break;returnflag;intmain(void)intn;coutn;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 if
31、(prime(n)coutn是素数!endl;else coutn不是素数!endl;return0;6.编程打印九九乘法表:11=1 12=222=4 13=323=633=9.答案:#include usingnamespacestd;voidmain()inti,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(%1d*%1d=%2d,j,i,i*j);printf(n);7.请编写一个程序,程序的功能是打印以下图案。间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行
32、输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两*答案:#include usingnamespacestd;voidmain()inti,j;for(i=1;i=4;i+)for(j=1;j=4-i;j+)cout;for(j=1;j=2*i-1;j+)cout*;cout=1;i-)for(j=1;j=4-i;j+)cout;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行
33、号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 for(j=1;j=2*i-1;j+)cout*;coutendl;8.写出下面程序的运行结果:#include voidaverage(float*p,intn)inti;floatsum=0;for(i=0;in;i+,p+)sum+=(*p);coutsum/n;voidmain()floatscore22=1,2,3,4;average(*score,4);答案:2.5 C+部分 1定义一个满足如下要求的 Date 类。(1)用下面的
34、格式输出日期:日/月/年 间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两(2)可运行在日期上加一天操作;(3)设置日期。答案:#include usingnamespacestd;externinti=0;classDate public:set(inty,intm,intd);add();print();private:intyear;
35、intmonth;intday;Date:set(inty,intm,intd)year=y;month=m;day=d;Date:add()间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两switch(month)case1:case3:case5:case7:case8:case10:if(day31)day+=1;elseif(day
36、=31)day=1;month+=1;break;case12:if(day31)day+=1;elseif(day=31)day=1;month=1;year+=1;break;case4:间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两case6:case9:case11:if(day30)day+=1;elseif(day=30)da
37、y=1;month+=1;break;case2:if(year%4=0&year%100!=0|year%400=0)if(day29)day+=1;elseif(day=29)day=1;month+=1;else if(day28)day+=1;elseif(day=28)间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 day=1;
38、month+=1;break;Date:print()coutday/month/yearendl;voidmain()Dated1;intyear;intmonth;intday;coutyearmonthday;d1.set(year,month,day);d1.print();d1.add();cout下一天是:;d1.print();间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用
39、冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 2定义一个时间类 Time,能提供和设置由时、分、秒组成的时间,并编出应用程序,定义时间对象,设置时间,输出该对象提供的时间。答案:/Time.h classTime public:Time();Time();boolSetTime(inth,intm,ints);voidGetTime(int&h,int&m,int&s);voidPrint();private:intiHour,iMinute,iSecond;/*/Time.cpp#include#includeTime.h usingnamespacestd;Time:Time()iH
40、our=1;iMinute=1;iSecond=1;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两Time:Time()boolTime:SetTime(inth,intm,ints)if(h23)returnfalse;if(m59)returnfalse;if(s59)returnfalse;iHour=h;iMinute=m;iSe
41、cond=s;returntrue;voidTime:GetTime(int&h,int&m,int&s)h=iHour;m=iMinute;s=iSecond;voidTime:Print()coutiHour:iMinute:iSecondendl;/*/mainfunction.cpp#include#includeTime.h usingnamespacestd;voidmain()Timet;t.SetTime(23,44,59);间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行
42、号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 t.Print();3.编写一个矩形的类,要求类中具有长和宽 2 个数据成员,具有构造函数、计算矩形的面积即及周长这 3 个成员函数。答案:classrectangle floatwidth;floatheigth;public:rectangle(floatw,floath)width=w;heigth=h;floatarea()returnwidth*heigth;floatcirculm()return2*(width+heigth);
43、4.设计一个人的类,要求包含姓名、身份证号、年龄、以及人的总数和所有人的平均年龄这 5 个数据成员,然后编写一个测试程序,输入 n 个人的 信息(姓名、身份证号和年龄),要求输出这些人的信息和平均年龄。答案:#include#include usingnamespacestd;constintn=3;classPerson private:间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒
44、泡法对个数排序输入共进行趟比较在每趟中要进行次两charname20;charid18;intage;public:staticintcount;/人数 staticfloataveage;Person(void)Person(constchar*names,char*ids,intages)strcpy(name,names);/初始化姓名 strcpy(id,ids);age=ages;/初始化年龄 aveage+=age;count+;voiddisplay()cout姓名:nameendl;cout身份证:idendl;cout年龄:ageendl;friendvoidModifyAv
45、eage();/修改平均年龄的友元函数;intPerson:count=0;floatPerson:aveage=0;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两voidModifyAveage()Person:aveage=Person:aveage/Person:count;voidmain()intages,i;charnames
46、tr20,idstr18;Personpern;for(i=0;in;i+)coutnamestr;coutidstr;coutages;Persontemp(namestr,idstr,ages);peri=temp;ModifyAveage();for(i=0;in;i+)peri.display();cout人的数量:Person:countendl;cout平均年龄:Person:aveageendl;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求
47、最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 5.编写一个圆的类,再使用派生类的机制,编写一个圆柱的类,求每个类都包含具有初始化功能的构造函数和相关数据的输出函数。答案:#include#definepi3.1416 usingnamespacestd;classcircle protected:floatr;floatarea;public:circle()r=0;circle(floatradius)r=radius;voidprint()area=r*r*pi;coutr=rarea=areaendl;class
48、column:circle protected:floath;间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两 floatv;public:column(floatradius,floatheight):circle(radius)h=height;voidprint()circle:print();couth=hvolume=area*h
49、endl;voidmain()columncol(3.0,2.0);col.print();6.重载一个函数模板,要求它可以返回两个值中的较大者,也可以求三个数的最大值。答案:/求两个任意类型值中的最大者 template inlineTconst&max(Tconst&a,Tconst&b)returnabb:a;/求 3 个任意类型值中的最大者 template 间的素数例译密码习题统计个数求个的值由键盘输入赋值后的为个组成数的值赋值后的为多项式前项之和求求将各项出图形输出上面行号输出号输出完一行号后换行输出下面行号输出号输出完一行号后换行习题求最大公约数和最小公数可以表示为两个素数之和用
50、递归方法求例用数组数列例用冒泡法对个数排序输入共进行趟比较在每趟中要进行次两inlineTconst&max(Tconst&a,Tconst&b,Tconst&c)return:max(:max(a,b),c);7.下面是整型安全数组类的一部分:试完善类的定义,使下段程序能够正常运行且不会出现内存泄漏。#include classArray public:Array(intx)count=x;p=newintcount;int&operator(intx)return*(p+x);protected:intcount;int*p;答案:#include classArray public:Ar