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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C+-176 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.下列叙述中正确的是_。(分数:2.50)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对2.下列线性链表的叙述中,正确的是_。(分数:2.50)A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素D.以上三种说法都不对3.下列关于二叉树的叙述中,正确的是_。(分数:2.50)A.叶

2、子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件),下面属于应用软件的是_。(分数:2.50)A.学生成绩管理系统B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统5.某系统总体结构图如下图所示: (分数:2.50)A.7B.6C.3D.26.程序调试的任务是_。(分数:2.50)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误7.下列关于数据库设计的叙述中,正确的是_。(分数

3、:2.50)A.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典8.数据库系统的三级模式不包括_。(分数:2.50)A.概念模式B.内模式C.外模式D.数据模式9.有三个关系 R、S 和 T 如下: (分数:2.50)A.自然连接B差C交D并10.下列选项中属于面向对象设计方法主要特征的是_。(分数:2.50)A.继承B.自顶向下C.模块化D.逐步求精11.C+浯言是从早期的 C 语言逐渐发展演变而来。与 C 语言相比,它在求解问题方法上进行的最大改进是_。(分数:2.50)A.面向过程B.面向对象C.安全性D.复用性12.以

4、下选项中,合法的用户标识符是_。(分数:2.50)A.charB._2TestC.D/maxD.dat13.执行下列 3 条语句后,指针 cp 将指向_。 int a, b, *cp= int *ptr=cp; ptr=(分数:2.50)ApBcCbDa14.下列对变量的引用中,错误的是_。(分数:2.50)A.int a; int B.char a; char C.int a; int p=a;D.float a; float 15.下列列字符数组进行初始化的语句中,正确的是_。(分数:2.50)A.char a=“Hello“;B.char a=“H“, “e“, “l“, “l“, “o

5、“;C.char a5=“Hello“;D.char a25=“Hello“, “World“;16.在对函数进行原型声明时,下列语法成分中,不需要的是_。(分数:2.50)A.函数返回类型B.函数参数列表C.函数名D.函数体17.下列关于 this 指针的描述中,正确的是_。(分数:2.50)A.类的成员函数都有 this 指针B.类的友元函数都有 this 指针C.任何与类相关的函数都有 this 指针D.类的非静态成员函数都有 this 指针18.有如下类定义: class AA int a; public: AA(int n=0):a(n) ; Class BB:public AA p

6、ublic: BB(int n)_ ; 其中横线处缺失部分是_。(分数:2.50)A.:a(n)B.:AA(n)C.a(n);D.a=n19.为类 Matrix 重载下列运算符时,只能作为 Matrix 类成员函数重载的运算符是_。(分数:2.50)A.+B.=C.D.+20.下列关于模板的描述中,错误的是_。(分数:2.50)A.类模板的成员函数都是模板函数B.函数模板是一种参数化类型的函数C.满足一定条件时可以省略模板实参D.模板形参只能由关键词 typename 声明21.要利用 C+流实现输入/输出的各种格式控制中,必须在持续中包含的头文件是_。(分数:2.50)A.fstreamB.

7、istreamC.ostreamD.iomanip22.在下列选项中,不是 C+关键字的是_。(分数:2.50)A.classB.functionC.friendD.virtual23.若有定义语句“int i=2, j=3;”,则表达式 i/j 的结果是_。(分数:2.50)A.0B.0.7C.0.66667D.0.6666666724.下列语句中,与语句“n=(ab?(bc?1:0):0);”的功能等价的是_。(分数:2.50)A.if(a=b) n=0;B.if(ab)|(bc) n=1; else n=0;C.if(ab)if(bc) n=1; else n=0; else n=0;D

