【计算机类职业资格】二级C++笔试-261及答案解析.doc
《【计算机类职业资格】二级C++笔试-261及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-261及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-261 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列关于继承的描述中,错误的是( )。(分数:2.00)A.析构函数不能被继承B.派生类是基类的组合C.派生类的成员除了它自己的成员外,还包含了它的基类的成员D.派生类中继承的基类成员的访问权限到派生类保持不变2.静态数据成员是为( )的数据。(分数:2.00)A.私有B.保护C.所有对象共享D.类成员3.有如下类声明:class MyBASEint k;public:void set(int n)k=n;int get()constreturn k;class MyD
2、ERIVED:protected MyBASEprotected:int j:public:void set(int m,int n)MyBASE:set(m);j=n;int get()constreturn MyBASE:get()+j;则类 MyDERIVED 中保护的数据成员和成员函数的个数是( )。(分数:2.00)A.4B.3C.2D.14.下列程序的输出结果是_。#includeiostreamusing namespace std;class Test(public:Test() cnt+;Test() cnt-;static int Count()return cnt;pri
3、vate:static int cnt;int Test:cnt=0;int main()coutTest:Count()“;Test t1,t2;Test*pT3=new Test;Test*pT4=new Test;coutTest:Count()“;delete pT4;delete pT3;coutTest:Count()end1;return 0;(分数:2.00)A.024B.042C.420D.2405.在下列函数原型中,可以作为类 AA 构造函数的是( )。(分数:2.00)A.void AA(int);B.int AA();C.AA(int)const;D.AA(int);6
4、.假定 a=3,下列程序的运行结果是( )。#includeiostream.hint fun(int n);void main()cout“Please input a number:“;int a,result=0;cina;result=fun((分数:2.00)A.;int fun()static int i=0;int s=1;s+=i;i+;return s;int main()int i,a=0;for(i=0;i5;i+)a+=fun();coutaend1;return 0;程序运行后,输出的结果是( )。(分数:2.00)A.20B.24C.25D.159.下列程序输出的结
5、果是( )。#includestdio.hfun1(char a,char b) char c;c=a;a=b;b=c;fun2(char*a,char b) char c;c=*a;*a=b;b=c;fun3(char*a,char*b) char c;c=*a;*a=*b;*b=c;void main()char a,b;a=A;b=B; fun1 (a,b);putchar((分数:2.00)A.;putchar(B.;a=10.下列叙述中错误的是( )。(分数:2.00)A.一种数据的逻辑结构可以有多种存储结构B.数据的存储结构与数据的处理效率无关C.数据的存储结构与数据的处理效率密切
6、相关D.数据的存储结构在计算机中所占的空间不一定是连续的11.若有如下程序:#includeiostreamusing namespace std;class Apublic:A(int i,int j)a=i;b=j;void move(int x,int y)a+=x;b+=y;void show()couta“,“bend1;private:int a,b; class B:private Apublic:B(int i,int j):A(i,j) void fun()move(3,5);void f1()A:show();int main()B d(3,4);d.fun();d.f1(
7、);return 0;程序执行后的输出结果是( )。(分数:2.00)A.3,4B.6,8C.6,9D.4,312.下列程序运行后的输出结果是( )。#includeiostream.hvoid fun(int,int,int*);void main()int x,y,z;fun(5,6,fun(7,x,fun(x,y,coutx“,“y“,“zend1;void fun(int a,int b,int *c)b+=a;*c=b-a;(分数:2.00)A.5, 5, 5B.6, 6, 6C.5, 6, 7D.7, 7, 713.下列程序的执行结果是_。#includeiostream.h#in
8、cludestdlib.hclass TestClasspublic:int x,y;TestClass () x=y=0;TestClass (int a,int b)x=a;y=b;void disp()cout“x=“x“,y=“yend1;void main()TestClass s1(2,3);s1.disp();(分数:2.00)A.x=2,y=2B.x=2,y=3C.x=3,y=2D.x=3,y=314.如果有以下定义及初始化:int a=3,*p=则由此可以推断,*p 的值是( )。(分数:2.00)A.变量 a 的值,即 3B.变量 a 的地址值C.变量 p 的地址值D.无意
9、义15.对虚函数的调用( )。(分数:2.00)A.一定使用动态联编B.必须使用动态联编C.一定使用静态联编D.不一定使用动态联编16.函数 swap(a,n)可完成对 a 数组从第 1 个元素到第 n 个元素两两交换。其中 b0=1;b1=2;swap(b,2)。在运行调用函数中的语句后,b0和 b1的值分别为( )。(分数:2.00)A.1,1B.1,2C.2,2D.2,117.下列程序的运行结果是( )。#includeiostream.hint x=5;int fun(int(分数:2.00)A.class A public:A()cout“A“;classBpublic:B()cou
10、t“B“;classC:public AB b;public:C()cout“C“;int main() C obj; return 0;执行后的输出结果是( )。(分数:2.00)A.CBAB.BACC.ACBD.ABC23.下列特征中不是面向对象方法的主要特征的是( )。(分数:2.00)A.多态性B.继承C.封装性D.模块化24.下列叙述中错误的是( )。(分数:2.00)A.线性表是由 n 个元素组成的一个有限序列B.线性表是一种线性结构C.线性表的所有结点有且仅有一个前件和后件D.线性表可以是空表25.下列字符串中,正确的 C+标识符是( )。(分数:2.00)A.foo-1B.2b
11、C.newD.25626.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。(分数:2.00)A.125B.n/2C.nD.n+127.下列程序将 x、y 和 z 按从小到大的顺序排列,请将下面的函数模板补充完整。templateclass Tvoid fun (_)T a;if(xy)a=x; x=y;y=a;if(yz)a=y; y=z;z=a;if(xy)a=x; x=y;y=a;(分数:2.00)A.T x,T y,T zB.T x;y;zC.T class BASEpublic:BASE()cout“BASE“;class DERIVED:public BASE
12、public:DERIVED()cout“DERIVED“;int main()DERIVED x;return 0;执行后的输出结果是( )。(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE34.关于在调用模板函数时模板实参的使用,下列表述正确的是( )。(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任
13、何情况下都不能省略35.下列工具中为需求分析常用工具的是( )。(分数:2.00)A.PADB.PFDC.N-SD.DFD二、填空题(总题数:15,分数:30.00)36.算法的复杂度主要包括时间复杂度和 1 复杂度。(分数:2.00)填空项 1:_37.按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于 1。(分数:2.00)填空项 1:_38.树中度为零的结点称为 1。(分数:2.00)填空项 1:_39.在面向对象方法中,类之间共享属性和方法的机制称为 1。(分数:2.00)填空项 1:_40.软件是程序、数据和 1 的集合。(分数:2.00)填空项 1:_41.请将下列类定义补
14、充完整。class Base(public:void fun()cout“Base:fun“end1;class Derived:public Basepublic:void fun()_/显式调用基类的 fun 函数cout“Derived:fun“end1;(分数:2.00)填空项 1:_42.有如下程序:#includeiostreamusing namespace std;class Conchar ID;public:Con():ID(A) cout1;Con(char ID) :ID(ID) cout2;Con(Con char get1D()constreturn ID;void
15、 show(Con c) coutc.getID();int main()Con c1;show(c1);Con c2(B);show(c2);return 0;执行上面程序的输出是_。(分数:2.00)填空项 1:_43.将 x+y*z 中的“+”用成员函数重载,“*”用友元函数重载应写为 1。(分数:2.00)填空项 1:_44.执行下列程序后,输出“*”号的个数是_。#includeiostream.hmain()int i,j;for(i=1;i5;i+)for(j=2;ji;j+)cout*;(分数:2.00)填空项 1:_45.指针变量所保存的不是一般的数据值,而是程序中另一个对象
16、的 1。(分数:2.00)填空项 1:_46.阅读下面程序:#includeiostream.hvoid fun1(char a,char b)char c;c=a;a=b;b=c;void fun2(charc=a;a=b;b=c;void main()char a,b;a=x;b=y;fun1(a,b);coutab;a=x;b=y;fun2(a,b);coutab;则该程序的输出为_。(分数:2.00)填空项 1:_47.己知下列程序的输出结果是 42,请将横线处缺失的部分补充完整。#includeiostreamusing namespace std;class TestClassin
17、t value;public:TestClass():value(0);void setValue(int value)_=value;/给 TestClass 的数据成员 value 赋值void print()coutvalue;int main()TestClass f;f.setValue(42);f.print();return 0;(分数:2.00)填空项 1:_48.若下列程序运行时输出结果为1,A,10.12,B,3.5请将程序补充完整。#includeiostreamusing namespace std;int main()void test(int,char,double
18、_);test(1,A,10.1);test(2,B);return 0;void test(int a,char b,double c)couta,b,cend1;(分数:2.00)填空项 1:_49.非成员函数应声明为类的 1 函数才能访问这个类的 private 成员。(分数:2.00)填空项 1:_50.下列类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。class myClassprivate:int data;public:myClass(int value);/构造函数myClass(const_another Object);
19、/拷贝构造函数(分数:2.00)填空项 1:_二级 C+笔试-261 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列关于继承的描述中,错误的是( )。(分数:2.00)A.析构函数不能被继承B.派生类是基类的组合C.派生类的成员除了它自己的成员外,还包含了它的基类的成员D.派生类中继承的基类成员的访问权限到派生类保持不变 解析:解析 派生类中继承的基类成员的访问权限到派生类会发生变化,例如:私有继承时,派生类不能访问基类的成员,所以选项 D) 错误,其他选项均正确。2.静态数据成员是为( )的数据。(分数:2.00)A.私有B.保护C.
20、所有对象共享 D.类成员解析:解析 静态数据成员是一种特殊的数据成员。静态数据成员不属于某一个对象,在为对象所分配的空间中不包括静态数据成员所占的空间。所有对象共享这些静态数据成员,都可以引用它。3.有如下类声明:class MyBASEint k;public:void set(int n)k=n;int get()constreturn k;class MyDERIVED:protected MyBASEprotected:int j:public:void set(int m,int n)MyBASE:set(m);j=n;int get()constreturn MyBASE:get(
21、)+j;则类 MyDERIVED 中保护的数据成员和成员函数的个数是( )。(分数:2.00)A.4B.3 C.2D.1解析:解析 因为在保护继承的情况下,基类中的公有成员 void set(int n)和 int get()const 在派生类中是保护成员,再加上派生类自身的保护成员 j,一共是 3 个保护成员。4.下列程序的输出结果是_。#includeiostreamusing namespace std;class Test(public:Test() cnt+;Test() cnt-;static int Count()return cnt;private:static int cn
22、t;int Test:cnt=0;int main()coutTest:Count()“;Test t1,t2;Test*pT3=new Test;Test*pT4=new Test;coutTest:Count()“;delete pT4;delete pT3;coutTest:Count()end1;return 0;(分数:2.00)A.024B.042 C.420D.240解析:解析 此题考查的是类的构造函数与析构函数的调用。语句 coutTcst:Count()“;;输出“0”,因为 static 型变量 cnt 的默认值是 0;“T Test t1,t2;Test*pT3=new
23、Test;Test*pT4=new Test;”调用 4 次类的构造函数,使得 cnt 的值增加到 4,并输出 4;然后 delete pT4;delete pT3;调用两次析构函数,cnt 的值变为 2,并输出 2。5.在下列函数原型中,可以作为类 AA 构造函数的是( )。(分数:2.00)A.void AA(int);B.int AA();C.AA(int)const;D.AA(int); 解析:解析 此题考查的是构造函数的概念。构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值。选项 A)和选项 B)不符合要求。选项 C)中函数 AA 会更新对象的数据成员。6.假定 a=3,下
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 261 答案 解析 DOC
