【计算机类职业资格】二级C++笔试-285及答案解析.doc
《【计算机类职业资格】二级C++笔试-285及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-285及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-285 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.有如下程序:#includeiostream.husing namespace std;Class Basepublic:Base()cout“BB”;f();void()cout“BF”;class Derived:public Basepublic:Derived()cout“DD”;void f()cout“Df”;);int main()Derived d;return 0;执行上面的程序将输出( )。(分数:2.00)A.BBBfDDB.BBDfDDDfC.D
2、DD.DDBBBf2.以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是( )。(分数:2.00)A.ofstream myfile;mynle.open(“d:ofile.txt”);B.ofstream * mynle=new ofstream;mynle-open(“d:Ofile.txt”);C.ofstream myhle(“d:ofile.txt”);D.ofstream * mynle=new(“d:ofile.txt”);3.有如下程序:#includeiostreamusing namespace std;classApublic:virtua1 voidfunc1(
3、)cout“A1”;voidfunc2()cout“A2”;class B:publicApublic:void funcl()cout“B1”;void func2()cout“B2”;intmain()A*pnew B;p-funcl();p-func2();return 0;执行该程序,屏幕上将显示输出( )。(分数:2.00)A.B1B2B.A1A2C.B1A2D.A1B24.若变量已正确定义并赋值,以下符合 C+语言语法的表达式是( )。(分数:2.00)A.a=b+lB.a=b=c+2C.int 18.5%3D.aa+7=c+b5.有如下程序:#includeiostreamusi
4、ng namespqce Std;class TestClassprivate;Char C;public;TestClass(char n):c(n)TestClass()coutc;class TestClassl:public TestClassprivate:Char C;public:TestClassl(char n):TestClass(n+1),c(n)TestClass1()coutC;int main()TestClassl obj(x);return 0;执行上面的程序将输出( )。(分数:2.00)A.xyB.yxC.xD.y6.针对数组定义 intdata10,下列表
5、述中错误的是( )。(分数:2.00)A.用*data 可访问到数组的首元素B.用 data9可访问到数组的末元素C.用 data10访问数组元素会超出数组边界D.data共有 10个元素,其首元素是 data17.关于纯虚函数,下列表述中正确的是( )。(分数:2.00)A.纯函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0”结束C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不可能是派生类8.以下类定义中可能会引起错误的语句是( )。Class Apublic:A()/1int i;/2private:int j;/3 A(int i)i+;/4;(分数:
6、2.00)A.1B.2C.3D.49.结构化分析方法是面向( )的自顶向下,逐步求精进行需求分析的方法。(分数:2.00)A.对象B.数据结构C.数据流D.目标10.类模板的使用实际上是将类模板实例化成一个具体的( )。(分数:2.00)A.类B.对象C.函数D.模板类11.下列选项中,不是一个算法的基本特征的是( )。(分数:2.00)A.完整性B.可行性C.有穷性D.拥有足够的情报12.有如下程序:#include(iostreamusing namespace std;Class Testpublic:Test() n+2;Test() n-3;)static int getNum()
7、return n;private:static int n;int Test:n1;int main()Test*p=new Test;delete p;cout“n”Test:getNum()endl;return 0;执行该程序的输出结果是( )。(分数:2.00)A.n0B.n1C.n2D.n=313.最简单的交换排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序14.需求分析阶段的任务是( )。(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能15.设有定义:class personint num;char name10;
8、public:void init(int n,char*m);personstd30则以下叙述不正确的是( )。(分数:2.00)A.std是一个含有 30个元素的对象数组B.std数组中的每个元素都是 person类的对象C.std数组中的每个元素都有自己的私有变量 num和 nameD.std数组中的每个元素都有各自的成员函数 init16.下列叙述中正确的是( )。(分数:2.00)A.线性链表的各元素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在
9、存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的17.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是( )。(分数:2.00)A.DB包括 DBS和 DBMSB.DBMS包括 DB和 DBSC.DBS包括 DB和 DBMSD.没有任务关系18.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为 90的元素时,查找成功的比较次数为( )。(分数:2.00)A.1B.2C.3D.919.有以下程序:#includeiostreamusing namespace std;class Aprivate:i
10、nt a;public:A(int i)ai;void disp()couta“,”;class Bprivate:int b;public:B(int j)b=j;void disp()coutb“,”;class C:public B,public Aprivate:int C;public:c(int k):A(k-2),B(k+2)ck;)void disp()a:disp();B:disp();coutcendl;int main()C obj(10);objdisp();return 0;程序执行后的输出结果是( )。(分数:2.00)A.10,10,10B.10,12,14C.8
11、,10,12D.8,12,1020.若有以下定义:inta1,2,3,4,5,6,7;char clb,c2=2;则数值不为 2的表达式是( )。(分数:2.00)A.a1B.d-c1C.a3-c2D.c2-021.有下列二叉树,对此二叉树中序遍历的结果是( )。(分数:2.00)A.BDYEACFXZB.DYBEAFCZXC.ABCDEFXYZD.ABDYECFXZ22.下列程序的输出结果是( )。#includeiostream.hvoid main()char*str”12123434”;int x10,x2=0,x30,x40,i;for(i=0;stri!/0;i+)switch(s
12、tri)case1:x4+;case2:x3+;case3:x2+;case4:xl+;)coutxl“,”x2“,”x3“,”x4;(分数:2.00)A.8,6,4,1B.8,6,3,2C.8,8,4,lD.8,6,4,223.有如下的程序:#includecstring.h)#ingcludeiostream.h)using namespace std;Class MyStringpublic:MyString(const char*s);MyString()deletedata;protected:unsigned len;char*data;MyString:MyString(cons
13、t char*S)lenstflen(s);daranew char1en+1;strcpy(dara,s);int main()MyString a(“C+Programing”);MyString b(a);return 0;在运行上面的程序时出错,出错的原因是( )。(分数:2.00)A.构造函数的实参不允许是本类的对象B.没有定义实现深层复制(深拷贝)的复制构造函数C.构造对象 a时实参与形参类型不符D.系统不能生成默认的复制构造函数24.有如下程序:#inCludeiostreamusing namespace std;Class TestClasspublic:virtUal vo
14、id furll()cout“funlTestclass”;virtual void fun2()cout“fun2TestClass”;class TestClassl:public TestClassvoid fun()cout“funlTestClass1”;int main()TestClass obj1,*p;TestClassl obj2;pi+)s*a+;returns;void main()inta:1,2,3,4,5,6,7,8;intb=Func(a,6)+Func(class Basepublic:void fun()cout“Basefun”endl;);class D
15、erivde:public Basepublic:void fun()/调用基类的函数 fun()cout“Derived fun”endl;(分数:2.00)填空项 1:_47.在下面横线上填上适当的语句,完成程序。#includeiostreamusing namespace std;class Baseint x;public:Base(int i)xi;Base();class Derived:public Basepublic:_/完成类 Derive构造函数的定义;iht main()Derived obj;return 0;在横线处应填入的语句是_。(分数:2.00)填空项 1:
16、_48.下列程序将 x、y 和 z按从小到大的顺序排列,请将下面的函数模板补充完整。templateclass Tvoid order( )T alif(xy)ax;xy; ya;if(yz)ay;y=Z; za;if(xy)aX;X=y; y=a;(分数:2.00)填空项 1:_49.下列程序完成从文件读取文件显示的同时写入第二个文件,则在程序中划线部分应该出现的语句是_。#includeiostream.h#include(fstream.h)void main()fstream filel,file2;charfnl10,fn210,ch;cout“输入源文件名”;cinfnl;cout
17、“输入目标文件名”;cinfn2;filel.open(fnl,ios:in);while(ch;filel.get()!EOF)coutch;file2.put(ch);filel.close();file2.close();(分数:2.00)填空项 1:_50.operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为 1 的。(分数:2.00)填空项 1:_二级 C+笔试-285 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.有如下程序:#includeiostream.
18、husing namespace std;Class Basepublic:Base()cout“BB”;f();void()cout“BF”;class Derived:public Basepublic:Derived()cout“DD”;void f()cout“Df”;);int main()Derived d;return 0;执行上面的程序将输出( )。(分数:2.00)A.BBBfDD B.BBDfDDDfC.DDD.DDBBBf解析:解析 本趣考查的是类的继承和派生。派生类执行构造函数的一般次序为;首先调用基类构造函数,然后调用成员对象的构造函数,最后是派生类构造函数中的内容。
19、题目中定义派生类对象 d时,先调用基类 Base的构造函数,输出 BBBf,然后调用派生类 Derived的构造函数,输出 DD。2.以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是( )。(分数:2.00)A.ofstream myfile;mynle.open(“d:ofile.txt”);B.ofstream * mynle=new ofstream;mynle-open(“d:Ofile.txt”);C.ofstream myhle(“d:ofile.txt”);D.ofstream * mynle=new(“d:ofile.txt”); 解析:解析 本题考查文件对象的创建方
20、法。可以直接定义文件对象,也可以用 new来动态生成。很明显,选项 D中使用 new的方式是错误的。3.有如下程序:#includeiostreamusing namespace std;classApublic:virtua1 voidfunc1()cout“A1”;voidfunc2()cout“A2”;class B:publicApublic:void funcl()cout“B1”;void func2()cout“B2”;intmain()A*pnew B;p-funcl();p-func2();return 0;执行该程序,屏幕上将显示输出( )。(分数:2.00)A.B1B2B
21、.A1A2C.B1A2 D.A1B2解析:解析 程序中 B为 A的派生类,由主函数入手,主函数中定义了类 A的指针 p指向类 B。根据基类中的“vir- tual void funcl()”知道 A中的 funcl为虚函数,执行“p-funcl();”语句,通过指针变量调用此虚函数,此时调用的就是指针变量指向的同名函数,即派生类的 funcl函数,输出 B1。而fun2不是虚函数,所以执行“p-rune2();”输出为 A2。4.若变量已正确定义并赋值,以下符合 C+语言语法的表达式是( )。(分数:2.00)A.a=b+lB.a=b=c+2 C.int 18.5%3D.aa+7=c+b解析:
22、解析 本题考查 C+语言的正确赋值方法。a=bc+2 实际上相当于 a=(bc+2),进而可分解为两个表达式:bc+2 和 a=b。选项 A中包含一个不合法的运算符”:=”;选项 C应改为(int)18.5%3,选项D可理解为两个表达式 ca+7:c+b 和 aa+7,其中第一个是错的,因为 C+语言规定赋值号的左边只能是单个变量,不能是表达式戊常量等。5.有如下程序:#includeiostreamusing namespqce Std;class TestClassprivate;Char C;public;TestClass(char n):c(n)TestClass()coutc;cl
23、ass TestClassl:public TestClassprivate:Char C;public:TestClassl(char n):TestClass(n+1),c(n)TestClass1()coutC;int main()TestClassl obj(x);return 0;执行上面的程序将输出( )。(分数:2.00)A.xy B.yxC.xD.y解析:解析 本题中 TestClass为基类,TestClassl 为派生类。在主函数中定义 TestClassl对象obj(x),“TestClassl(char n):TestClass(n+1),c(n)”,所以选输出 x,然
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 285 答案 解析 DOC
