ImageVerifierCode 换一换
格式:DOC , 页数:29 ,大小:88KB ,
资源ID:1324451      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1324451.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

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

1、二级 C+笔试-176 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.若执行语句:coutsetfill(*)setw(10)123“OK“endl 后将输出( )。(分数:2.00)A.*1230KB.123*OKC.*123*OKD.123*OK*2.已知 n 是一个 int 型变量,下列语句中错误的是( )。(分数:2.00)A.long*p=new longn;B.long pn;C.long*p=newl ong(n);D.long p10;3.有下列程序:#includeiostreamusing namespace std;

2、c1ass TestClassprivate;char c;public:TestClass(char n):c(n)TeStClass()coutc;class TestClass1:public TestClassprivate:char c;public;TestClass1(char n):TestClass(n+1),c(n)TestClass1()coutC;int main()TestClass1obj(x);return 0;执行上面的程序将输出( )。(分数:2.00)_4.有如下语句序列:int k=0:dok+=5;cout$; while(k19);while(k-0)

3、cout*执行上面的语句序列输出字符“$”和“*”的个数分别是( )。(分数:2.00)_5.在面向对象方法中,( )描述的是具有相似属性与操作的一组对象。(分数:2.00)A.属性B.事件C.方法D.类6.关于纯虚函数,下列表述正确的是( )。(分数:2.00)A.纯函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0”结束C.派生类必须实现基类的纯虚函数D.含纯虚函数的类不可能是派生类7.有下列程序:#includeiostreamusing namespace std;class TestClasspublic:virtual void fun1()cout“f

4、un1TestClass“;virtual void fun2()cout“fun2TestClass“;class TeStClaSS1:public TestClassvoid fun()cout“fun1TestClass1“;void fun2(tnt x)cout“fun2TestClass1“;int main()TeStClass obj1,*p;TestClaSS1 obj2;p=p-fun1();p-fun2();retrn 0;执行后的输出结果是( )。(分数:2.00)A.fun1TeStClass1 fun2TeStClassB.fun1TestClass1 fun2T

