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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级( C+)笔试模拟试卷 63及答案与解析 1 算法的时间复杂度是指 ( A)执行算法程序所需要的时间 ( B)算法程序的长度 ( C)算法程序中的指令条数 ( D)算法执行过程中所需要的基本运算次数 2 设栈 S的初始状态为空。元素 a, b, c, d, e, f依次通过栈 S,若出栈的顺序为b, d, c, f, e, a,则栈 S的容量至少应该为 ( A) 3 ( B) 4 ( C) 5 ( D) 6 3 在最坏情况下,下列排序方法中时间复杂度最小的是 ( A)冒泡排序 ( B)快速排序 ( C)插入排序 ( D)堆 排序 4 在模块化程序设计中,按功能划分模块的原则是 ( A)

2、各模块的功能尽量单一,且各模块之间的联系尽量的少 ( B)各模块的功能尽量单一,且各模块之间的联系尽量紧密 ( C)各模块应包括尽量多的功能 ( D)各模块应包括尽量多的输入输出操作 5 数据结构分为逻辑结构和存储结构,下列数据结构中不属于存储结构的是 ( A)线性链表 ( B)二叉链表 ( C)栈与队列 ( D)循环队列 6 下列叙述中正确的是 ( A)软件就是程序清单 ( B)软件就是存放在计算机中的文件 ( C)软件应包括程序清 单以及运行结果 ( D)软件包括程序、数据和文档 7 在结构化方法中,软件功能分解属于下列软件开发中的阶段是 ( A)概要设计 ( B)需求分析 ( C)详细设

3、计 ( D)编程调试 8 下列叙述中正确的是 ( A)程序设计过程中的主要工作是编制程序 ( B)程序设计的主要目标是编制出运行结果正确的程序 ( C)不良的程序设计风格会增加程序的复杂性 ( D)上述三种说法都不对 9 下列叙述中正确的是 ( A)用 E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系 ( B)用 E-R图只 能表示实体集之间一对一的联系 ( C)用 E-R图只能表示实体集之间一对多的联系 ( D)用 E-R图表示的概念数据模型只能转换为关系数据模型 10 关系表中的每一横行称为一个 ( A)元组 ( B)字段 ( C)属性 ( D)码 11 一个函数为 vo

4、id f(int, char ch=a),另一个函数为 void f(int),则它们 ( A)不能在同一程序中定义 ( B)可以在同一程序中定义并可重载 ( C)可以在同一程序中定义,但不可以重载 ( D)以上说法均不正确 12 下面关于对象概念的描 述中,错误的是 ( A) C+中的对象就是 C语言中的结构变量 ( B)对象代表着正在创建的系统中的一个实体 ( C)对象是一个状态和操作 (或方法 )的封装体 ( D)对象之间的信息传递是通过消息进行的 13 实现运行时的多态性要使用 ( A)重载函数 ( B)析构函数 ( C)构造函数 ( D)虚函数 14 若有定义: int k,*q;,

5、则下列各选项中赋值表达式正确的是 ( A) q=( public: sample(int i,int j) x=i; y=j; void disp() cout “disp1“ end1; void disp()const cout“disp2“ end1; ; int main() const sample a(1, 2); a.disp(); return 0; 该程序运行后的输出结果是 ( A) disp1 ( B) disp2 ( C) disp1 disp2 ( D)程序编译时出错 36 在面向对象方法中,信息隐蔽是通过对象的【 】来实现的。 37 任何非空树中有且仅有一个结点没有前

6、驱结点,该结点就是树的【 】。 38 常见的需求分析方法有【 】和面向对象的分析方法。 39 在关系模型中,把数据看成一 个二维表,每一个二维表称为一个【 】。 40 在数据库应用系统设计的需求分析阶段,需经过收集资料、分析整理、【 】、建立数据字典和用户确认等阶段。 41 假定输入的 10个整数为: 32, 64, 53, 87, 54, 32, 98, 56, 98, 83。那么下列程序的运行结果是【 】。 #include iostream using namespace std; int main() int a, b, C, X; a = b = C = 0; for(int i =

7、 0; i 10; i+) cin x; switch(x%3) case 0 : a+=x; break; case 1 : b+=x; break; case 2 : C+=x; break; cout a “,“ b “,“ C end1; return 0; 42 以下程序的执行结果为【 】。 #include iostream using namespace std; void overload(int num) cout num end1; void overload(char ch) char c=ch+1; cout c end1; int main() overload(X)

