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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

[计算机类试卷]国家二级(C++)笔试模拟试卷49及答案与解析.doc

1、国家二级( C+)笔试模拟试卷 49及答案与解析 1 已知一棵二叉树前序遍历和中序遍历分别为 ABDEGCFH和 DBGEACHF,则该二叉树的后序遍历为 ( A) GEDHFBCA ( B) DGEBHFCA ( C) ABCDEFGH ( D) ACBFEDHG 2 树是结点的集合,它的根结点数目是 ( A)有且只有 1 ( B) 1或多于 1 ( C) 0或 1 ( D)至少 2 3 如果进栈序列为 e1, e2, e3, e4,则可能的出栈序列是 ( A) e3, e1, e4, e2 ( B) e2, e4, e3, e1 ( C) e3, e4, e1, e2 ( D)任意顺序 4

2、 在设计程序时,应采纳的原则之一是 ( A)不限制 goto语句的使用 ( B)减少或取消注解行 ( C)程序越短越好 ( D)程序结构应有助于读者理解 5 程序设计语言的基本成分是数据成分、运算成分、控制成分和 ( A)对象成分 ( B)变量成分 ( C)语句成分 ( D)传输成分 6 下列叙述中,不属于软件需求规格说明书的作用的是 ( A)便于用户、开发入员进行理解和交流 ( B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 ( C)作为确认 测试和验收的依据 ( D)便于开发入员进行需求分析 7 下列不属于软件工程的 3个要素的是 1 ( A)工具 ( B)过程 ( C)方法

3、( D)环境 8 单个用户使用的数据视图的描述称为 ( A)外模式 ( B)概念模式 ( C)内模式 ( D)存储模式 9 将 E R图转换到关系模式时,实体与联系都可以表示成 ( A)属性 ( B)关系 ( C)键 ( D)域 10 SQL语言又称为 ( A)结构化定义语言 ( B)结构化控制语言 ( C)结构化查询语言 ( D)结构化操纵语言 11 C+语言对 C语言做了很多改进, C+语言相对于 C语言的最根本的变化是 ( A)增加了一些新的运算符 ( B)允许函数重载,并允许设置缺省参数 ( C)规定函数说明符必须用原型 ( D)引进了类和对象的概念 12 下列哪个是 C+语言的有效标

4、识符 ? ( A) No1 ( B) No.1 ( C) 12345 ( D) int 13 设有定义 int x; float y;,则 10+x+y值的数据类型是 ( A) int ( B) double ( C) float ( D)不确定 14 下列程序的执行结果为 #include iostream.h void main( ) int a=3,b=0; int * p=a+) a+; cout a end1; ( A) 10 ( B) 11 ( C) 12 ( D) 0 16 下列选项,不正确的是 ( A) for(int a=1; a =10; a+); ( B) int a=1

5、; do a+; while(a =10) ( C) int a=1; while(a =10) a+; ( D) for(int a=1; a =10; a+)a+; 17 下面关于数组的初始化正确的是 ( A) char str =a, b, c ( B) char str2=a, b, c ( C) char str23= a, b, c, d, e, f ( D) char str( )=a, b, c 18 下列程序的输出结果为 #include iostream h void main( ) char * a =“hello“, “the“, “world“; char * * p

6、a=a; pa+; cout *pa end1; ( A) hello ( B) the ( C) world ( D) hellotheworld 19 决定 C+语言中函数的返回值类型的是 ( A) return语句中的表达式类型 ( B)调用该函数时系统随机产生的类型 ( C)调用该函数时的主调用函数类型 ( D)在定义该函数时所指定的数据类型 20 下列程序的输出结果是 #include iostream h int min(int a, int b) if(a b) return a; else return b; return0; void main( ) cout min (1,

7、 min (2, 3) end1; ( A) 0 ( B) 1 ( C) 2 ( D) 3 21 下列程序的运行结果为 #include iostream h void print(double a) cout +a; void print(int a, int b) cout b a; void main( ) print(1 2); tout “; print(3, 4); ( A) 1.2 34 ( B) 2.2 34 ( C) 1.2 43 ( D) 2.2 43 22 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是 ( A)公有类型 ( B)私有

8、类型 ( C)保护类型 ( D)友元类型 23 在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是 ( A)友元函数 ( B)虚函数 ( C)构造函数 ( D)析构函数 24 类的析构函数的作用是 ( A)一般成员函数的初始化 ( B)类的初始化 ( C)对象的初始化 ( D)删除类创建的对象 25 下列说法正确的是 ( A) 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 ( B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 ( C)类的内联函数必须在类体内定义 ( D)类的内联函数必须在类体外通过加关键字 inline

9、定义 26 下面对静态数据成员的描述中,正确的是 ( A)静态数据成员可以在类体内进行初始化 ( B)静态数据成员不可以被类的对象调用 ( C)静态数据成员不能受 private控制符的作用 ( D)静态数据成员可以直接用类名调用 27 下面对于友元函数描述正确的是 ( A)友 元函数的实现必须在类的内部定义 ( B)友元函数是类的成员函数 ( C)友元函数破坏了类的封装性和隐藏性 ( D)友元函数不能访问类的私有成员 28 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是 ( A)派生类的对象可以赋给基类的对象 ( B)派生类的对象可以初始化基类的引用 ( C)派生类的对

10、象可以直接访问基类中的成员 ( D)派生类的对象的地址可以赋给指向基类的指针 29 下面程序的运行结果为 #include iostream h class A public: A( )cout “1“; A( )cout “2“; ; class B: public A public: B( )cout “3“; B( )cout “4“; ; void main( ) B b; ( A) 1234 ( B) 1324 ( C) 1342 ( D) 3142 30 下列 关于虚基类的描述,错误的是 ( A)设置虚基类的目的是为了消除二义性 ( B)虚基类的构造函数在非虚基类之后调用 ( C)

11、若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用 ( D)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数 31 下列关于多态性的描述,错误的是 ( A) C+语言中的多态性分为编译时的多态性和运行时的多态性 ( B)编译时的多态性可通过函数重载实现 ( C)运行时的多态性可通过模板和虚函数实现 ( D)实现运行时多态性的机制称为动态绑定 32 下列运算符中,在 C+语言中不能重载的是 ( A) * ( B) = ( C) : ( D) / 33 当使用 fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 ( A) ios:

12、in ( B) ios:out ( C) ios:in | ios:out ( D)以上都不对 34 下列程序的运行结果是 #include iostream h class A int a; public: A( )a=0; A(int aa) a=aa; couta+; ; void main( ) A x,y(2), z(3); cout end1; ( A) 0 ( B) 23 ( C) 34 ( D) 25 35 下面程序的输出结果是 #include iostream, h class example int a; public: example(int b) a=b+; void

13、 print( )a=a+1; cout a “; void print( )constcout a “; ; void main( ) example X(3); const example y(2); x print( ); y print( ); ( A) 22 ( B) 43 ( C) 42 ( D) 32 36 设一棵二叉树中有 3个叶子结点,有 8个度为 1的结点,则该二叉树中总的结点数为【 】。 37 类是一个支持集成的抽象数据类型,而对象是类的【 】。 38 结构化设计主要分为系统设计和模块设计,【 】的任务是决定系统的模块结构。 39 一般来说,数据库的设计过程要经历 3个大

14、的阶段,即可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。概念设计、逻辑结构设计、物理结构设计属于数据库设计的【 】阶段。 40 数据流图有两种典型的结构形式,它们分别是变 换型和【 】。 41 求 1 100的和,可写成 for(s=0,i=1;【 】; i+) s+=i;的形式。 42 假定用户没有给一个名为 MyClass的类定义析构函数,则系统为其定义的默认析构函数首部形式为【 】。 43 下面程序的输出结果是【 】。 #include iostream using namespace std; int x; void funA(int cout count:test()

15、end1; return 0; 45 以下程序运行后的输出结果是【 】 #include iostream #include string using namespace std; class Y; class X int x; char *strx; public: x(int a,char *str) x=a; strx=new charstrlen(str)+1; strcpy(strx,str); void show(Y ; class Y private: int y; char *stry; public: Y(int b,char *str) y=b; stry=new char

16、strlen(str)+1; strcpy(stry, str); friend void X:show(Y ; void X:show(Y class Derived1: virtual public Base public: Derived1() x=10; ; class Derived2: virtual public Base public: Derived2() x=20; ; class Derived: public Derived1, protected Derived2 ; int main() Derived obj; cout obj.x end1; return 0;

17、 该程序运行后的输出结果是【 】。 50 下面是复数类 complex的定义,其中作为友元函数重载的运算符 “-”的功能是将参数对象的实部减 1,然后返回对该对象的引用:请补充完整。 class complex private: int real; int imag; public: complex(int r=0, int i=0): real(r), imag(i) void show() cout real (imag 0?“-“: “+“) imag i; 【 】; ; complex void main() double i=5.23; cout【 】 setw(14) i cout

18、 endl【 】 setw(14) i; 国家二级( C+)笔试模拟试卷 49答案与解析 1 【正确答案】 B 【试题解析】 利用前序和中序遍历的方法可以确定二叉树的结构,具体步骤如下: 前序遍历的第一个结点 A为树的根结点; 中序遍历中 A的左边的结点为A的左子树, A右边的结点为 A的右子树; 再分别对 A的左右子树进行上述两步处理,直到每个结点都找到正确的位置。 2 【正确答案】 A 【试题解析】 树是一个或多个结点组成的有限集合,其中一个特定的结点称为根,其余结点分为若干个不相交的集合。每个集合同时又是一棵树。树有且只有 1个根结点。 3 【正确答案】 B 【试题解析】 由栈 “后进先

19、出 ”的特点可知:选项 A)中 e1不可能比 e2先出,选项C)中 e3不可能比 e4先出,且 e1不可能比 e2先出,选项 D)中栈是先进后出的,所以不可能是任意顺序。选项 B)中出栈过程如 图所示:4 【正确答案】 D 【试题解析】 滥用 goto语句将使程序流程无规律,可读性差,因此选项 A)不选;注解行有利于对程序的理解,不应减少或取消,选项 B)也不选;程序的长短要依照实际情况而论,而不是越短越好,选项 C)也不选。 5 【正确答案】 D 【试题解析】 程序设计语言是用于书写计算机程序的语言,其基本成分有以下 4种,数据成分:用来描述程序中的数据。运算成分:描述程序中所需的运算。控制

