[计算机类试卷]2009年9月国家二级(C++)笔试真题试卷及答案与解析.doc

上传人:周芸 文档编号:492790 上传时间:2018-11-30 格式:DOC 页数:27 大小:83KB
下载 相关 举报
[计算机类试卷]2009年9月国家二级(C++)笔试真题试卷及答案与解析.doc_第1页
第1页 / 共27页
[计算机类试卷]2009年9月国家二级(C++)笔试真题试卷及答案与解析.doc_第2页
第2页 / 共27页
[计算机类试卷]2009年9月国家二级(C++)笔试真题试卷及答案与解析.doc_第3页
第3页 / 共27页
[计算机类试卷]2009年9月国家二级(C++)笔试真题试卷及答案与解析.doc_第4页
第4页 / 共27页
[计算机类试卷]2009年9月国家二级(C++)笔试真题试卷及答案与解析.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、2009年 9月国家二级( C+)笔试真题试卷及答案与解析 1 下列数据结构中,属于非线性结构的是 ( A)循环队列 ( B)带链队列 ( C)二叉树 ( D)带链栈 2 下列数据结构中,能够按照 “先进后出 ”原则存取数据的是 ( A)循环队列 ( B)栈 ( C)队列 ( D)二叉树 3 对于循环队列,下列叙述中正确的是 ( A)队头指针是固定不变的 ( B)队头指针一定大于队尾指针 ( C)队头指针一定小于队尾指针 ( D)队头指针可以大于队尾指针,也可以小于队尾指针 4 算法的空间复杂度是 指 ( A)算法在执行过程中所需要的计算机存储空间 ( B)算法所处理的数据量 ( C)算法程序

2、中的语句或指令条数 ( D)算法在执行过程中所需要的临时工作单元数 5 软件设计中划分模块的一个准则是 ( A)低内聚低耦合 ( B)高内聚低耦合 ( C)低内聚高耦合 ( D)高内聚高耦合 6 下列选项中不属于结构化程序设计原则的是 ( A)可封装 ( B)自顶向下 ( C)模块化 ( D)逐步求精 7 软件详细设计产生的图如下: 该图是 ( A) N-S图 ( B) PAD图 ( C)程序流程图 ( D) E-R图 8 数据库管理系统是 ( A)操作系统的一部分 ( B)在操作系统支持下的系统软件 ( C)一种编译系统 ( D)一种操作系统 9 在 E-R图中,用来表示实体联系的图形是 (

3、 A)椭圆形 ( B)矩形 ( C)菱形 ( D)三角形 10 有三个关系 R, s和 T如下:其中关系 T由关系 R和 s通过某种操作得到,该操作为 ( A)选择 ( B)投影 ( C)交 ( D)并 11 已知函数 FA调用 FB,若要把这两个函数定义在同一个文件中,则 ( A) FA必须定义在 FB之前 ( B) FB必须定 义在 FA之前 ( C)若 FA定义在 FB之后,则 FA的原型必须出现在 FB的定义之前 ( D)若 FB定义在 FA之后,则 FB的原型必须出现在 FA的定义之前 12 有如下两个类定义: class AA; class BB AA v1, *v2; BB v3

4、; int*v4; ; 其中有一个成员变量的定义是错误的,这个变量是 ( A) v1 ( B) v2 ( C) v3 ( D) v4 13 有如下类定义: class XX int xdata; public: xx(int n=O): xdata(n) ; class YY: public XX int ydata; public: YY(int m=0, int n=O): XX(m), ydata(n) ; YY类的对象包含的数据成员的个数是 ( A) 1 ( B) 2 ( C) 3 ( D) 4 14 下列关于运算符函数的描述中,错误的是 ( A)运算符函数的名称总是以 operato

5、r为前缀 ( B)运算符函数的参数可以是对象 ( C)运算符函数只能定义为类的成员函数 ( D)在表达式中使用重载的运算符相当于调用运算符重载函数 15 下列关于模板 形参的描述中,错误的是 ( A)模板形参表必须在关键字 template之后 ( B)模板形参表必须用括弧 ()括起来 ( C)可以用 class修饰模板形参 ( D)可以用 typename修饰模板形参 16 在下列枚举符号中,用来表示 “相对于当前位置 ”文件定位方式的是 ( A) ios_base: cur ( B) ios_base: beg ( C) ios_base: out ( D) ios_base: end 1