8、; return 0; 43 带有虚基类的多层次派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样对虚基类的子对象初始化【 】次。 44 在成员函数声明的前面加上关键词【 】修饰,即把该函数声明为虚函数。 45 在下面程序横线处填上适当内容,使得程序的输出为 9876。 #include iostream using namespace std; template class T void f(【 】 ) T t; for (int i=0;i n/2;i+) t=a Ii; a i=an-1-i; a n-1-i=t; int main ( ) int x=6,7,8,9; f(

9、x,4); for (int i=0;i 4;i+) cout xi; cout end1; return 0; 46 有以下程序: #include iostream using namespace std; class A public: virtual void show() cout “A“; ; class B : public A public: void show() cout “B“; ; void display( A * obj ) obj- show(); int main ( ) A demol; B demo2; display( display( return 0;

10、 执行后的输出结果为【 】。 47 如下程序执行后的输出结果是【 】。 #include iostream using namespace std; class Base public: Base(int x,int y) a=x; b=y; void Show() cout “Base: “ a , b “ “; private: int a,b; ; class Derived : public Base public: Derived(int x, int y, int z) : Base(x,y),c(z) void Show() cout “Derived:“ c end1; pri

11、vate: int c; ; int main() Base b(100,100),*pb; Derived d(10,20,30); pb= pb- Show(); pb= pb- Show(); return 0; 48 以下程序设计功能是:将结构体变量 time 中的内容写到文件中。 #include iostream using namespace std; struct date int year; int month; int day; int main ( ) date time = 2005, 1, 1 ; ofstream outdate; outdate.open( “d:

12、date.txt“, ios : binary ); outdate.write(_, sizeof( tt ) ); outdate.close(); return 0; 则程序中空白处应该填入的语句为【 】。 49 下面程序的输出是: *5.23 5.23* 请将下划线上遗漏的部分补充完整。 #include iostream #include iomanip using namespace std; void main() double i=5.23; cout【 】 setw(14) i cout endl【 】 setw(14) i; 国家二级( C+)笔试模拟试卷 63答案与解析

13、1 【正确答案】 D 【试题解析】 算法的时间复杂度实际上就是执行算法程序所需要的计算工作量。为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使 用的程序设计语言、执行算法程序时所使用的计算工具以及程序员的水平无关。选项 A错误,因为同一算法程序在运行速度不同的计算机上运行时,其计算时间是不同的。选项 B错误。算法所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同。选项 C错误,因为根据一个算法所编制出的程序中,其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条

14、数来度量算法的时间复杂度。所以,本题的正确答案为 D。 2 【正确答案】 A 【试题解析】 根据题中给定的条件,可以作如下的模拟操作: 元素 a, b进栈,栈中有 2个元素,分别为 a, b; 元素 b出栈后,元素 c, d进栈,栈中有 3个元素,分别为 a, c, d: 元素 d, c出栈后,元素 e, f进栈,栈中有 3个元素,分别为 a, e, f; 最后,元素 f, e, a出栈,栈为空。可以看出,进栈的顺序为 a, b, c, d, e, f,出栈的顺序为 b, d, c, f, e, a,满足题目要求。每次进栈操作后,栈中最多有 3个元素,所以,为了顺利完成这些操作,栈的容量应至少