5、estClass1C.fun1TeStClass fun2TeStClassD.fun1TestClaSSfun2TestClaSS18.下列符号中可以用作 C+标识符的是( )。(分数:2.00)A._radiusB.foobarC.elseD.3room9.结构化程序设计主要强调的是( )。(分数:2.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性10.关于调用模板函数时模板实参的使用,下列表述中正确的是( )。(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它

6、们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略11.有下列程序:#inCludeiostreamusing namespace std;c1ass Apubic:virmal void func1()cout“A1“;void func2()cout“A2“;c1ass B:public ApublIc:void func1()cout“B1“;void func2()cout“B2“;int main()A*p=new B;p-func1();p-func2();return 0;运

7、行此程序后,屏幕上将显示输出( )。(分数:2.00)A.B182B.A1A2C.B1A2D.A18212.阅读下列程序:#includeiostream.hvoid 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,1,1D.1

8、00,0,013.下列关于 C+流的说明中,正确的是( )。(分数:2.00)A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现B.从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作C.cin 是一个预定义的输出流类D.输出流有一个名为 open 的成员函数,其作用是生成一个新的流对象14.设 R 是一个 2 元关系,S 是一个 3 元关系,则下列运算中正确的是( )。(分数:2.00)A.R-SB.RSC.RSD.RS15.按照“先进后出”原则组织数据的数据结构是( )。(分数:2.00)A.队列B.栈C.双向链表D.二叉树16.结构化程序设计的核心和基础是( )。

9、(分数:2.00)A.结构化分析方法B.结构化设计方法C.结构化设计理论D.结构化编程方法17.有如下类声明:c1ass TeStClassint i;private:int j;protected:int k;public:int m,n;其中,私有成员的数量为( )。(分数:2.00)A.0B.1C.2D.318.在进行了任何 C+流的操作后,都可以用 C+流的有关成员函数检测流的状态,其中只能用于检测刚进的操作是否失败的函数名是( )。(分数:2.00)A.failB.eofC.badD.good19.有下列程序:#includeiostream.husing namespace std

10、;classBaseprotected:int i;public:int j;classDerived:public Baseint m;public:intn;int main()Derived d;d.i=0; 1d.j=0; 2d.m=0; 3d.n=0; 4return 0;其中主函数中有两个赋值语句有错,这两个错误的赋值语句是( )。(分数:2.00)A.1和2B.1)和3C.2和3D.2和420.树是结点的集合,它的根结点的数目是( )。(分数:2.00)A.有且只有 1 个B.1 或多于 1C.0 或 1D.至少有 2 个21.有下列二叉树,对此二叉树前序遍历的结果为( )。(分

11、数:2.00)A.B.C.D.22.有如下函数模板定义:templateclass TT func(T x,T y)return x*x+y*y;在下列对 func 的调用中,错误的是( )。(分数:2.00)A.fimc(3,5);B.func(3.0,5.5);C.func(3,5.5);D.funcint(3,5.5);23.常采用的两种存储结构是( )。(分数:2.00)A.顺序存储结构和链式存储结构B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构24.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查

12、找值为 90的元素时,查找成功的比较次数为( )。(分数:2.00)A.1B.2C.3D.925.假定要对类 AB 定义加号操作符重载成员函数,实现两个 AB 类对象的加法,并返回相加结果,则该成员数的声明语句为( )。(分数:2.00)A.AB operator+(ABclass Basepublic:Base()cout“BB“; f(); void f()cout“Bf“;class Derived:public Basepublic:Derived()cout“DD“;void f()cout“Dff;int main()Derived d;return 0;执行上面的程序将输出( )

13、。(分数:2.00)A.BBBfDDB.BBDfDDDfC.DDD.DDBBBf27.已知枚举类型定义语句为:enum TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10;则下列叙述中错误的是( )。(分数:2.00)A.枚举常量 NAME 的值为 1B.枚举常量 NUMBER 的值为 1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 1028.有下列程序:#includeiosteram.husing namespace std;class Stackpublic:Stack(unsignedn=10):size(n)rep_=new int

14、size;top=O;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+;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=1;i3;i+)c

15、outs2.pop(),;s2.push(6);s1.push(7);while(!s2.isEmpty()couts2.pop(),;return 0;执行上面程序的输出结果是( )。A) 4,3,2,1,B.4,3,6,7,2,1,C.4,3,6,2,1,D.1,2,3,4,29.需求分析阶段的任务是( )。(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能30.有下列程序:#includeiostreamusing namespace Std;class Testpublic:Test() n+=2;Test() n-=3;static int getNu

16、m()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=331.下列关于虚函数的描述中,正确的是( )。(分数:2.00)A.虚函数是一个 static 类型的成员函数B.虚函数是一个非成员函数C.基类中采用 virtual 说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual 说明D.派生类中的虚函数与基类中相同原型的虚

17、函数具有不同的参数个数或类型32.要定义一个具有 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,0;33.下列运算符中全都可以被友元函数重载的是( )。(分数:2.00)_34.重载输入流运算符必须使用的原型为( )。(分数:2.00)A.istreamB.istreamC.istream operator(istrea

18、m,类名D.类名operator(istream35.类模板的使用实际上是将类模板实例化成一个具体的( )。(分数:2.00)A.类B.对象C.函数D.模板类二、填空题(总题数:15,分数:30.00)36.在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,并且每一个 1 实际上对应一个处理模块。(分数:2.00)填空项 1:_37.结构化程序设计的 3 种基本结构分别是顺序、选择和 1。(分数:2.00)填空项 1:_38.二分法查找仅限于这样的表:表中的数据元素必须有序,其存储结构必须是 1。(分数:2.00)填空项 1:_39.一个模块直接调用的其他模块的个数称为 1。(分

19、数: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 std;class TestClasspublic:int a,b;TestCla

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

21、程序的横线处填写正确的语句。#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 samplepublic:sample();_;(分数:2.00)填空项 1:_48.请将

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

23、t 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+笔试-176 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.若执行语句:coutsetfill(*)setw(10)123“OK“en

24、dl 后将输出( )。(分数:2.00)A.*1230K B.123*OKC.*123*OKD.123*OK*解析:解析 cout.fill()用于设置或返回输出的填充字符,默认是空格,fill()函数的设置一直有效,直到下一个 fill()函数改变该值为止。setw(int n)作用是设置输入输出的宽度,此设置只对一次输入或输出效,在完成一次数据的输入或输出后,宽度设置自动恢复为 0。注意:默认为输出数据在指定宽度内右对齐。2.已知 n 是一个 int 型变量,下列语句中错误的是( )。(分数:2.00)A.long*p=new longn;B.long pn; C.long*p=newl

25、ong(n);D.long p10;解析:解析 此题考查的是数组、指针及关键字 new。说明一维数组的一般形式是:数组类型数组名数度;其中数组长度必须是整型常量或常量表达式。选项 B)中,n 是一个变量,不能做数组的长度,故选项 B)错误;其他选项均正确。3.有下列程序:#includeiostreamusing namespace std;c1ass TestClassprivate;char c;public:TestClass(char n):c(n)TeStClass()coutc;class TestClass1:public TestClassprivate:char c;publ

26、ic;TestClass1(char n):TestClass(n+1),c(n)TestClass1()coutC;int main()TestClass1obj(x);return 0;执行上面的程序将输出( )。(分数:2.00)_解析:解析 题目中程序 TestClass 为基类,TestClass1 为派生类。在主函数中定义 TestClass1 对象obj(x),“TestClass1(char n):TestClass(n+1),c(n)4.有如下语句序列:int k=0:dok+=5;cout$; while(k19);while(k-0)cout*执行上面的语句序列输出字符“

27、$”和“*”的个数分别是( )。(分数:2.00)_解析:解析 此题首先执行语句 dok+=5;cout$;5.在面向对象方法中,( )描述的是具有相似属性与操作的一组对象。(分数:2.00)A.属性B.事件C.方法D.类 解析:解析 类(calss)描述的是具有相似属性与操作的一组对象,而一个具体对象则是其对应类的一个实例。6.关于纯虚函数,下列表述正确的是( )。(分数:2.00)A.纯函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0”结束 C.派生类必须实现基类的纯虚函数D.含纯虚函数的类不可能是派生类解析:解析 纯虚函数是在声明虚函数时被“初始化”为 0

28、的虚函数。纯虚函数没有函数体,所以选项A)和选项 C)不正确。纯虚函数的作用是在基类中为其派生类保留一个函数名字。所以选项 D)错误。7.有下列程序:#includeiostreamusing namespace std;class TestClasspublic:virtual void fun1()cout“fun1TestClass“;virtual void fun2()cout“fun2TestClass“;class TeStClaSS1:public TestClassvoid fun()cout“fun1TestClass1“;void fun2(tnt x)cout“fun2

