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

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

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

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

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

    1、二级 C+笔试-341 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.有如下语句序列: int k=0: dok+=5;cout$; while(k19); while(k-0)cout* 执行上面的语句序列输出字符“$”和“*”的个数分别是( )。(分数:2.00)A.4 和 20B.5 和 20C.4 和 21D.5 和 212.按照“先进后出”原则组织数据的数据结构是( )。(分数:2.00)A.队列B.栈C.双向链表D.二叉树3.有下列程序: #includeiostream using namespace Std; cla

    2、ss Test public: Test() n+=2; Test() n-=3; static int getNum()return n; private: static int n; ; int Testn=1; int main() Test*p=new Test; delete p; cout“n=“TestgetNum()endl; return 0; 执行该程序的输出结果是( )。(分数:2.00)A.n=0B.n=lC.n=2D.n=34.有如下类声明: c1ass TeStClass int i; private:int j; protected:int k; public:i

    3、nt m,n; ; 其中,私有成员的数量为( )。(分数:2.00)A.0B.1C.2D.35.有下列程序: #includeiostream using namespace std; c1ass TestClass private; char c; public: TestClass(char n):c(n) TeStClass() coutc ; class TestClass1:public TestClass private: char c; public; TestClass1(char n):TestClass(n+1),c(n) TestClass1() coutC; ; int

    4、 main() TestClass1obj(x); return 0; 执行上面的程序将输出( )。(分数:2.00)A.xyB.yxC.xD.y6.结构化程序设计主要强调的是( )。(分数:2.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性7.设 R 是一个 2 元关系,S 是一个 3 元关系,则下列运算中正确的是( )。(分数:2.00)A.R-SB.RSC.RSD.RS8.下列运算符中全都可以被友元函数重载的是( )。(分数:2.00)A.=,+,-,/B.,+,(),newC.-,+,*,D.,+,*10.下列关于虚函数的描述中,正确的是( )。(分数:2.

    5、00)A.虚函数是一个 static 类型的成员函数B.虚函数是一个非成员函数C.基类中采用 virtual 说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual 说明D.派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型11.要定义一个具有 5 个元素的一维数组 vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句中错误的是( )。(分数:2.00)A.int vect=30,50,-88;B.int vect=30,50,-88,0,0;C.int vect5=30,50,-88;D.int vect5=30,50,-88,0,

    6、0;12.有下列二叉树,对此二叉树前序遍历的结果为( )。 (分数:2.00)A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXYZD.ABDYECFXZ13.在面向对象方法中,( )描述的是具有相似属性与操作的一组对象。(分数:2.00)A.属性B.事件C.方法D.类14.有下列程序: #includeiosteram.h using namespace std; class Base public: Base()cout“BB“; f(); void f()cout“Bf“; ; class Derived:public Base public: Derived()cout“D

    7、D“; void f()cout“Dff; ; int main()Derived d;return 0; 执行上面的程序将输出( )。(分数:2.00)A.BBBfDDB.BBDfDDDfC.DDD.DDBBBf15.已知 n 是一个 int 型变量,下列语句中错误的是( )。(分数:2.00)A.long*p=new long;B.long p;C.long*p=newl ong(;D.long p10;16.关于纯虚函数,下列表述正确的是( )。(分数:2.00)A.纯函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0”结束C.派生类必须实现基类的纯虚函数D.

    8、含纯虚函数的类不可能是派生类17.有下列程序: #includeiosteram.h using namespace std; class Stack public: Stack(unsignedn=10):size(n)rep_=new int size;top=O; Stack(Stack for(int i=0;isize;i+) rep_i=s.rep_i; top=s.top; Stack()deleterep_; void push(int A) rep_top=a;top+; intpop()-top;return rep_top; bool isEmpty()const ret

    9、urn top=0; private: int*rep_; unsigned size,top; ; int main() Stack s1; for(int i=1;i5;i+) s1.push(i); Stack s2(s1); for(int i=1;i3;i+) couts2.pop(),; s2.push(6); s1.push(7); while(!s2.isEmpty() couts2.pop(),; return 0; 执行上面程序的输出结果是( )。(分数:2.00)A.4,3,2,1,B.4,3,6,7,2,1,C.4,3,6,2,1,D.1,2,3,4,18.若执行语句:

    10、coutsetfill(*)setw(10)123“OK“endl 后将输出( )。(分数:2.00)A.*1230KB.123*OKC.*123*OKD.123*OK*19.已知枚举类型定义语句为: enum TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10; 则下列叙述中错误的是( )。(分数:2.00)A.枚举常量 NAME 的值为 1B.枚举常量 NUMBER 的值为 1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 1020.树是结点的集合,它的根结点的数目是( )。(分数:2.00)A.有且只有 1 个B.1 或多于 1C.0 或

    11、1D.至少有 2 个21.常采用的两种存储结构是( )。(分数:2.00)A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构22.有下列程序: #inCludeiostream using namespace std; c1ass A pubic: virmal void func1()cout“A1“; void func2()cout“A2“; ; c1ass B:public A publIc: void func1()cout“B1“; void func2()cout“B2“; ; int main() A*p=new B; p

    12、-func1(); p-func2(); return 0; 运行此程序后,屏幕上将显示输出( )。(分数:2.00)A.B182B.A1A2C.B1A2D.A18223.下列关于 C+流的说明中,正确的是( )。(分数:2.00)A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现B.从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作C.cin 是一个预定义的输出流类D.输出流有一个名为 open 的成员函数,其作用是生成一个新的流对象24.在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态,其中只能用于检测刚进的操作是否失败的函数名是( )。(

    13、分数:2.00)A.failB.eofC.badD.good25.下列符号中可以用作 C+标识符的是( )。(分数:2.00)A._radiusB.foobarC.elseD.3room26.类模板的使用实际上是将类模板实例化成一个具体的( )。(分数:2.00)A.类B.对象C.函数D.模板类27.需求分析阶段的任务是( )。(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能28.有如下函数模板定义: templateclass T T func(T x,T y)return x*x+y*y; 在下列对 func 的调用中,错误的是( )。(分数:2.00)A

    14、.fimc(3,5);B.func(3.0,5.5);C.func(3,5.5);D.funcint(3,5.5);29.有下列程序: #includeiostream using namespace std; class TestClass public: virtual void fun1() cout“fun1TestClass“; virtual void fun2() cout“fun2TestClass“; ; class TeStClaSS1:public TestClass void fun() cout“fun1TestClass1“; void fun2(tnt x) co

    15、ut“fun2TestClass1“; ; int main() TeStClass obj1,*p; TestClaSS1 obj2; p= p-fun1(); p-fun2(); retrn 0; 执行后的输出结果是( )。(分数:2.00)A.fun1TeStClass1 fun2TeStClassB.fun1TestClass1 fun2TestClass1C.fun1TeStClass fun2TeStClassD.fun1TestClaSSfun2TestClaSS130.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值

    16、为 90的元素时,查找成功的比较次数为( )。(分数:2.00)A.1B.2C.3D.931.阅读下列程序: #includeiostream.h void main() int i,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(aijmin) min=aij; row=i; column=j; coutmin“,“row“,“columnendl; 该程序的执行结果为( )。(分数:2.00)A.-100,2,3B.-100,1,2C.100,

    17、1,1D.100,0,032.重载输入流运算符必须使用的原型为( )。(分数:2.00)A.istreamB.istreamC.istream operator(istream,类名D.类名operator(istream33.关于调用模板函数时模板实参的使用,下列表述中正确的是( )。(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略34

    18、.有下列程序: #includeiostream.h using namespace std; classBase protected: int i; public: int j; ; classDerived:public Base int m; public: intn; ; int main() Derived d; d.i=0; 1 d.j=0; 2 d.m=0; 3 d.n=0; 4 return 0; 其中主函数中有两个赋值语句有错,这两个错误的赋值语句是( )。(分数:2.00)A.1和2B.1)和3C.2和3D.2和435.结构化程序设计的核心和基础是( )。(分数:2.00)

    19、A.结构化分析方法B.结构化设计方法C.结构化设计理论D.结构化编程方法二、B填空题/B(总题数:15,分数:30.00)36.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个 1 实际上对应一个处理模块。(分数:2.00)填空项 1:_37.结构化程序设计的 3 种基本结构分别是顺序、选择和 1。(分数:2.00)填空项 1:_38.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是 1。(分数:2.00)填空项 1:_39.一个模块直接调用的其他模块的个数称为 1。(分数:2.00)填空项 1:_40.数据库系统中实现各种数据管理功能的核心软件是

    20、1。(分数:2.00)填空项 1:_41.如果表达式-X 中的“-”是重载的类运算符,采用运算符函数调用格式,及表达式还可以表示为 1。(分数:2.00)填空项 1:_42.虚函数必须是类的 1。(分数:2.00)填空项 1:_43.多态性分为两类:编译时的多态性和 1。(分数:2.00)填空项 1:_44.在下面的程序的横线处填上适当的语句,使该程序的输出结果为 12。 #includeiostream using namespace std; class TestClass public: int a,b; TestClass(int i,int j) a=i; b=j; ; class

    21、TestClass1:public TestClass int 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.在面向对象的程序设计中,将数据和处理数据的操作封装成一个整体就定义了一种事物的类型,称作“类”。类是一种抽象的概念,属于该类的一个实例叫做“ 1”。(分数:2.00)填空项 1:_46.请在下列程序的横线处填写正确的语句。 #

    22、includeiostream using namespace std; class Base public: void fun()cout“Base fun“endl; ; class Derivde:public Base public: void fun() _ 调用基类的函数 fun() cout“Derived fun“endl; ;(分数:2.00)填空项 1:_47.己知类 sample 是一个抽象类,其成员函数 display 是无形参、无返回类型的纯虚函数,请完成其声明:class sample public: sample(); _ ;(分数:2.00)填空项 1:_48.

    23、请将下列程序的横线处补充完整,使得输出结果为 bbaa #includeiostream using namespace std; class A public: _cout“aa“; ; class B:public A public: B()cout“bb“; ;int main() B*p=new B; delete p; retum 0; (分数:2.00)填空项 1:_49.请将下列栈类 Stack 的横线处补充完整。 class Stack private: int pList100; int 数组,用于存放栈的元素 int top; 栈顶元素(数组下标) public: Stac

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

    25、有如下语句序列: 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;然后执行语句 while(k-0)cout*;,因为其中的 k 是后缀自减,所以会输出 20 个“*”。2.按照“先进后出”原则组织数据的数据结构是( )。(分数:2.00)A.队列B.栈 C.双向链

    26、表D.二叉树解析:解析 栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,而栈底元素是最后被删除的栈,是按“先进后出”的原则组织数据的。3.有下列程序: #includeiostream using namespace Std; class Test public: Test() n+=2; Test() n-=3; static int getNum()return n; private: static int n; ; int Testn=1; int main() Test*p=n

    27、ew Test; delete p; cout“n=“TestgetNum()endl; return 0; 执行该程序的输出结果是( )。(分数:2.00)A.n=0 B.n=lC.n=2D.n=3解析:解析 此题考查的是静态数据成员和静态成员函数。静态数据成员是类中所有对象共享的成员,而不是某个对象的成员。题目中的静态数据成员 n 的运算具有叠加性,执行“n+=2”和“n-=3”后 n 的值为 0。4.有如下类声明: c1ass TeStClass int i; private:int j; protected:int k; public:int m,n; ; 其中,私有成员的数量为( )

    28、。(分数:2.00)A.0B.1C.2 D.3解析:解析 首先声明为 private 的“private:intj;”,中 j 为私有成员。然后在类中没有指定,系统默认为私有。即“int i;”中的 i 也是私有成员。所以本题中的私有成员数量为 2。5.有下列程序: #includeiostream using namespace std; c1ass TestClass private; char c; public: TestClass(char n):c(n) TeStClass() coutc ; class TestClass1:public TestClass private: c

    29、har c; public; TestClass1(char n):TestClass(n+1),c(n) TestClass1() coutC; ; int main() TestClass1obj(x); return 0; 执行上面的程序将输出( )。(分数:2.00)A.xy B.yxC.xD.y解析:解析 题目中程序 TestClass 为基类,TestClass1 为派生类。在主函数中定义 TestClass1 对象 obj(x),“TestClass1(char n):TestClass(n+1),c(n)”,所以先输出 x,然后调用基类构造函数,x+=y,所以输出 y,即答案为

    30、 xy。6.结构化程序设计主要强调的是( )。(分数:2.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性 解析:解析 程序不光是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。7.设 R 是一个 2 元关系,S 是一个 3 元关系,则下列运算中正确的是( )。(分数:2.00)A.R-SB.RS C.RSD.RS解析:解析 关系的交()、并()和差(-)运算要求两个关系是同元的,显然作为二元的 R 和三元 S 只能做笛卡儿积运算。8.下列运算符中全都可以被友元函数重载的是(

    31、 )。(分数:2.00)A.=,+,-,/B.,+,(),newC.-,+,*,D.,+,* 解析:解析 运算符重载为成员函数的形式:函数类型 operator 运算符(形参表)函数体;运算符重载为友元函数的形式:friend 函数类型 operator 运算符(形参表)函数体;。一般来讲,单目运算符最好重为成员函数,双目运算符最好重载为友元函数。=、()、-以及所有的类型转换运算符只能作为成员函数重载。解析:解析 因为题目的要求是对类 AB 定义加号操作符重载成员函数,所以首先应该对范围加以限定,参数是对类对象的引用。10.下列关于虚函数的描述中,正确的是( )。(分数:2.00)A.虚函数

    32、是一个 static 类型的成员函数B.虚函数是一个非成员函数C.基类中采用 virtual 说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual 说明 D.派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型解析:解析 虚函数是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。在基类中用 virtual 声明成员函数为虚函数,在派生类中重新定义此函数,要求函数名、函数类型、函数参数个数和类型全部与基类的虚函数相同。11.要定义一个具有 5 个元素的一维数组 vect,并使其各元素的初值依次是 30,50,-88,0

    33、 和 0,则下列定义语句中错误的是( )。(分数:2.00)A.int vect=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;解析:解析 此题考查的是一维数组定义时的初始化。当数组声明时没有给出数组的大小,但是有初始化列表时,数组的大小就由列表中元素的个数来确定。所以选项 A)中数组只定义 3 个元素,不符合题目。12.有下列二叉树,对此二叉树前序遍历的结果为( )。 (分数:2.00)A.ACFXDBEYZB.ABEFXYZCDC.ABCDEFXYZD.ABDYECFX

    34、Z 解析:解析 对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。记住三种遍历的顺序:前序,访问根按前序遍历左子树按前序遍历右子树:中序,按中序遍历左子树访问根按中序遍历右子树:后序,按后序遍历左子树按后序遍历右子树访问根。13.在面向对象方法中,( )描述的是具有相似属性与操作的一组对象。(分数:2.00)A.属性B.事件C.方法D.类 解析:解析 类(calss)描述的是具有相似属性与操作的一组对象,而一个具体对象则是其对应类的一个实例。14.有下列程序: #includeiosteram.h using n

    35、amespace std; class Base public: Base()cout“BB“; f(); void f()cout“Bf“; ; class Derived:public Base public: Derived()cout“DD“; void f()cout“Dff; ; int main()Derived d;return 0; 执行上面的程序将输出( )。(分数:2.00)A.BBBfDD B.BBDfDDDfC.DDD.DDBBBf解析:解析 此题考查的是类的继承和派生。派生类执行构造函数的一般次序:首先调用基类构造函数;然后调用成员对象的构造函数;最后是派生类构造函

    36、数中的内容。题目中定义派生类对象 d 时,先调用基类Base 的构造函数,输出 BBBf,然后调用派生类 Derived 的构造函数,输出 DD。15.已知 n 是一个 int 型变量,下列语句中错误的是( )。(分数:2.00)A.long*p=new long;B.long p; C.long*p=newl ong(;D.long p10;解析:解析 此题考查的是数组、指针及关键字 new。说明一维数组的一般形式是:数组类型数组名数度;其中数组长度必须是整型常量或常量表达式。选项 B)中,n 是一个变量,不能做数组的长度,故选项 B)错误;其他选项均正确。16.关于纯虚函数,下列表述正确的

    37、是( )。(分数:2.00)A.纯函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0”结束 C.派生类必须实现基类的纯虚函数D.含纯虚函数的类不可能是派生类解析:解析 纯虚函数是在声明虚函数时被“初始化”为 0 的虚函数。纯虚函数没有函数体,所以选项 A)和选项 C)不正确。纯虚函数的作用是在基类中为其派生类保留一个函数名字。所以选项 D)错误。17.有下列程序: #includeiosteram.h using namespace std; class Stack public: Stack(unsignedn=10):size(n)rep_=new int si

    38、ze;top=O; Stack(Stack for(int i=0;isize;i+) rep_i=s.rep_i; top=s.top; Stack()deleterep_; void push(int A) rep_top=a;top+; intpop()-top;return rep_top; bool isEmpty()const return top=0; private: int*rep_; unsigned size,top; ; int main() Stack s1; for(int i=1;i5;i+) s1.push(i); Stack s2(s1); for(int i

    39、=1;i3;i+) couts2.pop(),; s2.push(6); s1.push(7); while(!s2.isEmpty() couts2.pop(),; return 0; 执行上面程序的输出结果是( )。(分数:2.00)A.4,3,2,1,B.4,3,6,7,2,1,C.4,3,6,2,1, D.1,2,3,4,解析:解析 此题综合考查了类与对象、循环语句、指针等知识点。在主函数 main 中,先定义了类 Stack 的对象 s1,通过循环将 1、2、3、4 压入堆栈内;然后定义对象 s2,并用对象 s1 来初始化,所以 s2 的大小也是 10。第二个循环将 4、3 弹出并输

    40、出,然后将 6 压入 s2 的堆栈,然后将 s2 中剩下的值全部弹出,即6、2、1。18.若执行语句: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.

    41、已知枚举类型定义语句为: enum TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10; 则下列叙述中错误的是( )。(分数:2.00)A.枚举常量 NAME 的值为 1 B.枚举常量 NUMBER 的值为 1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 10解析:解析 此题考查的是 C+语言的数据类型。第一个枚举常量的值为 0;允许程序显示的定义中指定部分或全部枚举常量的值,枚举常量默认时,在前一枚举常量值的基础上以此增 1。20.树是结点的集合,它的根结点的数目是( )。(分数:2.00)A.有且只有 1 个B.1 或多于 1C.0 或 1

    42、 D.至少有 2 个解析:解析 树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点:当树为空时,树中根结点的数目为 0。21.常采用的两种存储结构是( )。(分数:2.00)A.顺序存储结构和链式存储结构 B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构解析:解析 线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。22.有下列程序: #inCludeiostream using namespace std; c1ass A pubic: virmal void func1()cout“A1“; v

    43、oid func2()cout“A2“; ; c1ass B:public A publIc: void func1()cout“B1“; void func2()cout“B2“; ; int main() A*p=new B; p-func1(); p-func2(); return 0; 运行此程序后,屏幕上将显示输出( )。(分数:2.00)A.B182B.A1A2C.B1A2 D.A182解析:解析 程序中 B 为 A 的派生类,由主函数入手,主函数中定义了类 A 的指针 p 指向类 B。根据基类中的“virtual void func1()”知道 A 中的 func1 为虚函数,执

    44、行“p-func1();”语句,通过指针变量调用此虚函数,此时调用的就是指针变量指向的同名函数,即派生类的 func1 函数,输出 B1。而 fun2 不是虚函数,所以执行“p-func2();”输出为 A2。23.下列关于 C+流的说明中,正确的是( )。(分数:2.00)A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现 B.从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作C.cin 是一个预定义的输出流类D.输出流有一个名为 open 的成员函数,其作用是生成一个新的流对象解析:解析 选项 B)中,从流中获取数据的操作称提取操作,向流中添加数据的操作称为插入操

    45、作:选项 C)中,cin 是一个预定义的输入流对象:选项 D)中,open 的成员函数只能打开文件;故只有选项 A)的叙述是正确的。24.在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态,其中只能用于检测刚进的操作是否失败的函数名是( )。(分数:2.00)A.fail B.eofC.badD.good解析:解析 可以用文件流对象的成员函数来判别文件流当前的状态:fail,刚进行的操作失败时返回 true,否则返回 false:eof,进行输入操作时,若文件到达文件尾返回 true,否则返回 false;bad,如果进行了非法操作返回 true,否则返回 false;good,刚进行的操作成功时返回 true,否则返回 false。25.下列符号中可以用作 C+标识符的是( )。(分数:2.00)A._radius B.foobarC.elseD.3room解析:解析 此题考查的是标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过 31 个字符;标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。符合这些要求的只有 A)。26.类模板的使用实际上是将类模板实例化成一个具体的( )。(分数:2.00)A.类 B.对象C.函数D.模板类解析:解析 类模板


    注意事项

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




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

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

    收起
    展开