15、为 3。本题的正确答案为 A。 3 【正确答案】 D 【 试题解析】 在最坏情况下:冒泡排序需要的比较次数为 n(n-1)/2;快速排序需要的比较次数也为 n(n-1)/2:插入排序需要的比较次数也为 n(n-1)/2;堆排序需要比较的次数为 O(nlog2n)。可知,在最坏情况下,堆排序的时间复杂度最小,本题的正确答案为 D。 4 【正确答案】 A 【试题解析】 模块化设计是指把一个大程序按人们能理解的大小规模进行分解。划分模块的基本原则是使每个模块都易于理解。按照人类思维的特点,按功能来划分模块最为自然。在按功能划分模块时,要求各模块的功能尽量单一,各模块之间 的联系尽量少。所以,选项 A

16、正确:选项 B错误;选项 C错误。本题的正确答案为 A。 5 【正确答案】 C 【试题解析】 线性链表是线性表的链式存储结构:二叉链表是二叉树的链式存储结构:栈与队列分别是特殊的线性表:循环队列是队列的一种顺序存储结构。可知,线性链表、二叉链表、循环队列均属于存储结构,而栈与队列属于逻辑结构。选项 C为正确答案。 6 【正确答案】 D 【试题解析】 计算机软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据及相关文档的完整集合。用一个等式表示,则为:软件 =程序 +文 档 +数据 选项 A、 B、 C错误,正确答案是 D。 7 【正确答案】 A 【试题解析】 概要设计的任务是划分出构成系

17、统的各物理元素以及设计出软件的结构 (如确定模块及模块间的关系 )。设计过程通常分为以下几步:提出可选择方案;选择合理方案;推荐最佳方案;功能分解;设计软件结构;制定测试计划:最后提交概要设计文档。软件功能分解属于概要设计阶段。本题的正确答案为A。 8 【正确答案】 C 【试题解析】 程序设计过程中包括很多步骤,编制程序只是其中的一步。所以,选项 A错误。程序设计的最终产品是程序,但 仅设计和编制出一个运行结果正确的程序是不够的,还应养成良好的程序设计风格。所以,选项 B错误。 程序设计的根本目标是要降低程序的复杂性和提高程序的可读性。而程序的复杂性主要来自以下两个方面:问题固有的复杂性;不良

18、的设计风格人为增加了程序的复杂性。所以,良好的设计风格对于降低程序的复杂性是很重要的,并且,好的设计风格是好的程序风格的基本保证。选项 C正确。 9 【正确答案】 A 【试题解析】 用 E-R图可以简单明了地描述实体及其相互之间的联系,用 E-R图还可以方便地描述多个实体集之间的联系和一个实体集内 部实体之间的联系。所以,选项 A正确,选项 B与 C错误。为了建立用户所要求的数据库,必须把概念结构 (用 E-R图表示的概念数据模型 )转换为某个具体的数据库管理系统所支持的数据模型,这就是逻辑结构设计所要完成的任务。在已给定数据库管理系统的情况下,数据库的逻辑设计可以分两步来进行: 将概念模型转

19、换成一般的数据模型: 将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。可知,用 E-R图表示的概念数据模型不仅能转换为关系数据模型,还可以转换为其他数据模型,如网状模型和层次模型等。所以,选项 D说法错误。 10 【正确答案】 A 【试题解析】 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。关系表中的每一横行称为一个元组。本题的正确答案是 A。 11 【正确答案】 C 【试题解析】 本题函数的调用。只要满足参数列表不同的条件,就可以在同一程序中对同名的函数进行定义。但是由于其中一个函数有默认值,因此当程序中出现语句 “x=f(10); ”时,就会产生二义性,不能确定

