ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:28.87KB ,
资源ID:7387373      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-7387373.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++经典习题附答案.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

c++经典习题附答案.docx

1、c+经典习题附答案1 关于C+语言,下列说法不正确的是A C+具有简洁、高效和接近汇编语言的特点B C+本身几乎没有支持代码重用的语言结构C C+语言不是一种纯面向对象的语言D C+支持面向对象的程序设计,这是它对C的重要改进B2 使用关键字_说明的函数为内联函数。inline3 C+支持两钟多态性,即_和_。编译时的多态性 运行时的多态性4 在下面横线处填上适当字句,使程序输出结果为5,10# include void main()_int n=5; int& _=n; ref=ref+5; coutn”,”ref;const ref5 const int *p;表明A p本身是常量B p指

2、向一个固定的int类型的地址,而p的内容可以修改C p只能指向一个整型常量D p只能指向一个被const修饰的int类型的常量C6 数据封装给数据提供了与外界联系的_,只有通过这些_,使用规范的方式,才能访问数据。标准接口 接口7 在下面横线处填上适当字句,使程序完整。int arr=1,2,3,4,5;_index(int i)return ai;void main() index(3)= _;/将a3改为6int & 68 #include void main()int *p,i,j;cinj;/输入4p=new intj;if(!p)cout”Allocation errorn”;for

3、(i=0;ij;i+)pi=i;for(i=0;ij;i+)coutpi“ “;coutendl;delete p;输出为:4(这是输入的数据) 0 1 2 39#include void comp(const int&,int&);int main()int n=6,t=10;cout”n=”n”,t=”tendl;comp(n,t);cout”n=”n”,t=”tendl;return 0; void comp(const&in1,int &in2)in2=in1*10+in2; 输出为:n=6, t=10 n=6,t=7010 下列属于C+头文件约定使用的扩展名的是i. .cppii.

4、.hppiii. .civ. .c+B11 C+提供了一种新的注释方式:从“/”开始,直到_,都被计算机当做注释。行尾12 在C+中,多态性被直观地称为“_”。一个名字,多个函数13 #include void addsub(int&,int&);void main()int a=10,b=15;addsub(a,b);cout”a=”a”,b=”b; void addsub(int &m,int &n) int temp=m; m=m*n; n=temp-n;输出为:a=150,b=-514 #include void main()int a22=2,4,6,8; int *pa2; pa0

5、=a0; pa1=a1; for(i=0;i2;i+) for(j=0;j2;j+,pai+) cout“a”i“ ”j“=”*paiendl; 输出为:a00=2 a01=4 a10=6 a11=815 #include #include main()coutsetfill(*)setw(2)21endlsetw(3)21endlsetw(4)21endl; 输出为:21 *21 *2116 C+有几种联编i. 1种ii. 2种iii. 3种iv. 4种B17 由于引用不是变量,所以不能说明引用的_,也不能说明数据类型为引用数组或是指向引用的指针。引用18 函数原型标识一个函数的_,同时也标

6、识该函数参数的_和_。返回类型 个数 类型19 #include void f()static int i=15; i+; cout”i=”iendl; void main() for(int k=0;k2;k+)f();输出为:i=16 i=1720 #include #include main()couthex20endl;coutoct10endl;coutsetfill(x)setw(10);cout100”aa”endl;return 0;输出为:14 12 xxxxxxx144aa21 #include int fun(int n1,int n2)return n1*n2;floa

7、t fun(int f1,float f2)return f1*f2;void main()int a=10; int b=2.5; float c=2.55; float d=5.52; coutfun(a,b)endl; coutfun(c,d)endl; 输出为:20 11.0422 与标准错误输出设备相关联(缓冲方式)的,由C+流库预定义的流是_。clog23 C+的流类库预定义的,与标准输出设备相关联的流是i. cinii. coutiii. cerriv. clogB第三章习题及答案9 缺省的析构函数的函数体是A 不存在的B 随机产生的C 空的D 无法确定的C10 以下说法中正确的

8、是A 一个类只能定义一个构造函数,但可以定义多个析构函数B 一个类只能定义一个析构函数,但可以定义多个构造函数C 构造函数与析构函数同名,只是名字前加了一个波浪号()D 构造函数可以指定返回类型;而析构函数不能指定任何返回类型,即使是void类型也不可以B11 不能在C+中提供封装的关键字是A classB structC typeD unionC12 由于数据隐藏的需要,静态数据成员通常被说明为A 私有的B 保护的C 公有的D 不可访问的A13 在类中说明的任何成员都不能用_、_和_关键字进行修饰。extern auto regist14 构造函数是和_同名的函数,但要在后者的名字之前冠有一

9、个_,以区别于前者。析构函数 波浪号 15 用关键字static修饰的成员称为_。静态成员16 已知AA是一个类,则AA *a2;声明了一个_数组。类对象指针17 拷贝初始化构造函数用对它所在类的_作为参数。引用18 指出下面程序段中的错误,并说明出错原因。/str1.h#include #include class strprivate:char *string; public:str(char* s)string=new charstrlen(s)+1;strcpy(string,s); str()cout”Delete”endl;delete string; void print()co

10、utstringendl;#include “str1.h”void main()str s1=”student”;str s2=s1;s1.print();s2.print();指针悬挂问题24 指出下面程序段中的错误,并说明出错原因。class Location public:void init(int initX,int initY);private:int X=1;public:int getX();private:int y;不能采用这种方式初始化25 指出下面程序段中的错误,并说明出错原因。class Test private: int num; protected: int p;

