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

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

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

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

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

    1、二级 C+笔试-296 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列虚基类的声明中正确的是(分数:2.00)A.class virtual B:public AB.virtual class B:public AC.class B:public A virtualD.class B:virtual public A2.面向对象程序设计将数据和什么放在一起,作为一个相互依存、不可分割的整体来处理?(分数:2.00)A.对数据的操作B.信息C.数据隐藏D.数据抽象3.通过公有派生类的对象,只能访问基类成员中的(分数:2.00)A.公有成

    2、员B.私有成员C.保护成员D.公有成员和保护成员4.设有 a、b、c、d、m、n 均为 int 型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)class baseprivate:char baseName10;public:base()strcpy(baseName,“Base“);virtual char *myName()return baseName;char *className()Return baseName;class Derived: public baseprivate:char derivedName10;public:Derived(

    3、)strcpy(derivedName,“Derived“ );char *myName()return derivedName;char *className()return derivedName;void showPtr(base int main()base bb;Derived dd;showPtr(dd);return 0;运行后的输出结果为(分数:2.00)A.Derived BaseB.Base BaseC.Derived DerivedD.Base Derived8.一棵二叉树中共有 70 个叶子结点与 80 个度为 1 的结点,则该二叉树中的总结点数为(分数:2.00)A.

    4、221B.219C.231D.2299.若有一个 MyClass 类,则执行语句 MyClass a,b(2),*p;后,自动调用该类的构造函数 ( )次。(分数:2.00)A.2B.3C.4D.510.在进行任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是(分数:2.00)A.failB.eofC.badD.good11.在关系模型中,(分数:2.00)A.为了建立一个关系,首先要构造数据的逻辑关系B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项C.一个关系的属性名表称为关系模式D.一个关系可以包括多个二维表12.下列叙

    5、述中错误的是(分数:2.00)A.一种数据的逻辑结构可以有多种存储结构B.数据的存储结构与数据处理的效率无关C.数据的存储结构与数据处理的效率密切相关D.数据的存储结构在计算机中所占的空间不一定是连续的13.下列关于栈的叙述正确的是(分数:2.00)A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出的线性表D.栈是先进后出的线性表14.在下面的 4 个关键字中用来说明虚函数的是(分数:2.00)A.virtualB.publicC.protectedD.private15.下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是(分数:2.00)A.选择B.连接C

    6、.投影D.并16.有以下程序#include iostreamusing namespace std; class sampleprivate:int x;public:sample(int(分数:2.00)A.17.有以下程序:#include iostreamusing namespace std;int main()int x=15;while(x10if(x/3)x+; break;coutxend1;return 0;执行后的输出结果是(分数:2.00)A.15B.16C.17D.1818.在结构化设计方法中生成的结构图(SC)中,带有箭头的连线表示(分数:2.00)A.模块之间的调

    7、用关系B.程序的组成成份C.控制程序的执行顺序D.数据的流向19.下列叙述中正确的是(分数:2.00)A.接口复杂的模块,其耦合程度一定低B.耦合程度弱的模块,其内聚程度一定低C.耦合程度弱的模块,其内聚程度一定高D.上述三种说法都不对20.有以下程序: class Datepublic:Date(int y, int m, int d);year = y;month = m;day = d;Date(int y = 2000)year = y;month = 10;day = 1;Date(Date month = d.month;day = a.day;void print()coutye

    8、ar“.“month“.“dayend1;private:int year, month,day;Date fun(Date d)Date temp;temp = d;return temp;int main()Date date 1 (2000,1,1),date2(0,0,0);Date date3(date 1);date2 = fun(date3);return 0;程序执行时,Date 类的拷贝构造函数被调用的次数是(分数:2.00)A.2B.3C.4D.521.下列关于 E-R 图的描述中正确的是(分数:2.00)A.E-R 图只能表示实体之间的联系B.E-R 图只能表示实体和实体

    9、之间的联系C.E-R 图只能表示实体和属性D.E-R 图能表示实体、属性和实体之间的联系22.考虑下面的函数原型:void f(int a,int b=7,char c=);下面的函数调用中,不合法的是(分数:2.00)A.f(5)B.f(5,8)C.f(6,B.istreamC.istream operator (istream,类名D.类名 operator (istream26.已知类 Myst 有一个只需要一个 double 型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列 Myst x(3.2),y(5.5),z(0.0);z=8.9-y;y=x-6.3; 能够正常运行

    10、,运算符函数 operator应该在类中声明为(分数:2.00)A.friend Myst operator-(Mystint f()static int i = 0;ints= 1;s+=i;i+;return s;int main()int i,a = 0;for(i = 0;i5;i+)a+=f();coutaendl;return 0;程序运行后,输出的结果是(分数:2.00)A.20B.24C.25D.1529.下列模板的声明中,正确是(分数:2.00)A.templateTB.templateclass T1,T2C.templateclass T1,class T2D.templ

    11、ateclass T1 ;class T230.若有以下程序:#include iostreamusing namespace std;class Aprivate:int a;public:A(int i)a=i;void disp()cout a“,“;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)c=k;void disp()A:disp();B:disp();coutcend1

    12、;int main()C obj (10);obj.disp();return 0;程序执行后的输出结果是(分数:2.00)A.10,10,10B.10, 12,14C.8,10,12D.8,12,1031.以下程序的输出结果是#include iostream.hvoid main()int a=0,i;for(i=1 ;i5;i+)switch(i)case 0:case 3: a+=2;case 1:case 2: a+=3;default: a+=5;coutaend1;return;(分数:2.00)A.31B.13C.10D.2032.一个在基类中说明的虚函数,它在该基类中没有定义

    13、,但要求任何派生类都必须定义自己的版本,此虚函数又称为(分数:2.00)A.虚析构函数B.虚构造函数C.纯虚函数D.静态成员函数33.下列对变量的引用中,错误的是(分数:2.00)A.int a; int B.char a; char C.iht a; int p =a;D.float a; float 34.以下程序段共有错误( )处#include iostreamusing namespaces std;class Sampleprivate:int n;public:Sample(int i)n=i;void setvalue(int i)n=i;void display()cout“

    14、n=“nend1;int main()const Sample a(l0);a.setvalue(5);a.display();return 0;(分数:2.00)A.1B.2C.3D.435.下面有关重载函数的说法中正确的是(分数:2.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同二、填空题(总题数:15,分数:30.00)36.在深度为 5 的完全二叉树中,度为 2 的结点数最多为 【1】 。(分数:2.00)填空项 1:_37.在面向对象方法中,允许作用于某个对象上的操作称为 【2】 。(分数:2.00)填空项

    15、 1:_38.软件生命周期包括 8 个阶段。为了使各时期的任务更明确,又可分为 3 个时期:软件定义期、软件开发期、软件维护期。编码和测试属于 【3】 期。(分数:2.00)填空项 1:_39.在关系运算中, 【4】 运算是对两个具有公共属性的关系所进行的运算。(分数:2.00)填空项 1:_40.实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多学生,而一个学生只归属于一个学校,则实体集学校与实体集学生之间的联系属于 【5】 的联系。(分数:2.00)填空项 1:_41.写出执行完下列代码段之后指定变量的值:bool x=true,y=false,z=fal

    16、se;x=xclass Baseint x;public:Base(int i) x=i;Base();class Derived: public Basepublic:_完成类 Derive 构造函数的定义;int main()Derived Obj;return 0;在横线处应填入的语句是 【9】 。(分数:2.00)填空项 1:_45.下列程序的输出结果是 【10】 。#include iostreamusing namespace std;int main()int data=1;int data+=5;r+=5;coutdataend 1;return 0;(分数:2.00)填空项

    17、1:_46.有以下程序#include iostreamusing namespace std;class MyClasspublic:MyClass();MyClass();static int s;void SetValue(int val);int MyClass:s=0;MyClass:MyClass()s+;void MyClass:SetValue(int val)(s=val;int main()MyClass my3,*p;p=my;for(int k=0;k3;k+)p-SetValue(k+l);p+;coutMyClass:send1;return 0;运行后的输出结果是

    18、 【11】 。(分数:2.00)填空项 1:_47.有以下程序:#include iostreamusing namespace std;long fib( int n )if(n2)return ( fib( n-1 )+fib( n-2 ) );elsereturn 2;int main()coutfib(3)end1;return 0;则该程序的输出结果应该是 【12】 。(分数:2.00)填空项 1:_48.已知 int DBL(int n)return n+n;和 long DBL(long n)return n+n)是一个函数模板的两个实例,则该函数模板的定义是 【13】 。(分数

    19、:2.00)填空项 1:_49.有以下程序#include iostreamusing namespace std;class Baseint a;public:Base(int x) a=x;void show()couta; ;class Derived: public Baseint b;public:Derived(int i):Base(i+1),b(i) void show() coutb; ;int main()Base b(5),*pb;Derived d(1);pb=pb-show();return 0;运行后的打印结果是 【14】 。(分数:2.00)填空项 1:_50.有

    20、如下程序:#include iostreamusing namespace std;class AApublic:virtual void f()cout“AA“;class BB: public AApublic:BB()cout“BB“;class CC: public BBpublic:virtual void f()BB:f();cout“CC“;int main()AA aa,*p; BB bb; CC cc;p=P-f();return 0;运行后的输出结果 【15】 。(分数:2.00)填空项 1:_二级 C+笔试-296 答案解析(总分:100.00,做题时间:90 分钟)一、

    21、选择题(总题数:35,分数:70.00)1.下列虚基类的声明中正确的是(分数:2.00)A.class virtual B:public AB.virtual class B:public AC.class B:public A virtualD.class B:virtual public A 解析:解析 本题考核虚基类的声明方式。虚基类说明格式如下:Virtual继承方式基类名其中,virtual 是虚基类的关键词。虚基类的说明是用在定义派生类时,写在派生类名的后面。即:class派生类名:Virtual继承方式基类名。2.面向对象程序设计将数据和什么放在一起,作为一个相互依存、不可分割的

    22、整体来处理?(分数:2.00)A.对数据的操作 B.信息C.数据隐藏D.数据抽象解析:解析 面向对象语言包含 3 个要素,即对象、类和继承。这 3 个要素反映了面向对象的传统观念。面向对象程序设计的本质是把数据和对数据的操作当成一个整体即对象。3.通过公有派生类的对象,只能访问基类成员中的(分数:2.00)A.公有成员 B.私有成员C.保护成员D.公有成员和保护成员解析:解析 本题考核派生类的访问权限。派生类的继承方式有三种:公有继承 public、私有继承private 和保护继承 protected。当公有派生时,派生类成员函数只能访问基类的公有成员和保护成员,但是通过派生类的对象只能访问

    23、基类的公有成员。4.设有 a、b、c、d、m、n 均为 int 型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)class baseprivate:char baseName10;public:base()strcpy(baseName,“Base“);virtual char *myName()return baseName;char *className()Return baseName;class Derived: public baseprivate:char derivedName10;public:Derived()strcpy(derivedN

    24、ame,“Derived“ );char *myName()return derivedName;char *className()return derivedName;void showPtr(base int main()base bb;Derived dd;showPtr(dd);return 0;运行后的输出结果为(分数:2.00)A.Derived Base B.Base BaseC.Derived DerivedD.Base Derived解析:解析 本题考核虚函数的应用。类 Derived 是从基类 Base 公有派生而来的。因此, Derived 是基类 Base 的子类型。m

    25、ain()函数中定义了一个基类对象比和一个派生类对象 dd。从程序中可看出派生类Derived 的对象 dd 交给了处理基类 Base 的对象的函数 showPtr 进行处理。由于在基类中函数 myName 被定义成虚函数。所以在函数 showPtr 中调用的 myName 函数为派生类的成员函数 myName,从而输出Derived。然后输出 className,即基类名称 Base。8.一棵二叉树中共有 70 个叶子结点与 80 个度为 1 的结点,则该二叉树中的总结点数为(分数:2.00)A.221B.219 C.231D.229解析:解析 在任意一棵二叉树中,度为 0 的结点(也就是叶

    26、子结点)总比度为 2 的结点多一个。由于本题中的二叉树有 70 个叶子结点,所以有 69 个度为 2 的结点。该二叉树中总结点数为:度为 2 的结点数+度为 1 的结点数+度为 0 的结点数 =69+80+70=219。9.若有一个 MyClass 类,则执行语句 MyClass a,b(2),*p;后,自动调用该类的构造函数 ( )次。(分数:2.00)A.2 B.3C.4D.5解析:解析 本题考核构造函数的调用。C+在创建一个对象时,会自动调用类的构造函数,在构造函数中可以执行初始化成员变量的操作。语句 MyClassa,b(2),*p;创建了两个对象 a、b 和一个对象指针。在创建 a

    27、和 b 对象时系统会调用类的构造函数。但在创建对象指针 p 时,不调用类的构造函数,因为指针p 本身不定义类对象,而是定义了 p 可以指向一个 MyClass 的对象。10.在进行任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是(分数:2.00)A.failB.eof C.badD.good解析:解析 本题考核 C+流的文件操作。C+中可以用文件流对象的下列成员函数来判别文件流的当前状态。函数 is_open():判定流对象是否与一个打开的文件相联系,若是,返回 true,否则返回 false:函数 good():刚进行的操作成功时返

    28、回 true,否则返回 false。函数 fail():与 good()相反,刚进行的操作失败时返回 true,否则返回 false。函数 bad():如果进行了非法操作返回 true,否则返回 false。函数 eof():进行输入操作时,若到达文件尾返回 true,否则返回 false。其中,eof 函数只能用于输入流操作。11.在关系模型中,(分数:2.00)A.为了建立一个关系,首先要构造数据的逻辑关系B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项C.一个关系的属性名表称为关系模式 D.一个关系可以包括多个二维表解析:解析 在关系模型中,不需要事先构造数据的逻辑关系,只要

    29、将数据按照一定的关系存入计算机,也就是建立关系,选项 A 错误。对于表示关系的二维表,其最基本的要求是,表中元组的每一个分量必须是不可分的数据项,即不允许表中再有表,选项 B 和 D 错误。本题的正确答案是 C。12.下列叙述中错误的是(分数:2.00)A.一种数据的逻辑结构可以有多种存储结构B.数据的存储结构与数据处理的效率无关 C.数据的存储结构与数据处理的效率密切相关D.数据的存储结构在计算机中所占的空间不一定是连续的解析:解析 一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等,选项 A 和选项 D 正确。采用不同的存储结构,其数据处理的效率不同,因此

    30、,在进行数据处理时,选择合适的存储结构是很重要的,选项 C 正确,选项 B 错误,应为所选。13.下列关于栈的叙述正确的是(分数:2.00)A.在栈中只能插入数据B.在栈中只能删除数据C.栈是先进先出的线性表D.栈是先进后出的线性表 解析:解析 栈是一种特殊的线性表,其插入与删除运算都只在线性表的一端进行。在这种线性表的结构中,一端封闭,不允许插入与删除元素;另一端开口,允许插入与删除元素。在栈中不仅能插入数据,也能删除数据,选项 A 与 B 都错。栈是后进先出的线性表,而不是先进先出的线性表,选项 C 的说法错误,选项 D 正确。14.在下面的 4 个关键字中用来说明虚函数的是(分数:2.0

    31、0)A.virtual B.publicC.protectedD.private解析:解析 C+中说明虚函数的方法为:virtual类型说明符函数名(参数表);。其中,被关键词 virtual 说明的函数称为虚函数。15.下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是(分数:2.00)A.选择B.连接 C.投影D.并解析:解析 连接运算是对两个关系进行的运算,其意义是从两个关系的笛卡尔积中选出满足给定属性间一定条件的那些元组。而两个关系的笛卡尔积中的属性个数是两个原关系中的属性个数之和。即两个关系经连接运算后得到的新关系中属性个数多于原来关系中属性个数。正确答案是

    32、 B。16.有以下程序#include iostreamusing namespace std; class sampleprivate:int x;public:sample(int(分数:2.00)A.解析:解析 本题考核友元函数的应用。程序中函数 square 是类 sample 的一个友元函数,它可以直接访问类 sample 的所有成员。它的功能是返回类 sample 的私有数据成员 x 的平方。所以程序的执行结果是:900。注意:友元函数不是类的成员函数,在类外定义时不要加上类名及其作用域运算符 (:)。友元函数的调用与一般函数的调用的方式和原理一致,可以在程序的任何地方调用它。17

    33、.有以下程序:#include iostreamusing namespace std;int main()int x=15;while(x10if(x/3)x+; break;coutxend1;return 0;执行后的输出结果是(分数:2.00)A.15B.16C.17 D.18解析:解析 本题考核选择语句与循环语句的嵌套。由程序可知,当 x=16 时,满足 if 条件表达式,进入 if 分支,执行“x+;break;”,所以最后程序输出 x 的值为 17。18.在结构化设计方法中生成的结构图(SC)中,带有箭头的连线表示(分数:2.00)A.模块之间的调用关系 B.程序的组成成份C.控

    34、制程序的执行顺序D.数据的流向解析:解析 在结构图中,用带有箭头的连线表示模块之间的调用关系。箭头由前一个模块指向后一个模块,表示前一个模块调用后一个模块。本题的正确答案为 A。19.下列叙述中正确的是(分数:2.00)A.接口复杂的模块,其耦合程度一定低B.耦合程度弱的模块,其内聚程度一定低C.耦合程度弱的模块,其内聚程度一定高 D.上述三种说法都不对解析:解析 影响模块之间耦合的主要因素有两个:模块之间的连接形式,模块接口的复杂性。一般来说,接口复杂的模块,其耦合程度要比接口简单的的模块强,所以选项 A 的说法错误;耦合程度弱的模块,其内聚程度一定高,选项 B 错误;选项 C 正确。20.

    35、有以下程序: class Datepublic:Date(int y, int m, int d);year = y;month = m;day = d;Date(int y = 2000)year = y;month = 10;day = 1;Date(Date month = d.month;day = a.day;void print()coutyear“.“month“.“dayend1;private:int year, month,day;Date fun(Date d)Date temp;temp = d;return temp;int main()Date date 1 (20

    36、00,1,1),date2(0,0,0);Date date3(date 1);date2 = fun(date3);return 0;程序执行时,Date 类的拷贝构造函数被调用的次数是(分数:2.00)A.2B.3 C.4D.5解析:解析 本题考核拷贝构造函数。上述程序中,拷贝构造函数一共被调用了 3 次:第一次是在执行语句 Date date3(date1);时,用已经建立的对象 date1 对正在建立的对象 date3 进行初始化;第二次是在调用 fun 函数时,由于是传值调用,因此实参对象 date3 要对形参对象 d 进行初始化;第三次是在执行fun 函数中的返回语句 return

    37、 temp;时,系统用返回初始化一个匿名对象时使用了拷贝构造函数。21.下列关于 E-R 图的描述中正确的是(分数:2.00)A.E-R 图只能表示实体之间的联系B.E-R 图只能表示实体和实体之间的联系C.E-R 图只能表示实体和属性D.E-R 图能表示实体、属性和实体之间的联系 解析:解析 E-R 图中,用 3 种图框分别表示实体、属性和实体之间的联系:矩形框表示实体,框内标明实体名;椭圆状框表示实体的属性,框内标明属性名;菱形框表示实体间的联系,框内标明联系名;实体与其属性之间以无向边连接,菱形框与相关实体之间也用无向边连接,并在无向边旁标明联系的类型。综上所述,用 E-R 图不仅可以简

    38、单明了地描述实体及其相互之间的联系,还可以方便地描述多个实体集之间的联系和一个实体集内部实体之间的联系。选项 A、B、C 的说法都错误,本题的正确答案是 D。22.考虑下面的函数原型:void f(int a,int b=7,char c=);下面的函数调用中,不合法的是(分数:2.00)A.f(5)B.f(5,8)C.f(6, B.istreamC.istream operator (istream,类名D.类名 operator (istream解析:解析 本题考核运算符的重载。C+中重载输入流运算符和输出流运算符只能作为非类成员函数重载,且必须使用如下原形:istreamint f()s

    39、tatic int i = 0;ints= 1;s+=i;i+;return s;int main()int i,a = 0;for(i = 0;i5;i+)a+=f();coutaendl;return 0;程序运行后,输出的结果是(分数:2.00)A.20B.24C.25D.15 解析:解析 本题考核静态局部变量在函数中的使用。静态局部变量就是将局部变量说明为静态的。静态局部变量既有在局部域作用的特性(即变量只能在变量的作用范围内被访问),又可以永久存在(变量的值得以保留,并可继续使用)。静态局部变量只在第一次执行时初始化一次。在函数 f 中定义了一个静态局部变量 l 它的初始值为 0,还

    40、定义了一个局部变量 s(它的初始值为 1),用来返回计算所得值。函数 f中所进行的数据加工是 s+=i 和 i+。即每调用一次函数 f,返回(i+1)的值后,i 的值增 1。再看主函数,在主函数 main 中,通过一个 for 语句连续调用 f 函数 5 次,并把每次调用 f 函数的返回值相加并存入a。最后输出 a 的值。在了解各函数功能以及调用关系后就可计算出 a 的值为 15。29.下列模板的声明中,正确是(分数:2.00)A.templateTB.templateclass T1,T2C.templateclass T1,class T2 D.templateclass T1 ;clas

    41、s T2解析:解析 本题考核模板的定义。模板定义的类型参数表中包含一个或多个由逗号分隔的类型参数项,每一项由关键字 class 后跟一个用户命名的标识符,此标识符为类 型参数,它不是一种数据类型,但可以同一般数据类型一样使用。在使用类模板时,必须将其实例化,即用实际的数据类型代替它。30.若有以下程序:#include iostreamusing namespace std;class Aprivate:int a;public:A(int i)a=i;void disp()cout a“,“;class Bprivate:int b;public:B(int j)b=j;void disp(

    42、)coutb“,“;class C: public B,public Aprivate: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 解析:解析 本题考核派生类构造函数的使用。本题中,派生类 C 具有多重继承关系,所以在派生类 C的构造函数中应该包含基类 A 和 B 的成员初始化列表。3

    43、1.以下程序的输出结果是#include iostream.hvoid main()int a=0,i;for(i=1 ;i5;i+)switch(i)case 0:case 3: a+=2;case 1:case 2: a+=3;default: a+=5;coutaend1;return;(分数:2.00)A.31 B.13C.10D.20解析:解析 本题考核 for 语句和 switch 语句的综合运用。 switch 语句的执行过程是:在 switch 后面的表达式的值和 case 后面常量表达式的值吻合时,就执行后面的语句。如果在该语句的后面没有 break 语句,则继续执行下一个

    44、case,直到遇到 break 语句或switch 多分支的结束。在 switch 语句中,break 语句的作用是使流程跳出 switch 结构,终止 switch 语句的执行。因为每个 case 语句后面都没有 break 语句,所以,第 1 次循环(i=1)执行后,a 的值为 8。第2 次循环(i=2)执行过后,a 的值变为 16。第 3 次循环(i=3)执行过后,a 的值变为 26。第 4 次循环执行过后,a 的值变为 31。然后执行 i+,这的循环条件为假,结束循环。所以最后 a 的值为 31。32.一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本

    45、,此虚函数又称为(分数:2.00)A.虚析构函数B.虚构造函数C.纯虚函数 D.静态成员函数解析:解析 本题考核纯虚函数的定义。纯虚函数是一种特殊的虚函数,纯虚函数是在虚函数的后面加上“=0”,表示该虚函数无函数体,并非赋值运算。纯虚函数的一般格式如下:virtual类型函数名(参数表)=0;在很多情况下,在基类中不能对虚函数给出有意义的实现,而把它说明为纯虚函数,它的实现留给该基类的派生类去做。题目中描述的是纯虚函数的特点。33.下列对变量的引用中,错误的是(分数:2.00)A.int a; int B.char a; char C.iht a; int p =a; D.float a; f

    46、loat 解析:解析 本题考核引用的定义和初始化。引用具有如下特点:引用能够使用任何合法变量名:引用不是变量,所以必须在定义时初始化,而且一旦初始化之后,就不能再成为其他变量的引用;引用不是值,不占存储空间,说明引用时, 目标的存储状态不会改变。所以,引用只有说明,没有定义;引用仅在说明时带有“class Sampleprivate:int n;public:Sample(int i)n=i;void setvalue(int i)n=i;void display()cout“n=“nend1;int main()const Sample a(l0);a.setvalue(5);a.displ

    47、ay();return 0;(分数:2.00)A.1B.2 C.3D.4解析:解析 本题考核常对象、常数据成员和常成员函数。本程序中有两个错误:第 1 个错误是asetvalue(5);语句,由于对象 a 为常对象,所以对象 a 的私有数据成员 n 不能被更新;第 2 处错误是语句 adisplay();。由于对象 a 为常对象,所以通过对象 a 只能调用它的成员函数,而成员函数display()不是常成员函数。35.下面有关重载函数的说法中正确的是(分数:2.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表 D.重载函数名可以不同解析:解

    48、析 函数重载允许用同一个函数名定义多个函数。被重载的函数必须要有不同的形参列表。不可以根据函数返回值类型来重载函数。二、填空题(总题数:15,分数:30.00)36.在深度为 5 的完全二叉树中,度为 2 的结点数最多为 【1】 。(分数:2.00)填空项 1:_ (正确答案:15)解析:解析 在深度为 5 的完全二叉树中,度为 2 的结点数最多的是深度为 5 的满二叉树。在深度为 5的满二叉树中,前 4 层中所有结点的度为 2。即在深度为 5 的完全二叉树中,度为 2 的结点数最多相当于深度为 4 的满二叉树中的结点数。深度为 4 的满二叉树中的结点数为 24-1=15。37.在面向对象方法中,允许作用


    注意事项

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




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

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

    收起
    展开