6、7 下列字符串中可以用作 C+标识符的是 ( A) 2009var ( B) goto ( C) test_2009 ( D) _123 18 下列枚举类型的定义中,包含枚举值 3的是 ( A) enum testRED, YELLOW, BLUE, BLACK; ( B) enum testRED, YELLOW=4, BLUE, BLACK; ( C) enum testRED=-1, YELLOW, BLUE, BLACK; ( D) erium testRED, YELLOW=6, BLUE, BLACK; 19 有如下程序段: int i=1: while(1) i+; if(i=2

7、10) break; if(i 2=0) coutclass A; 下列声明中,与上述声明不等价的是 ( A) templateclass A; ( B) templateclass A; ( C) templateclass A; ( D) templateclass A; 26 下列关于 c+流的描述中,错误的是 ( A) coutA表达式可输出字符 A ( B) eof()函数可以检测是否到达 文件尾 ( C)对磁盘文件进行流操作时,必须包含头文件 fstream ( D)以 los_base: out模式打开的文件不存在时,将自动建立一个新文件 27 有如下程序: #include u

8、sing namespace std; class Toy public: Toy(char*_n)strcpy(name, _n); count+; Toy()count-; char*GetName()return name; static int getCount()return count; private: char name10; static int count; ; int Toy: count=O: int main() Toy tl(“Snoopy”), t2(“Mickey”), t3(“Barbie”); cout using namespace std; class

9、A public: A(int i): r1(i) void print()cout using flamespace std; class Name char name20; public: Name() strcpy(name, “”); cout using namespace std; class AA public: AA()tout using namespace std; class C1 public: -Cl()cout using namespace std; class Publication出版物类 char name30; public: Publication(ch

10、ar*name=”未知名称 ”) strcpy(this-name, name); const char*getName()constreturn name; virtual const char*getType()constreturn“未知类型 ”; ; class Book: public Publication书类 public: Book(char*name): Publication(name) virtual const char*getType()constreturn“书 ”; void showPublication(Publication&p) cout #include

11、 using namespace std; int main() int S=123, 234; cout20; i-=2) eout using namespace std; class GrandChild public: GrandChild( )strcpy(name, ”Unknown”); eonst char*getName()constreturn name; virtual char*getAddress()const=0; private: char name20; ; class GrandSon: public GrandChild public: GrandSon(c

12、har*name) char半 getAddress()constreturn”Shanghai”; ; int main() GrandChild *gs=new GrandSon(”Feifei”); coutgetName()getAddress() #include using namespace std; class Word public: Word(string s): str(s) string getStr()retum str; 【 】 constretum(str class Data public: void put(T v)val=v; 【 】 get() 返回数据成

13、员 val的值,返回类型不加转换 return val; private: T val; ; 2009年 9月国家二级( C+)笔试真题试卷答案与解析 1 【正确答案】 C 【试题解析】 根据数 据结构中各数据元素之问前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间为一对多或者多对一的关系。根据各种结构的定义知二叉树是一种非线性结构。 2 【正确答案】 B 【试题解析】 栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。栈顶元素总是后被插入的元素。也是最先被删除的元素;栈

14、底元素总是最先被插入的元素,也是最后才能被删除的元素。栈是按照 “先进后出 ”或 “后进先出 ”的原则组织 数据的。 3 【正确答案】 D 【试题解析】 循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针,故答案为 D)。 4 【正确答案】 A 【试题解析】 算法的空间复杂度是指:算法执行过程中所需的存储空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。 5 【正确答案】 B 【试题解析】 模块划分 应考虑

15、的因素包括模块之间的耦合和内聚。一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即遵循高内聚、低耦合的原则。 6 【正确答案】 A 【试题解析】 模块化、自顶向下、逐步求精都是结构化程序设计的原则;可封装是面向对象程序设计原则。 7 【正确答案】 C 【试题解析】 NS图是由若干基本框图构成的流程图,其特点是没有流程线;PAD图即问题分析图 (Problem Analysis Diagram),它是一种由左往右展开的二维树型结构;程序流程图用 于描述问题解决的过程和步骤,其中方框表示处理步骤,菱形框表示逻辑判断,箭头表示控制流向; ER图即实体一联系图(

16、EntityRelationship Diagram),用来描述现实世界的概念模型,构成元素有实体、属性和联系,分别用矩形、椭圆形和菱形表示。本题答案为 c)。 8 【正确答案】 B 【试题解析】 数据库管理系统是指位于用户与操作系统之间的数据管理软件。数据库管理系统是为数据库建立、使用和维护而配置的软件。 9 【正确答案】 C 【试题解析】 ER图中用矩形表示实体 (等同于表 ),用椭圆形表示实体的属性(等同于表中字段 ),用菱形表示实体关系 (等同于外键 )。 10 【正确答案】 D 【试题解析】 两个相同结构关系的并是由属于这两个关系的元组组成的集合。 11 【正确答案】 D 【试题解析

