【计算机类职业资格】二级C++-101及答案解析.doc
《【计算机类职业资格】二级C++-101及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-101及答案解析.doc(31页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-101 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:46,分数:100.00)1.在类声明中,紧跟在“public:”后声明的成员的访问权限是_。(分数:2.00)A.私有B.公有C.保护D.默认2.定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为_。(分数:2.00)A.私有继承B.非私有继承C.保护继承D.公有继承3.有如下类定义: class XX int xx; public: XX():xx(0)cout“A“;) XX(int n):xx(n)cout“B“; ; class YY:public XX int yy; p
2、ublic: YY():yy(0)coutyy; YY(int n):XX(n+1),yy(n)coutyy; YY(int m,int n):XX(m),yy(n)coutyy; ; 下列选项中,输出结果为 AO 的语句是_。(分数:2.00)A.YY y1(0,0);B.YY y2(1);C.YY y3(0);D.YY y4;4.有如下类定义: class XX int xdata; public: XX(int n=0):xdata(n) ; class YY:public XX int ydata; public: YY(int m=0,int n=0):XX(m),ydata(n)
3、; YY 类的对象包含的数据成员的个数是_。(分数:2.00)A.1B.2C.3D.45.下列关于继承方式的描述中,错误的是_。(分数:2.00)A.如果不显式地指定继承方式,缺省的继承方式是私有(private)B.采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C.采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D.采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员6.下列代码段声明了 3 个类 class Person; class Student:public Person; class Undergraduate:Student; 下列关于这些类之间
4、关系的描述中,错误的是_。(分数:2.00)A.类 Person 是类 Undergraduate 的基类B.类 Undergraduate 从类 student 公有继承C.类 student 是类 Person 的派生类D.类 Undergraduate 是类 Person 的派生类7.下列关于基类和派生类关系的叙述中,正确的是_。(分数:2.00)A.每个类最多只能有一个直接基类B.派生类中的成员可以访问基类中的任何成员C.基类的构造函数必须在派生类的构造函数体中调用D.派生类除了继承基类的成员,还可以定义新的成员8.若已定义了类 Vehicle,则下列派生类定义中,错误的是_。(分数:
5、2.00)A.class Car:vehicle/*类体略*/;B.class Car:public car/*类体略*/;C.class Car:public Vehicle/*类体略*/);D.class Car:virtual public Vehicle/*类体略*/;9.下列描述中,错误的是_。(分数:2.00)A.公有继承时基类中的公有成员在派生类中仍是公有成员B.公有继承时基类中的保护成员在派生类中仍是保护成员C.保护继承时基类中的公有成员在派生类中仍是公有成员D.保护继承时基类中的保护成员在派生类中仍是保护成员10.当派生类继承一个基类时,默认的继承方式为_。(分数:2.00)
6、A.publicB.protectedC.privateD.不确定11.下列关于派生类的叙述中,错误的是_。(分数:2.00)A.派生类至少要有一个基类B.派生类中包括了从基类继承的成员C.一个派生类可以作为另一个派生类的基类D.基类成员被派生类继承以后访问权限保持不变12.有如下类声明: class MyBASE int k; public: void set(int n)k=n; int get()constreturn k; ; class MyDERIVED:protected MyBASE protected: int j; public: void set(int m,int n)
7、MyBASE:set(m);j=n; int get()constreturn MyBASE:get()+j; ; 则类 MyDERIVED 中保护的数据成员和成员函数的个数是_。(分数:2.00)A.4B.3C.2D.113.有如下程序: #includeiostream using namespace std; class Base public: void fun()cout“Base:fun“endl; ; class Derived:public Base public: void fun() _ cout“Derived:fun“endl; ; int main() Derived
8、 d; d.fun(); return 0; 已知其执行后的输出结果为: Base:fun Derived:fun 则程序中下划线处应填入的语句是_。(分数:2.00)A.Base.fun();B.Base:fun();C.Base-fun();D.fun();14.有如下程序: #includeiostream using namespace std; class Base private: void fun1() constcout“fun1“; protected: void fun2() constcout“fun2“; public: void fun3() constcout“fu
9、n3“; ; class Derived:protected Base public: void fun4() constcout“fun4“; ; int main() Derived obj; obj.fun1(); / obj.fun2(); / obj.fun3(); / obj.fun4(); / return 0; 其中有语法错误的语句是_。(分数:2.00)A.B.C.D.15.在公有继承的情况下,允许派生类直接访问的基类成员包括_。(分数:2.00)A.公有成员B.公有成员和保护成员C.公有成员、保护成员和私有成员D.保护成员16.有如下类定义: class MyBase in
10、t k; public: MyBase(int n=0):k(n) int value()constreturn k; ; class MyDerived:MyBase int j; public: MyDerived(int i):j(i) int getK()constreturn k; int getJ()constreturn j; ; 编译时发现有一处语法错误,对这个错误最准确的描述是_。(分数:2.00)A.函数 getK 试图访问基类的私有成员变量 kB.在类 MyDerived 的定义中,基类名 MyBase 前缺少关键字 public、protected 或 privateC
11、.类 MyDerived 缺少一个无参的构造函数D.类 MyDerived 的构造函数没有对基类数据成员 k 进行初始化17.派生类的成员函数不能访问基类的_。(分数:2.00)A.公有成员和保护成员B.公有成员C.私有成员D.保护成员18.若有如下类定义: classB void fun1() protected: double var1; public: void fun2() ; class D:public B protected: void fun3() ; 己知 obj 是类 D 的对象,下列句中不违反类成员访问控制权限的是_。(分数:2.00)A.obj.fun1();B.obj
12、.var1;C.obj.fun2();D.obj.fun3();19.有如下类声明: class Base protected; int amount; public; Base(int n=0):amount(n) int getAmount()constreturn amount; ; class Derived:public Base protected; int value; public; Derived(int m,int n):value(m).Base(n) Int getData()constreturn value+amount; ; 己知 x 是一个 Derived 对象
13、,则下列表达式中正确的是_。(分数:2.00)A.x.value+x.getAmount()B.x.getData()-x.gctAmount()C.x.getData()-x.amountD.x.value+x.amount20.在一个派生类的成员函数中,试图调用其基类的成员函数“void f();”,但无法通过编译。这说明_。(分数:2.00)A.f()是基类的私有成员B.f()是基类的保护成员C.派生类的继承方式为私有D.派生类的继承方式为保护21.对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是_。(分数:2.00)A.公有或私有B.私有
14、C.保护或私有D.公有或保护22.建立一个有成员对象的派生类对象时,各构造函数体的执行次序为_。(分数:2.00)A.派生类、成员对象类、基类B.成员对象类、基类、派生类C.基类、成员对象类、派生类D.基类、派生类、成员对象类23.有如下类定义和变量定义: class Parents public: int publicData; private: int privateData; ; class ChildA:public Parents/*类体略*/; class ChildB:private Parents/*类体略*/; ChildA a; ChildB b; 下列语句中正确的是_。(
15、分数:2.00)A.couta.publicDataendl;B.couta.privateDataendl;C.coutb.publicDataendl;D.coutb.privateDataendl;24.通过派生类的对象可直接访问其_。(分数:2.00)A.公有继承基类的公有成员B.公有继承基类韵私有成员C.私有继承基类的公有成员D.私有继承基类的私有成员25.有如下程序: #includeiostream using namespace std; classAA int k; protected: int n; void setK(int k)this-k=k; public: voi
16、d setN(int n)this-n=n; ; class BB:public AA/*类体略*/; intmain() BB x; x.n=1; /1 x.setN(2); /2 x.k=3; /3 x.setK(4); /4 return 0; 在标注号码的四条语句中正确的是_。(分数:2.00)A.1B.2C.3D.426.有如下两个类定义 class XX private: double x1; protected: double x2; public: double x3; ; class YY:protected XX private: double y1; potected:
17、double y2; punic: double y3; ; 在类 YY 中保护成员变量的个数是_。(分数:2.00)A.1B.2C.3D.427.有如下程序: #includeiostream using namespace std; class Music public: void setTitle(char* str)strcpy(title,str); protected: char type10; private: char title20; ; class Jazz:public Music public: void set(char* str) strcpy(type,“Jazz
18、“); / strcpy(title,str); / ; 下列叙述中正确的是_。(分数:2.00)A.程序编译正确B.程序编译时语句出错C.程序编译时语句出错D.程序编译时语句和都出错28.当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是_。(分数:2.00)A.任何B.公有或保护C.保护或私有D.私有29.下列关于派生类和基类的描述中,正确的是_。(分数:2.00)A.派生类成员函数只能访问基类的公有成员B.派生类成员函数只能访问基类的公有和保护成员C.派生类成员函数可以访问基类的所有成员D.派生类对基类的默认继承方式是公有继承30.有如
19、下类定义: class B public:void fun1() private:void fun2() protected:void fun3() ; class D:public B protected:void fun4() ; 若 obj 是类 D 的对象,则下列语句中不违反访问控制权限的是_。(分数:2.00)A.obj.fun1();B.obj.fun2();C.obj.fun3();D.obj.fun4();31.有如下程序: classBase public: int data: ; class Derived1:public Base; class Derived2:prot
20、ected Base; int main() Derived1 d1; Derived2 d2; d1.data=0; / d2.data=0; / return 0; 下列关于程序编译结果的描述中,正确的是_。(分数:2.00)A.皆无编译错误B.有编译错误,无编译错误C.无编译错误,有编译错误D.皆有编译错误32.有如下程序: #includeiostream using namespace std; class XX int x; public: XX(int XX=0):x(xx) int getX()return x; ; class YY:public XX int y; publ
21、ic: YY(int xx,int yy):XX(xx),y(yy) int getV()return getX()+y; ; int main() YY c(3,4); coutc.getV()+c.getX()endl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.3B.4C.7D.1033.有如下程序: #includeiostream using namespace std; class Media public: void Name(); void Show(); protected: int page; ; class Book:private Media
22、 public: void Print() coutpageendl; void Show()Media:Show();) / ; int main() Book Bible; Bible.Name(); / Bible.Print(); / Bible.Show(); / return 0; 编译时有错误的是_。(分数:2.00)A.语句B.语句C.语句D.语句34.有如下程序: #includeiostream using namespace std; class A public: A()cout“A“; ; classBpublic:B()cout“B“; classC:public
23、A B b; public: C()cout“C“; ; int main() C obj;return 0; 执行后的输出结果是_。(分数:2.00)A.CBAB.BACC.ACBD.ABC35.有如下程序: #includeiostream using namespace std; class A public: A()cout“A“; A()cout“A“; ; class B:public A A* p; public: B()cout“B“;p=new A(); B()cout“B“;delete p; ; int main() B obj; return 0; 执行这个程序的输出结
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C101 答案 解析 DOC
