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

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

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

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

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

    1、二级 C+笔试-306 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.结构化程序设计的核心和基础是( )。(分数:2.00)A.结构化分析方法B.结构化设计方法C.结构化设计理论D.结构化编程方法2.关于纯虚函数,下列表述中正确的是( )。(分数:2.00)A.纯函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0”结束C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不可能是派生类3.在面向对象方法中,( )描述的是具有相似属性与操作的一组对象。(分数:2.00)A.属性B.事件C.方法D.类4.按照“先进后

    2、出”原则组织数据的数据结构是( )。(分数:2.00)A.队列B.栈C.双向链表D.二叉树5.下列关于虚函数的描述中,正确的是( )。(分数:2.00)A.虚函数是一个 static 类型的成员函数B.虚函数是一个非成员函数C.基类中采用 virtual 说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual 说明D.派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型6.有如下函数模板定义:templateclass TT func(T x,T y)return x*x+y*y;在下列对 func 的调用中,错误的是( )。(分数:2.00)A.func(3,5)

    3、;B.func(3.0,5.5);C.func(3,5.5);D.funcint(3,5.5);7.阅读下面程序:#includeiostream.hvoid main()int i,j,row=0,column=0,min;static int a33=100,28,72,-30,2,-100;min=a00;for(i=0;i3;i+)for(j=0;j3;j+)if(aijlmin)min=aij;row=i;column=j;coutmin“,“row“,“columnendl;该程序的执行结果为( )。(分数:2.00)A.-100,2,3B.-100,1,2C.100,1,1D.1

    4、00,0,08.有如下程序:#includeiostreamusing namespace std;class Apublic:virtual void func1()cout“A1“;void func2()cout“A2“;class B:public Apublic:void func1()cout“B1“;void func2()cout“B2“;int main() A *p=new B;p-func1();p-func2();return 0;执行该程序,屏幕上将显示输出( )。(分数:2.00)A.B1B2B.A1A2C.B1A2D.A1B29.已知枚举类型定义语句为:enum

    5、TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10;则下列叙述中错误的是( )。(分数:2.00)A.枚举常量 NAME 的值为 1B.枚举常量 NUMBER 的值为 1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 1010.下列符号中可以用作 C+标识符的是( )。(分数:2.00)A._radiusB.foobarC.elseD.3room11.有如下程序:#include iostream.husing namespace std;class Basepublic:Base()cout“BB“; f();void f()cout “Bf“

    6、;class Derived: public Basepublic:Derived()cout“DD“;void f()cout“Df“;int main()Dcrivcd d; return 0;执行上面的程序将输出( )。(分数:2.00)A.BBBfDDB.BBDfDDDfC.DDD.DDBBBf12.有如下语句序列:int k=0:dok+=5;cout; while(k19);while(k-0)cout*;执行上面的语句序列输出字符“”和“*”的个数分别是( )。(分数:2.00)A.4 和 20B.5 和 20C.4 和 21D.5 和 2113.要定义一个具有 5 个元素的一维

    7、数组 vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句中错误的是( )。(分数:2.00)A.int vect5=30,50,-88;B.int vect=30,50,-88,0,0;C.int vect5=30,50,-88;D.int vect5=30,50,-88,0,0;14.假定要对类 AB 定义加号操作符重载成员函数,实现两个 AB 类对象的加法,并返回相加结果,则该成员函数的声明语句为( )。(分数:2.00)A.AB operator+(AB private:int j;protected:int k;public:int m,n;其中,私有成

    8、员的数量为( )。(分数:2.00)A.0B.1C.2D.318.若执行语句:coutsetfill(*)setw(10)123“OK“endl 后将输出( )。(分数:2.00)A.* 1230KB.123*OKC.*123*OKD.123*OK*19.下列运算符中全都可以被友元函数重载的是( )。(分数:2.00)A.=,+,-,/B.,+,(),newC.-,+,*,D.,+,*20.有如下程序:#includeiostreamusing namespace std;class TestClassprivate;char c;public;TestClass (char n):c(n)T

    9、estClass ()coutc;class TestClass1:public TestClassPrivate:char c;public:TestClass1(char n):TestClass (n+1),c(n)TestClass1()coutc;int main()TestClass1 obj(x);return 0;执行上面的程序输出( )。(分数:2.00)A.xyB.yxC.xD.y21.有如下程序:#include iostream.husing namespace std;class Stackpublic:Stack(unsigned n=10):size(n)rep_

    10、=new int size; top=0;Stack(Stackfor(int i=0;isize;i+)rep_i=s.rep_i;top=s.top;Stack()deleterep_;void push(int(分数:2.00)A.rep_top=a; top+;int22.关于在调用模板函数时模板实参的使用,下列表述中正确的是( )。(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D

    11、.对于常规参数所对应的模板实参,任何情况下都不能省略23.常采用的两种存储结构是( )。(分数:2.00)A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构24.有如下程序:#includeiostreamusing namespace std;class TestClasspublic:virtual void fun1()cout“fun1TestClass“;virtual void fun2()cout“fun2TestClass“;class TestClass1:public TestClassvoid fun()cout“f

    12、un1TestClass1“;void fun2(int x)cout“fun2TestClass1“;int main()TestClass obj1,*p;TestClass1 obj2;p=p-fun1();p-fun2();return 0;该程序执行后的输出结果是( )。(分数:2.00)A.fun1TestClass1 fun2TestClassB.fun1TestClass1 fun2TestClass1C.fun1TestClass fun2TestClassD.fun1TestClass fun2TestClass125.已知 n 是一个 int 型变量,下列语句中错误的是(

    13、 )。(分数:2.00)A.long*p=new longn;B.long pn;C.long*p=new long(n);D.long p10;26.下列关于 C+流的说明中,正确的是( )。(分数:2.00)A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现B.从流中获取数据的操作称为插入操作, 向流中添加数据的操作称为提取操作C.cin 是一个预定义的输出流类D.输出流有一个名为 open 的成员函数,其作用是生成一个新的流对象27.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为 90的元素时,查找成功的比较次数

    14、为( )。(分数:2.00)A.1B.2C.3D.928.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2.00)A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXYZD.ABDYECFXZ29.树是结点的集合,它的根结点的数目是( )。(分数:2.00)A.有且只有 1 个B.1 或多于 1C.0 或 1D.至少有 2 个30.设 R 是一个 2 元关系,S 是一个 3 元关系,则下列运算中正确的是( )。(分数:2.00)A.R-SB.RSC.RSD.RS31.重载输入流运算符必须使用的原型为( )。(分数:2.00)A.istreamB.istreamC.istre

    15、am operator(istream,类名D.类名operator(istream32.结构化程序设计主要强调的是( )。(分数:2.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性33.有如下程序:#include iostream.husing namespace std;class Baseprotected:int i;public:int j;class Derived:public Baseint m;public:int n;int main()Derived d;d.i=0; /1d.j=0; /2d.m=0; /3d.n=0; /4return 0

    16、;其中主函数中有两个赋值语句有错,这两个错误的赋值语句是( )。(分数:2.00)A.1和2B.1和3C.2和3D.2和434.有如下程序:#include iostreamusing 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;执行该程序的输出结果是( )。

    17、(分数:2.00)A.n=0B.n=1C.n=2D.n=335.在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态,其中只能用于检测刚进行的操作是否失败的函数名是( )。(分数:2.00)A.failB.eofC.badD.good二、填空题(总题数:15,分数:30.00)36.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个 1 实际上对应一个处理模块。(分数:2.00)填空项 1:_37.结构化程序设计的三种基本结构分别是顺序、选择和 1。(分数:2.00)填空项 1:_38.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须

    18、是 1。(分数:2.00)填空项 1:_39.一个模块直接调用的其他模块个数称为 1。(分数:2.00)填空项 1:_40.数据库系统中实现各种数据管理功能的核心软件是 1。(分数:2.00)填空项 1:_41.如果表达式-x 中的“”是重载的类运算符,采用运算符函数调用格式,其表达式还可以表示为 1。(分数:2.00)填空项 1:_42.虚函数必须是类的 1。(分数:2.00)填空项 1:_43.多态性分为两类:编译时的多态性和 1。(分数:2.00)填空项 1:_44.在下列的程序的横线处填上适当的语句,使该程序的输出为 12。#includeiostreamusing namespace

    19、 std;class TestClasspublic:int a,b;TestClass(int i,int j)a=i;b=j;class TestClass1:public TestClassint a;public:TestClass1(int x):TestClass(x,x+1)void show()_;/输出基类数据成员 a 的值?coutbendl;int main()TestClass1 d(1);d.show();return 0;(分数:2.00)填空项 1:_45.在面向对象的程序设计中,将数据和处理数据的操作封装成一个整体就定义了一种事物的类型,称作“类”。类是一种抽象

    20、的概念,属于该类的一个实例叫做“ 1”。(分数:2.00)填空项 1:_46.请在下列程序中的横线处填写正确的语句。#includeiostreamusing namespace std;class Basepublic:void fun()cout“Base fun“endl;class Derivde:public Basepublic:void fun()_/调用基类的函数 fun()cout“Derived fun“endl;(分数:2.00)填空项 1:_47.已知类 sample 是一个抽象类,其成员函数 display 是无形参、无返回类型的纯虚函数,请完成其声明。class s

    21、amplepublic:sample();_;(分数:2.00)填空项 1:_48.请将下列程序补充完整,使得输出结果为 bbaa。#includeiostreamusing namespace std;class Apublic:_cout“aa“;class B:public Apublic:B()cout“bb“;int main()B *p=new B;delete p;return 0;(分数:2.00)填空项 1:_49.请将下列栈类 Stack 补充完整。class Stackprivate:int pList100; /int 数组,用于存放栈的元素int top; / 栈顶元

    22、素(数组下标)public:Stack():top(0)void Push(const int / 新元素 item 压入栈int Pop(void); / 将栈顶元素弹出栈;void Stack:Push(const int top+; / 栈顶指针增 1_;int Stack:Pop()if(top0) / 如果栈空,程序终止exit(1);return pListtop-;(分数:2.00)填空项 1:_50.若要访问指针变量 p 所指向的数据,应使用表达式 1。(分数:2.00)填空项 1:_二级 C+笔试-306 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数

    23、:35,分数:70.00)1.结构化程序设计的核心和基础是( )。(分数:2.00)A.结构化分析方法B.结构化设计方法C.结构化设计理论 D.结构化编程方法解析:解析 结构化程序设计的核心和基础是结构化设计理论,其中包括结构化分析方法、结构化设计方法和结构化编程方法。2.关于纯虚函数,下列表述中正确的是( )。(分数:2.00)A.纯函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0”结束 C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不可能是派生类解析:解析 纯虚函数是在声明虚函数时被“初始化”为。的虚函数。纯虚函数没有函数体,所以选项A)、C)不正确。纯

    24、虚函数的作用是在基类中为其派生类保留一个函数名字。所以选项 D)错误。3.在面向对象方法中,( )描述的是具有相似属性与操作的一组对象。(分数:2.00)A.属性B.事件C.方法D.类 解析:解析 类(class)描述的是具有相似属性与操作的一组对象,而一个具体对象则是其对应类的一个实例。4.按照“先进后出”原则组织数据的数据结构是( )。(分数:2.00)A.队列B.栈 C.双向链表D.二叉树解析:解析 栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,而栈底元素是最后被删除的栈,是按

    25、“先进后出”的原则组织数据的。5.下列关于虚函数的描述中,正确的是( )。(分数:2.00)A.虚函数是一个 static 类型的成员函数B.虚函数是一个非成员函数C.基类中采用 virtual 说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual 说明 D.派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型解析:解析 虚函数是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。在基类用 virtual 声明成员函数为虚函数,在派生类中重新定义此函数,要求函数名、函数类型、函数参数个数和类型全部与基类的虚函数相同。6

    26、.有如下函数模板定义:templateclass TT func(T x,T y)return x*x+y*y;在下列对 func 的调用中,错误的是( )。(分数:2.00)A.func(3,5);B.func(3.0,5.5);C.func(3,5.5); D.funcint(3,5.5);解析:解析 选项 C)中两个实参的实际类型不同而未进行转换,会出现错误。7.阅读下面程序:#includeiostream.hvoid main()int i,j,row=0,column=0,min;static int a33=100,28,72,-30,2,-100;min=a00;for(i=0

    27、;i3;i+)for(j=0;j3;j+)if(aijlmin)min=aij;row=i;column=j;coutmin“,“row“,“columnendl;该程序的执行结果为( )。(分数:2.00)A.-100,2,3B.-100,1,2 C.100,1,1D.100,0,0解析:解析 该程序是找到数组 a 中的最小值,然后输出其数值及行、列。首先将 min 的值赋值为 a 中的第一行第一列的数值。然后在 for 两层循环中利用 if 语句进行大小比较,求出数组最小值,即-100。它的位置为第二行;第三列。标识由 0 开始计数,所以是 1,2。8.有如下程序:#includeiost

    28、reamusing namespace std;class Apublic:virtual void func1()cout“A1“;void func2()cout“A2“;class B:public Apublic:void func1()cout“B1“;void func2()cout“B2“;int main() A *p=new B;p-func1();p-func2();return 0;执行该程序,屏幕上将显示输出( )。(分数:2.00)A.B1B2B.A1A2C.B1A2 D.A1B2解析:解析 程序中 B 为 A 的派生类,由主函数入手,主函数中定义了类 A 的指针 p

    29、 指向类 B。根据基类中的“virtual void func1()”知道 A 中的 func1 为虚函数,执行“p-func1();”语句,通过指针变量调用此虚函数,此时调用的就是指针变量指向的同名函数,即派生类的 func1 函数,输出 B1。而fun2 不是虚函数,所以执行“p-func2();”输出为 A2。9.已知枚举类型定义语句为:enum TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10;则下列叙述中错误的是( )。(分数:2.00)A.枚举常量 NAME 的值为 1 B.枚举常量 NUMBER 的值为 1C.枚举常量 MINUS 的值为 6D.枚举常

    30、量 PRINT 的值为 10解析:解析 此题考查的是 C+语言的数据类型。第一个枚举常量的值为 0;允许程序显示的定义中指定部分或全部枚举常量的值,枚举常量默认时,在前一枚举常量值的基础上以此增 1。10.下列符号中可以用作 C+标识符的是( )。(分数:2.00)A._radius B.foobarC.elseD.3room解析:解析 此题考查的是标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过 31 个字符:标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。符合这些要求的只有选项

    31、A)。11.有如下程序:#include iostream.husing namespace std;class Basepublic:Base()cout“BB“; f();void f()cout “Bf“;class Derived: public Basepublic:Derived()cout“DD“;void f()cout“Df“;int main()Dcrivcd d; return 0;执行上面的程序将输出( )。(分数:2.00)A.BBBfDD B.BBDfDDDfC.DDD.DDBBBf解析:解析 此题考查的是类的继承和派生。派生类执行构造函数的一般次序为:首先调用基类

    32、构造函数;然后调用成员对象的构造函数;最后是派生类构造函数中的内容。题目中定义派生类对象 d 时,先调用基类 Base 的构造函数,输出 BBBf,然后调用派生类 Derived 的构造函数,输出 DD。12.有如下语句序列:int k=0:dok+=5;cout; while(k19);while(k-0)cout*;执行上面的语句序列输出字符“”和“*”的个数分别是( )。(分数:2.00)A.4 和 20 B.5 和 20C.4 和 21D.5 和 21解析:解析 此题首先执行语句 dok+=5;cout; while(k19);,循环执行 4 次,输出 4 个“”,k 的值变为 20;

    33、然后执行语句 while(k-0)cout*;,因为其中的 k 是后缀自减,所以会输出 20 个“*”。13.要定义一个具有 5 个元素的一维数组 vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句中错误的是( )。(分数:2.00)A.int vect5=30,50,-88; B.int vect=30,50,-88,0,0;C.int vect5=30,50,-88;D.int vect5=30,50,-88,0,0;解析:解析 此题考查的是一维数组定义时的初始化。当数组声明时没有给出数组的大小但是有初始化列表时,数组的大小就由列表中元素的个数来确定。所以选

    34、项 A)中数组只定义 3 个元素,不符合题目。14.假定要对类 AB 定义加号操作符重载成员函数,实现两个 AB 类对象的加法,并返回相加结果,则该成员函数的声明语句为( )。(分数:2.00)A.AB operator+(AB private:int j;protected:int k;public:int m,n;其中,私有成员的数量为( )。(分数:2.00)A.0B.1C.2 D.3解析:解析 首先声明为 pfivate 的“private:int j;”中 j 为私有成员。然后在类中没有指定,系统默认为私有。即“int i;”中的 i 也是私有成员。所以本题中的私有成员数量为 2。1

    35、8.若执行语句:coutsetfill(*)setw(10)123“OK“endl 后将输出( )。(分数:2.00)A.* 1230K B.123*OKC.*123*OKD.123*OK*解析:解析 cout.fill()用于设置或返回输出的填充字符,默认是空格,fill()函数的设置一直有效,直到下一个 fill()函数改变该值为止。setw(int n)作用是设置输入输出的宽度,此设置只对一次输入或输出有效,在完成一次数据的输入或输出后,宽度设置自动恢复为 0。需要注意的是,默认为输出数据在指定宽度内右对齐。19.下列运算符中全都可以被友元函数重载的是( )。(分数:2.00)A.=,+

    36、,-,/B.,+,(),newC.-,+,*,D.,+,* 解析:解析 运算符重载为成员函数的形式为:函数类型 operator 运算符(形参表)函数体;;运算符重载为友元函数的形式为:friend 函数类型 operator 运算符(形参表)函数体;)。一般来讲,单目运算符最好重载为成员函数,双目运算符最好重载为友元函数。=、()、-以及所有的类型转换运算符只能作为成员函数重载。20.有如下程序:#includeiostreamusing namespace std;class TestClassprivate;char c;public;TestClass (char n):c(n)Tes

    37、tClass ()coutc;class TestClass1:public TestClassPrivate:char c;public:TestClass1(char n):TestClass (n+1),c(n)TestClass1()coutc;int main()TestClass1 obj(x);return 0;执行上面的程序输出( )。(分数:2.00)A.xy B.yxC.xD.y解析:解析 题目中程序 TestClass 为基类,TestClass1 为派生类。在主函数中定义 TestClass1 对象obj(x),“TestClass1(char n):TestClass

    38、 (n+1),c(n)”,所以先输出 x,然后调用基类构造函数,x+1=y,所以输出 y,即答案为 xy。21.有如下程序:#include iostream.husing namespace std;class Stackpublic:Stack(unsigned n=10):size(n)rep_=new int size; top=0;Stack(Stackfor(int i=0;isize;i+)rep_i=s.rep_i;top=s.top;Stack()deleterep_;void push(int(分数:2.00)A.rep_top=a; top+;int解析:解析 此题综合考

    39、查了类与对象、循环语句、指针等知识点。在主函数 main 中,先定义了类Stack 的对象 s1,通过循环将 1、2、3、4 压入堆栈内;然后定义对象 s2,并用对象 s1 来初始化,所以s2 的大小也是 10。第二个循环将 4、3 弹出并输出,然后将 6 压入 s2 的堆栈,然后将 s2 中剩下的值全部弹出,即 6、2、1。22.关于在调用模板函数时模板实参的使用,下列表述中正确的是( )。(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于

    40、虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略 解析:解析 以下情况模板实参不能省略:从模板函数实参表获得的信息有矛盾;需要获得特定类型的返回值,而不管返回值类型如何;虚拟类型的参数没有出现在模板形参表中;函数模板含有常规形参。23.常采用的两种存储结构是( )。(分数:2.00)A.顺序存储结构和链式存储结构 B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构解析:解析 线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。24.有如下程序:#includeiostreamusing namespac

    41、e std;class TestClasspublic:virtual void fun1()cout“fun1TestClass“;virtual void fun2()cout“fun2TestClass“;class TestClass1:public TestClassvoid fun()cout“fun1TestClass1“;void fun2(int x)cout“fun2TestClass1“;int main()TestClass obj1,*p;TestClass1 obj2;p=p-fun1();p-fun2();return 0;该程序执行后的输出结果是( )。(分数:

    42、2.00)A.fun1TestClass1 fun2TestClass B.fun1TestClass1 fun2TestClass1C.fun1TestClass fun2TestClassD.fun1TestClass fun2TestClass1解析:解析 TestClass 为基类,Testclass1 是 TestClass 的派生类。基类中的 fun1 和 fun2 被定义为虚函数,C+规定,当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数,所以派生类中的 fun1 和 tim2 也是虚函数。本题从 main 主函数入手,首先定义了 TestClass 类型的对

    43、象 obj1和指针 p,然后又定义了 TestClass1 的对象 obi2。指针指向对象 obi2,然后调用其成员函数 fun1(),即输出“fun1TcstClass1”。多态性是在程序运行过程中才动态地确定操作指针指向的对象,“p-fun2();”语句中没有任何参数,并不是调用派生类中的 fun2(int x),而是调用其基类中的 fun2(),所以输出“fun2TestClass”。25.已知 n 是一个 int 型变量,下列语句中错误的是( )。(分数:2.00)A.long*p=new longn;B.long pn; C.long*p=new long(n);D.long p10

    44、;解析:解析 此题考查的是数组、指针及关键字 new。说明一维数组的一般形式是:数组类型 数组名数组长度;其中数组长度必须是整型常量或常量表达式。选项 B)中,n 是一个变量,不能做数组的长度,故选项 B)错误;其他选项均正确。26.下列关于 C+流的说明中,正确的是( )。(分数:2.00)A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现 B.从流中获取数据的操作称为插入操作, 向流中添加数据的操作称为提取操作C.cin 是一个预定义的输出流类D.输出流有一个名为 open 的成员函数,其作用是生成一个新的流对象解析:解析 选项 B)中,从流中获取数据的操作称为提取操作,向流中添

    45、加数据的操作称为插入操作;选项 C)中,cin 是一个预定义的输入流对象;选项 D)中,open 的成员函数只能打开文件:故只有选项 A)的叙述是正确的。27.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为 90的元素时,查找成功的比较次数为( )。(分数:2.00)A.1B.2 C.3D.9解析:解析 根据二分法查找需要两次:首先将 90 与表中间的元素 50 进行比较,由于 90 大于 50,所以在线性表的后半部分查找;第二次比较的元素是后半部分的中间元素,即 90,这时两者相等,即查找成功。28.有下列二叉树,对此二叉树前

    46、序遍历的结果为( )。(分数:2.00)A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXYZD.ABDYECFXZ 解析:解析 对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树。并且在访问左、右子树时,先访问根结点,再依次访问其左、右子树。记住 3 种遍历的顺序:前序,访问根按前序遍历左子树按前序遍历右子树:中序,按中序遍历左子树访问根按中序遍历右子树;后序,按后序遍历左子树按后序遍历右子树访问根。29.树是结点的集合,它的根结点的数目是( )。(分数:2.00)A.有且只有 1 个B.1 或多于 1C.0 或 1 D.至少有 2 个解析:解析 树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点;当树为空时,树中根结点的数目为 0。30.设 R 是一个 2 元关系,S 是一个 3 元关系,则下列运算中正确的是( )。(分数:2.00)A.R-SB.RS C.RSD.RS解析:解析 关系的交()、并()和差(-)运算要求两个关系是同元的,显然作为二元的 R 和三元 S 只能做笛卡尔积运算。31.重载输入流运算符必须使用的原型为( )。(分数:2.00)A.istream B.istreamC.istream operator(istream,类名D.


    注意事项

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




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

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

    收起
    展开