29、TestClass1“;int main()TeStClass obj1,*p;TestClaSS1 obj2;p=p-fun1();p-fun2();retrn 0;执行后的输出结果是( )。(分数:2.00)A.fun1TeStClass1 fun2TeStClass B.fun1TestClass1 fun2TestClass1C.fun1TeStClass fun2TeStClassD.fun1TestClaSSfun2TestClaSS1解析:解析 TestClass 为基类,TestClass1 是 TestClass 的派生类。基类中的 fun1 和 fun2 被定义为虚函数,C

30、+规定,当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数,所以派生类中的 fun1 和 fun2 也是虚函数。本题从 main 主函数入手,首先定义了 TestClass 类型的对象 ob1和指针 p,然后又定义了 TestClass1 的对象 obj2。指针指向对象 obj2,然后调用其成员函数 fun1(),即输出“fun1TesClass1”。多态性是在程序运行过程中才动态地确定操作指针指向的对象,“p-fun2();”语句中没有任何参数,并不是调用派生类中的 fun2(int x),而是调用其基类中的 fun2(),所以输出“fun2TestClass”。8.下列符

31、号中可以用作 C+标识符的是( )。(分数:2.00)A._radius B.foobarC.elseD.3room解析:解析 此题考查的是标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过 31 个字符;标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。符合这些要求的只有 A)。9.结构化程序设计主要强调的是( )。(分数:2.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序的易读性 解析:解析 程序不光是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程

32、序,因此程设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。10.关于调用模板函数时模板实参的使用,下列表述中正确的是( )。(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略 解析:解析 以下情况模板实参不能省略:从模板函数实参表获得的信息有矛盾:需要获得特定类型的返回值,而不管返回值类型如何:虚拟类型的参数没有出现在

33、模板形参表中;函数模板含有常规形参。11.有下列程序:#inCludeiostreamusing namespace std;c1ass Apubic:virmal void func1()cout“A1“;void func2()cout“A2“;c1ass 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.B182B.A1A2C.B1A2 D.A182解析:解析 程序

34、中 B 为 A 的派生类,由主函数入手,主函数中定义了类 A 的指针 p 指向类 B。根据基类中的“virtual void func1()”知道 A 中的 func1 为虚函数,执行“p-func1();”语句,通过指针变量调用此虚函数,此时调用的就是指针变量指向的同名函数,即派生类的 func1 函数,输出 B1。而fun2 不是虚函数,所以执行“p-func2();”输出为 A2。12.阅读下列程序:#includeiostream.hvoid main()int i,row=0,column=0,min;static int a33=100,28,72,-30,2,100;min=a0

35、0;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,2 C.100,1,1D.100,0,0解析:解析 该程序是找到数组 a 中的最小值,然后输出其数值及行、列。首先将 min 的值赋值为 a 中的第一行第一列的数值。然后在 for 两层循环中利用 if 语句进行大小比较,求出数组最小值,即-100。它的位置为第二行,第三列。标识由 0 开始计数,所以是 1,2。13.下列关于 C+流的

36、说明中,正确的是( )。(分数:2.00)A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现 B.从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作C.cin 是一个预定义的输出流类D.输出流有一个名为 open 的成员函数,其作用是生成一个新的流对象解析:解析 选项 B)中,从流中获取数据的操作称提取操作,向流中添加数据的操作称为插入操作:选项 C)中,cin 是一个预定义的输入流对象:选项 D)中,open 的成员函数只能打开文件;故只有选项 A)的叙述是正确的。14.设 R 是一个 2 元关系,S 是一个 3 元关系,则下列运算中正确的是( )。(分数:2.00

37、)A.R-SB.RS C.RSD.RS解析:解析 关系的交()、并()和差(-)运算要求两个关系是同元的,显然作为二元的 R 和三元 S 只能做笛卡儿积运算。15.按照“先进后出”原则组织数据的数据结构是( )。(分数:2.00)A.队列B.栈 C.双向链表D.二叉树解析:解析 栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,而栈底元素是最后被删除的栈,是按“先进后出”的原则组织数据的。16.结构化程序设计的核心和基础是( )。(分数:2.00)A.结构化分析方法B.结构化设计方法C.

