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

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

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

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

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

    1、二级 C+笔试 16及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.算法的空间复杂度是指(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间2.有以下程序: #includeiostream using namespace std; class R public: R(int r1,int r2) R1=rl; R2=r2; void print(); void print()const; private: int R1,R2; ; void R:print() co

    2、utR1“,“R2end1; void R:print() const cotR1“,“R2end1; int main() Ra(5,4); const R b(20,52); b.print(); return 0; 执行后的输出结果是(分数:2.00)A.5,4B.20,52C.0,0D.4,53.函数定义为 Fun(int static void add() s+=n; ; int sample:s=0; int main() sample a(2),b(5); sample:add(); coutSend1; return 0; 程序运行后的输出结果是(分数:2.00)A.2B.5C

    3、.7D.35.在软件生存周期小,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(分数:2.00)A.概要设计B.详细设计C.可行性分析D.需求分析6.定义如下枚举类型:enumMonday,Tuesday,Wednesday,Thrusday,Friday=2:则下列语句正确的是(分数:2.00)A.表达式 Wednesday=Friday的值是 trueB.Day day;day=3;C.Day day;day=Monday+3;D.Day day;day=Tuesday+10;7.在深度为 5的满二叉树中,叶子结点的个数为(分数:2.00)A.31B.32C.16D.158.关于

    4、类和对象描述错误的是(分数:2.00)A.对象(Obiec 是现实世界中的客观事物,对象具有确定的属性B.类是具有相同属性和行为的一组对象的集合C.对象是类的抽象,类是对象的实例D.类是对象的抽象,对象是类的实例9.以下选项中合法的用户标识符是(分数:2.00)A.longB._2TestC.3DmaxD.dat10.下列关于队列的叙述中正确的是(分数:2.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表11.下列对字符数组进行初始化的语句正确的是(分数:2.00)A.chara=“Hello“;B.chara=H,e,l,l,o;C.

    5、char a5=“Hello“;D.chara25=“Hello“,“World“:12.对于语句 cinx 中的各个组成部分,下列叙述中错误的是(分数:2.00)A.“cin”是一个输出流对象B.“;”的作用是表示语句结束C.“x”是一个变量D.“”称作提取运算符13.下列叙述中正确的是(分数:2.00)A.在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节C.在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法14.在关系数据库中,

    6、用来表示实体之间联系的是(分数:2.00)A.树结构B.网结构C.线性表D.二维表15.下列关于构造函数的描述中,错误的是( )。(分数:2.00)A.构造函数可以设置默认参数B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数D.构造函数不可以重载16.将 E-R图转换到关系模式时,实体与联系都可以表示成(分数:2.00)A.属性B.关系C.键D.域17.若有以下程序 #include iostream using namespace std; class A public: A(int i,int j) a=i; b=j; void move(int x,int y) a+=x;

    7、b+=y; void show() couta“,“bend1; private int a,b; ; class B: private A public: B(int i,int j):A(i,j) void fun() move(3,5); void fl() A:show(); int main() B d(3,4); d. fun(); d.fl(); return 0; 程序执行后的输出结果是(分数:2.00)A.3,4B.6,8C.6,9D.4,318.若有以下程序 #include iostream using namespace std; class A private: in

    8、t a; public: A(int i) a=i; void disp() couta“,“; ; class B private: int b; public: B(int j) b=j; void disp() coutb“,“; ; class C: public B,public A private: int c; public: C(int k):A(k-2),B(k+2) c=k; void disp() A:disp(); B:disp(); coutcend1; ; int main() C obj(10); obj.disp(); return 0; 程序执行后的输出结果是

    9、(分数:2.00)A.10,10,10B.10,12,14C.8,10,12D.8,12,1019.软件需求分析阶段的工作,可以分为四个方面:需求获取,需求分析,编写需求规格说明书,以及(分数:2.00)A.阶段性报告B.需求评审C.总结D.都不正确20.若有以下程序: #include iostream using namespace std; #define PI 3.14 class Point private: int x,y; public: Point(int a,int B) x=a; y=b; int getx() return x; int gety() reurn y; ;

    10、 class Circle: public Point private: int r; public: Circle(int a,int b.int C) :Point(a,B) r=c; int getr() return r; double area() return PI*r*r; ; int main() Circle cl(5,7,10); coutc 1 .area()end1; return 0; 程序执行后的输出结果是(分数:2.00)A.314B.157C.78.5D.153.8621.语句 ofstream f(“DATA.DAT“,ios_base:app|ios_bas

    11、e:binary);的功能是建立流对象 f,并试图打开文件 DATADAT 并与之连接,而且(分数:2.00)A.若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件B.若文件存在,将其截为空文件,若文件不存在,打开失败C.若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件22.若执行语句:coutsetfill(*)setw(10)setfill(#)left123“OK“end1 后将输出(分数:2.00)A.123*OKB.123#OKC.123*OK*D.123#OK#23.下列叙述中正确的是(分数:2.0

    12、0)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对24.若有以下程序: #includeiostream using namespace std; class sample private: int n; public: sample() sample(int m) n=m; void addvalue(int m) sample s; s.n=n+m; *this=s; void disp() cout“n“=nend1; ; int main() sample s(10); s.addvalu

    13、e(5); s.disp(); return 0; 程序运行后的输出结果是(分数:2.00)A.n=10B.n=5C.n=15D.n=2025.下面关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型26.在面向对象的程序设计中,下列叙述中错误的是(分数:2.00)A.任何一个对象构成一个独立的模块B.一个对象不是独立存在的实体,各个对象之间有关联,相互依赖C.下一层次的对象可以继承上一层次对象的某些属性D.上述三种说法都正确27.

    14、下面有关重载函数的描述中正确的是(分数:2.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须具有不同的形参列表D.重载函数名可以不同28.下面类的定义,有( )处错误。 class MyClass public: void MyClass(); MyClass(int Value);private: int i=0; ;(分数:2.00)A.1B.2C.3D.429.在 C+语言中函数返回值的类型是由( )决定的。(分数:2.00)A.调用该函数时系统临时B.return语句中的表达式类型C.定义该函数时所指定的函数类型D.调用该函数时的主调函数类型30.

    15、下列对模板的声明中正确的是(分数:2.00)A.templateTB.templateclass T1,T2C.templateclassT1,classT2D.templateclassT1;classT231.有如下函数模板的定义: templateclass T T func(T x,T y)return x*x+y*y; 在下列对func的调用中不正确的是(分数:2.00)A.func(3,5);B.func(3,5);C.func(3,5.5);D.funcint(3,55);32.重载输入流运算符必须使用的原型为(分数:2.00)A.ostream 则上述定义中非法的表达式是(分数

    16、:2.00)A.k=i*jB.int k;C.retum i;D.void make()35.如果表达式-x/y 中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为(分数:2.00)A.operator/(operator-(),;B.operator/(operator-(,;C.operator-().operator/(;D.operator/(operator-();二、B填空题/B(总题数:15,分数:30.00)36.设一棵完全二叉树共有 700个结点,则在该二叉树中有U 【1】 /U个叶子结点。(分数:2.00)填空项 1:_37.在面向对象

    17、方法中,类之间共享属性和操作的机制称为U 【2】 /U。(分数:2.00)填空项 1:_38.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为U 【3】 /U。(分数:2.00)填空项 1:_39.在数据库的概念结构设计中,常用的描述工具是U 【4】 /U。(分数:2.00)填空项 1:_40.数据库系统中实现各种数据管理功能的核心软件称为U 【5】 /U。(分数:2.00)填空项 1:_41.求 1100 的和,可写成 for(s=0,i=1;U 【6】 /U;i+) s+=i;的形式。(分数:2.00)填空项 1:_42.假定用户没有给一个名为 MyClass的类定义析构

    18、函数,则系统为其定义的默认析构函数首部形式为U【7】 /U。(分数:2.00)填空项 1:_43.下面程序的输出结果是U 【8】 /U。 #includeiostream using namespace std; int x; void funA(int coutcount:test()end1; return 0; (分数:2.00)填空项 1:_45.以下程序运行后的输出结果是U 【10】 /U #include iostream #include string using namespace std; class Y; class X int x; char *strx; public:

    19、 x(int a,char *str) x=a; strx=new charstrlen(str)+1; strcpy(strx,str); void show(Y ; class Y private: int y; char *stry; public: Y(int b,char *str) y=b; stry=new charstrlen(str)+1; strcpy(stry, str); friend void X:show(Y ; void X:show(Y class Derived1:virtual public Base public: Derived1() x=10; ; c

    20、lass Derived2:virtual public Base public: Derived2() x=20; ; class Derived:public Derived1, protected Derived2 ; int main() Derived obj; coutobj.xend1; return 0; 该程序运行后的输出结果是U 【14】 /U。(分数:2.00)填空项 1:_50.下面是复数类 complex的定义,其中作为友元函数重载的运算符“-”的功能是将参数对象的实部减1,然后返回对该对象的引用:请补充完整。 class complex private: int r

    21、eal; int imag; public: complex(int r=0,int i=0):real(r),imag(i) void show() coutreal(imag0?“-“:“+“)imagi; U 【15】 /U; ; complex static void add() s+=n; ; int sample:s=0; int main() sample a(2),b(5); sample:add(); coutSend1; return 0; 程序运行后的输出结果是(分数:2.00)A.2B.5 C.7D.3解析:解析 本题考核静态数据成员和静态成员函数的应用。程序中定义一个

    22、类 sample,它包括一个静态数据成员 n和一个静态成员函数 add,并在类的构造函数中给类私有静态数据成员 n赋值。在主函数main中,定义对象 a(2)时,通过构造函数使静态数据成员 n的值变为 2,在定义对象 b(5)时,通过构造函数使静态数据成员 n=5(覆盖了前面的 n=2),再执行 sample:add()使全局变量 s=5。5.在软件生存周期小,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(分数:2.00)A.概要设计B.详细设计C.可行性分析D.需求分析 解析:解析 在需求分析阶段中,根据可行性研究阶段所提交的文档,特别是从数据流图出发,对目标系统提出清晰、准确和

    23、具体的要求,即要明确系统必须做什么的问题。本题的正确答案为 D。6.定义如下枚举类型:enumMonday,Tuesday,Wednesday,Thrusday,Friday=2:则下列语句正确的是(分数:2.00)A.表达式 Wednesday=Friday的值是 true B.Day day;day=3;C.Day day;day=Monday+3;D.Day day;day=Tuesday+10;解析:解析 本题考查枚举类型的定义和使用。枚举类型定义了一些整型符号常量的集合,使用枚举类型时应该注意以下几点:枚举类型的第一个常量默认值是 0:枚举类型常量的值允许彼此相同:虽然枚举类型常量是

    24、整数类型,但是不允许使用整数直接赋值给枚举类型变量,也不允许与整数进行运算,只可以与整数进行比较。根据以上知识我们可以得出 B) 、C) 、D) 选项都不正确。7.在深度为 5的满二叉树中,叶子结点的个数为(分数:2.00)A.31B.32C.16 D.15解析:解析 二叉树的一个性质是,在二叉树的第 k层上,最多有 2k-1,(k1)个结点。对于满二叉树,每一层上的结点数都达到最大值,即在满二叉树的第 k层上有 2k-1个结点。所以,在深度为 5的满二叉树中,所有叶子结点在第 5层上,即其结点数为 2 k-1=25-1=16。8.关于类和对象描述错误的是(分数:2.00)A.对象(Obiec

    25、 是现实世界中的客观事物,对象具有确定的属性B.类是具有相同属性和行为的一组对象的集合C.对象是类的抽象,类是对象的实例 D.类是对象的抽象,对象是类的实例解析:解析 C+中,类是用户自定义的一种数据类型,对象是类的实例,类定义了属于该类的所有对象的共同特性。一个类作为一种数据类型,它可以定义多个对象9.以下选项中合法的用户标识符是(分数:2.00)A.longB._2Test C.3DmaxD.dat解析:解析 有关用户标识符的考题经常在考试中出现,考生应该重视。A) 选项中 long是 C+语言保留字,不能用于用户标识符。C) 选项中的 3Dmax,它的第一个字符是数字 3,不是所规定字母

    26、或下划线,所以也不是合法的用户标识符。D) 选项中的 Adat,它中间出现了符号,不符合标识符的定义规则。所以只有 B) 选项中的标识符是合法的 C+标识符。10.下列关于队列的叙述中正确的是(分数:2.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表 D.队列是先进后出的线性表解析:解析 队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项 A和选项 B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。所以,队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先

    27、服务”的原则,选项 C正确,选项 D错误。11.下列对字符数组进行初始化的语句正确的是(分数:2.00)A.chara=“Hello“; B.chara=H,e,l,l,o;C.char a5=“Hello“;D.chara25=“Hello“,“World“:解析:解析 本题考查对字符数组的初始化。A) 选项中,数组 a在定义后紧跟初始化的情况下可省略数组长度,其最终数组长度由所赋字符串常量的长度给定。A) 选项是正确。 B) 选项中,a 是一个二维数组,二维数组也能在定义时被初始化。如果对全部元素都赋初值,则定义数组时第一维的大小可以忽略,但第二维的大小不能省略。故 B) 选项是错误。 C

    28、) 选项和 D) 选项都忽略了字符串的大小要比字符串中的字符数多 1这一点,造成了数组的越界。12.对于语句 cinx 中的各个组成部分,下列叙述中错误的是(分数:2.00)A.“cin”是一个输出流对象 B.“;”的作用是表示语句结束C.“x”是一个变量D.“”称作提取运算符解析:解析 本题考核 C+的输出流。cin 是一个输入流对象,所以 A选项的叙述是错误的。13.下列叙述中正确的是(分数:2.00)A.在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息B.在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节C.在模块化程序设计中,一个模块内部的控制结构也要符合结

    29、构化原则 D.在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法解析:解析 选项 A错误,在模块化设计中,要求将一个大程序按人们能理解的大小规模进行分解,使每个模块都能易于理解,各模块的功能尽量单一,各模块之间的联系尽量的少。 选项 B错误,自顶向下、逐步细化的设计过程,主要包括两个方面:将复杂问题的解法分解和细化成由若干模块组成的层次结构;将一个模块的功能逐步分解细化为一系列的处理步骤,直到某种程序设计语言的语句或某种机器指令。即在自顶向下、逐步细化的设计过程中,是按照先全局后局部、先整体后细节、先抽象后具体的方法设计程序。 选项 D错误,由于在模块化程序设计中,一个模块内

    30、部的控制结构也要符合结构化原则,所以,在程序设计过程中,结构化程序设计方法与模块化程序设计方法是要同时采用的。 选项 C为正确答案。14.在关系数据库中,用来表示实体之间联系的是(分数:2.00)A.树结构B.网结构C.线性表D.二维表 解析:解析 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。即关系模型是用表格数据来表示实体本身及其相互之间的联系。本题的正确答案是 D。15.下列关于构造函数的描述中,错误的是( )。(分数:2.00)A.构造函数可以设置默认参数B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数D.构造函数不可以重载 解析:解析 构造函数是类的一个特

    31、殊成员函数,它与类同名,并且没有返回值。C+在创建一个对象时,会自动调用类的构造函数,在构造函数中可以执行初始化成员变量的操作。构造函数可以是内联函数,也可以重载。16.将 E-R图转换到关系模式时,实体与联系都可以表示成(分数:2.00)A.属性B.关系 C.键D.域解析:解析 把概念模型转换成关系数据模型就是把 E-R图转换成一组关系模式,每一个实体型转换为一个关系模式,每个联系分别转换为关系模式。本题的正确答案是 B。17.若有以下程序 #include iostream using namespace std; class A public: A(int i,int j) a=i; b

    32、=j; void move(int x,int y) a+=x; b+=y; void show() couta“,“bend1; private int a,b; ; class B: private A public: B(int i,int j):A(i,j) void fun() move(3,5); void fl() A:show(); int main() B d(3,4); d. fun(); d.fl(); return 0; 程序执行后的输出结果是(分数:2.00)A.3,4B.6,8C.6,9 D.4,3解析:解析 本题考核派生类的应用。本题中,类 B是类 A的私有派生类

    33、,在类 B的成员函数 fun中调用基类 A的成员函数 move,并传入实参 3和 5。在类 B的成员函数 f1 中调用基类 A的成员函数 show,宋显示基类数据成员 a和 b的值。主函数 main中,定义了派生类 B的对象 d,并赋初值 3和 4。然后调用对象 d的成员函数 fun和 f1,通过上述对函数 fun和 n的功能的描述可知,程序最后输出 6和 9。18.若有以下程序 #include iostream using namespace std; class A private: int a; public: A(int i) a=i; void disp() couta“,“; ;

    34、 class B private: int b; public: B(int j) b=j; void disp() coutb“,“; ; class C: public B,public A private: int c; public: C(int k):A(k-2),B(k+2) c=k; void disp() A:disp(); B:disp(); coutcend1; ; int main() C obj(10); obj.disp(); return 0; 程序执行后的输出结果是(分数:2.00)A.10,10,10B.10,12,14C.8,10,12D.8,12,10 解析

    35、:解析 本题考核派生类构造函数的使用。本题中,派生 C具有多重继承关系,所以在派生类 C的构造函数中应该包含基类 A和 B的成员初始化列表。19.软件需求分析阶段的工作,可以分为四个方面:需求获取,需求分析,编写需求规格说明书,以及(分数:2.00)A.阶段性报告B.需求评审 C.总结D.都不正确解析:解析 需求分析阶段的工作,可以概括为以下 4个方面:需求获取、需求分析、编写需求规格说明书和需求评审。本题的正确答案为 B。20.若有以下程序: #include iostream using namespace std; #define PI 3.14 class Point private:

    36、 int x,y; public: Point(int a,int B) x=a; y=b; int getx() return x; int gety() reurn y; ; class Circle: public Point private: int r; public: Circle(int a,int b.int C) :Point(a,B) r=c; int getr() return r; double area() return PI*r*r; ; int main() Circle cl(5,7,10); coutc 1 .area()end1; return 0; 程序执

    37、行后的输出结果是(分数:2.00)A.314 B.157C.78.5D.153.86解析:解析 本题考核派生类的定义和应用。本程序设计了一个点类 Point,包含了横、纵两个坐标数据 x和 y,由它派生出了圆类 Circle,并加入了新的数据成员,即一个半径数据 r和一个求圆面积的函数成员 area。 在主函数 main中,首先定义了一个圆 Circle类的对象 c1,并通过它的构造函数初始化其数据成员。由此可知,其半径 r的值为 10,所以其面积为 PI*10*10=314,即对象 c1的函数成员 area的返回值为 314。21.语句 ofstream f(“DATA.DAT“,ios_b

    38、ase:app|ios_base:binary);的功能是建立流对象 f,并试图打开文件 DATADAT 并与之连接,而且(分数:2.00)A.若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件B.若文件存在,将其截为空文件,若文件不存在,打开失败C.若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件解析:解析 本题考核文件 I/O操作。C+中可以在定义文件流对象的同时打开文件,也可以在定义文件流对象以后用 open函数打开文件。可以通过构造函数或 open函数的第 2个参数,确定文件的打开模式。根据以上知识点

    39、可知关于题中语句的描述中,只有 C选项是正确的。22.若执行语句:coutsetfill(*)setw(10)setfill(#)left123“OK“end1 后将输出(分数:2.00)A.123*OKB.123#OK C.123*OK*D.123#OK#解析:解析 本题考核格式控制数据的输入输出。函数 setfill(char C) 用于设置填充字符,在输出数据时,如果数据宽度小于设置的宽度,则空闲位置要用填充字符填满,设置的填充符一直有效,直到再次设置填充字符为止,如题中调用函数 setfill(*)将填充字符设置为*,后又调用函数 setfill(#)将填充字符设置为#。函数 setw

    40、(int n)用于设置输入输出宽度,宽度设置的效果只对一次输入或输出有效,在完成一次数据的输出或输入后,宽度设置自动恢复为 0,如题中语句以宽度 10输出数据“123”后,字符串“OK”的输出宽度就自动恢复为 0了。而且题中输出的对齐方式为在输出宽度内左对齐。所以最终的输出为 123#OK。23.下列叙述中正确的是(分数:2.00)A.程序执行的效率与数据的存储结构密切相关 B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对解析:解析 程序执行的实际计算工作量与不仅与程序的控制结构有一定的关系,还与处理的数据量有关,但还与数据的存储结构密切相

    41、关。所以,选项 A正确,选项 B和 C错误。所以,本题的正确答案为A。24.若有以下程序: #includeiostream using namespace std; class sample private: int n; public: sample() sample(int m) n=m; void addvalue(int m) sample s; s.n=n+m; *this=s; void disp() cout“n“=nend1; ; int main() sample s(10); s.addvalue(5); s.disp(); return 0; 程序运行后的输出结果是(分

    42、数:2.00)A.n=10B.n=5C.n=15 D.n=20解析:解析 本题考核 this指针的应用。上述程序中 sample类定义了一个 addvalue非静态成员函数。addvalue函数的原型是:void addvalue (sample *this,int m);,该函数的第一个参数是执行该类对象的一个指针即 this指针。由于这个参数是系统隐含的,所以我们在定义该成员函数时并没有看到这样一个参数。在成员函数的定义体中,可以通过 this访问这参数。上述程序的最后输出结果是 15。25.下面关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员

    43、函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 解析:解析 本题考核虚函数。虚函数是非静态的成员函数。它不能是友元函数,但可以在另一个类中被声明为友元函数,所以 A) 选项不正确;虚函数必须是类的成员函数,所以 B) 选项是错误的:虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的地方,所以 C) 选项是不正确的:一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。故 D)

    44、选项的说法是正确的。26.在面向对象的程序设计中,下列叙述中错误的是(分数:2.00)A.任何一个对象构成一个独立的模块B.一个对象不是独立存在的实体,各个对象之间有关联,相互依赖 C.下一层次的对象可以继承上一层次对象的某些属性D.上述三种说法都正确解析:解析 在面向对象的程序设计中,一个对象是一个可以独立存在的实体。各个对象之间相对独立,相互依赖性小。所以,选项 B错误,应为所选。27.下面有关重载函数的描述中正确的是(分数:2.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须具有不同的形参列表 D.重载函数名可以不同解析:解析 所谓函数重载,是指同一

    45、个函数名可以对应多个函数的实现。进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。即重载函数不许具有不同的形参列表。28.下面类的定义,有( )处错误。 class MyClass public: void MyClass(); MyClass(int Value);private: int i=0; ;(分数:2.00)A.1B.2C.3 D.4解析:解析 上述类的定义共有 3处错误。第一处:类的成员变量不能在定义时进行初始化:第二处:类的构造函数不能有返回值(包括 void类型);第三处:类的析构函数不能有参数。29.在 C+语言中函数返回值的类型是由( )决定的。(分数:

    46、2.00)A.调用该函数时系统临时B.return语句中的表达式类型C.定义该函数时所指定的函数类型 D.调用该函数时的主调函数类型解析:解析 本题考查对函数定义的掌握程度。函数类型决定了函数返回值的类型。函数值返回类型可以由编译器自动完成类型转换。在函数有返回值的调用中,编译器将 return 后面的表达式的类型强制转换为该函数定义时指定的返回值类型。30.下列对模板的声明中正确的是(分数:2.00)A.templateTB.templateclass T1,T2C.templateclassT1,classT2 D.templateclassT1;classT2解析:解析 本题考核模板的定义。模板定义的类型参数表中包含一个或多个由逗号分隔的类型参数项,每一项由关键字 class后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类型,但可以同一般数据类型一样使用。在使用类模板时,必须将其实例化,即用实际的数据类型代替它。31.有如下函数模板的定义: t


    注意事项

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




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

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

    收起
    展开