11、 ;void fun() Test m; int x=m.p;类之外定义的函数不能访问类的保护成员26 指出下面程序段中的错误,并改正。class testint x;test *ptr=new test2;delete ptr;应为:delete ptr;27 在下面横线处填上适当字句,完成类的定义。class Tpublic: void init(int initx) x=initx; int getx()_;/取x值 private: _;return x int x28 在下面横线处填上适当字句,完成类中成员函数的定义。class ABCint n;float f; public: A

12、BC(int,float); ABC(ABC&); ;ABC:ABC(_)n=num;f=f1;ABC:ABC(ABC&t)n=_;f=t.f;int num,float f1 t.n29 #include class Apublic: static int x; int y;int A:x=15;void main()A a; coutA:xendl; couta.xendl;输出为:15 1530 class testprivate: int num;public: test();int get()return num;test(); ; test:test()num=0; test:te

13、st()cout”Destructor is active”endl; void main()test t2; cout”Exiting main”endl; 输出为:Exiting main Destructor is active Destructor is active31 #include class salaryint x,y; static int n; public: salary(int b):x(b) void f(double i)y=x*i; static void g(int p)n=p; int h()constreturn(x+y+n);int salary:n=1

14、00;void main()salary s1(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 #include class tint x;float y; public: t(int n)x=n; t(int n,float f)x=n;y=f; int f()return x; float g()return y;t one2=3,4;t two2=t(3,5.5),t(7,8.8);void main()for(int i=0

15、;i2;i+) cout“one”i“=”onei.f()endl; coutendl; for(int i=0;i2;i+) cout“two”i“=(”twoi.f()”,”twoi.g()”)”endl; 输出为:one0=3 one1=4 two0=(3,5.5) two1=(7,8.8)33 说明友元函数使用关键字i. friendii. staticiii. constiv. volatileA34 指向类X中类型为type的数据成员的指针的说明形式为i. type X:*pointerii. X:type *pointeriii. Type *X:pointeriv. X:*ty

16、pe pointerA35 有关类作用域,下列说法中不正确的是i. 说明类时使用的一对花括号形成所谓的类作用域ii. 类作用域不包含类中成员函数的作用域iii. 类作用域中说明的标识符只在类中可见iv. 在可能出现两义性的情况下,必须使用作用域限定符“:”B36 形如X:X(X&)的构造函数称为i. 拷贝函数ii. 复制函数iii. 初始化构造函数iv. 拷贝初始化构造函数D37 友元关系不具有_,即当说明类A是类B的友元时,类B不一定是类A的友元。交换性38 new和_一同起作用,delete与_一起工作。构造函数 析构函数39 指出下列程序段中的错误,并改正。class Bbprivate

17、:int n;float f; public:Bb(int n1,float f1)n=n1;f=f1; Bb(Bb b)n=b.n;f=b.f; ;应为:Bb(Bb &b)n=b.n;f=b.f;40 指出下面程序段中的错误,并改正。class test public: static int x;int test.x=10;应为:int test:x=10;41 在下面横线处填上适当字句,完成类中成员函数的定义。class Aprivate: int x;float y; public: A (int aa,float b)x=_;/用aa初始化x y=_;/用b初始化y ;aa b42 #

18、include class Aprivate: int a,b;public: A(int m,int n)a=m;b=n;void fun()couta”,”bendl;void fun()constcouta”:”b*p();应为:(px-*p)();52 在下面横线处填上适当字句,使其输出结果为25,10。#include class Locationint X,Y; public: _; int GetX()return X;int GetY()return Y;void Location:init(int k,int t)(X=k;Y=t;)void main()Location a

19、;a.init(25,10); _;/输出对象a的数据成员X和Y的值。void init(int k, int t) couta.GetX()”,”a.GetY()53 在下面横线处填上适当字句,使程序输出结果为: x=10,y=5x=5,y=10Delete x=5,y=10Delete x=10,y=5 #include class ttprivate: int x,y; public: tt(int a, int b)x=a; y=b;_; tt() _; ; void main()tt arr2=tt(10,5),tt(5,10);cout”x=”x”,y=yendlcout”Dele

20、te x=”x”,y=”yendl54 #include class ConstFunpublic: const int f5()return 5; int obj()return 3; ;void main()ConstFun a;const int i=a.f5();int x=obj(); couti” “xendl; const ConstFun b;int j=b.f5(); coutjendl;输出为:5 3 555 运行下面的程序,写出当输入15,12时的结果#include class Rectangeint width,length; public: Rectange(int

21、 x,int y)length=x;width=y; void show()cout”The length is:”lengthendl;cout”The width is:”widthendl;coutThe area is:”width *lengthendl;void main()int m,n; cout“Input the length and the width!”m;/输入15cinn;/输入12Rectangle r(m,n); r.show(); 输出为:Input the length and width 15 12(这是输入数据) The length is:15 The

22、 width is:12 The area is:18056 #include class myclassint val; public: myclass(int i=0)val=I; myclass(myclass& cp); void set(int i); void print(); myclass(); ;myclass:myclass(myclass& cp)val=cp.val; cout”Hi.val=”valendl;void myclass:set(int i)val=I;void myclass:print()cout”This Print val=”valendl;myclass:myclass()cout”Destructor for val=”valendl;myclass myfun(myclass obj)obj.print(); obj.set(10); return obj;void g

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2