38、结构化设计理论 D.结构化编程方法解析:解析 结构化程序设计的核心和基础是结构化设计理论,其中包括结构化分析方法、结构化设计方法和结构化编程方法。17.有如下类声明:c1ass TeStClassint i;private:int j;protected:int k;public:int m,n;其中,私有成员的数量为( )。(分数:2.00)A.0B.1C.2 D.3解析:解析 首先声明为 private 的“private:intj;”,中 j 为私有成员。然后在类中没有指定,系统默认为私有。即“int i;”中的 i 也是私有成员。所以本题中的私有成员数量为 2。18.在进行了任何 C+

39、流的操作后,都可以用 C+流的有关成员函数检测流的状态,其中只能用于检测刚进的操作是否失败的函数名是( )。(分数:2.00)A.fail B.eofC.badD.good解析:解析 可以用文件流对象的成员函数来判别文件流当前的状态:fail,刚进行的操作失败时返回true,否则返回 false:eof,进行输入操作时,若文件到达文件尾返回 true,否则返回 false;bad,如果进行了非法操作返回 true,否则返回 false;good,刚进行的操作成功时返回 true,否则返回 false。19.有下列程序:#includeiostream.husing namespace std;

40、classBaseprotected:int i;public:int j;classDerived:public Baseint m;public:intn;int main()Derived d;d.i=0; 1d.j=0; 2d.m=0; 3d.n=0; 4return 0;其中主函数中有两个赋值语句有错,这两个错误的赋值语句是( )。(分数:2.00)A.1和2B.1)和3 C.2和3D.2和4解析:解析 此题考查的是类和派生类的访问权限。类 Derived 公有继承类 Base,所以 d 对基类 Base成员的访问权限不变。因数据成员 i 为保护,故不能通过对象访问:派生类 Deri

