【计算机类职业资格】二级C++笔试-178及答案解析.doc
《【计算机类职业资格】二级C++笔试-178及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-178及答案解析.doc(24页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-178 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下面关于友元的说法中错误的是( )。(分数:2.00)A.若类 A 是类 B 的友元,那么类 B 也是类 A 的友元B.友元关系不能被继承C.若函数 fun 被说明为类 A 的友元,那么在 fun 中可以访问类 A 的私有成员D.若类 A 是类 B 的友元,那么类 A 的所有成员函数都是类 B 的友元2.下面有关类模板的说法中不正确的是( )。(分数:2.00)A.类模板的成员函数都是模板函数B.类模板本身在编译中不会生成任何代码C.类模板只是虚拟类型的参数D.用类模板
2、定义一个对象时,不能省略实际参数3.树是结点的集合,它的根结点的数目是( )。(分数:2.00)A.有且只有 1 个B.1 个或多于 1 个C.0 个或 1 个D.至少有 2 个4.在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。(分数:2.00)A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)5.下面 for 语句的循环次数为( )。for(int i=0,n=0;!ni+);(分数:2.00)A.0B.5C.6D.无穷次6.下面数据结构中,属于非线性的是( )。(分数:2.00)A.线性表B.队列C.树D.栈7.下面字符串中,不可以用作 C+
3、标识符的是( )。(分数:2.00)A.caseB._test_cC.ReturnD.x_20088.下面关于运算符重载中正确的是( )。(分数:2.00)A.运算符函数的返回类型不能声明为基本数据类型B.C+的所有运算符都可以重载C.在类型转换符函数的定义中不需要声明返回类型D.通过运算符重载可以定义 C+中没有的运算符9.有如下类定义:class Testint x_,y_;public:Test ():a_(0) ,b_(0) Test(int a,int b=0) :a_((分数:2.00)A.,b_(B.10.有如下程序:#includeiostreamusing namespace
4、 std;class Basepublic:virtual void func1()cout“Base 1“;void rune2()cout“Base 2“;class Derived:public Basepublic:void func1()cout“Derived 1“;void func2()cout“Derived 2“;int main()Base *p=new Derived;P-func1();P-func2();return 0:运行此程序,屏幕上将显示输出_。(分数:2.00)A.Derived 1 Base 2B.Base 1 Base 2C.Derived 1 Der
5、ived 2D.Base 1 Derived 211.有如下类定义:class Funpublic:Fun(int v):value(v)/Fun()/private:Fun,/int value=0;/;其中存在语法错误的行是( )。(分数:2.00)A.B.C.D.12.实现算法所需要的存储单元的多少称为( )。(分数:2.00)A.可实现性B.空间复杂度C.时间复杂度D.困难度13.数据库管理员(DB(分数:2.00)A.是数据库系统的一个重要组成部分,有很多职责。以下选项不属于 DBA 职责的是( )。A) 定义数据的存储结构和存取策略B.定义数据库的结构C.定期对数据库进行重组和重构
6、D.设计和编写应用系统的程序模块14.下面的类定义中,如果要为其添加一个析构函数,对于析构函数定义正确的是( )。class TlestClassprivate:int a:public:TestClass(int giva_a=0) a=give_a;(分数:2.00)A.void TestClass ()B.TestClass void()C.voidTestClass()D.TestClass()15.下面有关 this 指针的叙述中,正确的是( )。(分数:2.00)A.类的成员函数都有 this 指针B.任何与类相关的函数都有 this 指针C.类的非静态成员函数才有 this 指针
7、D.类的友元函数都有 this 指针16.TestClass 类定义如下:class TestClassprivate:intid;char gender;char*phone;public:TestClass ():id(0),gender(#),phone(NULL)TestClass(int no,char ge=#,char *ph=NULL)id=no;gender=ge;phone=ph;下面类对象定义语句中错误的是( )。(分数:2.00)A.TestClass myObj(i);B.TestClass myObj(2,“11101111155“);C.TestClass myO
8、bj(1,m);D.TestClass myObj;17.下面关于继承和派生的叙述中,正确的是( )。(分数:2.00)A.作为虚基类的类不能被实例化B.派生类不能访问基类中的保护成员C.虚函数必须在派生类中重新实现D.派生类向基类的构造函数传递参数18.下面函数的作用是以双倍行距输出文件:void test(ifstreamwhile(_)_;if(c=/n)outc.put(C) ;下划线处缺失的代码是( )。(分数:2.00)A.outf.put(C) 与 outc.get(C)B.outf.put(C.与 outc.get(C)C) outf.get(C)D.outf.get(C)19
9、.将下面类 TestClass 中的函数 fun()的对象成员 n 值修改为 100 的语句应该是( )。class TcstClasspublic:TestClass(int x)n=x;void SetNum(int n1)n=n1;private:int n;int fun()TestClass*ptr=new TestClass(45);_;(分数:2.00)A.TestClass(100)B.ptr-SetNum(100)C.SetNum(100)D.ptr-n=10020.语句 ofstream outf(“TEST.DAT“,ios_base:app);的功能是建立流对象 out
10、f,并试图打开文件TEST.DAT 与 outf 关联,而且( )。(分数:2.00)A.如果文件存在,打开失败:如果文件不存在,建立一个新文件B.如果文件存在,将文件指针定位于文件首;如果文件不存在,打开失败C.如果文件存在,将文件指针定位于文件尾:如果文件不存在,建立一个新文件D.如果文件存在,将其置为空文件;如果文件不存在,打开失败21.已知:int n=1;在下面定义引用的语句中,正确的是( )。(分数:2.00)A.int x=B.int C.int D.int 22.下列关于函数模板的定义中,合法的是( )。(分数:2.00)A.template class TT abs(T z)
11、 return z0 ?-z:z;B.templatetypename TT abs(T z) return z0 ?-z:z;C.template Tclass Tabs(T z) return z0 ?-z:z;D.template T abs(Tz) return z0 ?z:z;23.下面( )不是构造函数的特征。(分数:2.00)A.构造函数必须指定返回值类型说明B.构造函数可以设置缺省参数C.构造函数可以重载D.构造函数的函数名与类名相同24.使用输入输出操作符 setw,能够控制( )。(分数:2.00)A.填充字符B.输出宽度C.对齐方式D.输出精度25.运行以下的程序代码,结
12、果是( )。#includeiostreamusing namespace std;intmain()int x=5;int *q=int y+;tout(*q)+end1;return 0;(分数:2.00)A.5B.6C.7D.826.下面关于虚函数的表述中正确的是( )。(分数:2.00)A.虚函数不能声明为另一个类的友元函数B.派生类必须重新定义基类的虚函数C.如果在重定义虚函数时使用了保留字 virtual,那么该重定义函数仍是虚函数D.虚函数不能够声明为静态函数27.以下关于栈的描述中错误的是( )。(分数:2.00)A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.
13、对栈的插入与删除操作中,不需要改变栈底指针28.下面关于面向对象的程序设计方法中,正确的是( )。(分数:2.00)A.“多态性”是指对象的状态根据运行的要求进行变化B.“封装性”是指将不同类型的数据结合在一起作为一个整体来处理C.在面向对象的程序设计中,结构化程序设计方法仍有着重要作用D.基类的私有成员在派生类的对象中不可访问,也不占内存空间29.有 3 个关系 R、S 和 T 如下:(分数:2.00)A.B.C.D.30.下列关于线性链表的描述中正确的是( )。(分数:2.00)A.存储空间不一定连续,且各元素的存储顺序是任意的B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.
14、存储空间必须连续,且各前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的31.运算符重载是对已有的运算符赋予多重的含义,所以( )。(分数:2.00)A.能够对基本类型数据(如 double),重新定义“+“运算符的含义B.只能重载 C+中己经有的运算符,不能重新定义新运算符C.能够改变一个已有运算符的优先级和操作数个数D.C+中现有的所有运算符都可以重载32.有以下程序:#includeiostreamusing namespace std;class TestClasspublic:TestClass(int n)number=n;/拷贝构造函数TestCla
15、ss(TestClassTestClass()private:int number;TestClass fun(TestClass P)TestClass temp(p);return temp;int main()TestClass obj1(10),obj2(0) ;TestClass obj3(obj 1) ;obj2=fun(obj3) ;return 0:程序执行时,TestClass 类的构造函数被调用的次数是( )。(分数:2.00)A.2B.3C.4D.533.在软件开发中,需求分析阶段不可以使用的工具是( )。(分数:2.00)A.数据字典B.数据流图C.判断树D.程序流程图
16、34.执行下列程序语句后,输出结果为( )。#ineludeiostreamusing namespace std;int m=5;int main()int m=3;m+;:m+;coutmend1;return 0;(分数:2.00)A.3B.4C.5D.635.下列数据结构中,能用二分法进行查找的是( )。(分数:2.00)A.顺序存储的有序线性表B.线性链表C.二又链表D.有序线性链表二、填空题(总题数:15,分数:30.00)36.从程序设计的方法和技术的发展角度来说,程序设计主要经历了结构化设计和 1 的程序设计阶段。(分数:2.00)填空项 1:_37.关系数据库系统实现的专门关
17、系运算包括选择、连接和 1。(分数:2.00)填空项 1:_38.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_39.软件测试分为白箱(盒)测试和黑箱(盒)测试。等价类划分法属于 1 测试。(分数:2.00)填空项 1:_40.数据库管理系统常见的数据模型有层次模型、网状模型和 13 种。(分数:2.00)填空项 1:_41.若要访问指针变量 q 所指向的数据,应使用表达式 1。(分数:2.00)填空项 1:_42.若有定义语句:int x=3,y=2,z=1;则表达式 x y?x:y 的值是 1。(分数:2.00)填空项 1:_43.非成员函数
18、必须声明为类的 1 才能访问这个类的 private 成员。(分数:2.00)填空项 1:_44.执行下列语句后,输出的结果为_。void run()static int x=3;x+;coutx“ “;int main()for(int i=0;i2;i+)fun();return D;(分数:2.00)填空项 1:_45.有如下程序:#includeiostreamusing namespace std;class Apublic:A()cout“A“;class B:private Apublic:B()coutB;int main()Aa;B b;return 0;这个程序的输出结果是
19、_。(分数:2.00)填空项 1:_46.执行下列语句段后程序的输出结果是_。int x=1,2,3,4,5;int q=x;cout*(+q)end1;(分数:2.00)填空项 1:_47.C+中多态性分为编译时的多态性和运行时的多态性,其中运行时的多态性时通过 1 实现的。(分数:2.00)填空项 1:_48.执行下列语句后,输出结果为_。int a=0,b=2,c=3;switch (a)case 0:switch (b)case 1:cout*;break;case 2:tout%;break;case 1:switch(C) case 1:cout$;break;case 2:cou
20、t*;break;default:tout#;(分数:2.00)填空项 1:_49.对于枚举类型的定义语句 enum WeekSun,Tue=3,Fri,Sat=6,Mon;其中枚举常量 Mon 的值为 1。(分数:2.00)填空项 1:_50.执行下列程序段以后程序的输出是_。void add(int int main()int y=3;add(y);coutyend1;(分数:2.00)填空项 1:_二级 C+笔试-178 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下面关于友元的说法中错误的是( )。(分数:2.00)A.若类 A
21、是类 B 的友元,那么类 B 也是类 A 的友元 B.友元关系不能被继承C.若函数 fun 被说明为类 A 的友元,那么在 fun 中可以访问类 A 的私有成员D.若类 A 是类 B 的友元,那么类 A 的所有成员函数都是类 B 的友元解析:解析 C+中有些对象或函数需要访问其他对象的内部成员,这样可以用 friend 关键字将对应的类指定友元函数或友元类,但是这种关系不是相互的。如果声明一个类 A 为类 B 的友元类,则类 A 中的所有成元函数都可以访问类 B 中的私有成员。另外,友元关系不会被继承。2.下面有关类模板的说法中不正确的是( )。(分数:2.00)A.类模板的成员函数都是模板函
22、数B.类模板本身在编译中不会生成任何代码C.类模板只是虚拟类型的参数 D.用类模板定义一个对象时,不能省略实际参数解析:解析 C+中类模板的声明格式为 template模板形参表声明类声明,并且类模板的成员函数都是模板函数。3.树是结点的集合,它的根结点的数目是( )。(分数:2.00)A.有且只有 1 个B.1 个或多于 1 个C.0 个或 1 个 D.至少有 2 个解析:解析 树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点,当树为空时,树中根结点的数目为 0。知识拓展 什么是结点?通俗地讲,结点就好像树上的树枝(树枝上的叶子就是
23、叶子结点)。根结点就好像树的根。4.在长度为 n 的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。(分数:2.00)A.O(n)B.O(n2)C.O(log2n) D.O(nlog2n)解析:解析 对于长度为 n 的有序线性表,在最坏情况下,二分法查找只需比较 log2n 次,而顺序查找需要比较 n 次。注意:当有序线表为顺序存储时才能使用二分查找。5.下面 for 语句的循环次数为( )。for(int i=0,n=0;!ni+);(分数:2.00)A.0B.5C.6 D.无穷次解析:解析 for 语句的语法格式如下:fort(表达式 1;表达式 2;表达式 3)语句块。其中表
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 178 答案 解析 DOC