20、调用函数 f(10)还是调用函数f(10, a),此时这两个函数不能重载。 12 【正确答案】 A 【试题解析】 本题考核对象的概念。 C+中的对象与 C语言中的结构变量是不一样的。对象是某一类类型的变量,而结构变量是结构类型的变量。同时 C+对 C的结构有了扩展,结构可以和类一样使用。结构除了可以包含数据成员外,还可以包含成员函数:成员也可以加上 public、 private和 protected 访问控制;结构之间也可以继承。两者惟一的不同之处是,结构中的成员默认是公有的,结构的继承默认是公有的,而类的继承默认是私有的,类的成员默认也是私有的。 13 【正确答案】 D 【试题解析】 本题

21、考核虚函数的应用。动态联编 一直要到程序运行时才能确定调用哪个函数。虚函数是实现动态联编的必要条件之一。没有虚函数一定不能实现动态联编,但有虚函数存在时,必须同时满足下列条件,才能实现动态联编:类之间满足子类型关系:调用虚函数操作的是指向对象的指针或对象引用,或者是由成员函数调用虚函数。 14 【正确答案】 B 【试题解析】 本题考核指针的赋值操作。 A) 选项中, &k表示变量 k在内存中的地址,而后面的 1是整型常量,所以此选项不正确。 C) 选项中,是把整型变量的值直接赋给指针变量 q,由于赋值没有兼容性,所以这是错误的。 D) 选 项中,企图把 k在内存中的地址赋给一个整型变量 (*q

22、在此代表一整型变量 ),这也是不允许的,地址值不能直接转换为一个整数。 15 【正确答案】 A 【试题解析】 本题考核模板的概念。模板是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。 16 【正确答案】 B 【试题解析】 本题考核 C+的输入、输出流。 C+中函数 eof()的作用是进行输入操作时,若到达文件尾返回 true,否则返回 false。 eof函数只能用于输入流操作。 17 【正确答案】 A 【试 题解析】 本题考核 C+的标识符定义。 C+规定标识符由大小写字母、数字字符 (0 9)和下划线组成,并且以字母或下划线开始,后跟 0个或多个字母、数字字符或

23、下划线。由此可知 A) 选项中的连接符不能用于组成标识符。 18 【正确答案】 A 【试题解析】 本题考核 C+数据类型中枚举。枚举类型定义了一些整型符号常量的集合,使用枚举类型时应该注意以下几点:枚举类型的第一个常量默认值是 0;枚举类型常量的值允许彼此相同;虽然枚举类型常量是整数类型,但是不允许使用整数直接赋值给枚举类型变量,也不允许与整数进行 运算,只可以与整数进行比较。由此可知枚举常量 NAME的值应为 0。所以 A) 选项是错误的。 19 【正确答案】 A 【试题解析】 本题考查循环语句 do-while语句的执行情况。根据 do-while循环语句功能特点可得:首先无条件执行循环体

24、,表达式 x-的值为 5,输出为 5, x的值变为 4,然后检查条件 (!x)为假 (false),则循环结束。 20 【正确答案】 C 【试题解析】 本题考核数组的定义和初始化。下面逐项进行分析: A) 选项中,数组 a的定义和初始化符合数组的定义和初始化语法,故正 确; B) 选项中,数组a初始化的值虽然没有 10个,但对于少的部分,系统会自动补 0,所以 B) 选项中数组的定义也是正确: C) 选项中,数组 a的长度为 5,但字符串 “hello“的长度为5+1=6,字符串结束符 0无法存储在数组中,所以是错误的; D) 选项中,数组 a的定义是正确的。 21 【正确答案】 A 【试题解

25、析】 本题考核对指针作为函数的参数的理解程度。分析程序:函数 sub为 voidf型。函数的形参中, z是一个 int型的指针变量,因此它只能从实参接收一个 int型变量的地址。在函数 sub体中, 语句: *z=y+x;的功能是把形参 y与 x的和值放入形参 z所指的存储单元中。在主函数中, 3次调用 sub函数。第一次调用时,把 8和 4分别传递给形参 x和 y,把主函数中变量 a的地址传递给形参 z,这样形参就指向了主函数中的变量 a,在 sub函数中执行语句 *z=y+x:后,把 12放入 z所指的存储单元中,即变量 a被赋值 12。以此类推,最后 b被赋值 18, c被赋值 30。所