20、成分:用来构造程序的逻辑控制结构。传输成分:定义数据传输成分,如输入输出语言。 6 【 正确答案】 D 【试题解析】 软件需求规格说明书 (SRS, Soft ware Requirement Specification)是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以下几个方面的作用: 便于用户、开发人员进行理解和交流; 反映出用户伺题的结构,可以作为软件开发工作的基础和依据; 作为确认测试和验收的依据。 7 【正确答案】 D 【试题解析】 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节

21、的控制、管理。 8 【正确答案】 A 【试题解析】 选项 A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项 B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项 C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项 D)不正确,存储模式即为内模式。 9 【正确答案】 B 【试题解析】 数据库逻辑设计的主要工作是将 E-R图转换成指定 RDBMS中的关系模式。首先,从 E-R图到关系模式的转换是比较直接的,实体与 联系都可以表示成关系, E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。 10 【正确答

22、案】 C 【试题解析】 结构化查询语言 (Structured Query Language,简称 SQL)是集数据定义、数据操纵和数据控制功能于一体的数据库语言。 11 【正确答案】 D 【试题解析】 C+语言最重要的特点是其为一种面向对象的程序设计语言,但是C+语言也包含了全部的 C语言的特征。 12 【正确答案】 A 【试题解析】 标识符是一个以字母或下划线开始的,由字母、下 划线和数字组成的字符串,标识符不能与任意关键字同名。 13 【正确答案】 C 【试题解析】 由算术运算符组成的表达式中,若含有不同类型的操作数,则系统隐含地将低类型转化为高类型,由低至高的顺序为 int- floa

