欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C++笔试-415及答案解析.doc

    • 资源ID:1324647       资源大小:78KB        全文页数:27页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C++笔试-415及答案解析.doc

    1、二级 C+笔试-415 及答案解析(总分:82.00,做题时间:90 分钟)一、选择题(总题数:35,分数:57.00)1.最简单的交换排序方法是A) 快速排序 B) 选择排序 C) 堆排序 D) 冒泡排序(分数:1.00)A.B.C.D.2.下列关于析构函数的描述中,错误的是( )。A) 类中有且仅有一个析构函数B) 析构函数可以有形参C) 析构函数没有函数类型D) 析构函数对象消失时被自动执行(分数:1.00)A.B.C.D.3.以下 for 语句中不是死循环的是A) for(int i=0;i1;+i); B) for(int i=0;+i);C) for(int i=1;i0;+i);

    2、 D) for(;);(分数:1.00)A.B.C.D.4.下列关于 C语言类的描述中错误的是A) 类用于描述事物的属性和对事物的操作B) 类与类之间通过封装而具有明确的独立性C) 类与类之间必须是平等的关系,不能组成层次结构D) 类与类之间可以通过一些方法进行通信和联络(分数:2.00)A.B.C.D.5.关于关键字 class 和 typename,下列描述正确的是( )。A) 程序中所有的 class 都可以替换为 typenameB) 程序中所有的 typename 都可以替换为 classC) A 和 B 都可以D) A 和 B 都不可以(分数:2.00)A.B.C.D.6.有如下语

    3、句序列:int k0:d0k+5;cout$; while(k19);while(k-0)cout*;执行上面:的语句序列输出字符“$”和“*”的个数分别是( )。A) 4 和 20 B) 5 和 20C) 4 和 21 D) 5 和 21(分数:2.00)A.B.C.D.7.下面的哪个选项不能作为函数的返回类型?A)void B)int C)new D)long(分数:1.00)A.B.C.D.8.有如下程序:#includeiostreamusing namespace std;class Testpublic:Test() n+=2;Test() n-=3;static int getN

    4、um() return n;private:static int n;int Test:n=1;int main()Test *p=new Test;delete p;cout“n=“Test:getNum()endl;return 0;执行后的输出结果是( )。A) n=0 B) n=1 C) n=2 D) n=3(分数:2.00)A.B.C.D.9.下列各函数的说明中,表示纯虚函数的是( )。A) virtual int fuc(int); B) void fuc(int)=0;C) virtual void fuc()=0; D) virtual void fuc(int)(分数:2.0

    5、0)A.B.C.D.10.若变量已正确定义并赋值,以下符合 C+语言语法的表达式是( )。A) a=b+l B) a=b=c+2C) int 18.5%3 D) aa+7=c+b(分数:2.00)A.B.C.D.11.单个用户使用的数据视图的描述称为A) 外模式 B) 概念模式 C) 内模式 D) 存储模式(分数:2.00)A.B.C.D.12.关于关键字 class 和 typename,下列表述中正确的是A) 程序中的 typename 都可以替换为 classB) 程序中的 class 都可以替换为 typenameC) 在模板形参表中只能用 typename 来声明参数的类型D) 在模

    6、板形参表中只能用 class 或 typename 来声明参数的类型(分数:1.00)A.B.C.D.13.若有如下语句#includeiostreamhvoid main()int x=3:doX=X-2;coutX;while(!(-x);则上面程序段A)输出的是 1 B)输出的是 1 和-2C)输出的是 3 和 0 D)是死循环(分数:1.00)A.B.C.D.14.继承机制的作用是A) 信息隐藏 B) 数据封装 C) 定义新类 D) 数据抽象(分数:2.00)A.B.C.D.15.关于面向对象的程序设计方法,下列说法正确的是A) “封装性”指的是将不同类型的相关数据组合在一起,作为一个

    7、整体进行处理B) “多态性”指的是对象的状态会根据运行时要求自动变化C) 基类的私有成员在派生类的对象中不可访问,也不占内存空间D) 在面向对象的程序设计中,结构化程序设计方法仍有着重要作用(分数:2.00)A.B.C.D.16.下列各种调试方法中,靠演绎、归纳以及二分法来实现的是( )。A) 强行排错法 B) 回溯法 C) 原因排除法 D) 静态调试(分数:1.00)A.B.C.D.17.以下程序的输出结果是( )。min()int i=0,a=0;while(i20)for(;)if(i%10)=0)break;else i-;i+=11;a+=i;coutaendl;A) 21 B) 3

    8、2 C) 33 D) 11(分数:2.00)A.B.C.D.18.有以下程序: #includeiostream#includestringusing namespace std;int main()char arr24;strcpy(arr0,“you“);strcpy(arr1,“me“);arr03=MyClass ()private:int data;下列对 Myclass 类对象数组的定义和初始化语句中,正确的是( )。A) MyClass arrays2;B) MyClass arrays2=MyClass(5);C) MyClass arrays2=MyClass(5), MyC

    9、lass(6);D) MyClass*arrays=new MyClass2;(分数:2.00)A.B.C.D.20.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指( )。A) 数据与程序独立存放B) 不同的程序被存放在不同的文件中C) 不同的数据只能被所对应的应用程序所使用D) 上述三种说法都不对(分数:2.00)A.B.C.D.21.下面关于虚函数的表述中正确的是( )。A) 虚函数不能声明为另一个类的友元函数B) 派生类必须重新定义基类的虚函数C) 如果在重定义虚函数时使用了保留字 virtual,那么该重定义函数仍是虚函数D) 虚函数不能够声明为静态函数(分数:2.00)A.

    10、B.C.D.22.在单链表中,增加头结点的目的是A) 方便运算的实现B) 使单链表至少有一个结点C) 标识表结点中首结点的位置D) 说明单链表是线性表的链式存储实现(分数:1.00)A.B.C.D.23.若调用一个函数,且此函数中没有 return 语句,则正确的说法是该函数( )。A没有返回值B返回若干个系统默认值C有返回值,但返回一个不确定的值D返回一个用户所希望的函数值(分数:2.00)A.B.C.D.24.在单链表中,增加头节点的目的是A) 方便运算的实现B) 使单链表至少有一个节点C) 标识表节点中首节点的位置D) 说明单链表是线性表的链式存储实现(分数:2.00)A.B.C.D.2

    11、5.下列有关类继承的叙述中,错误的是( )。A继承可以实现软件复用B虚基类可以解决由多继承产生的二义性问题C派生类构造函数要负责调用基类的构造函数D派生类没有继承基类的私有成员(分数:2.00)A.B.C.D.26.关于动态联编的下列叙述中, _ 是错误的。A) 动态联编是以虚函数为基础的B) 动态联编调用虚函数操作是指向对象的指针或引用C) 动态联编是在运行时确定所调用的函数代码的D) 动态联编是在编译时确定操作函数的(分数:2.00)A.B.C.D.27.当使用 ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式是( )。A) ios:in B) ios:out

    12、C) ios:trunc D) ios:binary(分数:1.00)A.B.C.D.28.下面的函数模板定义中错误的是_ 。A) templateclass Q QF (Q x)return Q +x;B) templateclass Q QF (Q x)returnx/x;C) template class T T F(T x) return x*x;D) template class Tbool F (T x) return x1;(分数:2.00)A.B.C.D.29.对于语句 coutendlx;中的各个组成部分,下列叙述中错误的是 A) “cout”是一个输出流对象 B) “end

    13、l”的作用是输出回车换行 C) “x”是一个变量 D) “”称作提取运算符(分数:2.00)A.B.C.D.30.下列关于虚函数的描述中,正确的是A) 虚函数是一个 static 类型的成员函数B) 虚函数是一个非成员函数C) 基类中采用 virtual 说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual 说明D) 派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型(分数:2.00)A.B.C.D.31.在公有派生时,派生类中定义的成员函数只能访问原基类的( )。A) 私有成员、保护成员和公有成员 B) 保护成员和私有成员C) 公有成员和保护成员 D) 公有成

    14、员和私有成员(分数:2.00)A.B.C.D.32.类的析构函数的作用是( )。A) 一般成员函数B) 类的初始化C) 对象的初始化D) 释放由对象所占用的资源(分数:2.00)A.B.C.D.33.下列叙述不属于线性链表较之线性表顺序存储结构的优点的是( )。A) 线性链表存储方式简单B) 线性链表运算效率高C) 线性链表的存储空间易于扩展D) 线性链表便于存储空间的动态分配(分数:1.00)A.B.C.D.34.在 C中用来实现运行时多态性的是A) 重载函数 B) 析构函数C) 构造函数 D) 虚函数(分数:1.00)A.B.C.D.35.如果表达式-x/y 中的“-”和“/”是作为友元函

    15、数重载的运算符,采用运算符函数调用格式,该表达式还可表示为A) operator/(xoperator-(),y);B) operator/(operator-(x),y);C) x.operator-().operator/(y);D) y.operator/(operator-(x);(分数:1.00)A.B.C.D.二、填空题(总题数:15,分数:25.00)36.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 1。(分数:1.00)填空项 1:_37.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为 1。(分数:1.00)填空项 1:_

    16、38.有以下程序:#includeiostream.hclassAint x;public:A(int A) x=a;friend class B;class Bpublic:void print(AA) a.x-;couta.xend1;void main()Aa(10);Bb;b.print(A) ;程序执行后的输出结果是_。(分数:1.00)填空项 1:_39.模板使我们可以用一个代码段指定一组相关函数(称为 1 )或一组相关类(称为 2。(分数:1.00)填空项 1:_填空项 1:_40.数据库设计包括概念设计、 1 和物理设计。(分数:2.00)填空项 1:_41.下列程序的运行结果

    17、是_。#includeiostream. hclass Basepublic:virtual void func(int i)cout“class Base:“iendl;class Derived: public Basepublic:void func(double d)cout“class Derived:“dendl;);void main()Base a, *p=Derived b;p=(* p).func(3.3);(分数:2.00)填空项 1:_42.按“先进后出”原则组织数据的数据结构是 1。(分数:2.00)填空项 1:_43.下列程序的定义语句中,x1的初值是_,程序运行后

    18、输出的内容是_。#includestdio.hvoid main()int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16),*p4,i;for(i=0;i4;i+)pi=x2*i+1;printf(“%d“,pi0);printf(“/n“)(分数:4.00)填空项 1:_44.计算机技术中,为解决一个特定问题而采取的特定的有限的步骤称为 1。(分数:2.00)填空项 1:_45.下列程序在构造函数和析构函数中申请和释放类的数据成员 int * a,申请时使用形参 b 初始化 a,请填空。class Apublic:A(int b) ;A( ) ;priva

    19、te:int * a;A: :A(int b) _;A: :A( ) _;(分数:2.00)填空项 1:_46.在最坏情况下,堆排序需要比较的次数为 1。(分数:1.00)填空项 1:_47.C+程序第 1 条语句是从 1 函数开始执行的。(分数:2.00)填空项 1:_48.表达式 x.operator+(yoperator+(0)还可以写成 1。(分数:1.00)填空项 1:_49.数据库系统中实现各种数据管理功能的核心软件称为 1。(分数:2.00)填空项 1:_50.继承的方式有公有继承、私有继承和 1 种。(分数:1.00)填空项 1:_二级 C+笔试-415 答案解析(总分:82.

    20、00,做题时间:90 分钟)一、选择题(总题数:35,分数:57.00)1.最简单的交换排序方法是A) 快速排序 B) 选择排序 C) 堆排序 D) 冒泡排序(分数:1.00)A.B.C.D. 解析:解析 让考生加深对各种排序方法特点的了解。解题要点 冒泡排序是一种最简单的交换类排序方法,它是通过相邻数据元素的交换逐步将线性表变成有序。错解分析 交换排序方法有冒泡排序和快速排序,显然选项 B 和选项 C 错误,冒泡排序比较简单,其算法也容易理解,但快速排序本身较为复杂,且采用了递归调用,其算法理解也稍难。考点链接 插入排序、选择排序、归并排序、基数排序等排序方法的特点。2.下列关于析构函数的描

    21、述中,错误的是( )。A) 类中有且仅有一个析构函数B) 析构函数可以有形参C) 析构函数没有函数类型D) 析构函数对象消失时被自动执行(分数:1.00)A.B. C.D.解析:3.以下 for 语句中不是死循环的是A) for(int i=0;i1;+i); B) for(int i=0;+i);C) for(int i=1;i0;+i); D) for(;);(分数:1.00)A. B.C.D.解析:解析 考查循环语句 for 的使用。解题要点 for 循环的一般格式为 for(初始化部分;终止条件判断部分;迭代部分)循环体;说明如下:for 循环开始时,首先执行初始化操作,然后判断终止条

    22、件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。错解分析 在 for 语句中,如果省略了终止条件判断部分,并且在语句中没有 break,或者是终止条件判断部分始终没有终止,都将出现死循环。考点链接 for 循环语句可由 while 循环语句来代替。4.下列关于 C语言类的描述中错误的是A) 类用于描述事物的属性和对事物的操作B) 类与类之间通过封装而具有明确的独立性C) 类与类之间必须是平等的关系,不能组成层次结构D) 类与类之间可以通过一些方法进行通信和联络(分数:2.00)A.B.C. D.解析:解析 C语言中的类是可以组成层次结构的,类是用

    23、于描述事物的属性和对事物的操作,类与类之间有相对的独立性,但其可以通过一些方法进行信息的通信。5.关于关键字 class 和 typename,下列描述正确的是( )。A) 程序中所有的 class 都可以替换为 typenameB) 程序中所有的 typename 都可以替换为 classC) A 和 B 都可以D) A 和 B 都不可以(分数:2.00)A.B. C.D.解析:6.有如下语句序列:int k0:d0k+5;cout$; while(k19);while(k-0)cout*;执行上面:的语句序列输出字符“$”和“*”的个数分别是( )。A) 4 和 20 B) 5 和 20C

    24、) 4 和 21 D) 5 和 21(分数:2.00)A. B.C.D.解析:解析 本题首先执行语句 dok+5;cout$; while(k19);,循环执行 4 渔翁。;全了 4 个“$”,k 的值变为 20;然后执行语句 while(k-O)cout*;,因为其中的 k 是后缀自减,所以会输出 20 个“*”。7.下面的哪个选项不能作为函数的返回类型?A)void B)int C)new D)long(分数:1.00)A.B.C. D.解析:解析 new 是动态申请内存空间时使用的关键宇,不能作为函数的返回类型,选项 A)为无返回值,选项 B)为返回整型,选项 D)为返回长整型。8.有如

    25、下程序:#includeiostreamusing namespace std;class Testpublic:Test() n+=2;Test() n-=3;static int getNum() return n;private:static int n;int Test:n=1;int main()Test *p=new Test;delete p;cout“n=“Test:getNum()endl;return 0;执行后的输出结果是( )。A) n=0 B) n=1 C) n=2 D) n=3(分数:2.00)A. B.C.D.解析:解析 静态数据成员是类中所有对象共享的成员,而不

    26、是某个对象的成员。题中变量 n 是静态数据成员,对象对其操作的结果具有叠加作用,main 函数中先定义了 Test 的对象*p,然后又 delete p,所以对静态数据 n 进行了两次操作,分别是“n+=2“和“n-=3“,n 的初始值是 1,那么 n 最后的值变为O。main 函数最后通过调用静态函数 getNum 得到 n 的值,并输出。9.下列各函数的说明中,表示纯虚函数的是( )。A) virtual int fuc(int); B) void fuc(int)=0;C) virtual void fuc()=0; D) virtual void fuc(int)(分数:2.00)A.

    27、B.C. D.解析:解析 纯虚函数说明的一般格式为:virtual 类型函数名(参数表)=0;。10.若变量已正确定义并赋值,以下符合 C+语言语法的表达式是( )。A) a=b+l B) a=b=c+2C) int 18.5%3 D) aa+7=c+b(分数:2.00)A.B. C.D.解析:解析 本题考查 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+

    28、语言规定赋值号的左边只能是单个变量,不能是表达式戊常量等。11.单个用户使用的数据视图的描述称为A) 外模式 B) 概念模式 C) 内模式 D) 存储模式(分数:2.00)A. B.C.D.解析:解析 选项 A) 正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项 B) 不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项 C) 不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项 D) 不正确,存储模式即为内模式。12.关于关键字 class 和 typename,下列表述中正确的是A) 程序中的 typename 都可以替

    29、换为 classB) 程序中的 class 都可以替换为 typenameC) 在模板形参表中只能用 typename 来声明参数的类型D) 在模板形参表中只能用 class 或 typename 来声明参数的类型(分数:1.00)A. B.C.D.解析:解析 本题考查了 class 和 typename 两个关键字。关键字 class 除了能用来定义类以外,还能用来声明模板的虚拟类型参数。在用作声明虚拟类型参数时 typename 与 class 可以互换,但不能使用typename 宋定义类。因此,选项 B 和 C 是错误的。在模板形参表中除了可以用 typename 或 class 声明

    30、虚拟类型参数外,还可以使用普通类型声明常规参数,所以选项 C 是错误的。故本题应该选择 A。13.若有如下语句#includeiostreamhvoid main()int x=3:doX=X-2;coutX;while(!(-x);则上面程序段A)输出的是 1 B)输出的是 1 和-2C)输出的是 3 和 0 D)是死循环(分数:1.00)A.B. C.D.解析:解析 dowhile 语句的一般格式为 do 循环体语句 while(表达式);,先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。本题中,先执行 x=x-2,即为 l。判断表达式的值,!(-x)为真,x=

    31、0,继续循环。再次执行循环体语句后,x=-2,此时表达式的值为 0,结束循环。14.继承机制的作用是A) 信息隐藏 B) 数据封装 C) 定义新类 D) 数据抽象(分数:2.00)A.B.C. D.解析:解析 继承是类的一个重要特性,没有继承,面向对象方法也就不存在。正是有了继承,才呈现出丰富多彩的类和对象。15.关于面向对象的程序设计方法,下列说法正确的是A) “封装性”指的是将不同类型的相关数据组合在一起,作为一个整体进行处理B) “多态性”指的是对象的状态会根据运行时要求自动变化C) 基类的私有成员在派生类的对象中不可访问,也不占内存空间D) 在面向对象的程序设计中,结构化程序设计方法仍

    32、有着重要作用(分数:2.00)A.B.C.D. 解析:解析 本题考核 C+程序的基本框架。“封装性”指将数据和算法捆绑成一个整体,而不是将不同类型的相关数据组合在一起 C+中的多态性是指一个面向对象的系统常常要求一组具有相同基本语义的方法能在同一接口下为不同的对象服务。基类的私有成员在派生类的对象中不可访问,但是也占据内存空间。C+同时支持结构化和面向对象两种程序设计的基本框架,所以在面向对象的程序设计中,结构化程序设计方法仍有着重要作用。16.下列各种调试方法中,靠演绎、归纳以及二分法来实现的是( )。A) 强行排错法 B) 回溯法 C) 原因排除法 D) 静态调试(分数:1.00)A.B.

    33、C. D.解析:解析 本题考查对几种调试方法的掌握,其中强行排错法是最常用也是最低效的,主要思想是通过“计算机找错”。回溯法是从出现错误征兆处开始,人工沿控制流程往回追踪,直至发现出错的根源。这是在小程序中常用的一种有效的调试方法。程序变大后,可能的回溯路线显著增加,以致人工进行完全回溯望而不可及。静态调试是一种调试手段,主要是指通过人的思维来分析源程序代码和排错。17.以下程序的输出结果是( )。min()int i=0,a=0;while(i20)for(;)if(i%10)=0)break;else i-;i+=11;a+=i;coutaendl;A) 21 B) 32 C) 33 D)

    34、 11(分数:2.00)A.B. C.D.解析:解析 本题是两个循环语句和一个判断语句的嵌套。For 循环的作用是在 i 等于 10 的时候跳出循环本题的答粟为 B。18.有以下程序: #includeiostream#includestringusing namespace std;int main()char arr24;strcpy(arr0,“you“);strcpy(arr1,“me“);arr03=MyClass ()private:int data;下列对 Myclass 类对象数组的定义和初始化语句中,正确的是( )。A) MyClass arrays2;B) MyClass

    35、arrays2=MyClass(5);C) MyClass arrays2=MyClass(5), MyClass(6);D) MyClass*arrays=new MyClass2;(分数:2.00)A.B.C. D.解析:解析 在选项 C) 中定义了类 MyClass 对象数组 arrays2,并用对象 MyClass(5)和 MyClass(6)对这个数组中的两个元素赋初值。20.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指( )。A) 数据与程序独立存放B) 不同的程序被存放在不同的文件中C) 不同的数据只能被所对应的应用程序所使用D) 上述三种说法都不对(分数:2.00)

    36、A.B.C.D. 解析:解析 数据库系统使数据具有两方面的独立性:一是物理独立性,即由于数据的存储结构与逻辑结构之间由系统提供映像,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改。二是逻辑独立性,即由于数据的局部逻辑结构与总体逻辑结构之间也由系统提供映像,使得当总体逻辑结构改变时,其局部逻辑结构可以不变,从而根据局部逻辑结构编写的程序也可以不必修改。因此,选项 A、选项 B 和选项 C 中的说法都是错误的。21.下面关于虚函数的表述中正确的是( )。A) 虚函数不能声明为另一个类的友元函数B) 派生类必须重新定义基类的虚函数C) 如果在重定义虚函数时使用了

    37、保留字 virtual,那么该重定义函数仍是虚函数D) 虚函数不能够声明为静态函数(分数:2.00)A.B.C.D. 解析:解析 在 C+中的成员函数前加上 virtual 修饰,就把该函数声明为虚函数。虚函数可以是另一个类的友元函数,但不得是静态成员函数。22.在单链表中,增加头结点的目的是A) 方便运算的实现B) 使单链表至少有一个结点C) 标识表结点中首结点的位置D) 说明单链表是线性表的链式存储实现(分数:1.00)A. B.C.D.解析:解析 头结点不仅标识了表中首结点的位置,而且根据单链表(包含头结点)的结构,只要掌握了表头,就能够访问整个链表,因此增加头结点目的是为了便于运算的实

    38、现。23.若调用一个函数,且此函数中没有 return 语句,则正确的说法是该函数( )。A没有返回值B返回若干个系统默认值C有返回值,但返回一个不确定的值D返回一个用户所希望的函数值(分数:2.00)A.B.C. D.解析:24.在单链表中,增加头节点的目的是A) 方便运算的实现B) 使单链表至少有一个节点C) 标识表节点中首节点的位置D) 说明单链表是线性表的链式存储实现(分数:2.00)A. B.C.D.解析:解析 头节点不仅标识了表中首节点的位置,而且根据单链表(包含头节点) 的结构,只要掌握了表头,就能够访问整个链表,因此增加头节点的目的是为了便于运算的实现。25.下列有关类继承的叙

    39、述中,错误的是( )。A继承可以实现软件复用B虚基类可以解决由多继承产生的二义性问题C派生类构造函数要负责调用基类的构造函数D派生类没有继承基类的私有成员(分数:2.00)A.B.C.D. 解析:解析 本题考查的是类继承。派生类继承了基类的全部数据成员和私有成员,只是基类的私有成员在派生类中是隐藏的,只能在基类内部访问。26.关于动态联编的下列叙述中, _ 是错误的。A) 动态联编是以虚函数为基础的B) 动态联编调用虚函数操作是指向对象的指针或引用C) 动态联编是在运行时确定所调用的函数代码的D) 动态联编是在编译时确定操作函数的(分数:2.00)A. B.C.D.解析:27.当使用 ifst

    40、ream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式是( )。A) ios:in B) ios:out C) ios:trunc D) ios:binary(分数:1.00)A. B.C.D.解析:28.下面的函数模板定义中错误的是_ 。A) templateclass Q QF (Q x)return Q +x;B) templateclass Q QF (Q x)returnx/x;C) template class T T F(T x) return x*x;D) template class Tbool F (T x) return x1;(分数:2.00)A. B.C

    41、.D.解析:解析 Q 只是模板的语法要求,不能作为一个值。29.对于语句 coutendlx;中的各个组成部分,下列叙述中错误的是 A) “cout”是一个输出流对象 B) “endl”的作用是输出回车换行 C) “x”是一个变量 D) “”称作提取运算符(分数:2.00)A.B.C.D. 解析:解析 是流插入运算符,是提取运算符。30.下列关于虚函数的描述中,正确的是A) 虚函数是一个 static 类型的成员函数B) 虚函数是一个非成员函数C) 基类中采用 virtual 说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual 说明D) 派生类中的虚函数与基类中相同原型的虚

    42、函数具有不同的参数个数或类型(分数:2.00)A.B.C. D.解析:解析 本题考核对虚函数的了解。在成员函数声明的前面加上 virtual 关键字修饰,即把该函数声明为虚函数。虚函数可以是另一个类的友元函数,但不是静态成员函数。所以 A、B 选项的描述都是错误。在派生类中可以重新定义从基类继承下来的虚函数,在派生类中重定义虚函数时,函数名、形参表和返回值类型必须保持不变,所以 D 选项是错误的。31.在公有派生时,派生类中定义的成员函数只能访问原基类的( )。A) 私有成员、保护成员和公有成员 B) 保护成员和私有成员C) 公有成员和保护成员 D) 公有成员和私有成员(分数:2.00)A.B

    43、.C. D.解析:解析 派生类中的成员,一部分是从基类继承来的,另一部分是自己定义的新成员,所有的这些成员也分为公有、私有和保护三种访问权限。其中,从基类继承下来的全部成员构成派生类的基类,这部分的私有成员是派生类不能直接访问的,而公有成员和保护成员则是派生类可以直接访问的,但它们在派生类中的访问属性随着派生类对基类的继承方式而改变。32.类的析构函数的作用是( )。A) 一般成员函数B) 类的初始化C) 对象的初始化D) 释放由对象所占用的资源(分数:2.00)A.B.C.D. 解析:33.下列叙述不属于线性链表较之线性表顺序存储结构的优点的是( )。A) 线性链表存储方式简单B) 线性链表

    44、运算效率高C) 线性链表的存储空间易于扩展D) 线性链表便于存储空间的动态分配(分数:1.00)A. B.C.D.解析:解析 线性链表存储方式要求每个数据节点由两个部分组成,比线性表的顺序存储结构复杂,选项 A 是错误的。在平均情况下,线性表的顺序存储结构插入和删除元素需要移动线性表中约一半的元素,效率低下。而线性链表只需改变有关节点的指针,效率较高,选项 B 是正确的。线性表的顺序存储存储空间必须是连续的,不利于存储空间扩展;而线性链表不需要连续的存储空间,存储空间易于扩展,选项 C是正确的。为保证线性表的存储空间连续且顺序分配,会导致在对某个线性表进行动态分配存储空间时,必须要移动其他线性

    45、表中的数据元素,不便于存储空间的动态分配,选项 D 是正确的。34.在 C中用来实现运行时多态性的是A) 重载函数 B) 析构函数C) 构造函数 D) 虚函数(分数:1.00)A.B.C.D. 解析:解析 本题考核虚函数。在 C语言中,多态性可分为两类:编译时的多态性和运行时的多态性。编译时的多态性是通过函数重载和模板体现。其实现机制称为静态联编(也译为静态绑定),即在编译阶段决定执行哪个同名的被调用函数:运行时的多态性是通过体现的,其实现机制称为动态联编(也译为动态绑定),即在编译阶段不能决定执行哪个同名的被调用函数,只在执行阶段才能依据要处理的对象类型来决定执行哪个类的成员函数。用来实现运

    46、行时多态性的是虚函数。35.如果表达式-x/y 中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为A) operator/(xoperator-(),y);B) operator/(operator-(x),y);C) x.operator-().operator/(y);D) y.operator/(operator-(x);(分数:1.00)A.B. C.D.解析:解析 本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符 +,且 c1、c2都是该类的对象,则 c1operator+(c2)与 c1+c2 含义相同。如果+作为该类的非成员

    47、函数重载,则operator+(c1,c2)与 c1+c2 含义相同。同理,运算符“/“作为友元函数重载,则(-x)/y 与表达式operator/(-x),y)相同。前缀运算符“-”作为友元函数重载,则-x 与 operator-(x)相同,所以组合起来是 operator/(operator -(x),y);,即 B 选项。二、填空题(总题数:15,分数:25.00)36.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 1。(分数:1.00)填空项 1:_ (正确答案:关系)解析:解析 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系,表中的每一列称为一个属性,相当于记录中的个数据项,对属性的命名称为属性名;表中的一行称为一个元组,相当于记录值。37.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为 1。(分数:1.00)填空项 1:_


    注意事项

    本文(【计算机类职业资格】二级C++笔试-415及答案解析.doc)为本站会员(lawfemale396)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开