26、以最后输出是 12, 18, 30。 22 【正确答案】 C 【试题解析】 本题考核类的定义。 C+不能类的定义中给数据成员赋初值。 23 【正 确答案】 B 【试题解析】 C+中,继承方式控制了基类中具有不同访问属性的成员在派生类中的访问属性。基类中的私有成员在派生类中是隐蔽的,只能在基类内部访问。所以 B) 选项是错误的。派生类中的成员不能访问基类的中私有成员,但可以访问基类中的公有成员和保护成员。此时派生类对基类中各个成员的访问能力与继承方式无关,但继承方式将影响基类成员在派生类中的访问控制属性,基类中公有和保护成员在派生类中的访问控制属性将随着继承方式而改变:派生类从基类公有继承时,基

27、类的公有成员和保护成员在派生类中仍然是公有成员和保护 成员;派生类从基类私有继承时,基类的公有成员和保护成员在派生类中都改变为私有成员;派生类从基类保护继承时,基类的公有成员在派生类中改变为保护成员,基类的保护成员在派生类中仍然为保护成员。所以, A) 、 C) 和 D) 选项都是正确的。 24 【正确答案】 C 【试题解析】 本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符 +,且 c1、 c2都是该类的对象,则 c1 operator+(c2)与 c1+c2含义相同。如果 +作为该类的非成员函数重载,则 operator+(c1, c2)与 c1+c2含义相同。所以通过题

28、目给出的两个表达式可看出 “/”是作为成员函数重载的, “+”是作为非成员函数重载的。 25 【正确答案】 A 【试题解析】 本题考核函数模板的使用。 C+中对函数模板的调用有时候只使用了函数实参,而没有使用模板实参,模板实参都被省略了,但模板实参的省略并不是必然的,而是有条件。模板实参不能省略的情况有:从模板函数实参表获得的信息有矛盾:需要获得特定类型的返回值,而不管参数的类型如何:虚拟类型参数没有出现在模板函数的形参中:函数模板含有常规形参。题中定义的函数模板中含有常规形 参,常规形参的信息无法从模板函数的实参表中获得,因此在调用时必须显式地给出对应于常规参数的模板实参。注意, sum的第