23、t- double。 14 【正确答案】 B 【试题解析】 *p为所指对象 a的值,语句 “b=+a+; ”等价于 “b=b+a;a=a+1;”。 15 【正确答案】 C 【试题解析】 在进入最后一次循环时 a=10,在循环体内执行 “a+;”后 a=11,执行完该次循环体计算 for循环的增量部分后 a=12小于 10,循环结束。 16 【正确答案】 B 【试题解析】 本题考查的是基本循环语句的使用,选项 A),选项 C)和选项 D)都为正确的形式,在选项 B)中的 while(a =10)后缺少结束符分号 “; ”。 17 【正确答案】 A 【试题解析】 本题考查的是字符数组的初始化。选项

24、 B)中用 3个元素初始化大小为 2的数组,越界了;选项 C)中应该是 2行 3列的数组,题中使用 3行 2列初始化;选项 D)中数组合后应用方括号。 18 【正确答案】 B 【试题解析】 本题 主要考查的是指针数组和指向指针的指针之间的关系,其中 a是指针数组, pa是指向指针数组行的指针,所以 pa自加 1相当于指向下一行。 19 【正确答案】 D 【试题解析】 C+语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。 20 【正确答案】 B 【试题解析】 本题考查的是函数的调用,第一次调用 min(2, 3),因为 2 3,所以返回值为 2,第二次调用 min(1, 2),因为

