c++编程题450份.docx
- 文档编号:8189272
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:38
- 大小:26.15KB
c++编程题450份.docx
《c++编程题450份.docx》由会员分享,可在线阅读,更多相关《c++编程题450份.docx(38页珍藏版)》请在冰豆网上搜索。
c+编程题编程题450份份学号姓名院(部)专业考试时间:
2008年月日-密-封-线-c+编程题试卷第三章1.编写一个求方程编写一个求方程ax2+bx+c=0的根的根的程序,用的程序,用3个函数分别求当个函数分别求当b2-4ac大于大于零、等于零、和小于零时的方程的根。
要求从主函数输入零、等于零、和小于零时的方程的根。
要求从主函数输入a,b,c的值并输出结果。
的值并输出结果。
#include#includevoidequation_1(inta,intb,intc)doublex1,x2,temp;temp=b*b-4*a*c;x1=(-b+sqrt(temp)/(2*a*1.0);x2=(-b-sqrt(temp)/(2*a*1.0);cout两个不相等的实根endl;coutx1=x1,x2=x2endl;voidequation_2(inta,intb,intc)doublex1,x2,temp;temp=b*b-4*a*c;x1=(-b+sqrt(temp)/(2*a*1.0);x2=x1;cout两个相等的实根endl;coutx1=x1,x2=x2endl;voidequation_3(inta,intb,intc)doubletemp,real1,real2,image1,image2;temp=-(b*b-4*a*c);real1=-b/(2*a*1.0);real2=real1;image1=sqrt(temp);image2=-image1;cout两个虚根endl;coutx1=real1+image1jendl;coutx2=real2+image2jendl;voidmain()inta,b,c;doubletemp;cout输入a,b,c的值abc;cout方程为:
ax*x+bx+c=00)equation_1(a,b,c);if(temp=0)equation_2(a,b,c);if(temp0)equation_3(a,b,c);2.定义函数定义函数up(ch),如字符变量,如字符变量ch是小写字母就转换成大写字母并通过是小写字母就转换成大写字母并通过up返返回,否则字符回,否则字符ch不改变。
要求在短小而完全的程序中显示这个程序是怎样被调用的。
不改变。
要求在短小而完全的程序中显示这个程序是怎样被调用的。
#includeusingnamespacestd;charup(charc)if(c=97&c=122)return(c-32);elsereturnc;voidmain()inti;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;for(i=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,等等。
,等等。
#includeusingnamespacestd;voidprint_triangle(charc,intn)inti,j;for(i=0;in;i+)for(j=0;j=i;j+)coutc;coutendl;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个数值中按最小值到最大值排序的程序。
个数值中按最小值到最大值排序的程序。
#includeusingnamespacestd;templatevoidsort(Ta,Tb,Tc)Tarray3,temp;inti,j;array0=a;array1=b;array2=c;for(i=0;i3;i+)for(j=0;jarrayj+1)temp=arrayj;arrayj=arrayj+1;arrayj+1=temp;coutarray0array1array2endl;voidmain()sort(5,1,9);7.利用函数模板设计一个求数组元素中和的函数,并检验之。
利用函数模板设计一个求数组元素中和的函数,并检验之。
#includeusingnamespacestd;templateTsum(Ta,intn)inti;Ts=0;for(i=0;in;i+)s=s+ai;returns;voidmain()inta5=1,2,3,4,5;ints=sum(a,5);coutsendl;8.重载上题中的函数模板,使他能够进行两个数组的求和。
重载上题中的函数模板,使他能够进行两个数组的求和。
#includeusingnamespacestd;templateTsum(Ta,intn)inti;Ts=0;for(i=0;in;i+)s=s+ai;returns;template/重载上面的模板Tsum(Ta,intn,Tb,intm)returnsum(a,n)+sum(b,m);voidmain()inta5=1,2,3,4,5;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个坐标值和面积。
使用测试程序验证程序。
个坐标值和面积。
使用测试程序验证程序。
#includeusingnamespacestd;classPoint/点类private:
intx,y;/私有成员变量,坐标public:
Point()/无参数的构造方法,对xy初始化x=0;y=0;Point(inta,intb)x=a;y=b;voidsetXY(inta,intb)x=a;y=b;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);init();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个定点坐标:
endl;r2.printPoint();cout矩形r2的面积:
r2.getArea()endl;2.使用内联函数设计一个类,用来表示直角坐标系中的任意一条直线并输出它的使用内联函数设计一个类,用来表示直角坐标系中的任意一条直线并输出它的属性。
属性。
#include#includeclassLineprivate:
intx1,y1,x2,y2;public:
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;coutB:
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实现复数加法。
实现复数加法。
#includeusingnamespacestd;classComplexprivate:
doublereal,image;public:
Complex()Complex(doublea,doubleb)real=a;image=b;voidsetRI(doublea,doubleb)real=a;image=b;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.编写一个程序,该程序建立一个动态数组,为动态数组的元素赋值,显示动态编写一个程序,该程序建立一个动态数组,为动态数组的元素赋值,显示动态数组的值并删除动态数组。
数组的值并删除动态数组。
#includeusingnamespacestd;voidmain()inti,n,temp=0;coutn;double*array=newdoublen;/用指针,动态申请数组大小cout给每个数组元素赋值:
endl;for(i=0;in;i+)coutarrayitemp;*(array+i)=temp;/给数组元素赋值cout动态数组个元素的值如下:
endl;for(i=0;in;i+)coutarrayi=arrayiendl;/打印数组元素deletearray;/释放内存4.定义一个定义一个Dog类,它用静态数据成员类,它用静态数据成员Dogs记录记录Dog的个体数目,静态成员函的个体数目,静态成员函数数GetDogs用来存取用来存取Dogs。
设计并测试这个类。
设计并测试这个类。
#includeusingnamespacestd;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设置值后:
endl;couta中x:
a.getDogs()endl;coutb中x:
b.getDogs()endl;第六章1.设计一个基类,从基类派生圆柱,设计成员函数输出它们的面积和体积;设计一个基类,从基类派生圆柱,设计成员函数输出它们的面积和体积;#includeusingnamespacestd;classBasic/基类protected:
doubler;public:
Basic()r=0;Basic(doublea):
r(a);classCircular:
publicBasic/从基类派生圆类protected:
doublearea;public:
Circular(doublea)r=a;area=area=3.1415926*r*r;doublegetArea()/返回圆面积returnarea;classColumn:
publicCircular/从圆类派生圆柱类protected:
doubleh;doublecubage;public:
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个顶点坐标。
给出类的定义并用程序验证它们的个顶点坐标。
给出类的定义并用程序验证它们的功能。
功能。
#include#includeusingnamespacestd;classPoint/点类protected:
doublex,y;public:
Point()Point(doublea,doubleb)x=a;y=b;doublegetX()returnx;doublegetY()returny;classLineprotected:
Pointp1,p2;/Point对象做成员doublelength,angle;public:
Line(doublea,doubleb,doublec,doubled):
p1(a,b),p2(c,d)/用两对坐标初始化线段init();Line(Pointa,Pointb)/用两个点的对象初始化线段p1=a;p2=b;init();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;public:
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);r1.printPoint();Rectangler2(p1,p2,p3,p4);r2.printPoint();4.基类是使用极坐标的点类,从它派生一个圆类,圆类用点类的左边作圆心,圆基类是使用极坐标的点类,从它派生一个圆类,圆类用点类的左边作圆心,圆周通过极坐标原点,圆类有输出圆心直、圆半径和面积的成员函数。
完成类的设计并周通过极坐标原点,圆类有输出圆心直、圆半径和面积的成员函数。
完成类的设计并验证之。
验证之。
#include#includeusingnamespacestd;classPoint/点类protected:
intx,y;public:
Point();classCircular:
publicPoint/圆类,继承点类protected:
doubler,area;public:
Circular(inta,intb)x=a;y=b;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.设计一个线段基类,当创建五参数对象时,才要求用户输入长度。
同样,其派设计一个线段基类,当创建五参数对象时,才要求用户输入长度。
同样,其派生的直角三角形类也是在产生对象时要求输入两个直角边的长度。
直角三角形在派生生的直角三角形类也是在产生对象时要求输入两个直角边的长度。
直角三角形在派生矩形类,矩形类的参数也由键盘输入。
设计这些类并测试他们的功能。
矩形类,矩形类的参数也由键盘输入。
设计这些类并测试他们的功能。
#include#includeusingnamespacestd;classLine/线段基类protected:
doublesizeA;public:
Line()cout输入线段的长度:
sizeA;Line(doublea)sizeA=a;doublegetLength()returnsizeA;classTriangle:
publicLine/三角形类protected:
doublesizeB,sizeC;public:
Triangle()cout输入线段长度:
sizeB;sizeC=sqrt(sizeB*sizeB+sizeA*sizeA);voidprintSize()cout直角三角形,三条边分别为:
;coutA:
sizeA,b:
sizeB,C:
sizeCendl;classRectangle:
publicTriangle/矩形类protected:
doublesizeD;public:
Rectangle()sizeC=sizeA;sizeD=sizeB;voidprintSize()cout矩形,四条边分别为:
;coutA:
sizeA,b:
sizeB,C:
sizeC,D:
sizeDendl;voidmain()/*Line*l=newLine();cout线段长度为:
getLength()printSize();*/Rectangle*r=newRectangle();r-printSize();第七章1.使用类模板演示复制兼容性规则。
使用类模板演示复制兼容性规则。
#includeusingnamespacestd;templateclassPointprotected:
Tx,y;public:
Point(Ta,Tb)x=a;y=b;voi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 编程 450
![提示](https://static.bdocx.com/images/bang_tan.gif)