【计算机类职业资格】二级C++-166及答案解析.doc
《【计算机类职业资格】二级C++-166及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-166及答案解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-166 及答案解析(总分:95.50,做题时间:90 分钟)一、选择题(总题数:34,分数:77.50)1.某类中有一个无参且无返回值的常成员函数 Show,则正确的 Show 函数原型是_。(分数:2.00)A.const void Show();B.void const Show();C.void Show()const;D.void Show(const);2.有如下程序: #includeiostream using namespace std; class A public: A(int i):rl(i) void print()cout“E“r1“-“; void pr
2、int()constcout“C“r1*r1“-“; private: int rl; ; int main() A al(2); const A a2(4); a1.print(); a2.print(); return 0; 运行时的输出结果是_。(分数:2.00)A.运行时出错B.E2-C16-C.C4-C16-D.E2-E4-3.有如下程序: #includeiostream using namespace std; int i=1; Class Fun public: static int i; int value()return i-1; int value()constretur
3、n i+1; ; int Fun:i=2; int main() int i=3; Fun fun1; const Fun fun2; _ return 0; 若程序的输出结果是: 123 则程序中画线处遗漏的语句是_。(分数:2.00)A.coutfun1.value()Fun:ifun2.value();B.coutFun:ifun1.value()fun2.value();C.coutfun1.value()fun2.value()Fun:i;D.coutfun2.value()Fun:ifun1.value();4.如下类定义: class AA int a; public: int
4、getRef()constreturn / int getValue()constreturn a; / void set(int n)consta=n; / friend void show(AA aa)constcoutaa.a; / ; 其中四个函数的定义中正确的是_。(分数:2.00)A.B.C.D.5.有如下类声明: class How int k; public: void show()constcoutk; ; 则类 How 所拥有的构造函数的数量是_。(分数:2.00)A.1B.2C.3D.46.有如下类定义: class Test char a;const char b; p
5、ublic: Test(char c)a=c;b=c; /第 1 行 void f(char a)constthis-a=a; /第 2 行 void g(char b)this-b=b; /第 3 行 char h()constreturn a; /第 4 行 ; 编译时没有错误的行是_。(分数:2.00)A.第 1 行B.第 2 行C.第 3 行D.第 4 行7.有如下类定义: class Sample public: Sample(int x):ref(x) / Private: Sample():ref(0) / static int va1=5; / const int ref; /
6、 上述程序段中,错误的语句是_。(分数:2.00)A.B.C.D.8.下列有关类成员的叙述中,错误的是_。(分数:2.00)A.友元函数不是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员可以是常成员9.有如下程序: #includeiostream #includecmath using std:cout; class Point public: friend double distance(const Point /p 距原点的距离 Point(int xx=0,int yy=0):x(xx),Y(yy) / private: int x,Y;
7、 ; double distance(const Point int main() Point p1(3,4); coutdistance(p1); / return 0; 下列叙述中正确的是_。(分数:2.00)A.程序编译正确B.程序编译时语句出错C.程序编译时语句出错D.程序编译时语句出错10.已知类 MyClass 的定义如下: class MyClass public: MyCtass(int d)data=d; MyClass() private: int data; ; 下列对 MyClass 类对象数组的定义和初始化语句中,正确的是_。(分数:2.00)A.MyClass ar
8、ray2;B.MyClass array2=MyClass(5);C.MyClass array2=MyClass(5),MyClass(6),;D.MyClass*arrays=new MyClass2;11.下列关于类成员对象构造函数调用顺序的叙述中,正确的是_。(分数:2.00)A.与它们在初始化列表中的顺序相同B.与它们在类中声明的顺序相同C.与析构函数的调用顺序相同D.顺序不确定12.当派生类继承一个基类时,默认的继承方式为_。(201203)(分数:2.00)A.publicB.protectedC.privateD.不确定13.下列关于继承方式的描述中,错误的是_。(201003
9、)(分数:2.00)A.如果不显式地指定继承方式,缺省的继承方式是私有(private)B.采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C.采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D.采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员14.下列关于派生类的叙述中,错误的是_。(201209)(分数:2.00)A.派生类至少要有 1 个基类B.派生类中包括了从基类继承的成员C.一个派生类可以作为另一个派生类的基类D.基类成员被派生类继承以后访问权限保持不变15.生成派生类对象时,派生类构造函数调用基类构造函数的条件是_。(分数:2.00)A.无需任何
10、条件B.基类中显式定义了构造函数C.派生类中显式定义了构造函数D.派生类构造函数明确调用了基类构造函数16.当一个派生类对象结束其生命周期时,系统自动做的事情是_。(分数:2.50)A.先调用派生类的析构函数后调用基类的析构函数B.先调用基类的析构函数后调用派生类的析构函数C.如果派生类没有定义析构函数,则只调用基类的析构函数D.如果基类没有定义析构函数,则只调用派生类的析构函数17.有如下类定义: class AA int a; public: AA(int n=0):a(n) ; class BB:public AA public: BB(int n)_ ; 其中横线处缺失部分是_。(分数
11、:2.50)A.:a(n)B.:AA(n)C.a(n);D.a=n;18.若已定义了类 Vehicle,则下列派生类定义中,错误的是_。(分数:2.50)A.class Car:Vehicle/*类体略*/B.class Car:public Car/*类体略*/C.class Car:public Vehicle/*类体略*/D.class Car:virtual public Vehicle/*类体略*/19.有如下类定义: class Base int m; int n; public: Base(int m1,int n1):n(n1),m(m1) ; class Derived:pu
12、blic Base int q; public: Derived(int m1,int n1,int q1):q(q1),Base(m1,n1); ; 在创建一个 Derived 对象时,数据成员 m、n 和 q 被初始化的顺序是_。(分数:2.50)A.m、n、qB.n、m、qC.q、m、nD.q、n、m20.有如下程序: #includeiostream using namespace std; class A public: A()cout“A“; A()cout“C“; ; class B:public A public: B()cout“G“; B()cout“T“; ; int m
13、ain() B obj; return 0; 运行这个程序的输出结果是_。(分数:2.50)A.GATCB.AGTCC.GACTD.AGCT21.有如下程序: #includeiostream using namespace std; class Base public: Base()cout“B“; Base()cout“b“; ; class Derived:public Base public: Derived()cout“D“; Derived()cout“d“; ; int main() Derived obj; return 0; 运行这个程序的输出是_。(分数:2.50)A.BD
14、bdB.BDdbC.DBbdD.DBdb22.有如下程序: #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; public: 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; 运行这个程序的输出结果是_。
15、(分数:2.50)A.3B.4C.7D.1023.有如下类和变量定义: class Parents public: int publicData; private: int privateData; ; class dA:public Parents/*类体略*/; class dB:private Parents/*类体略*/; dA x; dB y; 下列表达式中正确的是_。(分数:2.50)A.publicDataB.privateDataC.privateDataD.publicData24.有如下类声明和函数声明: class Base int m; public: int n; p
16、rotected: int p; ; class Derived:public Base int k; friend void f(Derived d); ; 则在函数 f 中通过 d 可访问类数据成员的个数是_。(分数:2.50)A.1B.2C.3D.425.有如下程序: #includeiostream using namespace std; class Music public: void setTitle(char*str)strcpy(title,str); protected: char type10; private: char title20; ; class Jazz:pu
17、blic Music public: void set(char*str) strcpy(type,“Jazz“); / strcpy(title,str); / ; 下列叙述中正确的是_。(分数:2.50)A.程序编译正确B.程序编译时语句出错C.程序编译时语句出错D.程序编译时语句和都出错26.有如下类定义: class MyBase int k; public: MyBase(int n=0):k(n) int value()constreturn k; ; class MyDerived:MyBase int j; public: MyDerived(int i):j(i) int g
18、etK()constreturn k; int getJ()constreturn j; ; 编译时发现有一处语法错误,对这个错误最准确的描述是_。(分数:2.50)A.函数 getK 试图访问基类的私有成员变量 kB.在类 MyDerived 的定义中,基类名 MyBase 前缺少关键字 public、protected 或 privateC.类 MyDerived 缺少一个无参的构造函数D.类 MyDerived 的构造函数没有对基类数据成员 k 进行初始化27.有如下程序: #includeiostream using namespace std; class Media public:
19、 void Name(); void Show(); protected: int page; ; class Book:private Media public: void Print()coutpageendl; void Show()Media:Show(); / ; int main() Book Bible; Bible.Name(); / Bible.Print(); / Bible.Show(); / return 0; 编译时有错误的是_。(分数:2.50)A.语句B.语句C.语句D.语句28.有如下程序: class Base public: int data; ; clas
20、s Derived1:public Base; class Derived2:proteced Base; int main() Derived1 d1; Derived2 d2; d1.data=0; / d2.data=0; / return 0; 下列关于程序编译结果的描述中,正确的是_。(分数:2.50)A.皆无编译错误B.有编译错误,无编译错误C.无编译错误,有编译错误D.皆有编译错误29.有如下程序: #includeiostream using namespace std; class Base public: void fun()cout“B“; ; class Derived
21、:public Base public: void fun()_cout“D“; ; int main() Derived d; d.fun(); return 0; 若程序的输出结果是 BD,则划线处缺失的部分是_。(分数:2.50)A.fun();B.Base.fun();C.Base:fun();D.Base-fun();30.有如下程序: #includeiostream using namespace std; class Base protected: Base()cout“A“; Base(char c)coutc; ; class Derived:public Base pub
22、lic: Derived(char c)coutc; ; int main() Derived d1(“B“); return 0; 执行这个程序的输出结果是_。(分数:2.50)ABB.BAC.ABD.BB31.有如下类定义: class B public:void funl() private:void fun2() protected:void fun3() ; class D:public B protected:void fun4() ; 若 obj 是类 D 的对象,则下列语句中不违反访问控制权限的是_。(分数:2.50)A.obj.fun1()B.obj.fun2()C.obj.
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C166 答案 解析 DOC
