c++经典习题附答案可编辑修改word版.docx
- 文档编号:30711964
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:34
- 大小:28.44KB
c++经典习题附答案可编辑修改word版.docx
《c++经典习题附答案可编辑修改word版.docx》由会员分享,可在线阅读,更多相关《c++经典习题附答案可编辑修改word版.docx(34页珍藏版)》请在冰豆网上搜索。
c++经典习题附答案可编辑修改word版
1.关于C++语言,下列说法不正确的是
A.C++具有简洁、高效和接近汇编语言的特点B.C++本身几乎没有支持代码重用的语言结构C.C++语言不是一种纯面向对象的语言
D.C++支持面向对象的程序设计,这是它对C的重要改进
B
2.使用关键字说明的函数为内联函数。
inline
3.C++支持两钟多态性,即和。
编译时的多态性运行时的多态性
4.在下面横线处填上适当字句,使程序输出结果为5,10#include
voidmain(){intn=5;
int&=n;ref=ref+5;cout< constref 5.constint*p;表明 A.p本身是常量 B.p指向一个固定的int类型的地址,而p的内容可以修改 C.p只能指向一个整型常量 D.p只能指向一个被const修饰的int类型的常量C 6.数据封装给数据提供了与外界联系的,只有通过这些,使用规范的方式,才能访问数据。 标准接口接口 7.在下面横线处填上适当字句,使程序完整。 intarr[]={1,2,3,4,5}; index(inti){returna[i];}voidmain(){ index(3)=;//将a[3]改为6 } int&6 8.#include voidmain(){int*p,i,j;cin>>j;//输入4p=newint[j]; if(! p){cout<<”Allocationerror\n”;}for(i=0;i delete[]p; } 输出为: 4(这是输入的数据) 0123 9.#include voidcomp(constint&,int&);intmain(){intn=6,t=10; cout<<”n=”< } voidcomp(const&in1,int&in2){in2=in1*10+in2;} 输出为: n=6,t=10 n=6,t=70 10.下列属于C++头文件约定使用的扩展名的是 i..cpp ii..hpp iii..c iv..c++ B 11.C++提供了一种新的注释方式: 从“//”开始,直到,都被计算机当做注释。 行尾 12.在C++中,多态性被直观地称为“”。 一个名字,多个函数 13.#include voidaddsub(int&,int&);voidmain(){inta=10,b=15; addsub(a,b);cout<<”a=”< } voidaddsub(int&m,int&n) {inttemp=m;m=m*n;n=temp-n;} 输出为: a=150,b=-5 14.#include voidmain(){inta[2][2]={{2,4},{6,8}};int*pa[2]; pa[0]=a[0]; pa[1]=a[1]; for(i=0;i<2;i++) for(j=0;j<2;j++,pa[i]++) cout<<“a[”< } 输出为: a[0][0]=2 a[0][1]=4 a[1][0]=6 a[1][1]=8 15.#include #include (2)<<21< } 输出为: 21 *21 **21 16.C++有几种联编 i.1种 ii.2种 iii.3种 iv.4种 B 17.由于引用不是变量,所以不能说明引用的,也不能说明数据类型为引用数组或是指向引用的指针。 引用 18.函数原型标识一个函数的,同时也标识该函数参数的和 。 返回类型个数类型 19.#include voidf(){staticinti=15;i++; cout<<”i=”< } voidmain() {for(intk=0;k<2;k++) f(); } 输出为: i=16 i=17 20.#include #include cout< } 输出为: 14 12 xxxxxxx144aa 21.#include intfun(intn1,intn2){returnn1*n2;}floatfun(intf1,floatf2){returnf1*f2;}voidmain(){inta=10; intb=2.5;floatc=2.55;floatd=5.52; cout< } 输出为: 20 11.04 22.与标准错误输出设备相关联(缓冲方式)的,由C++流库预定义的流是 。 clog 23.C++的流类库预定义的,与标准输出设备相关联的流是 i.cin ii.cout iii.cerr iv.clog B 第三章习题及答案 9.缺省的析构函数的函数体是 A.不存在的B.随机产生的C.空的 D.无法确定的 C 10.以下说法中正确的是 A.一个类只能定义一个构造函数,但可以定义多个析构函数B.一个类只能定义一个析构函数,但可以定义多个构造函数C.构造函数与析构函数同名,只是名字前加了一个波浪号(~) D.构造函数可以指定返回类型;而析构函数不能指定任何返回类型,即使是void 类型也不可以 B 11.不能在C++中提供封装的关键字是 A.classB.structC.type D.union C 12.由于数据隐藏的需要,静态数据成员通常被说明为 A.私有的B.保护的C.公有的 D.不可访问的 A 13.在类中说明的任何成员都不能用、和关键字进行修饰。 externautoregist 14.构造函数是和同名的函数,但要在后者的名字之前冠有一个 ,以区别于前者。 析构函数波浪号~ 15.用关键字static修饰的成员称为。 静态成员 16.已知AA是一个类,则AA*a[2];声明了一个数组。 类对象指针 17.拷贝初始化构造函数用对它所在类的作为参数。 引用 18.指出下面程序段中的错误,并说明出错原因。 //str1.h #include classstr{private: char*string; public: str(char*s){string=newchar[strlen(s)+1];strcpy(string,s);} ~str(){cout<<”Delete…”< #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: ;}; returnxintx 28.在下面横线处填上适当字句,完成类中成员函数的定义。 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.n 29.#include classA{public: staticintx; inty;}; intA: : x=15;voidmain(){Aa; cout< : x< } 输出为: 15 15 30.classtest{private: intnum; public: test(); intget(){returnnum;} ~test(); }; test: : test(){num=0;}test: : ~test(){cout<<”Destructorisactive”< cout<<”Exitingmain”< } 输出为: Exitingmain DestructorisactiveDestructorisactive 31.#include classsalary{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=1600,S2=2700 32.#include classt{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;i<2;i++) cout<<“one[”< for(inti=0;i<2;i++)cout<<“two[”< 输出为: one[0]=3 one[1]=4 two[0]=(3,5.5) two[1]=(7,8.8) 33.说明友元函数使用关键字 i.friend ii.static iii.const iv.volatile A 34.指向类X中类型为type的数据成员的指针的说明形式为 i.typeX: : *pointer ii.X: : type*pointer iii.Type*X: : pointer iv.X: : *typepointer A 35.有关类作用域,下列说法中不正确的是 i.说明类时使用的一对花括号形成所谓的类作用域 ii.类作用域不包含类中成员函数的作用域 iii.类作用域中说明的标识符只在类中可见 iv.在可能出现两义性的情况下,必须使用作用域限定符“: : ” B 36.形如X: : X(X&)的构造函数称为 i.拷贝函数 ii.复制函数 iii.初始化构造函数 iv.拷贝初始化构造函数 D 37.友元关系不具有,即当说明类A是类B的友元时,类B不一定是类A 的友元。 交换性 38.new和一同起作用,delete与一起工作。 构造函数析构函数 39.指出下列程序段中的错误,并改正。 classBb{private: intn;floatf; public: Bb(intn1,floatf1){n=n1;f=f1;}Bb(Bbb){n=b.n;f=b.f;} }; 应为: Bb(Bb&b){n=b.n;f=b.f;} 40.指出下面程序段中的错误,并改正。 classtest{ public: staticintx;};inttest.x=10; 应为: inttest: : x=10; 41.在下面横线处填上适当字句,完成类中成员函数的定义。 classA{private: intx;floaty; public: A(intaa,floatb){x=;//用aa初始化x y=;}//用b初始化y }; aab 42.#include classA{private: inta,b; public: A(intm,intn){a=m;b=n;}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 经典 习题 答案 编辑 修改 word