二级c++笔试历年真题.pdf
《二级c++笔试历年真题.pdf》由会员分享,可在线阅读,更多相关《二级c++笔试历年真题.pdf(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2 0 1 0 年3 月考试真题(第3 1 次)1 .数据流程图(D F D 图)是_ _ _ _。A、软件概要设计的工具 B、软件详细设计的工具C、结构化方法的需求分析工具I)、面向对象方法的需求分析工具常见的需求分析方法有:结构化分析方法和面向对象的分析方法。结构化分析就是使用数据流图(D F D)、数据字典(D D)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。故本题答案为C。2 .软 件(程序)调试的任务是_ _ _。A、诊断和改正程序中的错误 B、尽可能多地发现程序中的错误C、发现并改正程序中的所有错误 D、确定程序中错误的性质程序调试的任务是诊断
2、和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于定的调试工具去执行找出软件错误的具体位置。软件测试贯穿整个软件生命期,调试主要在开发阶段。故本题答案为A。3 .软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下 面 属 于 系 统 软 件 的 是。A、编辑软件 B、操作系统 C、教务管理系统 D、浏览器软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)。应用软件是为解决特定领域的应用而开发的软件。例如,事务处理软件,工程与科学计算软件,实时处理软件,嵌入式软件,人工智能软件等应用性质不同的各种软件。系统软件是
3、计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件。如操作系统,编译程序,汇编程序,网络软件,数据库管理系统等,所以选项B 属于系统软件。故本题答案为B。4 .软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于。A、定义阶段 B、开发阶段 C、维护阶段 1)、上述三个阶段软件生命周期可分为软件定义、软件开发及软件运行维护三个阶段。软件开发阶段包括概要设计、详细设计、实现和测试四个活动阶段。故本题答案为B。5 .下 列 叙 述 中 正 确 的 是。A、对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB、对长度为n的有序链表进行对分查找,最坏情况下需要的比较
4、次数为(n/2)C、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为O g a n)D、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为S log211)对于长度为n 的有序线性表,在最坏情况下,二分查找只需要比较1 0g 2 n 次,而顺序查找需要比较n 次。二分法查找只适用于顺序存储的有序表,如果采用链式存储结构,也只能用顺序查找,所以选项A 是正确的。故木题答案为A。6 .有两个关系口和T 如下:ABCC32d32则由关系R 得到关系T 的操作是A、选择 B、投影 C、交 D、并从关系中找出满足给定条件的元组的操作称为选择。选择是从行的角度进行的运算,即从水平方向
5、抽取记录。由图可知关系R 通过运算得到关系T,关系T 与关系R 相比,属性的个数没有发生变化,记录的条数发生了变化。因此所使用的运算应该是选择。故本题答案为A。7 .算法的时间复杂度是指_ _ _。A、算法的执行时间 B、算法所处理的数据量C、算法程序中的语句或指令条数D、算法在执行过程中所需要的基本运算次数所谓算法的时间复杂度,是指执行算法所需要的计算工作量。为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。
6、故本题答案为D。8 .数据库设计中,用E-R 图来描述信息结构但不涉及信息在计算机中的表示,它 属 于 数 据 库 设 计 的。A、需求分析阶段 B、逻辑设计阶段 C、概念设计阶段 D、物理设计阶段E-R 图是E-R 模型的一种非常直观的图的形式表示,它描述信息结构但不涉及信息在计算机中的表示,它是数据库概念设计阶段的工具。故本题答案为C。9 .在学生管理的关系数据库中,存 取 一 个 学 生 信 息 的 数 据 单 位 是。A、文件 B、数据库 C、字段 D、记录实体是概念世界中的基本单位,属性附属于实体,它本身并不构成独立单位。属性有属性域,每个实体可取属性域内的值。一个实体的所有属性取值
7、组成了 个值集叫元组(或称记录)。在概念世界中,可以用元组表示实体,也可用它区别不同的实体。所以在学生管理的关系数据库中,存取一个学生信息的数据单位是元组(或记录)。故本题答案为D。1 0 .数据库管理系统中负责数据模式定义的语言是_ _ _.A、数据定义语言 B、数 据 管 理 语 言 C、数 据 操 纵 语 言 D、数据控制语言数据定义语言(D D L):该语言负责数据的模式定义与数据的物理存取构建。数据操纵语言(D M L):该语言负责数据的操纵,包括杳询及增、删、改等操作。数据控制语言(D C L):该语言负责数据完整性、安全性的定义与检查以及并发控制、故隙恢复等功能。故本题答案为A。
8、1 1 .有如下两个类定义c l a s s X X p r i v a t e:do u bl e x l;p r o t e ct e d:do u bl e x 2;p u bl i c:do u bl e x 3;;cl a s s YY:p r o t e ct e d X X p r i v a t e:do u bl e y l;p r o t e ct e d:do u bl e y 2;p u bl i c:do u bl e y 3;);在类YY中保护成员变量的个数是_ _ _ _ _。A、1 B、2 C、3 D、4木题主要考查了类的继承与派生。类的继承方式有三种:公有(p
9、 u bl i c)继承、保 护(p r o t e ct e d)继承和私有(p r i v a t e)继承。当派生类从基类保护继承时、基类的公有成员和保护成员在派生类中都为保护成员。本题派生类YY从基类X X保护继承,因此基类X X的公有成员x 3和保护成员x 2都成为派生类YY的保护成员,再加上派生类YY自身的保护成员y 2,因此类YY中有3个保护成员。故本题答案为C。1 2 .在C+中,ci n是一个A、类 B、对象 C、模板 D、函数本题主要考查了 I/O流。在C+中,数据的输入与输出是通过I/O流来实现,ci n和co u t是预定义的流类对象。故本题答案为B。1 3 .若x和y
10、是程序中的两个整型变量,则下列i f语句中正确的是_ _ _。A、i f(x=0)y=l;e l s e y=2;B、i f (x=0)t h e n y=l e l s e y=2;C、i f(x=0)y=l e l s e y=2;D、i f x=0 y=l;e l s e y=2;本题主要考查了 i f语句。i f语句的语法形式为:i f(表达式)语句1e l s e语句2在C+中,i f语句中没有t h e n,语句最后必须有,个分号,因此选项A正确,选项B和选项C错误;在选项D中,表达式x=0应该用圆括号括起来,因此选项D错误。故本题答案为A。1 4 .将运算符重载为非成员函数,下列
11、原型声明中,错误的是一 oA、M y Cl o ck o p e r a t o r +(M y Cl o ck,l o n g);B M y Cl o ck o p e r a t o r +(M y Cl o ck,M y Cl o ck);C M y Cl o ck o p e r a t o r +(l o n g,l o n g);D、M y Cl o ck o p e r a t o r +(l o n g,M y Cl o ck);本题主要考杳了运算符的重载。运算符的重教是针对新类型数据的实际需要,对原有运算符进行适当的改造。般来讲,重载的功能应当与原有功能类似,不能改变原运算符
12、的操作对象个数,同时至少要有个操作对象是自定义类型。选项A、选项B和选项D的两个参数中至少有一个参数是自定义类型,因此选项A、选项B和选项D正确。选项C中两个参数都是基本数据类型,没有自定义类型,因此选项C错误。故本题答案是C。1 5 .要定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是 oA、i n t x 3 =0,0,0);B、i n t x =0;C、s t a t i c i n t x 3 =0;D、i n t x =0,0,0);本题主要考查了 维数组的定义与初始化。-维数组的定义形式为:数据类型数组名数组元素个数;数组的初始化就是在声明数组时给部分或全部元素赋初值
13、。选项A定义了有三个元素的整型数组x,并初始化三个元素的值为0,因此选项A正确;当声明数组时没有给出数组元素个数,但是有初始化列表,数组元素个数由列表中元素个数来确定,因此选项D正确;选项B没有给出数组元素个数,并且在初始化列表中只给一个元素值,因此选项B定义了只有个元素的整型数组,故选项B错误;对于数值类型数组,如果给定的数值不够,则没有指定数值的元素将初始化为0,因此选项C正确。故本题答案为B。1 6 .下列控制格式输入输出的操作符中,能够设置浮点数精度的是A、s e t p r e ci s i o n B、s e t w C s e t f i l l D、s h o w p o i
14、n t本题主要考查了输出流的格式控制。s e t p r e ci s i o n(i n t n)用于控制输出流显示浮点数的精度,整数n代表显示的浮点数数字的个数。因此选项A正确。s e t w(i n t n)用于预设输入输出宽度。s e t f i l l (ch a r c)用于预设填充字符。s h o w p o i n t用于给浮点数显示小数点和尾部的0。因此选项B、选项C和选项D不正确。故本题答案为A。1 7 .若M y T e m p是一个只有一个虚拟类型参数的类模板,且有如下语句序列M y T e m p p 2;M y T e m p p 3 2 ;编译系统在处理上面的语句
15、序列时,所生成的模板M y T e mp的实例的个数是一 一。A、1 B、2 C、3 D、0本题主要考核类模板。类模板声明的语法形式为:le mpla le 模板参数表c la s s类名类成员声明使用类模板来建立对象时,应按如下形式声明:类名 模板实参表对象名1,对象名n;在定义对象的过程中,编译系统会自动地根据需要生成相应的类定义,这种依据类模板生成类定义的过程称为类模板的实例化。类模板实例化所生成的每一个类定义就是相应类模板的一个实例,因此类模板的实例个数由类型参数的种类决定。本题使用类模板M y T e mp定义对象时指定了两种类型参数:d oub le和lon g,因此所生成的实例个
16、数是2。故本题答案为B。18 .下列代码段声明了3个类c la s s P e r s on;c la s s S tud e n t:pub li c P e r s on;c la s s U n d e r g r a d ua te:S tud e n t;下列关于这些类之间关系的描述中,错误的是_ _ _ _ _oA、类Person是类Undergraduate的基类 B、类Undergraduate从类Student公有继承C、类Student是类Person的派生类 D、类Undergraduate是类Person的派生类本题主要考查了类的继承与派生。在C+中,定义派生类的一般语
17、法形式为:c la s s派生类名:继承方式 某类名1,继承方式 基类名2,,继承方式基类名n(派生类成员声明;;类的继承方式有三种:公 有(pub li c)继承、保 护(pr ote c te d)继承和私有(pr i va te)继承。如果不显式地给出继承方式,缺省的类继承方式是私有(pr i va te)继承。在声明派生类U n d e r g r a d ua te时缺省继承方式,因此类U n d e r g r a d ua te从类S tud e n t私有继承,故选项B错误。故本题答案为B。19 .将前缀运算符一重载为非成员函数,卜.列原型中,能正确用于类中说明的是_ _ _。
18、A、Decr&operator-(int);B、Deer operator (Decr&,int);C、friend Decr&operator (Decr&);D、friend Deer operator (Decr&,int);本题主要考查了运算符的重载。运算符一既可以是前缀运算符(前减1),又可以是后缀运算符(后减1)。为了区分这两种情况,重载这两个运算符时必须在格式上有所区别:重载后缀一时必须多一个虚拟参数:i n t。如果将前缀一和后缀一作为非成员函数重载,那个唯一的操作数必须作为第一参数提供。又因为要修改第一操作数,对应的参数必须声明为引用。前缀一作为非成员函数重载的般形式为:f
19、r i e n d De c r&ope r a tor (De c r&);后缀一作为非成员函数重载的一般形式为:f r i e n d De e r ope r a tor (De c r f t,i n t);当运算符重载为类的成员函数时,函数的参数个数比原来的参数个数少一个。前缀一作为成员函数重载的一般形式为:De c r&ope r a tor ();后缀一作为成员函数重载的一般形式为:De e r ope r a tor -(i n t);因此选项C正确,选项D是后缀一作为非成员函数重载的形式。故本题答案为C。2 0.有如下程序:#i n c lud e us i n g n a
20、me s pa c e s td;c la s s B a s e pub li c:B a s e(i n t x=0):va lB(x)c out va lB;、B a s e()c outva lB;pr i va te:i n t va lB;);c la s s De r i ve d:pub li c B a s e pub li c:De r i ve d(i n t x=0,i n t y=0):B a s e(x),va lD(y)c outva lD;De r i ve d O c out va l D;pr i va te:i n t va lD;i n t ma i n
21、()De r i ve d ob jl2(2,3);r e tur n 0;运行时的输出结果是_ 。A、2332 B、2323 C、3232 D、3223本题主要考查了派生类的构造函数与析构函数。构造函数在对象被创建的时候由系统自动调用,建立派生类对象时,构造函数的执行顺序如下:(1)执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);(2)执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下);(3)执行派生类的构造函数。析构函数用来完成对象被删除前的些清理工作,在对象的生存期即将结束的时刻被系统自动调用。派生类的析构函数在执行过程中也要对基类和成员
22、对象进行操作,但它的执行过程与构造函数严格相反,即:(1)对派生类新增普通成员进行清理。(2)调用成员对象析构函数,对派生类新增的成员对象进行清理。(3)调用基类析构函数,对基类进行清理。m ai n。函数中,第一条语句De r i ve d o bj l 2(2,3);创建派生类对象o bj l 2时,先以第一个实参2初始化基类Bas e成员val B,执行基类Bas e的构造函数,输出val B的值2;然后以第二个实参值3初始化派生类De r i ve d成员val D,执行派生类De r i ve d的构造函数,输出val D的值3;在对象o bj 1 2的生,存期即将结束时,先调用派生
23、类De r i ve d的析构函数,输出val D的值3,然后调用基类析构函数,输出val B的值2。因此本程序运行时的输出结果是2 3 3 2。故本题答案为A。2 1 .有如下程序 i n c l u d e u s i n g n am e s p ac e s t d;c l as s A p u bl i c:A(i n t i=0):r l(i)vo i d p r i n t ()c o u t ,r l,-;vo i d p r i n t ()c o n s t c o u t *C r l*r l ;vo i d p r i n t (i n t x)c o u t,P*r
24、l*r l*r l ,;p r i vat e:i n t r l;);i n t m ai n()A al;c o n s t A a2 (4);al.p r i n t (2);a2.p r i n t 0 ;r e t u r n 0;)运行时的输出结果是_ _ _ _ _OA、P8-E4 B、P8-C1 6-C、P0-E4-D、P0-C1 6-本题主要考杳了函数的重载、常对象和常成员函数。使用c o n s t关键字修饰的对象称为常对象,使用c o n s t关键字说明的成员函数称为常成员函数,通过常对象只能调用它的常成员函数,而不能调用其他成员函数。两个以上的函数,具有相同的函数名,
25、但是形参的个数或类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是函数的重载。c o n s t关键字可以用于对重载函数的区分。在m ai n。函数中,第一条语句定义类A的对象al,系统自动调用类A的构造函数,以默认形参值0初始化对象al的数据成员r l;第二条语句定义常对象a 2,系统自动调用类A的构造函数,以实参值4初始化对象a2的数据成员门;第三条语句通过对象al调用带个整型形参的没用c o n s t修饰的p r i n t。函数,表达式r l*r l*r l-0*0*0-0,因此输出P 0)第四条语句常对象a2调用的是用c o n s t修饰的常成员
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 c+ 笔试 历年
限制150内