25、1 2,所以返回 1。 21 【正确答案】 D 【试题解析】 本题考查的是对重载函数的掌握,因为 +a是右结合的,所以 a先自加 1再输出,即为 2.2,之后调用函数 print(int a, int b)输出 b和 a,即 43。 22 【正确答案】 D 【试题解析】 所谓的访问控制只包含公有类型、私有类型和保护类型 3种,友元可以是一个函数,也可以是一个类。 23 【正确答案】 C 【试题解析】 构造函数在创建对象时系统自动调用,其功能是使用给定的值将对象初始化。 24 【正确答案】 D 【试题解析】 析构函数就是用来释放对象的,它的调用完成之后,对象也就消失了,相应的内存空间也被释放了。

26、 25 【正确答案】 B 【试题解析】 本题考查的是内联函数的定义,引入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加 inline关键字,则编译器会将在类说明部分定义的任何函数都被认定为内联函数。 26 【正确答案】 D 【试题解析】 静态数据成员必须在类体外初始化,它是类的所有对象的共有成员,需要使用类名调用,静态数据成员的初始化与权限控制无关。 27 【正确答案】 C 【试题解析】 友元函数的定义既可以在类内部进行,也可以在类外部进行。它提高了程序的运行效率,但破坏了类的封装性和隐藏

27、性,使得类的非成员函数可以访问类的私有成员。 28 【正确答案】 C 【试题解析】 公有继承的派生类和基类是子类型的关系,所谓子类型是类型间一般和特殊的关系,即派生类是基类的子类型或者说基类的操作可以被用于操作派生类的对象。 29 【正确答案】 C 【试题解析】 本题考查的是在继承中构造函数和析构函数的调用顺序,应该是先调用基类的构造函数,再调用派生类的构造函数,调用析构函 数时的顺序是先调用派生类的析构函数,后调用基类的析构函数。 30 【正确答案】 B 【试题解析】 虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虚基类的构

28、造函数选于非虚基类的构造函数执行。 31 【正确答案】 C 【试题解析】 编译时的多态性是通过函数重载和模板体现的,运行时的多态性是通过虚函数体现的。 32 【正确答案】 C 【试题解析】 不能被重载的运算符还包括: “.”, “.*”, “- *”和 “?:”。 33 【正确答案】 D 【试题解析】 使用 fstream类建立文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。 34 【正确答案】 B 【试题解析】 本题考查的是对构造函数的掌握,另外 “+”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加 1。 35 【正确答案】 C 【试题解析】 “+”是右结合的

29、,所以先赋值为 3,最后输出 3+1;常成员函数只有常对象才能调用,所以输出 2。 36 【正确答案】 13 【试题解析】 根据二叉树的性质 3:在任 意一棵二叉树中,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。本题中的二叉树有 3个叶子结点,所以,该二叉树有 3-1=2个度为 2的结点;又知本题中的二叉树有 8个度为 1的结点。所以,本题中的二叉树总结点数为 叶子结点数 +度为 1的结点数 +度为 2的结点数=3+8+2=13 所以,本题的正确答案为 13。 37 【正确答案】 实例 【试题解析】 在面向对象的程序设计中,类描述的是具有相似性质的一组对象,而一个具体对象称为类

30、的实例。 38 【正确答案】 系统设计 【试题解析】 结构化设计主要 分为系统设计和模块设计 -系统设计的任务是决定系统的模块结构:模块设计的任务是具体考虑每一个模块内部采用什么算法,模块的输入、输出以及该模块的功能。 39 【正确答案】 系统设计 【试题解析】 数据库的设计过程要经历 3个阶段:可行性分析与研究阶段、系统设计阶段、设计实施与系统运行阶段。系统设计阶段是系统的具体设计过程,主要包括概念设计、逻辑结构设计、物理结构设计 3个步骤。这 3个不同层次上的设计过程,是把实体以及相互之间的联系转换为 “数据 ”并落实于计算机中。数据库设计中的主要技术工作在这个阶段中完成。 40 【正确答

31、案】 事务型 【试题解析】 数据流图中有众多的加工,但必有一个加工是起核心作用的,这样的加工称为中心加工。由数据流图导出结构图的关键是找出中心加工。一般来说,中心加工有两种存在形态,即数据流图有两种典型的结构形式:一种是变换型,另一种是事务型。 41 【正确答案】 i =100或者 i 101 【试题解析】 本题考核循环语句。在上述题中,我们看到 s=s+i,又有 i+,它的含义是当 i满足条件时, i自加 1,然后再与前面的 s相加,值赋给 s。所以 for语句中,缺少上限表达式。因为 是求 1-100的和,所以 i满足的条件为 i =100或者 i 101。 42 【正确答案】 MyCla