17、】 函数 FA调用 FB,如果 FB没有声明函数原型,则 FB必须定义在FA之前;若 FB的原型出现在 FA的定义之前,则 FB可以定义在 FA之后。 12 【正确答案】 C 【试题解析】 由于 AA和 BB都是类的定义,在类定义中无法声明一个自己的对象,所以在 BB的类定义中,企图声明一个 BB类的对象,是非法的。所以本题选择 C)。 13 【正确答案】 B 【试题解析】 派生类的数据成员包括其基类的数据成员和派生类本身新增的数据成员,由于 YY继承了 XX,所以 YY类的对象包含 2个数据成员,即基类中的成员 xdata和新增成员 ydata。 14 【正确答案】 C 【试题解析】 运算符

18、函数的函数名是由运算符前加关键字 operator构成的,在声明运算符或调用运算符时都可以用这个名称。重载的运算符既可以作为类的成员函数,又可以作为类的友元函数或一般函数。所以选项 C)是错误的。 15 【正确答案】 B 【试题解析】 模板参数位于函数模板名称的前面,在一对尖括号内部进行声明,如: template T是模板参数在函数模板内部,不能指定缺省的模板实参。根据以上定义可知选项 B)是错误的。 16 【正确答案】 A 【试题解析】 ios_base:cur表示相对于当前位置; ios_base: beg表示开始位置; ios_base: out指打开并写入,如果已经存在,则截短文件;

19、 ios_base:beg表示文件末尾。 17 【正确答案】 D 【 试题解析】 c+的标识符命名规则为: 只能由字母、数值和下划线 3种字符组成。 第一个字符必须是字母或下划线。 不能与 c语言中的关键字或保留字相同。选项 A)以数字开头;选项 B)是 c+关键字;选项 c)包含非法字符 -;选项D)正确。 18 【正确答案】 A 【试题解析】 在枚举类型定义中,如果没有进行显式设置,则隐式设置整数值。将枚举声明中的第一个枚举值设置为 O。后续所有成员的值如果没有进行显式设置,便确定为前一个成员的值加 1。所以只能选择答案 A)。选项 B)中对应的枚举值是 0, 4, 5, 6;选项 c)中

20、对应的枚举值是 -1, 0, 1, 2;选项 D)中对应的枚举值是 0, 6, 7, 8。 19 【正确答案】 C 【试题解析】 i为 2、 4、 6、 8时分别输出 *符号,当 i等于 10时退出循环。 20 【正确答案】 D 【试题解析】 选项 A)中, arr指向数组 a丌 0, *arrtl也就是 arrO+1=1+1=2;选项 B)中,指针 arr向后移动一位,即指向 arr1,输出结果为 2;选项 c)中,arr1即为数组的第 2个元素 2;选项 D)中, arr指向数组第 1个元素,因此 *arr的值为 1。 21 【正确答案】 C 【试题解析】 fib(2)=fib(1)+fi

21、b(O)=2+1=3,所以函数被调用 3次,分别是fib(2)、 fib(1)和 fib(O)。 22 【正确答案】 D 【试题解析】 一共定义了 3个 Sample的对象, a2包含两个 sample元素,调用两次构造函数, newsample调用一次构造函数,故其构造函数执行了 3次。 23 【正确答案】 C 【试题解析】 虚基类主要解决在多重继承时,基类可能被多次继承的问题,虚基类提供了一个基类给派生类。 class B: virtual public: A中很明显 B继承了虚基类A,所以选项 c)错误。 24 【正确答案】 B 【试题解析】 运算符重载函数仅有一个参数,当重载为成员函数

22、时,双目运算符仅有一个参数。对单目运算符,重载为成员函数时,不能再显式说明参数。重载为成员函数时,总是隐含了一个参数,该参数是 this指针。 this指针是指向调用该成员函数对象的指针。所以本题选择一元运算符。 25 【正确答案】 D 【试题解析】 定义函数模板时可以使用多个类型参数,这时每个类型参数前面都要加上关键字 class或 typename,其间用逗号分隔。 26 【正确答案】 A 【试题解析】 coutA语句错误。输出字符 A的语句应为: coutgetName( )输出name的值 “Unknown”。 gs-getAddress( )执行继承类中的 getAddress函数,输出“Shanghai”。总共输出 “Unknown住在 Shanghai”。 49 【正确答案】 bool operator(Word w) 【 试题解析】 由语句。 return(strw slr)知其返回值为 bool类型。作为类的成员函数它只有一个 Word类型的参数 w。 50 【正确答案】 T 【试题解析】 val是类型参数为 T的变量,因此返回值类型为 T。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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