C++习题及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一、二章习题1.关于C++语言,下列说法不正确的是A.C++具有简洁、高效和接近汇编语言的特点B.C++本身几乎没有支持代码重用的语言结构C.C++语言不是一种纯面向对象的语言D.C++支持面向对象的程序设计,这是它对C的重要改进B2.使用关键字________说明的函数为内联函数。inline3.C++支持两钟多态性,即________和________。编译时的多态性运行时的多态性4.在下面横线处填上适当字句,使程序输出结果为5,10#includeiostream.hvoidmain(){________intn=5;int&________=n;ref=ref+5;coutn”,”ref;}constref5.constint*p;表明A.p本身是常量B.p指向一个固定的int类型的地址,而p的内容可以修改C.p只能指向一个整型常量D.p只能指向一个被const修饰的int类型的常量C6.数据封装给数据提供了与外界联系的________,只有通过这些________,使用规范的方式,才能访问数据。标准接口接口7.在下面横线处填上适当字句,使程序完整。intarr[]={1,2,3,4,5};________index(inti){returna[i];}voidmain(){index(3)=________;//将a[3]改为6}int&68.#includeiostream.hvoidmain(){int*p,i,j;cinj;//输入4p=newint[j];if(!p){cout”Allocationerror\n”;}for(i=0;ij;i++)p[i]=i;for(i=0;ij;i++)coutp[i]““;coutendl;delete[]p;}输出为:4(这是输入的数据)01239.#includeiostream.hvoidcomp(constint&,int&);intmain(){intn=6,t=10;cout”n=”n”,t=”tendl;comp(n,t);cout”n=”n”,t=”tendl;return0;}voidcomp(const&in1,int&in2){in2=in1*10+in2;}输出为:n=6,t=10n=6,t=7010.下列属于C++头文件约定使用的扩展名的是i..cppii..hppiii..civ..c++B11.C++提供了一种新的注释方式:从“//”开始,直到________,都被计算机当做注释。行尾12.在C++中,多态性被直观地称为“________”。一个名字,多个函数13.#includeiostream.hvoidaddsub(int&,int&);voidmain(){inta=10,b=15;addsub(a,b);cout”a=”a”,b=”b;}voidaddsub(int&m,int&n){inttemp=m;m=m*n;n=temp-n;}输出为:a=150,b=-514.#includeiostream.hvoidmain(){inta[2][2]={{2,4},{6,8}};int*pa[2];pa[0]=a[0];pa[1]=a[1];for(i=0;i2;i++)for(j=0;j2;j++,pa[i]++)cout“a[”i“][”j“]=”*pa[i]endl;}输出为:a[0][0]=2a[0][1]=4a[1][0]=6a[1][1]=815.#includeiostream.h#includeiomanip.hmain(){coutsetfill(‘*’)setw(2)21endlsetw(3)21endlsetw(4)21endl;}输出为:21*21**2116.C++有几种联编i.1种ii.2种iii.3种iv.4种B17.由于引用不是变量,所以不能说明引用的________,也不能说明数据类型为引用数组或是指向引用的指针。引用18.函数原型标识一个函数的________,同时也标识该函数参数的________和________。返回类型个数类型19.#includeiostream.hvoidf(){staticinti=15;i++;cout”i=”iendl;}voidmain(){for(intk=0;k2;k++)f();}输出为:i=16i=1720.#includeiostream.h#includeiomanip.hmain(){couthex20endl;coutoct10endl;coutsetfill(‘x’)setw(10);cout100”aa”endl;return0;}输出为:1412xxxxxxx144aa21.#includeiostream.hintfun(intn1,intn2){returnn1*n2;}floatfun(intf1,floatf2){returnf1*f2;}voidmain(){inta=10;intb=2.5;floatc=2.55;floatd=5.52;coutfun(a,b)endl;coutfun(c,d)endl;}输出为:2011.0422.与标准错误输出设备相关联(缓冲方式)的,由C++流库预定义的流是________。clog23.C++的流类库预定义的,与标准输出设备相关联的流是i.cinii.coutiii.cerriv.clogB第三章习题及答案9.缺省的析构函数的函数体是A.不存在的B.随机产生的C.空的D.无法确定的C10.以下说法中正确的是A.一个类只能定义一个构造函数,但可以定义多个析构函数B.一个类只能定义一个析构函数,但可以定义多个构造函数C.构造函数与析构函数同名,只是名字前加了一个波浪号(~)D.构造函数可以指定返回类型;而析构函数不能指定任何返回类型,即使是void类型也不可以B11.不能在C++中提供封装的关键字是A.classB.structC.typeD.unionC12.由于数据隐藏的需要,静态数据成员通常被说明为A.私有的B.保护的C.公有的D.不可访问的A13.在类中说明的任何成员都不能用________、________和________关键字进行修饰。externautoregist14.构造函数是和________同名的函数,但要在后者的名字之前冠有一个________,以区别于前者。析构函数波浪号~15.用关键字static修饰的成员称为________。静态成员16.已知AA是一个类,则AA*a[2];声明了一个________数组。类对象指针17.拷贝初始化构造函数用对它所在类的________作为参数。引用18.指出下面程序段中的错误,并说明出错原因。//str1.h#includeiostream.h#includestring.hclassstr{private:char*string;public:str(char*s){string=newchar[strlen(s)+1];strcpy(string,s);}~str(){cout”Delete…”endl;deletestring;}voidprint(){coutstringendl;}};#include“str1.h”voidmain(){strs1=”student”;strs2=s1;s1.print();s2.print();}指针悬挂问题24.指出下面程序段中的错误,并说明出错原因。classLocation{public:voidinit(intinitX,intinitY);private:intX=1;public:intgetX();private:inty;};不能采用这种方式初始化25.指出下面程序段中的错误,并说明出错原因。classTest{private:intnum;protected:intp;};voidfun(){Testm;intx=m.p;}类之外定义的函数不能访问类的保护成员26.指出下面程序段中的错误,并改正。classtest{intx;};test*ptr=newtest[2];deleteptr;应为:delete[]ptr;27.在下面横线处填上适当字句,完成类的定义。classT{public:voidinit(intinitx){x=initx;}intgetx(){________;}//取x值private:________;};returnxintx28.在下面横线处填上适当字句,完成类中成员函数的定义。classABC{intn;floatf;public:ABC(int,float);ABC(ABC&);};ABC::ABC(________){n=num;f=f1;}ABC::ABC(ABC&t){n=________;f=t.f;}intnum,floatf1t.n29.#includeiostream.hclassA{public:staticintx;inty;};intA::x=15;voidmain(){Aa;coutA::xendl;couta.xendl;}输出为:151530.classtest{private:intnum;public:test();intget(){returnnum;}~test();};test::test(){num=0;}test::~test(){cout”Destructorisactive”endl;}voidmain(){testt[2];cout”Exitingmain”endl;}输出为:ExitingmainDestructorisactiveDestructorisactive31.#includeiostream.hclasssalary{intx,y;staticintn;public:salary(intb):x(b){}voidf(doublei){y=x*i;}staticvoidg(intp){n=p;}inth()const{return(x+y+n);}};intsalary::n=100;voidmain(){salarys1(1000),s2(2000);s1.f(0.2);s2.f(0.15);salary::g(400);cout”s1=”s1.h()”,s2=”s2.h()”\n”}输出为:S1=1600,S2=270032.#includeiostream.hclasst{intx;floaty;public:t(intn){x=n;}t(intn,floatf){x=n;y=f;}intf(){returnx;}floatg(){returny;}};tone[2]={3,4};ttwo[2]={t(3,5.5),t(7,8.8)};voidmain(){for(inti=0;i2;i++)cout“one[”i“]=”one[i].f()endl;coutendl;for(inti=0;i2;i++)cout“two[”i“]=(”two[i].f()”,”two[i].g()”)”endl;输出为:one[0]=3one[1]=4two[0]=(3,5.5)two[1]=(7,8.8)33.说明友元函数使用关键字i.friendii.staticiii.constiv.volatileA34.指向类X中类型为type的数据成员的指针的说明形式为i.typeX::*pointerii.X::type*pointeriii

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功