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

    【计算机类职业资格】C++语言笔试-2及答案解析.doc

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

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

    【计算机类职业资格】C++语言笔试-2及答案解析.doc

    1、C+语言笔试-2 及答案解析(总分:80.00,做题时间:90 分钟)一、单项选择题(总题数:40,分数:80.00)1.在结构化方法中,用数据流程图(DFD) 作为描述工具的软件开发阶段是( )。A) 逻辑设计 B) 需求分析C) 详细设计 D) 物理设计(分数:2.00)A.B.C.D.2.对序线性表(23,29,34,55,60,70,78)用二分法查找值为 60 的元素时,需要比较次数为( )。A) 1 B) 2 C) 3 D) 4(分数:2.00)A.B.C.D.3.下列描述中,正确的是( )。A) 线性链表是线性表的链式存储结构B) 栈与队列是非线性结构C) 双向链表是非线性结构D

    2、) 只有根结点的二叉树是线性结构(分数:2.00)A.B.C.D.4.开发大型软件时,产生困难的根本原因是( )。A) 大型系统的复杂性 B) 人员知识不足C) 客观世界千变万化 D) 时间紧、任务重(分数:2.00)A.B.C.D.5.两个或两个以上的模块之间关联的紧密程度称为( )。A) 耦合度 B) 内聚度C) 复杂度 D) 连接度(分数:2.00)A.B.C.D.6.下列关于线性表的叙述中,不正确的是( )。A) 线性表可以是空表B) 线性表是一种线性结构C) 线性表的所有结点有且仅有一个前件和后件D) 线性表是由 n 个元素组成的一个有限序列(分数:2.00)A.B.C.D.7.设有

    3、如下关系表:(分数:2.00)A.B.C.D.8.以下描述中,不是线性表顺序存储结构特征的是( )。A) 可随机访问B) 需要连续的存储空间C) 不便于插入和删除D) 逻辑相邻的数据物理位置上不相邻(分数:2.00)A.B.C.D.9.在三级模式之间引入两层映像,其主要功能之一是( )。A) 使数据与程序具有较高的独立性B) 使系统具有较高的通道能力C) 保持数据与程序的一致性D) 提高存储空间的利用率(分数:2.00)A.B.C.D.10.下列方法中,属于白盒法设计测试用例的方法的是( )。A) 错误推测 B) 因果图C) 基本路径测试 D) 边界值分析(分数:2.00)A.B.C.D.11

    4、.关于虚函数,以下说法正确的是( )。A) 若在重定义虚函数时使用了 virtual,则该重定义函数还是虚函数B) 虚函数不能声明为友元C) 子类必须重定义父类的虚函数D) 虚函数不能是 static 的(分数:2.00)A.B.C.D.12.下列关于纯虚函数与抽象类的描述中,错误的是( )。A) 纯虚函数是一种特殊的虚函数,它没有具体的实现B) 抽象类是指具有纯虚函数的类C) 一个基类中说明具有纯虚函数,该基类的派生类一定不再是抽象类D) 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出(分数:2.00)A.B.C.D.13.将 x+y*z 中的“+”用成员函数重载,“*”用友元函数重

    5、载应写为( )。A) operator+(operator* (y,z)B) x.operator+(operator* (y,z)C) x.operator+(x*(y,z)D) x +(operator*(y,z)(分数:2.00)A.B.C.D.14.以下程序的执行结果是( )。#includeiostream.h#includeiomanip.hvoid fun(int n)if(n!=0)fun(n-1);for(int i=1 ;i=n;i+)coutsetw(3)i;coutend1;void main()fun(3);(分数:2.00)A.B.C.D.15.有以下程序不,在横线

    6、处应添加( )。#includeiostreamusing namespace std;class TestClasspublic:TestClass (int n) number=n;_/拷贝构成函数TestClass () private:int number;TestClass fun(TestClass p)TestClass temp(p);return temp;int main()TestClass obj1(10),obj2(0);TestClass obj3(obj1);obj2=fun(obj3);return 0;A) TestClass (TestClass B) Te

    7、stClass (TestClass other)number=other.number;C) TestClass (TestClass D) TestClass ((分数:2.00)A.B.C.D.16.执行完成下列代码段之后:bool x=true,y=false,z=false;x=xay=x|yz=!(x!=y)|(y=z);则 x=false, y=false, z= ( )。A) true B) falseC) 不确定 D) 异常(分数:2.00)A.B.C.D.17.如果表达式-x/y 中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为( )

    8、。A) operator/(x.operato-(),y);B) operator/(operator-(x),y);C) x.operator-().operator/(y);D) y.operator/(operator-(x);(分数:2.00)A.B.C.D.18.将以下程序写成三目运算表达式是( )。if(xy)min=x;else min=y;A) min=(xy)?x:y B) min=(xy)?x:yC) min=(xy) x:y D) min=(xy)?x,y(分数:2.00)A.B.C.D.19.定义如下枚举类型:enum Monday,Tuesday, Wednesday

    9、,Thrusday, Friday=2;,则下列语句正确的是( )。A) 表达式 Wednesday=Friday 的值是 trueB) Day day;day=3C) Day day;day=Monday+3D) Day day;day=Tuesday+10(分数:2.00)A.B.C.D.20.函数 swap(a,n)可完成对 a 数组从第 1 个元素到第 n 个元素两两交换。其中 b0=1;b1=2;swap(b,2)。在运行调用函数中的语句后,b0和 b1的值分别为( )。A) 1,1 B) 1,2 C) 2,2 D) 2,1(分数:2.00)A.B.C.D.21.下列 for 循环的

    10、循环体执行次数为( )。for(int i(0),j(10);i=j=4;i+,j-)A) 0 B) 1 C) 4 D) 无限(分数:2.00)A.B.C.D.22.下述关于开关语句的描述中,正确的是( )。A) 开关语句中 default 子句可以没有,也可以有一个B) 开关语句中每个语句序列中必须有 break 语句C) 开关语句中 default 子句只能放在最后D) 开关语句中 case 子句后面的表达式可以是整型表达式(分数:2.00)A.B.C.D.23.下列存储类标识符中,可见性与存在性不一致的是( )。A) 外部类 B) 自动类C) 内部静态类 D) 寄存器类(分数:2.00)

    11、A.B.C.D.24.下述静态数据成员的特征中,错误的是( )。A) 说明静态数据成员时前面要加修饰符 staticB) 静态数据成员要在类体外进行初始化C) 引用静态数据成员时,要在静态数据成员名前加类名和作用域运算符D) 静态数据成员不是所有对象所共用的(分数:2.00)A.B.C.D.25.以下程序的执行结果是( )。#include iostream.hint a8= 1,2,3,4,5,6,7;void fun(int *pa,int n);void main( )int m=8;fun(a,m);couta7end1;void fun(int *pa,int n)for (int

    12、I=0;In-1 ;I+)*(pa+7)+= *(pa+I);A) 0 B) 1 C) 4 D) 28(分数:2.00)A.B.C.D.26.以下程序段是函数返回 a 所指数组中最大的值所在的下标值,横线处的语句为( )。fun(int*a,int n)int i,j=0,k;k=j;for(i=j ;in;i+)if(aiak)remm (k);A) k=i B) k=-i C) i=i D) i=n(分数:2.00)A.B.C.D.27.在 C+程序中,如果要求通过函数来实现一种简单的功能,并且要求尽可能加快程序执行速度,则应该选用( )。A) 内联函数 B) 重载函数C) 递归调用 D)

    13、 嵌套调用(分数:2.00)A.B.C.D.28.有如下类声明:class MyBASEint k;public:void set(int n) k=n;int get()const return k; ;class MyDERIVED:protected MyBASEprotected:intj;public:void set(int m,int n)MyBASE:set(m);j=n;int get0const return MyBASE:get()+j;则类 MyDERIVED 中保护的数据成员和成员函数的个数是( )。A) 4 B) 3 C) 2 D) 1(分数:2.00)A.B.C.

    14、D.29.下列关于继承的描述中,错误的是( )。A) 析构函数不能被继承B) 派生类是基类的组合C) 派生类的成员除了它自己的成员外,还包含了它的基类的成员D) 派生类中继承的基类成员的访问权限到派生类保持不变(分数:2.00)A.B.C.D.30.类的析构函数的作用是( )。A) 一般成员函数B) 类的初始化C) 对象的初始化D) 释放由对象所占用的资源(分数:2.00)A.B.C.D.31.如果表达式 y*x+中,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为( )。A) x.operator+(0).operator*(y)

    15、B) operator*(x.operator+(0),y)C) y.operator*(operator+(x,0)D) operator*(operator+(x,0),y)(分数:2.00)A.B.C.D.32.有如下程序:#includeiostreamusing namespace std;class XXprotected:int k;public:XX(int n=5):k(n) ;xx()cout“XX“;virtual void f()const=0;inline void XX:f()constcoutk+3;class YY:public XXpublic:YY()cou

    16、t“YY“;void f()constcoutk-3;XX:f();int main()XX P.f();delete return 0;执行上面的程序将输出( )。A) 28XX B) 28YYXXC) 33XX D) -33XXYY(分数:2.00)A.B.C.D.33.有如下函数模板:templatetypename T, typename UT cast(U u) retumu;其功能是将 u 类型数据转换为 T 类型数据。已知 i 为 int 型变量,下列对模板函数 cast 的调用中正确的是( )。A) cast(i); B) cast(i);C) castchar*,int(i)

    17、; D) castdouble,int(i);(分数:2.00)A.B.C.D.34.阅读下面的程序:#includeiostream.hvoid main()int x;cinx;if(x+5)coutxend1;elsecoutx-end1;如果两次执行上述程序,且键盘输入分别为 4 和 6,则输出结果分别是( )。A) 4,6 B) 3,6 C) 4,7 D) 5,7(分数:2.00)A.B.C.D.35.按照标识符的要求,下列选项中,( )符号不能组成标识符。A) 连接符 B) 下划线C) 大小写字母 D) 数字字符(分数:2.00)A.B.C.D.36.已知枚举类型定义语句为:enu

    18、m TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10;则下列叙述中错误的是( )。A) 枚举常量 NAME 的值为 1B) 枚举常量 NUMBER 的值为 1C) 枚举常量 MINUS 的值为 6D) 枚举常量 PRINT 的值为 10(分数:2.00)A.B.C.D.37.类 MyClass 的定义如下:class MyClasspublic:MyClass() value=0;SetVariable(int i) value=i; private:int value;则对下列语句序列正确的描述是( )。MyClass*P, my;p=A) 语句 p=x=y;y=

    19、t;int main()int a2= 23,42;fun(a1,a0);std:couta0“,“a1std:end1;return 0;A) 42, 42 B) 23, 23C) 23, 42 D) 42, 23(分数:2.00)A.B.C.D.40.有如下程序:#includeiostreamusing namespace std;class Apublic:static int a;void init() a= 1; A(int a=2) init(); a+; ;int A:a=0;A obj;int main()coutobj.a;return 0;A) 0 B) 1 C) 2 D

    20、) 3(分数:2.00)A.B.C.D.C+语言笔试-2 答案解析(总分:80.00,做题时间:90 分钟)一、单项选择题(总题数:40,分数:80.00)1.在结构化方法中,用数据流程图(DFD) 作为描述工具的软件开发阶段是( )。A) 逻辑设计 B) 需求分析C) 详细设计 D) 物理设计(分数:2.00)A.B. C.D.解析:解析 软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段。其中需求分析阶段常用的工具是数据流图和数据字典。2.对序线性表(23,29,34,55,60,70,78)用二分法查找值为 60 的元素时,需要比较次数为( )。A) 1 B) 2 C) 3

    21、 D) 4(分数:2.00)A.B.C. D.解析:解析 根据二分法查找法需要两次:首先将 60 与表中间的元素 55 进行比较,由于 60 大于55,所以在线性表的后半部分查找。第二次比较的元素是后半部分的中间元素,将 60 与表中间的元素70 进行比较,由于 60 小于 70,所以在线性表的前半部分查找。第三次比较的元素是前半部分的中间元素,即 60,这时两者相等,即查找成功。3.下列描述中,正确的是( )。A) 线性链表是线性表的链式存储结构B) 栈与队列是非线性结构C) 双向链表是非线性结构D) 只有根结点的二叉树是线性结构(分数:2.00)A. B.C.D.解析:解析 根据数据结构中

    22、各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件:有且只有一个根结点;每个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,又称线性表。所以线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。4.开发大型软件时,产生困难的根本原因是( )。A) 大型系统的复杂性 B) 人员知识不足C) 客观世界千变万化 D) 时间紧、任务重(分数:2.00)A. B.C.D.解析:解析 随着计算机软件规模的扩大,软件本身的复杂性不断增加,研制周期显著变长,正确性难以保证,软件开发费用上涨,生产效率急剧下降,从而出

    23、现了人们难以控制软件发展的局面,即所谓的“软件危机”。5.两个或两个以上的模块之间关联的紧密程度称为( )。A) 耦合度 B) 内聚度C) 复杂度 D) 连接度(分数:2.00)A. B.C.D.解析:解析 耦合度是模块间互相连接的紧密程度的度量;内聚度是一个模块内部各个元素间彼此结合的紧密程度的度量。6.下列关于线性表的叙述中,不正确的是( )。A) 线性表可以是空表B) 线性表是一种线性结构C) 线性表的所有结点有且仅有一个前件和后件D) 线性表是由 n 个元素组成的一个有限序列(分数:2.00)A.B.C. D.解析:解析 线性表是一种线性结构,由 n(n0)个元素组成,所以线性表可以是

    24、空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件,所以选项 C)是错误的。7.设有如下关系表:(分数:2.00)A.B.C. D.解析:解析 T 就是关系 R 中有的,同时 S 中也有的有序组(4、5、6),即交运算(n)。8.以下描述中,不是线性表顺序存储结构特征的是( )。A) 可随机访问B) 需要连续的存储空间C) 不便于插入和删除D) 逻辑相邻的数据物理位置上不相邻(分数:2.00)A.B.C.D. 解析:解析 线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置上也相邻。数据元素之间逻辑上的先后关系自动隐含

    25、在物理位置的相邻元素之中,因此不需要另外开辟空间来保存元素之间的关系。9.在三级模式之间引入两层映像,其主要功能之一是( )。A) 使数据与程序具有较高的独立性B) 使系统具有较高的通道能力C) 保持数据与程序的一致性D) 提高存储空间的利用率(分数:2.00)A. B.C.D.解析:解析 数据库管理系统在数据库的三级模式之间提供了两层映像,保证了数据库中数据的较高的逻辑独立性和物理独立性。10.下列方法中,属于白盒法设计测试用例的方法的是( )。A) 错误推测 B) 因果图C) 基本路径测试 D) 边界值分析(分数:2.00)A.B.C. D.解析:解析 白盒测试方法也称为结构测试或逻辑测试

    26、,主要方法有逻辑覆盖测试、基本路径测试等。11.关于虚函数,以下说法正确的是( )。A) 若在重定义虚函数时使用了 virtual,则该重定义函数还是虚函数B) 虚函数不能声明为友元C) 子类必须重定义父类的虚函数D) 虚函数不能是 static 的(分数:2.00)A.B.C.D. 解析:解析 在 C+中,虚函数可以是友元函数,但不能是静态成员。虚函数的重定义函数,无论是否使用 virtual 关键字,仍然是虚函数。所以答案选择 D)。12.下列关于纯虚函数与抽象类的描述中,错误的是( )。A) 纯虚函数是一种特殊的虚函数,它没有具体的实现B) 抽象类是指具有纯虚函数的类C) 一个基类中说明

    27、具有纯虚函数,该基类的派生类一定不再是抽象类D) 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出(分数:2.00)A.B.C. D.解析:解析 纯虚函数是在声明虚函数时被“初始化”为 0 的虚函数。不定义对象而只作为一种基本类型用作继承的类,称为抽象类。凡是包含纯虚函数的类都是抽象类。抽象类的作用是作为一个类族的共同基类。13.将 x+y*z 中的“+”用成员函数重载,“*”用友元函数重载应写为( )。A) operator+(operator* (y,z)B) x.operator+(operator* (y,z)C) x.operator+(x*(y,z)D) x +(operat

    28、or*(y,z)(分数:2.00)A.B. C.D.解析:解析 在定义了重载运算符后的函数后,函数 operator+重载了运算符“+”。如果在类以外的其他地方定义了一个函数,在类体中用 friend 对该函数进行声明,此函数就称为本类的友员函数。“*”用友元函数重载就是运算符函数不作为成员函数,而把它放在类外,“*”被改写为“operator*”。“+”为成员函数重载,x.operator+。所以 x+y*z 被改写为“x.operator+(operator*(y、z)”。14.以下程序的执行结果是( )。#includeiostream.h#includeiomanip.hvoid fu

    29、n(int n)if(n!=0)fun(n-1);for(int i=1 ;i=n;i+)coutsetw(3)i;coutend1;void main()fun(3);(分数:2.00)A.B. C.D.解析:解析 首先由程序中的主函数 main 入手,调用 fun 函数,参数为 3。fun(n)函数在其内部,当 n不等于 0 时,递归调用 fun(n-1)。当参数为 3 时,fun(3)调用 fun(2),然后利用 for 循环输出 i 值,当 n=1 时,只输出 1,输出回车后,就跳入 fun(2),输出 1,2,最后输出是 1,2,3。15.有以下程序不,在横线处应添加( )。#inc

    30、ludeiostreamusing namespace std;class TestClasspublic:TestClass (int n) number=n;_/拷贝构成函数TestClass () private:int number;TestClass fun(TestClass p)TestClass temp(p);return temp;int main()TestClass obj1(10),obj2(0);TestClass obj3(obj1);obj2=fun(obj3);return 0;A) TestClass (TestClass B) TestClass (Tes

    31、tClass other)number=other.number;C) TestClass (TestClass D) TestClass ((分数:2.00)A. B.C.D.解析:解析 拷贝构造函数也是构造函数,但它只有一个参数,这个参数是本类的对象,即 other,所以赋值操作将本类的参数 other.number 赋值给 number;而且采用对象的引用的形式,也就是x=xay=x|yz=!(x!=y)|(y=z);则 x=false, y=false, z= ( )。A) true B) falseC) 不确定 D) 异常(分数:2.00)A. B.C.D.解析:解析 其中“x=x”

    32、语句计算后 x=false,“y=x|y”语句计算后 y=false。那么“z=!(x!=y)|(y=z);”语句计算后“Z=!(ture)|true”,所以答案为:true。17.如果表达式-x/y 中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为( )。A) operator/(x.operato-(),y);B) operator/(operator-(x),y);C) x.operator-().operator/(y);D) y.operator/(operator-(x);(分数:2.00)A.B. C.D.解析:解析 运算符重载实际上时函数

    33、的重载。重载运算符的一般格式:函数类型 operator 运算符名称(参数表)。重载运算符之后:函数 operator+重载运算符“+”。“-”重载为“operator-;”,“/”重载为“operator/”。另外重载不能改变运算的优先级,-x/y 计算-x 后,除以 y,所以表达式改写为:operator/(operator-(x),y);。18.将以下程序写成三目运算表达式是( )。if(xy)min=x;else min=y;A) min=(xy)?x:y B) min=(xy)?x:yC) min=(xy) x:y D) min=(xy)?x,y(分数:2.00)A.B. C.D.解

    34、析:解析 题目中给出的程序是求 x,y 中的小值。即如果 x 小于 y,那么 min=x,否则 min=y。条件运算符为“?:”,(xy)?x:y 是当 x 小于 y 时取 x,否则取 y。19.定义如下枚举类型:enum Monday,Tuesday, Wednesday,Thrusday, Friday=2;,则下列语句正确的是( )。A) 表达式 Wednesday=Friday 的值是 trueB) Day day;day=3C) Day day;day=Monday+3D) Day day;day=Tuesday+10(分数:2.00)A. B.C.D.解析:解析 enum枚举类型名

    35、枚举元素表淇中:关键词 enum 表示定义的是枚举类型,枚举类型名由标识符组成,而枚举元素表由枚举元素或枚举常量组成。其中enumMonday,Tuesday,Wednesday,Thrusday,Friday=2的值由 0 开始,即 0,1,2,3。D 中的本题中的枚举类型中的数据值 Wednesday 为 2,而 Friday 的值赋值为 2,所以判断 Wednesday 等于 Friday 的表达式值为真,即 true。即选择 A)。20.函数 swap(a,n)可完成对 a 数组从第 1 个元素到第 n 个元素两两交换。其中 b0=1;b1=2;swap(b,2)。在运行调用函数中的语

    36、句后,b0和 b1的值分别为( )。A) 1,1 B) 1,2 C) 2,2 D) 2,1(分数:2.00)A.B.C.D. 解析:解析 如果函数实参是数组名,形参也应为数组名,函数 swap 中形参进行了交换,实际上也是实参进行了交换。而且数组名代表数组首元素的地址,并不代表数组的全部元素。所以,swap(b,2)是数组b 第一个元素与第二个元素进行交换,即 b0与 b1,根据题干,知道答案为 2,1。21.下列 for 循环的循环体执行次数为( )。for(int i(0),j(10);i=j=4;i+,j-)A) 0 B) 1 C) 4 D) 无限(分数:2.00)A.B.C.D. 解析

    37、:解析 循环条件 i=j=4;是个赋值语句,使得 i,j 的值非 0,所以是死循环。22.下述关于开关语句的描述中,正确的是( )。A) 开关语句中 default 子句可以没有,也可以有一个B) 开关语句中每个语句序列中必须有 break 语句C) 开关语句中 default 子句只能放在最后D) 开关语句中 case 子句后面的表达式可以是整型表达式(分数:2.00)A. B.C.D.解析:解析 在 switch 语句中 default 的位置不是固定在最后的位置,同时 default 也是可以省略。23.下列存储类标识符中,可见性与存在性不一致的是( )。A) 外部类 B) 自动类C)

    38、内部静态类 D) 寄存器类(分数:2.00)A.B.C. D.解析:解析 可见性是函数内部,存在整个程序中,第二次调用值不变。24.下述静态数据成员的特征中,错误的是( )。A) 说明静态数据成员时前面要加修饰符 staticB) 静态数据成员要在类体外进行初始化C) 引用静态数据成员时,要在静态数据成员名前加类名和作用域运算符D) 静态数据成员不是所有对象所共用的(分数:2.00)A.B.C.D. 解析:解析 静态数据成员是在类装载的时候就分配了内存空间,而类的成员变量是在生成对象时分配内存空间。所以只要类装载了,就可以用类名访问静态数据成员。事实上,该类的所有对象都只保存类静态数据成员的引

    39、用,它们都指向同一块内存区域。25.以下程序的执行结果是( )。#include iostream.hint a8= 1,2,3,4,5,6,7;void fun(int *pa,int n);void main( )int m=8;fun(a,m);couta7end1;void fun(int *pa,int n)for (int I=0;In-1 ;I+)*(pa+7)+= *(pa+I);A) 0 B) 1 C) 4 D) 28(分数:2.00)A.B.C.D. 解析:解析 void fun(int*pa,int n)函数定义的功能就是把数组的每个元素的值加到元素 pa7中,也就是数组

    40、的元素之和放在 a7中存储,所以结果 28。26.以下程序段是函数返回 a 所指数组中最大的值所在的下标值,横线处的语句为( )。fun(int*a,int n)int i,j=0,k;k=j;for(i=j ;in;i+)if(aiak)remm (k);A) k=i B) k=-i C) i=i D) i=n(分数:2.00)A. B.C.D.解析:解析 函数 fun 中首先定义整型变量 k 用来存放返回最大值的下标,并将其首先指向第一个元素,即 k=j。然后在 for 循环中依次将当前元素 ai与标识为最大值的元素进行比较,如果当前元素大于这个标识元素,那么将最大值标识为当前元素,即 k

    41、=i。27.在 C+程序中,如果要求通过函数来实现一种简单的功能,并且要求尽可能加快程序执行速度,则应该选用( )。A) 内联函数 B) 重载函数C) 递归调用 D) 嵌套调用(分数:2.00)A. B.C.D.解析:解析 此题考查的是内联函数的相关知识点。C+引入内联函数是用它来代替 C 语言中的预处理宏函数,内联函数在调用时,是将表达式用内联函数体来替换,这样会加快程序的执行速度。28.有如下类声明:class MyBASEint k;public:void set(int n) k=n;int get()const return k; ;class MyDERIVED:protected

    42、 MyBASEprotected:intj;public:void set(int m,int n)MyBASE:set(m);j=n;int get0const return MyBASE:get()+j;则类 MyDERIVED 中保护的数据成员和成员函数的个数是( )。A) 4 B) 3 C) 2 D) 1(分数:2.00)A.B. C.D.解析:解析 因为在保护继承的情况下,基类中的公有成员 void set(int n)和 int get()const 在派生类中是保护成员,再加上派生类自身的保护成员 i,一共是三个保护成员。29.下列关于继承的描述中,错误的是( )。A) 析构函数

    43、不能被继承B) 派生类是基类的组合C) 派生类的成员除了它自己的成员外,还包含了它的基类的成员D) 派生类中继承的基类成员的访问权限到派生类保持不变(分数:2.00)A.B.C.D. 解析:解析 派生类中继承的基类成员的访问权限到派生类会发生变化,例如:私有继承时,派生类不能访问基类的成员,所以选项 D)错误,其他选项均正确。30.类的析构函数的作用是( )。A) 一般成员函数B) 类的初始化C) 对象的初始化D) 释放由对象所占用的资源(分数:2.00)A.B.C.D. 解析:解析 类的在撤销对象时,系统会自动调用类的析构函数,析构函数用来释放由对象所占用的资源。31.如果表达式 y*x+中

    44、,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为( )。A) x.operator+(0).operator*(y)B) operator*(x.operator+(0),y)C) y.operator*(operator+(x,0)D) operator*(operator+(x,0),y)(分数:2.00)A.B.C. D.解析:解析 运算符函数有两种调用形式,第一种是像一般函数那样用函数名调用 即 y.operator*(z)或者 operator*(y,z);另一种是通过运算符构成表达式,即 y*z。因为“+”运算符既可以

    45、作为前缀运算符,又可以作为后缀运算符,所以重载这个运算符时,重载后缀“+”时必须多一个虚拟参数:int。32.有如下程序:#includeiostreamusing namespace std;class XXprotected:int k;public:XX(int n=5):k(n) ;xx()cout“XX“;virtual void f()const=0;inline void XX:f()constcoutk+3;class YY:public XXpublic:YY()cout“YY“;void f()constcoutk-3;XX:f();int main()XX P.f();d

    46、elete return 0;执行上面的程序将输出( )。A) 28XX B) 28YYXXC) 33XX D) -33XXYY(分数:2.00)A. B.C.D.解析:解析 类 YY 公有派生于类 XX,派生类对象可以替代基类对象向基类对象的引用进行赋值初始化,XX其功能是将 u 类型数据转换为 T 类型数据。已知 i 为 int 型变量,下列对模板函数 cast 的调用中正确的是( )。A) cast(i); B) cast(i);C) castchar*,int(i); D) castdouble,int(i);(分数:2.00)A.B.C.D. 解析:解析 选项 D)是将 double

    47、 类型的数据转化成 int 类型的数据,正确。34.阅读下面的程序:#includeiostream.hvoid main()int x;cinx;if(x+5)coutxend1;elsecoutx-end1;如果两次执行上述程序,且键盘输入分别为 4 和 6,则输出结果分别是( )。A) 4,6 B) 3,6 C) 4,7 D) 5,7(分数:2.00)A.B.C.D. 解析:解析 此题首先读入数值 4 赋给变量 x,因为 x+5 不成立,因为“+”后缀,之后 x 的值变为5,执行语句 coutX-end1;输出:5,之后 x 的值变为 4。当读入的数值是 6 时,因为 x+5 成立,所以

    48、执行语句 coutxend1;输出 7。35.按照标识符的要求,下列选项中,( )符号不能组成标识符。A) 连接符 B) 下划线C) 大小写字母 D) 数字字符(分数:2.00)A. B.C.D.解析:解析 此题考查的是标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过 31 个字符;标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。36.已知枚举类型定义语句为:enum TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10;则下列叙述中错误的是( )。A) 枚举常量 NAME 的值为 1B) 枚举常量 NUMBER 的值为 1C) 枚举常量 MINUS 的值为 6D) 枚举常量 PRINT 的值为 10(分数:2.00)A. B.C.D.解析:解析 此题考查的是枚举类型的声明。声明枚举类型的语法形式为:enum 类型名枚举值表。需注意的是:当 n 个枚举值全部未赋常量值时,它们自


    注意事项

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




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

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

    收起
    展开