c++编程题450份文档格式.docx
- 文档编号:21325587
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:38
- 大小:26.15KB
c++编程题450份文档格式.docx
《c++编程题450份文档格式.docx》由会员分享,可在线阅读,更多相关《c++编程题450份文档格式.docx(38页珍藏版)》请在冰豆网上搜索。
charc15=A,v,e,t,E,T,%,&
4,Y,e,i,9,;
for(i=0;
i15;
i+)coutup(ci),;
coutendl;
3.编写主程序条用带实数编写主程序条用带实数r和整数和整数n两个参数的函数并输出两个参数的函数并输出r的的n次幂。
次幂。
#include#includedoublepower(doublea,intb)inti;
doubleresult=1.0;
ib;
i+)result=result*a;
returnresult;
voidmain()doubler;
intn;
coutr;
coutn;
coutr的n次幂是:
power(r,n)endl;
4.编写有字符型参数编写有字符型参数C和整形参数和整形参数N的函数,让他们显示出由字符的函数,让他们显示出由字符C组成的三角组成的三角形。
其方式为第形。
其方式为第1行有行有1个字符个字符C,第,第2行有行有2个字符个字符C,等等。
,等等。
voidprint_triangle(charc,intn)inti,j;
in;
i+)for(j=0;
j=i;
j+)coutc;
voidmain()print_triangle(a,10);
5.编写一个编写一个ieqiu字符串长度的函数,字符串长度的函数,strlen(),再用(),再用strlen()函数编写一个函()函数编写一个函数数revers(s)的倒序递归程序,使字符串)的倒序递归程序,使字符串s逆序。
逆序。
#include#includeusingnamespacestd;
intstrlen(char*str)intlen=0;
while(strlen!
=0)len+;
returnlen;
voidrevers(char*b)charc;
intj,len;
len=strlen(b);
j=len/2-1;
while(j=0)c=*(b+j);
*(b+j)=*(b+len-j-1);
*(b+len-j-1)=c;
j-;
blen=0;
voidmain()charstr=1234567890;
coutstr-的长度:
strlen(str)endl;
coutstrendl;
/倒序前revers(str);
/coutstrendl;
/倒序后6.用函数模板实现用函数模板实现3个数值中按最小值到最大值排序的程序。
个数值中按最小值到最大值排序的程序。
templatevoidsort(Ta,Tb,Tc)Tarray3,temp;
inti,j;
array0=a;
array1=b;
array2=c;
i3;
jarrayj+1)temp=arrayj;
arrayj=arrayj+1;
arrayj+1=temp;
coutarray0array1array2endl;
voidmain()sort(5,1,9);
7.利用函数模板设计一个求数组元素中和的函数,并检验之。
利用函数模板设计一个求数组元素中和的函数,并检验之。
templateTsum(Ta,intn)inti;
Ts=0;
i+)s=s+ai;
returns;
voidmain()inta5=1,2,3,4,5;
ints=sum(a,5);
coutsendl;
8.重载上题中的函数模板,使他能够进行两个数组的求和。
重载上题中的函数模板,使他能够进行两个数组的求和。
template/重载上面的模板Tsum(Ta,intn,Tb,intm)returnsum(a,n)+sum(b,m);
intb10=1,2,3,4,5,6,7,8,9,10;
ints1=sum(a,5);
ints2=sum(b,10);
ints3=sum(a,5,b,10);
couts1endl;
couts2endl;
couts3endl;
第四章1.设计一个点类设计一个点类Point,再设计一个矩形类,矩形类使用,再设计一个矩形类,矩形类使用Point类的两个坐标点作类的两个坐标点作为矩形的对角顶点。
并可以输出为矩形的对角顶点。
并可以输出4个坐标值和面积。
使用测试程序验证程序。
个坐标值和面积。
classPoint/点类private:
intx,y;
/私有成员变量,坐标public:
Point()/无参数的构造方法,对xy初始化x=0;
y=0;
Point(inta,intb)x=a;
y=b;
voidsetXY(inta,intb)x=a;
intgetX()/得到x的方法returnx;
intgetY()/得到有的函数returny;
classRectangle/矩形类private:
Pointpoint1,point2,point3,point4;
public:
Rectangle();
/类Point的无参构造函数已经对每个对象做初始化啦,这里不用对每个点多初始化了Rectangle(Pointone,Pointtwo)point1=one;
point4=two;
init();
Rectangle(intx1,inty1,intx2,inty2)point1.setXY(x1,y1);
point4.setXY(x2,y2);
voidinit()/给另外两个点做初始化的函数point2.setXY(point4.getX(),point1.getY();
point3.setXY(point1.getX(),point4.getY();
voidprintPoint()/打印四个点的函数coutA:
(point1.getX(),point1.getY()endl;
coutB:
(point2.getX(),point2.getY()endl;
coutC:
(point3.getX(),point3.getY()endl;
coutD:
(point4.getX(),point4.getY()0)returnarea;
elsereturn-area;
voidmain()Pointp1(-15,56),p2(89,-10);
/定义两个点Rectangler1(p1,p2);
/用两个点做参数,声明一个矩形对象r1Rectangler2(1,5,5,1);
/用两队左边,声明一个矩形对象r2cout矩形r1的4个定点坐标:
endl;
r1.printPoint();
cout矩形r1的面积:
r1.getArea()endl;
coutn矩形r2的4个定点坐标:
r2.printPoint();
cout矩形r2的面积:
r2.getArea()endl;
2.使用内联函数设计一个类,用来表示直角坐标系中的任意一条直线并输出它的使用内联函数设计一个类,用来表示直角坐标系中的任意一条直线并输出它的属性。
属性。
#include#includeclassLineprivate:
intx1,y1,x2,y2;
Line();
Line(int=0,int=0,int=0,int=0);
voidprintPoint();
doublegetLength();
inlineLine:
Line(inta,intb,intc,intd)x1=a;
y1=b;
x2=c;
y2=d;
inlinevoidLine:
printPoint()coutA:
x1,y1endl;
x2,y2endl;
inlinedoubleLine:
getLength()doublelength;
length=sqrt(x2-x1)*(x2-x1)+(y2-y1)*(y2-y1);
returnlength;
voidmain()Lineline(10,80,-10,12);
line.printPoint();
coutline.getLength()endl;
第五章1.声明复数的类,声明复数的类,complex,使用友元函数,使用友元函数add实现复数加法。
实现复数加法。
classComplexprivate:
doublereal,image;
Complex()Complex(doublea,doubleb)real=a;
image=b;
voidsetRI(doublea,doubleb)real=a;
doublegetReal()returnreal;
doublegetImage()returnimage;
voidprint()if(image0)cout复数:
real+imageiendl;
if(image0)cout复数:
real-imageiendl;
friendComplexadd(Complex,Complex);
/声明友元函数;
Complexadd(Complexc1,Complexc2)/定义友元函数Complexc3;
c3.real=c1.real+c2.real;
/访问Complex类中的私有成员c3.image=c1.image+c2.image;
returnc3;
voidmain()Complexc1(19,0.864),c2,c3;
c2.setRI(90,125.012);
c3=add(c1,c2);
cout复数一:
;
c1.print();
cout复数二:
c2.print();
cout相加后:
c3.print();
3.编写一个程序,该程序建立一个动态数组,为动态数组的元素赋值,显示动态编写一个程序,该程序建立一个动态数组,为动态数组的元素赋值,显示动态数组的值并删除动态数组。
数组的值并删除动态数组。
voidmain()inti,n,temp=0;
double*array=newdoublen;
/用指针,动态申请数组大小cout给每个数组元素赋值:
i+)coutarrayitemp;
*(array+i)=temp;
/给数组元素赋值cout动态数组个元素的值如下:
i+)coutarrayi=arrayiendl;
/打印数组元素deletearray;
/释放内存4.定义一个定义一个Dog类,它用静态数据成员类,它用静态数据成员Dogs记录记录Dog的个体数目,静态成员函的个体数目,静态成员函数数GetDogs用来存取用来存取Dogs。
设计并测试这个类。
classDogprivate:
staticintdogs;
/静态数据成员,记录Dog的个体数目public:
Dog()voidsetDogs(inta)dogs=a;
staticintgetDogs()returndogs;
intDog:
dogs=25;
/初始化静态数据成员voidmain()cout未定义Dog类对象之前:
x=Dog:
getDogs()endl;
/x在产生对象之前即存在,输出25Doga,b;
couta中x:
a.getDogs()endl;
coutb中x:
b.getDogs()endl;
a.setDogs(360);
cout给对象a中的x设置值后:
第六章1.设计一个基类,从基类派生圆柱,设计成员函数输出它们的面积和体积;
设计一个基类,从基类派生圆柱,设计成员函数输出它们的面积和体积;
classBasic/基类protected:
doubler;
Basic()r=0;
Basic(doublea):
r(a);
classCircular:
publicBasic/从基类派生圆类protected:
doublearea;
Circular(doublea)r=a;
area=area=3.1415926*r*r;
doublegetArea()/返回圆面积returnarea;
classColumn:
publicCircular/从圆类派生圆柱类protected:
doubleh;
doublecubage;
Column(doublea,doubleb):
Circular(a)h=b;
cubage=getArea()*h;
doublegetCubage()/返回圆柱体积函数returncubage;
voidmain()Circularcircular(45);
Columncolumn(12,10);
cout圆的面积:
circular.getArea()endl;
cout圆柱的体积:
column.getCubage()endl;
3.定义一个线段类作为矩形的基类,基类有起点和终点坐标,有输出左边和长度定义一个线段类作为矩形的基类,基类有起点和终点坐标,有输出左边和长度以及线段和以及线段和x轴的夹角的成员函数。
矩线段对象的两个坐标作为自己一条边的位置,轴的夹角的成员函数。
矩线段对象的两个坐标作为自己一条边的位置,它具有另外一条边,能输出矩形的它具有另外一条边,能输出矩形的4个顶点坐标。
给出类的定义并用程序验证它们的个顶点坐标。
给出类的定义并用程序验证它们的功能。
功能。
classPoint/点类protected:
doublex,y;
Point()Point(doublea,doubleb)x=a;
doublegetX()returnx;
doublegetY()returny;
classLineprotected:
Pointp1,p2;
/Point对象做成员doublelength,angle;
Line(doublea,doubleb,doublec,doubled):
p1(a,b),p2(c,d)/用两对坐标初始化线段init();
Line(Pointa,Pointb)/用两个点的对象初始化线段p1=a;
p2=b;
voidinit()/计算线段长度,以及和x轴的夹角的度数doublex1=p1.getX(),y1=p1.getY();
doublex2=p2.getX(),y2=p2.getY();
length=sqrt(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);
angle=atan(y2-y1)/(x2-x1);
angle=angle*180/3.141592653;
voidprintXY()cout(p1.getX(),p1.getY();
(p2.getX(),p2.getY()endl;
voidprintLength()cout线段长度:
lengthendl;
voidprintAngle()cout与x轴的夹角:
angleendl;
classRectangle:
publicLineprotected:
Line*line;
Rectangle(doublea,doubleb,doublec,doubled,doublee,doublef,doubleg,doubleh):
Line(a,b,c,d)line=newLine(e,f,g,h);
Rectangle(Pointa,Pointb,Pointc,Pointd):
Line(a,b)/4个点对象,初始化line=newLine(c,d);
voidprintPoint()coutprintXY();
voidmain()Pointp1(0,0),p2(4,3),p3(12,89),p4(10,-50);
Linel1(0,0,4,3);
l1.printXY();
l1.printLength();
l1.printAngle();
Linel2(p1,p2);
l2.printXY();
l2.printLength();
l2.printAngle();
Rectangler1(12,45,89,10,10,23,56,1);
Rectangler2(p1,p2,p3,p4);
4.基类是使用极坐标的点类,从它派生一个圆类,圆类用点类的左边作圆心,圆基类是使用极坐标的点类,从它派生一个圆类,圆类用点类的左边作圆心,圆周通过极坐标原点,圆类有输出圆心直、圆半径和面积的成员函数。
完成类的设计并周通过极坐标原点,圆类有输出圆心直、圆半径和面积的成员函数。
完成类的设计并验证之。
验证之。
Point();
publicPoint/圆类,继承点类protected:
doubler,area;
Circular(inta,intb)x=a;
r=sqrt(x*x+y*y);
area=3.1415926*r*r;
voidprintPoint()cout圆形直角坐标:
(x,y)endl;
voidprintRadius()cout圆的半径:
rendl;
voidprintArea()cout圆的面积:
areaendl;
voidmain()Circularc(10,25);
c.printPoint();
c.printRadius();
c.printArea();
5.设计一个线段基类,当创建五参数对象时,才要求用户输入长度。
同样,其派设计一个线段基类,当创建五参数对象时,才要求用户输入长度。
同样,其派生的直角三角形类也是在产生对象时要求输入两个直角边的长度。
直角三角形在派生生的直角三角形类也是在产生对象时要求输入两个直角边的长度。
直角三角形在派生矩形类,矩形类的参数也由键盘输入。
设计这些类并测试他们的功能。
矩形类,矩形类的参数也由键盘输入。
classLine/线段基类protected:
doublesizeA;
Line()cout输入线段的长度:
sizeA;
Line(doublea)sizeA=a;
doublegetLength()returnsizeA;
classTriangle:
publicLine/三角形类protected:
doublesizeB,sizeC;
Triangle()cout输入线段长度:
sizeB;
sizeC=sqrt(sizeB*sizeB+sizeA*sizeA);
voidprintSize()cout直角三角形,三条边分别为:
coutA:
sizeA,b:
sizeB,C:
sizeCendl;
publicTriangle/矩形类protected:
doublesizeD;
Rectangle()sizeC=sizeA;
sizeD=sizeB;
voidprintSize()cout矩形,四条边分别为:
sizeC,D:
sizeDendl;
voidmain()/*Line*l=newLine();
cout线段长度为:
getLength()printSize();
*/Rectangle*r=newRectangle();
r-printSize();
第七章1.使用类模板演示复制兼容性规则。
使用类模板演示复制兼容性规则。
templateclassPointprotected:
Tx,y;
Point(Ta,Tb)x=a;
voi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 编程 450
![提示](https://static.bdocx.com/images/bang_tan.gif)