C++程序设计-参考答案刘振安_第1页
C++程序设计-参考答案刘振安_第2页
C++程序设计-参考答案刘振安_第3页
C++程序设计-参考答案刘振安_第4页
C++程序设计-参考答案刘振安_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

B;(typedef,typeid,typename,都为保存字C;(标记符,应当以字母或,下划线开头C;(标记符中有的特殊符号,只能有下划线newintxconstint*p=&x;xconst,*p不能,p=&yASCII65#include<iostream>usingnamespacestd;voidmain(){intascii_1=65,ascii_2=66;//ASCII码中的,65cout<<"字符输出:"<<(char)ascii_1<<","<<(char)ascii_2<<endl;cout<<"ASCII码输出:"<<ascii_1<<","<<ascii_2<<endl;}int100个整形空间的程序。#include<iostream>usingnamespacestd;voidmain(){intp=newfor(inti=0;i<{}for(i=0;i<{cout<<*(p+i)<<"}delete}15float值,用指针把它们寄存在一种存储快里,然后输出这#include<iostream#includealgorithm用于数组排列的头文献usingnamespacestd;void{floatp=newcout<<"15float类型的值:endl;for(inti=0;i<15;i++){ }intsum=0;for(i=0;i<{sum+=*(p+i);}cout<<"和是:"<<sum<<endl;cout<<"最小的是:"<<*(p)<endl;delete}inta[]={1,2,3,4,5,6,7,4aba4的位置,最ab的内容。#include<iostream>#include<algorithm>#include<functional>usingnamespacestd;voidmain(){intcout<<"a中'4'的位置是:find(a,a+8,4)<<endl;//4的位置copy(a,a+8,b);//abreverse_copy(b,b+8,a);//baacout<<"a反转后,'4'的位置是:find(a,a+8,4)<<endl;//4cout<<"数组a的内容:"<<endl; cout<<"\n数组b中的内容:"<<endl; }第二章参考答案12岁,女学生李红的11岁。给出这个学生类的类图和它们的对象图。stringintPointfloatfloatfloatfloatfloatfloatstringstringno;//编号intnum;//人数…longno;//编号longno;//编号floatbalance;//余额…longno;//编号floatbalance;//余额…floatgetBalance();//#include<iostream>#include<string>usingnamespacestd;voidmain(){//string类定义字符串,完毕字符串连接stringstr1("C++"),str2("程序设计");stringstr3str1+str2;//1cout<<str3<<endl;//char数组定义字符串,完毕连接charc1[]={"c++"},c2[]={"program"};charc3[20]={""};intcout<<c3<<}hereh#include<iostream>#include<functional>#include<algorithm>#include<string>usingnamespacestd;voidmain(){stringstr1("Wearehere!");cout<<str1[7]<endl;//通过数组stringstr2=str1.substr(7,1);//通过得到子字符串cout<<str2<<endl;char*p=find(str1.begin(),str1.end(),'h');//find函数cout<<*p<<char*p1=find(&str1[0],&str1[str1.length()],'h');//find函数cout<<*p1<<}funcint*fun(char,intACCy=x*x-错误,Ty没有类型。template<classT>Tmax(Tx,Ty){return(x>y)?(x):(y)}changevoidchange(string&{s=s+}ax2bxc03b2-4ac不不大于零、等a,b,c的值并输出成果。#include<iostream>#include<math.h>usingnamespacestd;voidequation_1(inta,intb,int{doublex1,x2,temp;temp=b*b-4*a*c;x1=(-b+sqrt(temp))/(2*a*x2=(-b-sqrt(temp))/(2*a*1.0);cout<<"两个不相等的实根cout<<"x1="<< x2="<<x2<<}voidequation_2(inta,intb,int{doublex1,x2,temp;x1=(-b)/(2*a*1.0);x2=x1;cout<<"两个相等的实根cout<<"x1="<< x2="<<x2<<}voidequation_3(inta,intb,int{doubletemp,real1,real2,image1,image2;temp=-(b*b-4*a*c);real1=-b/(2*a*1.0);real2=real1;image1sqrt(temp)(2*a*1.0);image2sqrt(temp)(2*a*1.0);cout<<"两个虚根"<<endl;cout<<"x1="<<real1<<"+"<<image1<<"i"<<cout<<"x2="<<real2<<"-"<<image2<<"i"<<}void{inta,b,c;doubletemp;cout<<"输入a,b,c的值endl;cout<<"方程为:a<<"x*x+"<<b<<"x+"<<c<<"0"endl;temp=b*b-4*a*c;if(temp>equation_1(a,b,c);if(temp==0)equation_2(a,b,c);if(temp<0)equation_3(a,b,}up(ch)chup返回,否则字符ch不变化。规定在短小而完全的程序中显示这个程序是如何被调用的。#include<iostream>usingnamespacestd;charup(charc){if(c>='a'&&c<='z')return(c-32);}

returnvoid{intcharc[15]=for(i=0;i<15;i++)cout<<up(c[i])<<" cout<<}rnrn#include<iostream>#include<math.h>usingnamespacedoublepower(doublea,int{intdoubleresult=1.0;for(i=0;i<b;i++)result=result*a;returnresult;}void{doubler;intn;cout<<"r=";cout<<"n=";cout<<r<<"的"<<n<<"次幂是:"<<power(r,n)<<}CNC构成的三角形。其方11C22C,等等。#include<iostream>usingnamespacestd;voidprint_triangle(charc,int{inti,for(i=0;i<n;{for(j=0;j<=i;{cout<<}cout<<}}void{}strlen(s逆序。#include<iostream>#include<string>usingnamespacestd;intstrlen(char{intlen=0;while(str[len]!='\0'){}return}voidrevers(char{charintj,len;{*(b+j)=*(b+len-j-}}void{charstr[]={"abcdefghijklmnopqrstuvwxyz"};cout<<str<<"strlen(str)<<endl;cout<<str<<endl;//倒序前cout<<str<<endl;//}3#include<iostream>usingnamespacestd;template<classvoidsort(Ta,Tb,T{Tarray[3],temp;inti,j;array[0]=a;array[1]=b;array[2]=c;{{temp=array[j];array[j]=array[j+1];array[j+1]=temp;}}cout<<array[0]<<""<<array[1]<<""<<array[2]<<}void{}#include<iostream>usingnamespacestd;template<classT>Tsum(Ta[],int{intTfor(i=0;i<n;i++)s=s+a[i];return}voidmain{intints=sum(a,5);cout<<s<<endl;}#include<iostream>usingnamespacestd;template<classTsum(Ta[],int{intTfor(i=0;i<n;i++)s=s+a[i];return}template<classT>//重载上面的模板Tsum(Ta[],intn,Tb[],int{return}voidmain{intintints1=sum(a,5);ints2=sum(b,ints3=sum(a,5,b,10);cout<<s1<<endl;cout<<s2<<endl;cout<<s3<<}类、重载、fun:fun(fun&)、fun:fun(constfunCCA::~A(void)BCCDreturnm; deletep 错误2,deletep; 错误1,应当先定义A对象:PointA;错误2,一种参数:A.init(24.56);intSetx(inta){x=a;} 错误3,应有返回值:returnx;#include<iostream>usingnamespacestd;classbase{private://私有数据组员inta,b;publicvoidinit(intx,inty)//{a=b=}void{cout<<"2*"<<a<<"-"<<b<<"="<<(2*a-b)<<}void{basea;}#include<iostream>usingnamespacestd;classPoint{privateintm,n;public:Point(intint);//整型变量,为参数的构造函数{cout<<"m="<<m<<",n="<<n<<}Point::Point(inta,int{m=n=}Point::Point(Point&t)//{m=n=}void{Pointa(10,89);Pointb(a);}main函数main函数void{baseb(10,}初始化4个坐标值和面积。使用测试程序验证程序。#include<iostream>usingnamespaceclass //{intx,y;//私有组员变量,坐标public:Point()//xy{x=y=}Point(inta,intb)//xy{x=a;y=}voidsetXY(intaintb)//{x=a;y=}intgetX()//x{return}intgetY()//{return}class //{Pointpoint1,point2,point3,point4;//私有组员变量,4个点的对象public:Rectangle();//Point的无参构造函数已经对每个对象做初始化啦,这里不用对每个点Rectangle(Pointone,Pointtwo)//用点对象做初始化的,构造函数,14{point1=one;point4=two;}Rectangle(intx1,inty1,intx2,inty2)//用两对坐标做初始化,构造函数,14点{point1.setXY(x1,y1);point4.setXY(x2,y2);}voidinit()//{point2.setXY(point4.getX(),point1.getY());point3.setXY(point1.getX(),point4.getY()}voidprintPoint()//{cout<<"A:("<<point1.getX()<<","<<point1.getY()<<")"<<endl;cout<<"B:("<<point2.getX()<<","<<point2.getY()<<")"<<endl;cout<<"C:("<<point3.getX()<<","<<point3.getY()<<")"<<endl;cout<<"D:("<<point4.getX()<<","<<point4.getY()<<")"<<}intgetArea()//{intheight,width,height=point1.getY()-point3.getY();width=point1.getX()-point2.getX();area=height*width;if(area>returnreturn-}void{Pointp1(-15,56),p2(89,10);//Rectangler1(p1,p2);//r1Rectangler2(1,5,5,1);//r2cout<<"r14个定点坐标:endl;cout<<"r1的面积:r1.getArea()cout<<"\nr24个定点坐标:endl;cout<<"r2的面积:r2.getArea()}#include<iostream.h>#include<math.h>classLine{intx1,y1,x2,y2;public:Line(int=0,int=0,int=0,int=0);voidprintPoint();doubleinlineLine::Line(inta,intb,intc,int{x1=a;y1=b;x2=c;y2=}inlinevoid{cout<<"A:"<<x1<<","<<y1<<endl;cout<<"B:"<<x2<<","<<y2<<}inlinedouble{doublelength=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));returnlength;}void{Lineline(10,80,-10,12);cout<<line.getLength()<<}[color=#FF0000]第五章1.B;2.A;3.C;staticintgetn(){returnnumber;}静态组员函数,只允许访问静态组员变量,numbervoid{test*two[2]={newtest(4,5),test(6,8)};for(i=0;i<2;i++)delete}#include<iostream>usingnamespacestd;classtest{intx;public:

test(int{x=}int{return}void{inti;//test*p,a[2][3]={{1,2,3},{4,5,for(p=&a[0][0],i=0;i<=6;i++,p++)//2{if((p-a[0])%3==cout<<endl;cout<<p->GetX()<<"";}}声明复数的类,complexadd实现复数加法。#include<iostream>usingnamespacestd;classComplex{public

doublereal,Complex(doublea,doubleb){real=a;image=b;}voidsetRI(doublea,double{real=a;image=}double{return}double{return}void{cout<<"复数:realimage<<"i"<<endl;cout<<"复数:realimage<<"i"<<}friendComplexadd(Complex,Complex);//Complexadd(Complexc1,Complexc2)//{Complexc3.realc1.realc2.real;//Complex类中的私有组员c3.image=c1.image+c2.image;return}void{Complexc1(19,0.864),c2,c3;c3=add(c1,cout<<"}5.8,114#include<iostream>usingnamespacestd;voidmain(){inti,n,double*arraynewdouble[n];用指针,动态申请数组大小cout<<"给每个数组元素赋值:"<<endl;for(i=0;i<n;{cout<<"array["<<i<<"]=";*(array+i)temp;//}cout<<"动态数组个元素的值以下:for(i=0;i<n;{cout<<"array["<<iarray[i]endl;//}deletearray;//}DogDogsDog#include<iostream>usingnamespacestd;classDog{public

staticintdogs;//Dog的个体数目voidsetDogs(int{dogs=}staticint{return}intDogdogs25;//初始化静态数据组员voidmain(){cout<<"Dog类对象之前:xDog::getDogs()endl;;x在产生对象之前即25Doga,cout<<"ax:a.getDogs()endl;cout<<"bx:b.getDogs()endl;cout<<"ax设立值后:endl;cout<<"ax:"<<a.getDogs()<<endl;cout<<"bx:"<<b.getDogs()<<endl;}第六章单一继承;2.privateprotectedderivedbaseb,derivedm(b)Derivedshow()办法voidShow(){}#includeiostreamusingnamespacestd;classBasic//基类{ Basic(){r=0;Basic(doubleclassCircularpublicBasic//{double Circular(double{r=area=area=3.1415926*r*}doublegetArea()//{return}classColumnpublicCircular//{doubledouble Column(doublea,doubleb):{h=cubage=getArea()*}doublegetCubage()//{return}void{Circularcircular(45);Columncolumn(12,10);cout<<"圆的面积:"<<circular.getArea()<<endl;cout<<"圆柱的体积:column.getCubage()endl;}x4个顶点坐标。给出类的定义并用程序验证它们的功效。#include<iostream>#include<cmath>usingnamespacestd;classPoint//{public

doublex,Point(doublea,double{x=a;y=}double{returnx;}doublegetY(){returnclass{

Pointp1,p2;//Point对象做组员doublelength,angle;Line(doublea,doubleb,doublec,doubled):p1(a,b),p2(c,d)//{}Line(Pointa,Pointb)//{p1=a;p2=b;}voidinit()//x{doublex1=p1.getX(),y1=p1.getY();doublex2=p2.getX(),y2=length=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));angle=atan((y2-y1)/(x2-x1));angle=angle}void{cout<<"("<<p1.getX()<<","<<p1.getY() ("<<p2.getX()p2.getY()<<")"<<}void{cout<<"线段长度:length}void{cout<<"x轴的夹角:angle°}classRectangle:public{

LineRectangle(doublea,doubleb,doublec,doubled,doublee,doublef,doubledouble{line=new}Rectangle(Pointa,Pointb,Pointc,Pointd)Line(a,b)//4{line=newLine(c,}void{}void{

cout<<"4个顶点:\n";line-Pointp1(0,0),p2(4,3),p3(12,89),p4(10,-LineLinel2(p1,p2);RectangleRectangler2(p1,p2,p3,p4);}#includeiostream#include<cmath>usingnamespacestd;classPoint//点类{intx, classCircularpublicPoint//{doubler, Circular(inta,int{x=a;y=r=sqrt(x*x+y*y);area=3.1415926*r*}void{cout<<"圆形直角坐标:xy<<")"<<}void{cout<<"圆的半径:"<<r<<}void{cout<<"圆的面积:"<<area}void{Circularc(10,25);}#includeiostream#include<cmath>usingnamespacestd;classLine//{double {cout<<"输入线段的长度:endl;}Line(double{sizeA=}double{return}classTriangle:publicLine//{doublesizeB, {cout<<"输入线段长度:endl;sizeC=sqrt(sizeB*sizeB+sizeA*sizeA}void{cout<<"cout<<"A:"<<sizeA<<",b:"<<sizeB<<",C:"<<sizeC<<}classRectanglepublicTriangle//{double {sizeC=sizeA;sizeD=}void{sizeD<<}

cout<<"cout<<"A:"<<sizeA<<",b:"<<sizeB<<",C:"<<sizeC<<",D:void{ Line*l=newcout<<"线段长度为l->getLength()<</*Triangle*t=newTriangle();Rectangle*r=newRectangle();}[color=#FF0000]第七章1.A;2.A;3.B;4.D;rbegin(),insert(iteratorit,constT&);2.size(),2;3.typedefvector<>::reverse_iteratorTgetx(){return}PointintLinea,bint#include<iostream>usingnamespacestd;class{Tx, Point(Ta,T{x=a;y=}void{cout<<"x="<<x<<",y="<<y<<}classRectangle:public{public

Th,Rectangle(Ta,Tb,Tc,Td):Point(a,{h=c;w=}void{cout<<"x="<<x<<",y="<<y<<";h="<<h<<",w="<<w<<}void{ a(3, b(5.1,6.2,7.3,8.4); &rab;// *p&b;//子类对象的地址,赋给指向父类的指针 *pb&b;//pba=b; }//1346.3#include<iostream>usingnamespace class{ Tx,Point(Ta=0,T{x=a;y=}void{cout<<"x="<<x<<",y="<<y<<} classLine_1publicPoint//Point类模板,{public:

Tx1,Line_1(Ta,Tb,Tc,Td):Point(a,{x1=c;y1=}Line_1(constLine_1&复制构造函数voidshow(){cout<<"("<<x<<","<<y<<");("<<x1<<","<<y1<<")"<<} ::Line_1(constLine_1&t):Point(t.x,{x1=t.x1;y1=} classLine_2point{ p1, Line_2(Ta,Tb,Tc,T{p1.x=a;p1.y=b;p2.x=c;p2.y=}Line_2(constLine_2 voidshow(){cout<<"("<<p1.x<<","<<p1.y<<");("<<p2.x<<","<<p2.y<<")"<<} ::Line_2(constLine_2&{p1=t.p1;p2=}void{ cout<<"L1: L2(L1);用现有的对象,初始化新对象cout<<"L2:";L2.show(); cout<<"J1: cout<<"J2:";J2.show();}先对数组进行升序排列,再使用它产#include<iostream>#include<vector>#include<algorithm>usingnamespacestd;voidmain(){inta[]=sort(a,a+10);//先对数组进行升序排序copy(a,a+10,ostream_iterator(cout,"cout<<endl; pa(a,a+10);//reverse_copy(pa.begin(),pa.end(),ostream_iterator(cout,"cout<<"\ncapacitypa.capacity()endl;//capacity()}[color=#F70909]第八章A;printvoidprint(base&{}#include<iostream>usingnamespacestd;classbase{inti;intj;base(intI,intJ):{}intgetI(){return}intgetJ(){return}voiddisplay(){cout<<"i="<<i<<'\t'<<"j="<<j<<}classderived:public{intk;derived(intI,intJ,intK):base(I,J),{}voiddisplay(){cout<<"i="<<getI()<<'\t'<<"j="<<getJ()<<'\t'<<"k="<<k<<endl;cout<<"i+k="<<(getI()+k)<<'\t'<<"j+k="<<(getJ()+k)<<endl;}void{baseb3(8,derivedd1(10,20,}[color=#FF0000]第九章[/color]一、单选1.B;2.A;3.C;4.B5.Dofstream#include<iostream>#include<iomanip>usingnamespacestd;void{cout<<scientific<<showpos;cout<<-25.89F<<"";cout<<25.89f<<}class{friendostream&operator<<(ostream&os,Fun{returnos;;}void{Funcout<<setfill('*')<<setw(10)<<12345<<"";cout<<fun<<setw(10)<<54321<<endl;}#include<iostream>#include<string>usingnamespacestd;class{privatepublic

stringname;floatscore;Student(stringn,floats){name=n;score=}string{return}float{return}void{Students1("liming",Students2("sdfh",Students3("vn.fy",Students4("cnbtrt",Students5("ryuety", cout<<left<<"姓名"<<right<<"分数"<<endl; cout<<left<<s1.getName()<<right<<s1.getScore()<<endl; cout<<left<<s2.getName()<<right<<s2.getScore()<<endl; cout<<left<<s3.getName()<<right<<s3.getScore()<<endl; cout<<left<<s4.getName()<<right<<s4.getScore()<<endl; cout<<left<<s5.getName()<<right<<s5.getScore()<<}#include<iostream>#include<fstream>usingnamespacestd;voidmain(){char*p={"C++程序设计"};ofstreammyFile("Worl9_5_2.txt");myFile<<}#include<iostream>#include<fstream>#include<cmath>#include<vector>#include<iomanip>#include<string>usingnamespacestd;class{doublesizeA,sizeB,sizeC,area;voidsetArea(){doublep=(sizeA+sizeB+sizeC)area=sqrt(p*(p-sizeA)*(p-sizeB)*(p-sizeC)}voidsetSizeA(double{sizeA=}voidsetSizeB(double{sizeB=}voidsetSizeC(double{sizeC=}void //*//*参 :向量对象的引//*返回 ://*功 :为向量赋值并将向量存入文voidTriangle:: &v{Trianglet;doublea,b,c;{if(a1)//结束符为-{ofstreamwriteFile;charcout<<"保存到文献:fileNameendl;{cout<<"没有对的建立文献!endl;}for(inti=0;i<v.size();writeFile<<v[i].sizeA<<""<<v[i].sizeB<<""<<v[i].sizeC<<"v[i].area<<cout<<"一共写入v.size()个三角形信息endl;}cin>>b;cin>>c;if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a{}

cout<<"不能构成三角形,重新输入}}void{ Triangletriangle;}#includeiostream#include<fstream>#include<cmath>#include<vector>#includeiomanip>#include<string>usingnamespacestd;class{doublesizeA,sizeB,sizeC,area;voidsetArea(){doublep=(sizeA+sizeB+sizeC)area=sqrt(p*(p-sizeA)*(p-sizeB)*(p-sizeC)}voidsetSizeA(double{sizeA=}voidsetSizeB(double{sizeB=}voidsetSizeC(double{sizeC=}void //*//*参 :向量对象的引//*返回 ://*功 :为向量赋值并将向量存入文voidTriangle::set(vector &v){Trianglet;doublea,b,c;{if(a1)//结束符为-{ofstreamwriteFile;charcin>>fileName;cout<<"保存到文献:fileNameendl;{cout<<"没有对的建立文献!endl;}for(inti=0;i<v.size();writeFile<<v[i].sizeA<<""<<v[i].sizeB<<""<<v[i].sizeC<<"v[i].area<<cout<<"一共写入v.size()<<"个三角形信息endl;}if(a>0&&b>0&&c>0&&a+b>c&&a+c>b&&b+c>a{}

cout<<"不能构成三角形,重新输入}}void{ Triangletriangle;}TESTTEST1usingnamespacevoid{ifstreamtxt1("TEST.txt");ofstreamtxt2("TEST1.txt");charc;{cout<<"文献打不开endl;}{cout<<"没有对的建立文献endl;}{{}cout<<c;//txt2<<c;//TEST1.txt}}“text”的磁盘文献中保存。输入的字符串以“$#includeiostream#include<fstream>usingnamespacestd;voidmain(){charofstreamwriteFile("text.txt");inti;{if(a[0]=='$')i=0;while(a[i]!={if(a[i]>=65&&a[i]<=90)a[i]=a[i]+32;}writeFile<<a<<"}}[color=#FF0000]第十章1.D;2.A;3.B;我觉得应当是,类的组员有(数据组员)和(组员函数)取消设计实例中的Cow属性,练习使用模板实现包含的设计办法。 <iostream>#include<cmath>usingnamespacestd;//*Pointclass{Tx,y;Point(Ta=0,Tb=0):x(a),y(b){}Point(Point&a){x=a.x;y=}voidTDistance(Point&);TgetX(){returnx;}TgetY(){returny;}/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论