8、.if(ab) n=1; else if(b=c) n=1;else if(bc)n=1; else n=0;25.有如下语句序列: int x=100, coutx“-“rendl; 已知其中变量 X 的地址为 0012FF7C,则执行该语句序列的输出结果为_。(分数:2.50)A.100100B.1000012FF7CC.0012FFTC100D.0012FFTC0012FFTC26.已知函数 f 的原型是“void f(int * x, int ”,下列调用语句中,正确的是_。(分数:2.50)A.f(v1, v2);B.f(v1, C.f(D.f(27.要定义一个引用变量 P,使之引用

9、类 MyClass 的一个对象,正确的定义语句是_。 class Sample public: Sample(int x):ref(x) / Private: Sample():ref(0) / Static int val=5; / Const int ref; / ; 上述程序段中,错误的语句是_。(分数:2.50)A.B.C.D.28.有如下两个类定义: class B private:void funl() protected:void fun2() public:void fun3() ; class D:public B protected:void fun4() ; 若 obj

10、是类 D 的对象,则下列语句中不违反访问控制权限的是_。(分数:2.50)A.obj.fun1();B.obj.fun2();C.obj.fun3();D.obj.fun4();29.有如下类定义: Class MyClass public: _ private: int data; 若要为 MyClass 类重载流输入运算符,使得程序中可以“cinobj;”形式输入 MyClass 类的对象obj,则横线处的声明语句应为_。(分数:2.50)A.friend istreamB.friend istreamC.istreamD.istream30.已知主函数中通过如下语句序列实现对函数模板 s

11、wap 的调用_。 int a10, b10; swap(a, b, 10);(分数:2.50)A.templatetypename Tvoid swap(T a, T b, int size);B.templatetypename Tvoid swap(int size, T a, T b);C.templatetypename T1, typename T2void swap(T1 a, T2 b, int size);D.templateclass T1, class T2void swap(T1 a, T2 b, int size);31.若目前 D 盘根目录下并不存在 test.tx

12、t 文件,则下列打开文件方式不会自动创建 test.txt 文件的是_。(分数:2.50)A.ifstream fin; fin.open(“d:/test.txt“, ios_base:in);B.ifstream fio; fio.open(“d:/test.txt“, ios_base:out);C.ofstream fout; fout.open(“d:/test.txt“, ios_base:out);D.ofstream fout; fout.open(“d:/test.txt“, ios_base:app);32.已知类 MyClass 的定义如下: class Base pub

13、lic: void functionl(Base static void function2(Base void function3()coutdata; static void function4()coutdata; private: int data; ; 其中有编译错误的函数是_。(分数:2.50)A.function1B.function2C.function3D.function433.有如下程序: #includeiostream using namespace std; class MyClass public: MyClass() cout“*“; MyClass(MyCla

14、ss MyClass() cout“; ; int main() HyClass a; HyClass b(a); return 0; 运行这个程序的输出结果是_。(分数:2.50)A.*#B.#*C.*#D.#*34.已知类 MyClass 的定义如下: class HyClass public: HyClass(int d)data=d; NyClass() private: int data; ; 下列对 MyClass 类对象数组的定义和初始化语句中,正确的是_。(分数:2.50)A.MyClass arrays2;B.MyClass arrays2=MyClass(5);C.MyCl

15、ass arrays2=MyClass(5), MyClass(6);D.MyClass*arrays2=new MyClass(2);35.有如下程序: class Base public: int data; ; class Derived1:public Base; class Derived2:protected Base; int main() Derived1 d1; Derived2 d2; d1.data=0; / d2.data=0; / return 0; 下列关于程序编译的描述中,正确的是_。(分数:2.50)A.皆无编译错误B.有编译错误,无编译错误C.无编译错误,有编

16、译错误D.皆有编译错误36.有如下程序: #includeiostream using naraespace std; class Base1 public: Base1(int d)coutd; Base1() ; class Base2 public: Base2(int d)coutd; Base2() ; class Derived:public Base1, Base2 public: Derived(int a, int b, int c, int d):Base1(b), Base2(a), b1(d), b2(c) private: int b1; int b2; ; int

17、main() Derived d(1, 2, 3, 4); retuen 0; 运行时的输出结果是_。(分数:2.50)A.1234B.2134C.12D.2137.有如下程序: #includeiostream using namespace std; class Base public: virtual void function1()cout“0“; void function2()cout“1“; ; class Derived:public Base public: void function1()cout“2“; void function2()cout“3“; ; int mai

18、n() Base*p=new Derived(); p-function1(); p-function2(); return 0; 运行时的输出结果是_。(分数:2.50)A.01B.21C.03D.2338.若为 Fraction 类重载前增 1 运算符“+”,应在类体中将其声明为_。(分数:2.50)A.FractionB.FractionC.friend FractionD.friend Fraction39.有如下程序: #includeiostream #includeiomnaip using namespace std; int main() coutsetfill(“*“)se

19、tw(6)123456; return 0; 运行时的输出结果是_。(分数:2.50)A.*123*456B.*123456*C.*123456D.12345640.有如下程序: #includeiostream using namespace std; void function2(int n); void function1(int n) if(n=0)return; function2(n-2); void function2(int n) if(n=0)return; function1(n-1); int main() function1(5); return 0; 运行时的输出结果

20、是_。(分数:2.50)A.function1 运行 1 次,function2 运行 2 次B.function1 运行 2 次,function2 运行 1 次C.function1 运行 2 次,function2 运行 3 次D.function1 运行 2 次,function2 运行 2 次二级 C+-176 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.下列叙述中正确的是_。(分数:2.50)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对 解析:解析 所谓算法

21、是指解题方案的准确而完整的描述。但算法不等于程序,也不等于计算方法。故A 项错误。设计算法时要考虑可行性、确定性、有穷性和拥有足够的情报。B、C 皆错误,故选 D。2.下列线性链表的叙述中,正确的是_。(分数:2.50)A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素 D.以上三种说法都不对解析:解析 在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。故 A、B

22、 错误。线性链表在插入与删除过程中不发生数据元素移动的现象,只需改变有关结点的指针即可,故 C 正确。3.下列关于二叉树的叙述中,正确的是_。(分数:2.50)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个 C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍解析:解析 概念理解题。在任意一棵二叉树中,度为 0 的结点(即叶子结点)总比度为 2 的结点多一个,故 B 正确。4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件),下面属于应用软件的是_。(分数:2.50)A.学生成绩管理系统 B.C 语言编译程序C.

23、UNIX 操作系统D.数据库管理系统解析:解析 应用软件是为解决特定领域的应用而开发的软件。例如,事务处理软件、工程与科学计算软件、实时处理软件、嵌入式软件、人工智能软件等应用性质不同的各种软件。A 止确。5.某系统总体结构图如下图所示: (分数:2.50)A.7B.6C.3 D.2解析:解析 树的最大层次称为树的深度。图中的系统总体结构有 3 层,故深度为 3。6.程序调试的任务是_。(分数:2.50)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误 解析:解析 程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。

24、故选 D。7.下列关于数据库设计的叙述中,正确的是_。(分数:2.50)A.在需求分析阶段建立数据字典 B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典解析:解析 数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善的。8.数据库系统的三级模式不包括_。(分数:2.50)A.概念模式B.内模式C.外模式D.数据模式 解析:解析 数据库系统的三级模式分别是概念级模式、内部级模式与外部级模式,A、B、C 正确,D 错误。9.有三个关系 R、S 和 T 如下: (分数:2.50)A.自然连接B差 C交D并解析:解析 图中 R 的关系与 S 的

25、关系相差 T,故由关系 R 和 S 得到关系 T 的操作时差。10.下列选项中属于面向对象设计方法主要特征的是_。(分数:2.50)A.继承 B.自顶向下C.模块化D.逐步求精解析:解析 而向对象程序设计方法最重要的特性是继承、多态和封装。11.C+浯言是从早期的 C 语言逐渐发展演变而来。与 C 语言相比,它在求解问题方法上进行的最大改进是_。(分数:2.50)A.面向过程B.面向对象 C.安全性D.复用性解析:解析 C 语言是面向过程的编程语青,C+和 C 的本质区别是 C+引入了基于对象和面向对象编程的范式。12.以下选项中,合法的用户标识符是_。(分数:2.50)A.charB._2T

26、est C.D/maxD.dat解析:解析 标识符是一个以字母或下画线开头的,由字母、数字、下画线组成的字符串;标识符不能与任意一个关键字同名;标识符中的字母区分大小写。选项 A 是关键字,选项 C、D 均含有非下划线的特殊符号。13.执行下列 3 条语句后,指针 cp 将指向_。 int a, b, *cp= int *ptr=cp; ptr=(分数:2.50)ApBcCbDa 解析:解析 只有第一条语句对指针 cp 赋值,使其指向 a。14.下列对变量的引用中,错误的是_。(分数:2.50)A.int a; int B.char a; char C.int a; int p=a; D.fl

27、oat a; float 解析:解析 声明引用时,必须同时对其进行初始化。15.下列列字符数组进行初始化的语句中,正确的是_。(分数:2.50)A.char a=“Hello“; B.char a=“H“, “e“, “l“, “l“, “o“;C.char a5=“Hello“;D.char a25=“Hello“, “World“;解析:解析 选项 A、C、D 中均为字符串,除了组成的字符外,还带有字符串结尾符“/0“,因此,C 和D 由于数组元素不够,均会产生溢出错误。选项 B 中,a 为二维数组,但由于未指定下标,系统无法判断该数组的具体组成结构。16.在对函数进行原型声明时,下列语法

28、成分中,不需要的是_。(分数:2.50)A.函数返回类型B.函数参数列表C.函数名D.函数体 解析:解析 该题考查的内容是函数的声明问题,考生必须注意:函数声明的形式为: 函数返回类型函数名(函数参数列表);17.下列关于 this 指针的描述中,正确的是_。(分数:2.50)A.类的成员函数都有 this 指针 B.类的友元函数都有 this 指针C.任何与类相关的函数都有 this 指针D.类的非静态成员函数都有 this 指针解析:解析 该题考查的内容是 this 指针的用法,考生必须清楚:静态成员函数没有 this 指针。因为类只有一个静态成员函数实例,所以 this 指针没有什么意义

29、。在静态成员函数中使用 this 指针会引起编译错误。18.有如下类定义: class AA int a; public: AA(int n=0):a(n) ; Class BB:public AA public: BB(int n)_ ; 其中横线处缺失部分是_。(分数:2.50)A.:a(n)B.:AA(n) C.a(n);D.a=n解析:解析 该题考查的内容是派生类的构造函数,考生应该掌握: 构造派生类的对象时,必须对基类数据成员、新增成员对象的数据成员和新增的其他数据成员进行初始化。派生类构造函数的一般格式如下: 派生类名:派生类名(总参数表):基类名 1(参数表 1), ; 基类名

30、n(参数表 n), 成员对象名 1(参数表 n+1), 成员对象名 m(参数表 n+m) 派生类构造函数体 19.为类 Matrix 重载下列运算符时,只能作为 Matrix 类成员函数重载的运算符是_。(分数:2.50)A.+B.= C.D.+解析:解析 赋值运算符也必须作为成员函数重载。一般情况下并不需要重载“=”,但若类中包含指向动态空间的指针时,就需要重载赋值运算符。20.下列关于模板的描述中,错误的是_。(分数:2.50)A.类模板的成员函数都是模板函数B.函数模板是一种参数化类型的函数C.满足一定条件时可以省略模板实参D.模板形参只能由关键词 typename 声明 解析:解析 该

31、题考查的内容是类模板以及函数模板,声明一个函数模板的格式是: template模板形参表声明函数声明 其中的模板形参表声明是由一个或多个模板形参组成的,如果是多个需要用逗号隔开。每个模板形参具有下面几种形式: (1)typename参数名; (2)class参数名; (3)类型修饰参数名。 因此 B 项是错误的。21.要利用 C+流实现输入/输出的各种格式控制中,必须在持续中包含的头文件是_。(分数:2.50)A.fstreamB.istreamC.ostreamD.iomanip 解析:解析 该题考查的是预定义流对象,iostream:使用 cin、cout 的预定义流对象进行针对标准设备的

32、 I/O 操作,必须包含此头文件。iomanlp:使用 setw、fixed 等大多数操作符,必须包含此头文件。因此选项 D 是正确的。22.在下列选项中,不是 C+关键字的是_。(分数:2.50)A.classB.function C.friendD.virtual解析:解析 该题考查的内容是关键字,考生应陔注意:标识符不能与关键字同名;标识符中的字母不区分大小写。该题 A、C、D 选项均含有非法标识,因此正确的答案是 D 选项。23.若有定义语句“int i=2, j=3;”,则表达式 i/j 的结果是_。(分数:2.50)A.0 B.0.7C.0.66667D.0.66666667解析:

33、解析 i,j 都是整型 int 数据,因而 i,j 的运算结果也是整型数据,由于取整得到 0,故 A 项是正确的。24.下列语句中,与语句“n=(ab?(bc?1:0):0);”的功能等价的是_。(分数:2.50)A.if(a=b) n=0;B.if(ab)|(bc) n=1; else n=0;C.if(ab)if(bc) n=1; else n=0; else n=0; D.if(ab) n=1; else if(b=c) n=1;else if(bc)n=1; else n=0;解析:解析 该题考查的内容是条件运算是 C+中唯一的三目运算,其使用格式为: 表达式 1?表达式 2:表达式

34、3 运算时,首先计算表达式 1,若其值非 0,则返回表达式 2的值,否则返回表达式 3的值。所以 C 是正确答案。25.有如下语句序列: int x=100, coutx“-“rendl; 已知其中变量 X 的地址为 0012FF7C,则执行该语句序列的输出结果为_。(分数:2.50)A.100100 B.1000012FF7CC.0012FFTC100D.0012FFTC0012FFTC解析:解析 x 为整型数据输出时输出它的值 100,r 的地址存放的是 x 的地址数据,输出 r 时为 x 的值。因此 A 项是正确的。26.已知函数 f 的原型是“void f(int * x, int ”

35、,下列调用语句中,正确的是_。(分数:2.50)A.f(v1, v2);B.f(v1, C.f( D.f(解析:解析 该题考查的是指针和地址,考生应该注意以下几个问题: 一元(单目)运算符 / Const int ref; / ; 上述程序段中,错误的语句是_。(分数:2.50)A.B.C. D.解析:解析 该题考查的是静态数据成员,静态数据成员必须进行初始化,而且它的仞始化与一般的数据成员初始化不同。它的初始化格式为: 数据类型类名:静态数据成员名=值; 因此 C 项是正确的。28.有如下两个类定义: class B private:void funl() protected:void fu

36、n2() public:void fun3() ; class D:public B protected:void fun4() ; 若 obj 是类 D 的对象,则下列语句中不违反访问控制权限的是_。(分数:2.50)A.obj.fun1();B.obj.fun2(); C.obj.fun3();D.obj.fun4();解析:解析 该题考查的内容是派生类对基类成员的访问,考生首先要清楚: (1)公有继承(public)不更改派生类中基类成员的权限; (2)私有继承(private)把派生类中基类成员的权限更改为私有成员(privatc); (3)保护继承(protected)更改派生类中基

37、类成员的权限为保护成员(protected)。 因此正确答案为 B。29.有如下类定义: Class MyClass public: _ private: int data; 若要为 MyClass 类重载流输入运算符,使得程序中可以“cinobj;”形式输入 MyClass 类的对象obj,则横线处的声明语句应为_。(分数:2.50)A.friend istreamB.friend istream C.istreamD.istream解析:解析 在 C+中,C+流输入运算符“”和输出运算符“”只能重载为非类成员函数,一般重载为友元函数。重载 C+流输入运算符“”和输出运算符“”的格式为: f

38、riend istream friend ostream30.已知主函数中通过如下语句序列实现对函数模板 swap 的调用_。 int a10, b10; swap(a, b, 10);(分数:2.50)A.templatetypename Tvoid swap(T a, T b, int size); B.templatetypename Tvoid swap(int size, T a, T b);C.templatetypename T1, typename T2void swap(T1 a, T2 b, int size);D.templateclass T1, class T2voi

39、d swap(T1 a, T2 b, int size);解析:解析 该题考查的内容是声明一个函数模板的格式是: template模板形参表声明函数声明 选项 A 是正确的。31.若目前 D 盘根目录下并不存在 test.txt 文件,则下列打开文件方式不会自动创建 test.txt 文件的是_。(分数:2.50)A.ifstream fin; fin.open(“d:/test.txt“, ios_base:in);B.ifstream fio; fio.open(“d:/test.txt“, ios_base:out); C.ofstream fout; fout.open(“d:/tes

40、t.txt“, ios_base:out);D.ofstream fout; fout.open(“d:/test.txt“, ios_base:app);解析:解析 该题考查的内容是文件流的建立。对于 ifstrcam,默认打开模式是ios_base:in。ifstream 只能用于输入,它没有提供任何用于输出的操作。打开 ifstream 文件流时,采用 ios_base:out、ios_base:app、ios_base:trunc、ios_base:ate 等这些与输出有关的打开模式是毫无意义的。32.已知类 MyClass 的定义如下: class Base public: void

41、 functionl(Base static void function2(Base void function3()coutdata; static void function4()coutdata; private: int data; ; 其中有编译错误的函数是_。(分数:2.50)A.function1B.function2C.function3D.function4 解析:解析 该题考查的内容是静态成员函数的相关知识,静态成员的引用不需要用对象名,静态成员函数也没有 this 指针。在静态成员函数的实现中不能直接引用类中说明的非静态成员,但可以引用类中说明的静态成员和类以外的函数和数

42、据。若静态成员函数中要引用非静态成员时,则可通过对象来引用。所以答案为 D。33.有如下程序: #includeiostream using namespace std; class MyClass public: MyClass() cout“*“; MyClass(MyClass MyClass() cout“; ; int main() HyClass a; HyClass b(a); return 0; 运行这个程序的输出结果是_。(分数:2.50)A.*#B.#*C.*#D.#* 解析:解析 该题考查的内容是构造函数和程序结束时析构函数的调用情况。考生应该清楚当对象被创建时系统会自动

43、调用构造函数,当程序结束对象被释放时,系统要调用析构函数。根据程序的执行顺序定义对象 a 以及对象 b,两次调用构造函数,当程序结束时亦两次调用析构函数。故正确答案是 D。34.已知类 MyClass 的定义如下: class HyClass public: HyClass(int d)data=d; NyClass() private: int data; ; 下列对 MyClass 类对象数组的定义和初始化语句中,正确的是_。(分数:2.50)A.MyClass arrays2;B.MyClass arrays2=MyClass(5);C.MyClass arrays2=MyClass(5

44、), MyClass(6); D.MyClass*arrays2=new MyClass(2);解析:解析 该题考查的内容是类对象数组的构造函数的调用情况。考生应该清楚当对象数组被创建时系统会自动调用构造函数,类的定义中构造函数为有参数的构造函数,所以在初始化时,对象也应含有参数,根据题目要求知,正确答案为 C。35.有如下程序: class Base public: int data; ; class Derived1:public Base; class Derived2:protected Base; int main() Derived1 d1; Derived2 d2; d1.dat

45、a=0; / d2.data=0; / return 0; 下列关于程序编译的描述中,正确的是_。(分数:2.50)A.皆无编译错误B.有编译错误,无编译错误C.无编译错误,有编译错误 D.皆有编译错误解析:解析 该题考查的内容是派生类的继承,考生应该掌握:只有公有成员才能被用户程序直接访问;私有成员定义了类的内部使用的数据和函数,私有成员只能被自己所属类的成员函数及友元函数访问;保护成员访问权限介于公有成员和私有成员之间,它在类的继承和派生中使用。36.有如下程序: #includeiostream using naraespace std; class Base1 public: Base

46、1(int d)coutd; Base1() ; class Base2 public: Base2(int d)coutd; Base2() ; class Derived:public Base1, Base2 public: Derived(int a, int b, int c, int d):Base1(b), Base2(a), b1(d), b2(c) private: int b1; int b2; ; int main() Derived d(1, 2, 3, 4); retuen 0; 运行时的输出结果是_。(分数:2.50)A.1234B.2134C.12D.21 解析:解析 该题考查的内容是派生类的构造函数。派生类对基类成员访问权限。考生应该注意成员初始化列表中基类名和成

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