41、ved 中 m 变量为私有,同样不能通过对象访问,所以1、3错误。20.树是结点的集合,它的根结点的数目是( )。(分数:2.00)A.有且只有 1 个B.1 或多于 1C.0 或 1 D.至少有 2 个解析:解析 树具有明显的层次关系,即树是一种层次结构。在树结构中,根结点在第一层上。当树为非空时,树中有且只有一个根结点:当树为空时,树中根结点的数目为 0。21.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2.00)A.B.C.D. 解析:解析 对二叉树的前序遍历是指先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。记住

42、三种遍历的顺序:前序,访问根按前序遍历左子树按前序遍历右子树:中序,按中序遍历左子树访问根按中序遍历右子树:后序,按后序遍历左子树按后序遍历右子树访问根。22.有如下函数模板定义:templateclass TT func(T x,T y)return x*x+y*y;在下列对 func 的调用中,错误的是( )。(分数:2.00)A.fimc(3,5);B.func(3.0,5.5);C.func(3,5.5); D.funcint(3,5.5);解析:解析 选项 C)中两个实参的实际类型不同而未进行转换,会出现错误。23.常采用的两种存储结构是( )。(分数:2.00)A.顺序存储结构和链

43、式存储结构 B.散列方法和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构解析:解析 线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。24.已知一个有序线性表为(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,这时两者相等,即查找功。25.假定要对类 AB 定

44、义加号操作符重载成员函数,实现两个 AB 类对象的加法,并返回相加结果,则该成员数的声明语句为( )。(分数:2.00)A.AB operator+(ABclass Basepublic:Base()cout“BB“; f(); void f()cout“Bf“;class Derived:public Basepublic:Derived()cout“DD“;void f()cout“Dff;int main()Derived d;return 0;执行上面的程序将输出( )。(分数:2.00)A.BBBfDD B.BBDfDDDfC.DDD.DDBBBf解析:解析 此题考查的是类的继承和派

45、生。派生类执行构造函数的一般次序:首先调用基类构造函数;然后调用成员对象的构造函数;最后是派生类构造函数中的内容。题目中定义派生类对象 d 时,先调用基类 Base 的构造函数,输出 BBBf,然后调用派生类 Derived 的构造函数,输出 DD。27.已知枚举类型定义语句为:enum TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10;则下列叙述中错误的是( )。(分数:2.00)A.枚举常量 NAME 的值为 1 B.枚举常量 NUMBER 的值为 1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 10解析:解析 此题考查的是 C+语言的数据类型。第一个枚举常量的值为 0;允许程序显示的定义中指定部分或全部枚举常量的值,枚举常量默认时,在前一枚举常量值的基础上以此增 1。28.有下列程序:#includeiosteram.husing namespace std;class Stackpublic:Stack(unsignedn=10):

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