c++面向对象程序设计精彩试题和问题详解

上传人:新** 文档编号:455657442 上传时间:2023-05-10 格式:DOC 页数:14 大小:96.50KB
返回 下载 相关 举报
c++面向对象程序设计精彩试题和问题详解_第1页
第1页 / 共14页
c++面向对象程序设计精彩试题和问题详解_第2页
第2页 / 共14页
c++面向对象程序设计精彩试题和问题详解_第3页
第3页 / 共14页
c++面向对象程序设计精彩试题和问题详解_第4页
第4页 / 共14页
c++面向对象程序设计精彩试题和问题详解_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《c++面向对象程序设计精彩试题和问题详解》由会员分享,可在线阅读,更多相关《c++面向对象程序设计精彩试题和问题详解(14页珍藏版)》请在金锄头文库上搜索。

1、一、填空题(每空1分,共14分)1、观看以下程序:class pointpublic:void show() cout ” point ” endl;;void mai n()poi nt p1;poi nt *p;p=&p1;/ 通过对象 p1 访问 show 函数/通过指针 p访问show函数2、 在C+类中可以包含、和三种具有不同访问控制权的成员。3、 定义类时,在类头中将使用关键字 来表示类定义的开始。4、 如果一个类中至少有一个纯虚函数,则该类称为 。5、 C+类的组成包括数据成员和 ,友元 (是、不是)该类的成员函数。6、 友员函数是用关键字 修饰的非成员函数。7、若有:int i

2、;int &j=i;i=10;j=i+1;贝 y i=,j=。8、new 的功能是, delete 的功能是二、选择题(每小题1.5分,共30分)1、 下列特性中不是面向对象程序设计语言所特有的是()。(A) 数据封装(B)继承(C)多态性(D)模板2、()是给变量取一个别名,它引入了变量的同意词。3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。(D) protected(A) share( B) public( C) private4、关于构造函数,下列说法不正确的是()。(A)构造函数名字和类名相同(B)构造函数在创建对象时自动执行(C)构造函数无任何函数返回类型(D)构

3、造函数有且只有一个5、派生类可以访问其基类的()。(B)保护成员(D)公有和保护成员)。(A)公有成员(C)私有派生6、下列关于运算符重载的描述中,错误的是(A)运算符重载不可以改变操作数的个数(B)运算符重载不可以改变运算符的功能(C)运算符重载不可以改变结合方向(D)运算符重载不可以改变运算优先级7、C+语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()(A)面向过程(B)面向对象(C)安全性(D)复用性8对于类中定义的成员,其隐含访问权限为()。A . publicB.protectedC . privateD.static9、 下面有关重载函数

4、的说法中正确的是()(B)重载函数形参个数必须不同;(D)重载函数名可以不同;)是错误的。(A)重载函数必须具有不同的返回值类型;(C)重载函数必须有不同的形参列表10、 有如下的对类“ CSample”的说明,其中(class CSample A. int a=23;B. CSample();public:C. CSample(i nt val);D. CSample();11、在 int a=3,int *p=&a;中,*p 的值是()A. 变量a的地址值 B. 无意义C.变量p的地址值 D.312、每个类()构造函数。(A)只能有一个(B)只可有公有的(C)可以有多个(D)只可有缺省的1

5、3、在一个类中可以对一个操作符进行()重载。(A) 1种(B) 2种以下(C) 3种以下(D)14、在公有继承的情况下,基类非私有成员在派生类中的访问权限(A)受限制 (B)保持不变15、应在下列程序划线处填入的正确语句是(C)受保护多种( )(D)不受保护#in elude class Base public:void fun ()coutBase:fu n ENDL; ; class Derived:public Base void fun()/显示调用基类的函数fun()coutDerived:fu n fun();#in clude class BASEchar c;public:BA

6、SE(char n):c( n) virtual BASE()coutc; ;class DERIVED:public BASEchar c;public:DERIVED(char n):BASE( n+1),c( n) DERIVED()coutc;int mai n()DERIVED a(X);return 0;(A) XY(B) YX( C) X17、下面描述中,表达错误的是(A) 公有继承时基类中的(B) 公有继承是基类中的(C) 公有继承时基类中的(D) 私有继承时基类中的(D) Y)public成员在派生类中仍是public的private 成员在派生类中仍是 private 的

7、protected 成员在派生类中仍是 protected 的 public18、定义析构函数时,应该注意(A)其名与类名完全相同(C) 无形参,也不可重载19、对于在类中定义的静态数据成员,成员在派生类中是private的)(B)返回类型是void 类型(D) 函数体中必须有delete 语句下面正确的说法是()A. 该类的每个对象中都有一个静态数据成员B. 对象创建时产生C. 在类外进行初始化D. 既可以在类外初始化,也可以在类内初始化20、C+冲声明常量的关键字是()。A. const B. exter nC. public D. enum三、改错题(每处2分,共6分)1、使用VC6打开

8、考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:member=0member=5men ber=10源程序文件main.cpp清单如下:#in clude class MyClasspublic:MyClass(i nti)member=i;void SetMember(i nt m)member=m;int GetMember()c on streturn men ber;voidprin t()co ntcoutmember=MEMBERENDL;private:int member;;voed m

9、ain()MyClass objl; / 更正objl.pri nt();MyClass obj2(3);obj1.member=5; / 更正MyClass.SetMember(10); / 更正obj1.pri nt();obj2.pri nt();四、写出下列程序的执行结果(每小题5分,共20 分)1、#in cludeclass Sample int n;public:Sample(i nt i) n=i;friend int add(Sample &s1,Sample &s2);int add(Sample & s1,Sample & s2)retur n s1. n+s2 .n;v

10、oid mai n()Sample s1(10),s2(20);coutadd(s1,s2)e ndl;执行结果是:#in cludeint add(i nt x,i nt y)retur n x+y+1;double add(double x,double y)return x+y-1;void mai n()int a=2,b=4;double c=2.6,d=7.4; coutadd(a,b),add(c,d)e ndl;执行结果是:3、#in cludeclass Apublic:int n;class B:virtual public A;class C:virtual public

11、 A;class D:public B,public Cint get n( )return B: n;void mai n()D d;d.B:n=10;d.C: n=20;coutd.B: n ,d.C: nen dl;执行结果是:4、#in elude class myclassint a,b;static int s;public:myclass(i nt x,i nt y)a=x;b=y;s+;void prin t()coutsshow()(2)公有、私有、保护(3)class( 4)抽象类(5)成员函数、不是(6)frie nd(7) 11、11(8)动态申请内存空间、释放由new申请的空间二、选择题(每小题1.5分,共30分)1、D 2、B 3 、C 4 、D 5 、D 6 、B 7 、B 8 、C 9、C 10、A 11、 D 12、C 13、D 14 、B 15、C 16、A 17、B 18、C 19、C 20、A三、改错题(每错2分,共6分)MyClass obj1(0); obj1.SetMember(5); obj2.SetMember(10);四、写出下列程序的执行结果(每小题5分,共20分)(1)30( 5 分)(2)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号