32、ss() 【试题解析】 本题考核析构函数的定义。 C+中析构函数名是在类名前加上求反符号;析构函数不能指定返回类型,它隐含有返回值,由系统内部使用:析构函数没有参数,因此析构函数不能重载,一个类中只能定义一个析构函数。 43 【正确答案】 10 10 20 【试题解析】 本题考核函数的引用传递。 “引用 ”实际上是给一个已知变量起个别名,对引用的操作也就是对被它引用的变量的操作。函数 funA的功能是将第二个实参的值乘以 2再赋值给第一个实参 (通过引用传递实现 ),函数 funB的功能是将全局变量 x加上 4再赋值给第二个实参,同时 x等于第一个实参与第二个实参相加的和。 44 【正确答案】

33、 4 10 【试题解析】 本题主要考查 C+类中静态数据成员的使用。题目程序首先定义了类 count,其内部含有 private类型数据成员 static int n;同时含有 public类型构造函数 count()和静态成员函数 static int test(),这两个函数的功能分别是为对象申请系统资源并将静态数据 成员 n加 1和将静态数据成员 n加 4。主函数前,程序将静态数据成员 n初始化为 0,该数据成员为所有类 count的对象所共有的数据成员:主函数中程序首先执行静态成员函数 test()(由于 test声明为 static,因此其调用时无需通过具体对象 ),其执行过程中,静

34、态数据成员 n应该加 4变成 n=4,因此此处输出为 4:此后程序创建对象 c1和 c2,由于在每次创建过程中都要调用构造函数 count(),而每次调用 count()函数后,静态数据成员 n值都会加 1因此,创建两个对象之后, n值变为 n= 6:再次执行 test()函数后, n的值再次加 4,因此变为 n=6+4=10。故程序全部执行后,变量 n值变为 10,而中间程序输出为 “410”。 45 【正确答案】 stringX stringY 【试题解析】 本题考核友元函数的应用。该程序中,类 X的成员函数 show()在类 Y中说明为类 Y的友元函数,因此,在该友元成员 show()中

35、可以访问类 Y的私有成员 stry。成员函数 show()的功能就是输出类 X的私有成员 strx和 Y对象 ob的私有成员 stry。主函数 main()中定义了 X类的一个对象 a和 Y类的一个对象b,并且都进行了初始化。然后 调用对象 a的成员函数 show,输出对象 a中私有成员 strx中的内容和对象 b中私有成员 stry中的内容,即字符串 stringX和stringY。 46 【正确答案】 Derived (int i): Base (i) 【试题解析】 本题考核派生类的构造函数。程序中,类 Derived是基类 Base的公有派生。在类 Derived的构造函数应该包括调用基

36、类构造函数使基类的数据成员得以初始化。 47 【正确答案】 成员函数 【试题解析】 本题考核虚函数的概念。 C+中,只有类的成员函数才能说明为 虚函数,这是因为虚函数仅适用于有继承关系的类对象,所以普通函数不能说明为虚函数。 48 【正确答案】 类模板 【试题解析】 本题考核类模板的基本概念。类模板就是一系列相关类的模型或样板,这些类的成员组成相同,成员函数的源代码形式相同,所不同的只是所针对的类型 (成员的类型以及成员函数的参数和返回值的类型 )。对于类模板,数据类型本身成了它的参数,因而是一种参数化类型的类,是类的生成器。类模板中声明的类称为模板类。 49 【正确答案】 20 【试题解析】

37、 本题考核虚基类。本题中,虽然 Derived1和 Derived2都是由共同的基类 x派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员 x只存在一份拷贝,不论在类 Derived1修改,还是在类Derived2中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句 “Derived obj”时,就会先调用虚基类 Base的构造函数,使得 x=0,然后执行类 Derived1的构造函数使得 x=10,再执行类 Derived2的构造函数,使得 x=20。最后输出 x的值为 20。 50 【正确答案】 friend complex& operator-(complex

38、&) 【试题解析】 本题考核运算符重载的定义。程序要填入的是运算符函数operator-在类 complex中的声明,运算符 “-”是作为友元函数重载的。根据题目给出的条件,易得到答案。 51 【正确答案】 setfill(*) left 【试题解析】 本题考核格式控制数据的输入输出。函数 setfill(charc)用于设置填充字符,在输出数据时,如果数据宽度小于设置的宽度,则空闲位置要用填充字符填满。函数 setw(int n)用于设置输入输出宽度,宽 度设置的效果只对一次输入或输出有效,在完成一次数据的输出或输入后,宽度设置自动恢复为 0。输出的初始状态为右对齐,所以第一行输出的为右对齐,而第二行为左对齐,所以要填入关键字 “left”。

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