29、一个模板实参的信息可以从模板函数的实参表中获得,但由于它位于不可省略实参的前面,因此不能省略,所以只有 A选项的调用格式是正确的。 26 【正确答案】 A 【试题解析】 本题考核格式控制数据的输入输出。函数 setfill(char C) 用于设置填充字符,在输出数据时,如果数据宽度小于设置的宽度,则空闲位置要用填充字符填满,设置的填充符一直有效,直到再次设置填充字符为止,如题中调用函数 setfill(*)将填充字符设置为,引,后又调用函数 setfill(#)将填充字符设置为#。函数 setw(int n)用于设置输入输出宽度,当实际数据的宽度大于设置的宽度时,仍按实际的宽度输出,如题中数

30、据 314.15926535的宽度大于 5,所以将会按实际输出。关键字 scientific将浮点数按指数格式 (科学表示法 )输出。 27 【正确答案】 D 【试题解析】 本题考核类的析构函数。在 C+中,析构函数名为符号 “ ”加类名,析构函数没有参数和返回值。根据以上知识可知, MyClass类的正确析构函数的说明为 MyClass()。 28 【正确答案】 D 【试题解析】 本题考核 this指针的应用。上述程序中, sample类的 add成员函数中使用了 this指针, this指针指向当前对象自身,该成员函数中的语句: this-n=s1.n+s2.n;,用于修改当前对象的数据成

31、员 n的值,语句: return(*this);用于返回当前对象自身,即对当前对象进行了修改。 对于 main()函数调用 add成员函数语句 “s3 add(s1, s2); ”。此时, this指针指向的是对象 s3,执行 该语句前, s3的数据成员 n未赋值,执行完该语句后,就修改了 s3的私有成员 n的值,使其为15。 29 【正确答案】 B 【试题解析】 本题考核静态数据成员和静态成员函数的应用。类 sample中定义两个私有成员 x和 y,其中 y为静态数据成员。并定义函数 print()为静态成员函数。在主函数中,定义对象 s1(10)时,通过构造函数使对象 s1的私有成员 x=

32、10,静态数据成员 y=10。定义 s2(20)时,通过构造函数使对象 s2的私有成员 x=20,静态数据成员 y=10+20=30。程序最后调用静态成员函数 print输出对象 s2的私有成员 x的值 20,对象 s1、 s2共享的静态数据成员 y的值 30。 30 【正确答案】 B 【试题解析】 本题考核继承与派生。当类的继承方式为公有继承时,基类的公有成员和保护成员分别作为派生类的公有成员和保护成员,派生类的其他成员可以直接访问它们。其他外部使用者只能通过派生类的对象访问继承宋的公有成员。在本题中,数据成员 z和函数 setx都是基类 A的公有成员,它们经过公有继承以后,在派生类 B中还

33、是公有成员,而派生类 B中的函数 setvalue 和 display 都是公有成员,可以通过 对象对它们进行访问。所以程序中对各成员的访问是正确的。本程序的功能是输出已设置的各成员的值。 31 【正确答案】 A 【试题解析】 本题考核派生类中的构造函数。程序中,类 Derived是基类 Base的公有派生。在类 Derived的构造函数应该包括调用基类构造函数使基类的数据成员得以初始化。 32 【正确答案】 A 【试题解析】 本题考核派生类的应用。本题中类 A和类 B都是基类。而类 C从类 A公有派生,从类 B处私有派生。所以类 C中的函数成员可以访问类 A和类 B中的公有成员。在类 C的函

34、数成员 setc中,调用基类 A的函数成员 seta对 A的数据成员 a赋值,还调用了基类 B的函数成员 setb对类 B的数据成员 b赋值,然后对类 C自己的数据成员 c赋值。在类 C的函数成员 showc中,调用基类 A的函数成员 showa显示数据成员 a的值,还调用基类 B的函数成员 showb显示数据成员b的值,然后输出类 C自己的数据成员 c的值。在主函数 main中,先定义派生类的对象 c,然后调用 setc对 c中的数据成员赋值,然后输出赋值结果。所以程序最后输出应该为: 1, 2, 3。 33 【正确答案】 C 【试题解析】 本题考核运算符的重 载。 C+不能重载的运算符包括

35、: “ ”、“ *”、 “:”、 “?:”。 34 【正确答案】 C 【试题解析】 本题考核 C+的文件流。文件流对象中的成员函数 good()用于判定刚进行的操作是否成功,成功时返回 true,否则返回 false。成员函数 fail()用于判定刚进行的操作是否失败,失败时返回 tree,否则返回 false。 35 【正确答案】 B 【试题解析】 本题考核常对象、常数据和常函数。 C+中,在定义常对象时必须进行初始化,而且不能被更新。如果将一个对象说明为常对象,则通过该 对象只能调用它的常成员函数。题中,对象 a被定义成类 sample的常对象,所以通过对象 a只能调用其常成员函数 dis

36、p()。所以程序最后输出 disp2。 36 【正确答案】 封装性 【试题解析】 封装性是指从外面只能看到对象的外部特性,即只需知道数据的取值范围和可以对该数据施加的操作,根本无须知道数据的具体结构以及实现操作的算法。对象的内部,即处理能力的实现和内部状态,对外是不可见的。因此,可以看出信息隐蔽是通过对象的封装性实现的。 37 【正确答案】 根节点 【试题解析】 在树结构中,每个 节点之前有一个前件,称为父节点,没有前件的节点只有一个,称为树的根节点。 38 【正确答案】 结构化分析方法 【试题解析】 本题是基础题,考核需求分析方法。常见的需求分析方法有结构化分析方法和面向对象的分析方法。 3

37、9 【正确答案】 关系 【试题解析】 关系数据模型把数据库表示为关系的一个集合。通俗地说,每个关系都类似一张表,或者在某种程度上类似一个 “平面 ”记录文件。 40 【正确答案】 数据流图 【试题解析】 简单地说,需求分析就是分析用户的要求。需要经过收集资料 (信息需求, 处理需求,安全性和完整性要求 ) 分析整理 数据流图 数据字典 用户确认四个步骤。 41 【正确答案】 141,64,452 【试题解析】 解此类题的关键是读懂程序代码,把程序所要实现的功能分析出来。此题中,利用 switch选择语句,并根据对 3取模后所得值的不同来分类,把所输入的整数分别累加后存入 a, b, c。通过分

38、析出此程序所要实现的功能,就可以对所输入的 10个数进行分类了。 对 3取模后为 0的数有: 87、 54 对 3取模后为 1的数有: 64 对 3取模后为 2的数有: 32、 53、 32、 98、 56、 98、 83 把这 3组数字分别累加并分别存入 a, b, c后得: a=141, b=64, c=452。 42 【正确答案】 Y 【试题解析】 本题考核函数重载。在本题中,函数 overload()有两次实现。第一次实现中,其形参为 int型;第 2饮实现中,其形参为 char型,所以构成了函数重载。主函数中调用 overload()函数时传递的实参为字符 X,所以执行函数的第 2次

39、实现。输出 Y。 43 【正确答案】 一次 【试题解析】 当一个派生从多个基类派生,而这些基类又有一个共同的基类,当对该基类中说明的 成员进行访问时,可能出现二义性。虚基类就是为了解决这种二义性问题提出来的。使用虚基类解决二义性问题的关键是在派生类中只产生一个虚基类子对象,因此,带有虚基类的多层次派生类构造函数的成员初始化列表中对虚基类的子对象只初始化一次。 44 【正确答案】 virtual 【试题解析】 说明虚函数的方法为: virtual类型说明符函数名 (参数表 ) 其中,被关键词 virtual说明的函数称为虚函数。 45 【正确答案】 Ta,int n 【试题解析】 函数 f的形参

40、之一为 T类型的数组 a,形参之二为整型数 n。 46 【正确答案】 AB 【试题解析】 本题考核赋值兼容原则以及派生与继承的应用。题中函数 display()形参类型为类 A,执行语句 “display(&demo1); ”则输出 A。执行语句“display(&dem02); ”时,由于 show()函数为虚函数,所以调用类 B中 show()函数,输出 B。所以最后结果为 AB。 47 【正确答案】 Base: 100,100 Base: 10,20 【试题解析】 本题考核对象指针的应用。主函数中通过对象指针 pb分别 调用其类成员函数 Show()和派生类成员函数 Show()先后输出

41、 Base: 100,100Base:10,20。 48 【正确答案】 (char*)&time 【试题解析】 函数 write的原型为: Ostream_type& write(const char *s, streamsize n); 其功能是输出 s所指向的数据空间中的 n个字符。函数返回对流对象本身的引用。 此函数要求流对象按模式 ios_base:binary打开。 49 【正确答案】 setfill(* left 【试题解析】 本题考核格式控制数据的输入输出。函数 setfill(char C) 用于设置填充字符,在输出数据时,如果数据宽度小于设置的宽度,则空闲位置要用填充字符填满。函数 setw(int n)用于设置输入输出宽度,宽度设置的效果只对一次输入或输出有效,在完成一次数据的输出或输入后,宽度设置自动恢复为 0。输出的初始状态为右对齐,所以第一行输出的为右对齐,而第二行为左对齐,所以要填入关键字 “left”。

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