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

上传人:eastlab115 文档编号:502710 上传时间:2018-11-29 格式:DOC 页数:22 大小:85KB
下载 相关 举报
[计算机类试卷]国家二级(C++)笔试模拟试卷246及答案与解析.doc_第1页
第1页 / 共22页
[计算机类试卷]国家二级(C++)笔试模拟试卷246及答案与解析.doc_第2页
第2页 / 共22页
[计算机类试卷]国家二级(C++)笔试模拟试卷246及答案与解析.doc_第3页
第3页 / 共22页
[计算机类试卷]国家二级(C++)笔试模拟试卷246及答案与解析.doc_第4页
第4页 / 共22页
[计算机类试卷]国家二级(C++)笔试模拟试卷246及答案与解析.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、国家二级( C+)笔试模拟试卷 246及答案与解析 1 分布式数据库系统不具有的特点是 ( A)数据分布性和逻辑整体性 ( B)位置透明性和复制透明性 ( C)分布性 ( D)数据冗余 2 一个栈的初始状态为空。现将元素 1、 2、 3、 4、 5、 A、 B、 C、 D、 E依次入栈,然后再依次出栈,则元素出栈的顺序是 ( A) 123456ABCDE ( B) EDCBA54321 ( C) ABCDEl2345 ( D) 54321EDCBA 3 以下不使用线性结构表示实体之间联系的模型的是 ( )。 ( A)线性 表 ( B)栈和队列 ( C)二叉树 ( D)以上三个都不是 4 在数据

2、库管理系统提供的数据功能中,负责数据的完整性、安全性的定义功能的是 ( )。 ( A)数据定义语言 ( B)数据转换语言 ( C)数据操纵语言 ( D)数据控制语言 5 对线性表进行二分法检索,其前提条件是 ( )。 ( A)线性表以顺序方式存储,并按关键码值排好序 ( B)线性表以顺序方式存储,并按关键码的检索频率排好序 ( C)线性表以链接方式存储,并按关键码值排好序 ( D)线性表以链接方式存储,并按关键码的检索频 率排好序 6 在数据流图 (DFD) 中,带有名字的箭头表示 ( A)模块之间的调用关系 ( B)程序的组成成分 ( C)控制程序的执行顺序 ( D)数据的流向 7 以下内容

3、不属于算法程序所占的存储空间的是 ( )。 ( A)算法程序所占的空间 ( B)输入的初始数据所占的存储空间 ( C)算法程序执行过程中所需要的额外空间 ( D)算法执行过程中所需要的存储空间 8 在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 ( )。 ( A)概要设计 ( B)详细设计 ( C)可行性分析 ( D)需求分析 9 控制格式 I/O的操作中, ( )是设置域宽的。 ( A) WS ( B) cot ( C) setfill() ( D) setw() 10 设计数据库的存储结构属于 ( )。 ( A)需求分析 ( B)概念设计 ( C)逻辑设计 (

4、D)物理设计 11 如果表达式 y*x+中, “*”是作为成员函数重载的运算符, “+”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为 ( A) x.operator+(0).operator*(y); ( B) operator*(x.operator+(0),y); ( C) y.operator*(operator+(x,0) ( D) operator*(operator+(x,0),y) 12 有如下程序: #include iostream using namespace std; class A public: A()cout “A“; A()cout “

5、 A“; ; class B:public A A*p; public: B()cout “B“;p=new A; B()cout “ B“;delete p; ; int main() B obj; return 0; 执行这个程序的输出结果是 ( )。 ( A) BAA A B A ( B) ABA B A A ( C) BAA B A- A ( D) ABA A B A 13 下列数组的定义中,会产生错误的是 ( A) int a=0,1,2,3,4,5,6); ( B) int a10=0,1,2,3,4,5,6; ( C) char a5=“hello“; ( D) char a5=

6、h,e,r,l,o; 14 下面关于虚函数的描述中正确的是 ( )。 ( A)虚函数是一个静态成员函数 ( B)虚函数是一个非成员函数 ( C)虚函数可以在函数说明时定义,也可以在函数实现时定义 ( D)派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 15 下列程序的执 行结果为 #include iostream.h void main( ) int a 3, b 0; int * p b a ; cout * p “,“ b endl; ( A) 3, 4 ( B) 4, 3 ( C) 3, 4 ( D) 4, 4 16 有如下程序: classXX protected: in

7、tk; public: XX(int=5): k(n); XX() tout“XX”: virtual void f()const=0; ; inline void XX: f()const coutk+3; ; class YY: public XX public: YY() cout“YY”: void f()const coutk-3; XX: f(); ; int main() XXb=2;,则 (a+)+b和 a+b这两个表达式的值分别为 ( )。 ( A) 3,3 ( B) 3,4 ( C) 4,3 ( D) 4,4 21 以下程序的输出是 ( )。 struct st int x

8、;int *y; *p; int dt4=10,20,30,40; struct st aa4= 50, main() p=aa; cout +p- x; cout (+p)- x; cout +(*p-y); ( A) 10 20 20 ( B) 50 60 21 ( C) 51 60 21 ( D) 60 70 31 22 下列关于 new运算符的描述中错误的是 ( )。 ( A)使用运算符 new创建对象数组时必须定义初始值 ( B)使用运算符 new创建对象时,会调用类的构造函数 ( C)运算符 new可以用来动态创建对象和对象数组 ( D)使用 new运算符创建的对象可以使用运算符

9、delete删除 23 有如下的程序; #include ctring #include iostream using namespace std; class MyString public: MyString(const char *s); MyString() deletedata; protected: unsigned len; char *data; ; MyString: MyString (const char *s) len=strlen(s); data=new charlen+1; strcpy(data,s); int main() MyString a(“C+ Pro

10、graming“); MyString b(a); return 0; 在运行上面的程序时出错,出错的原因是 _ 。 ( A)构造函数的实参不允许是本类的对象 ( B)没有定义实现深层复制 (深 拷贝 )的拷贝构造函数 ( C)构造对象 a时实参与形参类型不符 ( D)系统不能生成缺省的拷贝构造函数 24 下列关于函数模板实参不能省略的情况说明不正确的是 ( A)从模板函数实参表获得的信息有矛盾 ( B)需要获得特定类型的返回值,而不管参数的类型如何 ( C)虚拟类型参数没有出现在模板函数的形参表中 ( D)函数模板不含有常规形参 25 函数模板: template class T T add

11、(T x, T y)return x+y; 下列对 add函数的调用不正确的是 ( A) add (1, 2) ( B) add int (1, 2) ( C) add(1, 0, 2) ( D) add(1 0, 2 0) 26 有如下数组声明: int num10;,下标值引用错误的是 ( A) num10 ( B) num5 ( C) num3 ( D) num0 27 下面是 “二维向量 ” vector2D 的定义,其中作为成员函数重载的运算符 “+”的功能是将两向量的分量 x和 y对应相加,然后返回作为相加结果的新对象。那么应该在横线上填入的语句是 ( )。 class vecto

12、r2D private: double x; /x 分量 double y; /y分量 public: vector2D(double x0=0,double y0=0) :x(x0),y(y0) void show(cout ( , y ) ; _; ; vector2D : operator + (vector2D a) return vector20(x+a.x,y+a.y); ( A) vector2D operator + (vector2D b) ( B) vector2D operator + (vector2D ; 则类 MyClass 的构造函数的个数是 ( A) 1个 (

13、B) 2个 ( C) 3个 ( D) 4个 36 37 38 在关系数据库中,把数据表示成二维表,每一个二维表称为【 】。 39 若函数模板在调用时有【 】,则调 用它时必须强制实例化。 40 以下程序的执行结果是 _ #include iostrearn.h int f(int b, int n) int i, r=l; for(i=0; i n; i+) r=r*bi; return r; void main() int x, a= 2, 3, 4, 5, 6, 7, 8, 9; x=f(a, 3): cout x endl; 41 在面向对 象的程序设计中,将数据和处理数据的操作封装成一

14、个整体就定义了一种事物的类型,称作 “类 ”。类是一种抽象的概念,属于该类的一个实例叫做“_”。 42 模板是实现代码重用机制的一种工具,其中使一个函数可以定义成对许多不同数据类型完成同一个任务的是指【 】模板。 43 通过关键字来指定函数模板的类型参数,有几个类型参数就有几个关键字,它实际表示任何内部类型或用户自定义类型。用来指定函数模板的类型参数的关键字是【 】。 44 以下程序的执行结果是【 】。 #include iostream.h class Sample int n; public: Sample() Sample(int m) n=m; int return n; void d

15、isp() cout “n=“ n end1; ; void main() Sample s(10); (s-)+; s. disp(); 45 将一个函数声明为一个类的友元函数必须使用关键字【 】。 46 若有: int a=10, b=9, c; 则在计算表达式 c=(a%11)+(b=3), c+=2后,变量 c的值为【 】。 47 下列程序的输出结果是【 】。 #include iostream. h #include string. h void main() char b30; strcpy( strcpy( strcpy( cout b( end1; 48 如果一个函数模板声明列

16、出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须重复使用关键词【 】。 49 长度为 n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为 _。 50 如果一个模板声明时有类型形参表,则多个参数之间必须使用 _隔开,每个参数都必须重复使用关键字 _。 国家二级( C+)笔试模拟试卷 246答案与解析 1 【正确答案】 D 【试题解析】 分布 式数据库系统具有数据分布性、逻辑整体性、位置透明性和复制透明性的特点,其数据也是分布的;但分布式数据库系统中数据经常重复存储。数据也并非必须重复存储,主要视数据的分配模式而定。若分配模式是一对多,即

17、一个片段分配到多个场地存放,则是冗余的数据库,否则是非冗余的数据库。 2 【正确答案】 B 3 【正确答案】 C 4 【正确答案】 A 5 【正确答案】 A 6 【正确答案】 D 【试题解析】 数据流相当于一条管道,并有一级数据 (信息 )流经它。在数据流图中,用标有名字的箭头表示数据流。数 据流可以从加工流向加工,也可以从加工流向文件或从文件流向加工,并且可以从外部实体流向系统或从系统流向外部实体。 7 【正确答案】 D 【试题解析】 一个算法程序所占的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法程序执行过程中所需要的额外空间,而不是算法执行过程中所需要的存储空间。因

18、此,答案为 D。 8 【正确答案】 D 【试题解析】 选项 A和 B,概要设计阶段和详细设计阶段属于软件设计阶段。在此阶段系统设计人员和程序设计人员在反复理解软件需求的基础上,给出软件的结构、 模块的划分、功能的分配以及处理流程。选项 C,可行性分析阶段是确定待开发系统的开发目标和总的要求,给出它的功能、性能、可靠性以及接口等方面的可能方案,制订完成开发任务的实施计划。选项 D,需求分析阶段是对待开发软件提出的需求进行分析并给出详细定义,写软件规格说明书及初步的用户手册,提交评审。所以,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段应该是需求分析阶段。 9 【正确答案】 D 10 【正

19、确答案】 D 【试题解析】 物理设计阶段主要解决选择文件存储结构和确定文件存取方法的问题,包括选 择存储结构、确定存取方法、选择存取路径、确定数据的存放位置。 11 【正确答案】 C 【试题解析】 本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符 +,且 c1, c2 都是该类的对象,则 c1.operator+(c2)与 c1+c2 含义相同。如果 +作为该类的非成员函数重载,则 operator+(c1,c2)与 c1+c2含义相同。同理,运算符 *作为成员函数重载,则 y*(x+)与 y.operator*(x+)含义相同,后缀 +作为友元函数重载,那么 x+与 ope

20、rator+(x,0)含义相同,所以选项 C是正确的。 12 【正确答案】 B 【试题解析】 此题考查的是类的构造函数和析构函数派生类构造函数的执行顺序;首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容因此本题中,首先调用基类构造函数输出 A,然后调用子对象的构造函数输出 B, p=new A再调用类 A的构造函数输出 A;析构函数的调用顺序和构造函数的调用顺序相反。 13 【正确答案】 C 【试题解析】 本题考核数 组的定义和初始化。下面逐项进行分析: A选项中,数组 a的定义和初始化符号数组的定

21、义和初始化语法,故正确; B选项中,数组 a初始化的值虽然没有 10个,但对于少的部分,系统会自动补 0,所以 B 选项中数组的定义也是正确; C选项中,数组 a的长度为 5,但字符串 “hello“的长度为5+1=6,字符串结束符 0无法存储在数组中,所以是错误的; D选项中,数组 a的定义是正确的。 14 【正确答案】 D 【试题解析】 本题考查虚函数的概念。虚函数是非静态的成员函数,它不能是友元函数,但可以在另一个类中被声明为友元函 数。虚函数必须是类的成员函数,虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的地方,一般要求基类中说明了虚函数后,派生类说明的虚函

22、数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。 15 【正确答案】 B 【试题解析】 * p 为所指对象 a的值,语句 “b a ;”等价于 “b b a; a a 1;”。 16 【正确答案】 A 【试题解析】 类 YY公有派生于类 XX,派生类对象可以替代基 类对象向基类对象的引用进行赋值初始化,: XX&p=*newYY 语句定义了 XX对象 p 引用,并用YY对象初始化, p 并不是 YY对象的别名,是 XX基类对象的别名,故先调用基类 XX的构造函数将 k初始化为 5p f()首先输出 k-3即 2,然

23、后调用 xx: f()输出 k+3即 8, delete p 删除 p,调用 XX的析构函数输出 “XX”。 17 【正确答案】 A 【试题解析】 本题考核整型变量的 3种表示形式,选项 B 是一个八进制数;选项C是一个十进制数;选项 D是一个十六进制数;选项 A以 0开始没有跟字母 x,但后面的数字 8并不是八进制中使用的数符,故选项 A不是 C+语言的整型变量。 18 【正确答案】 B 19 【正确答案】 C 20 【正确答案】 A 21 【正确答案】 C 22 【正确答案】 A 23 【正确答案】 B 【试题解析】 类拷贝的相关内容。 24 【正确答案】 D 【试题解析】 函数模板实参不

24、能省略的情况在 C+语言中一共有 4种: 从模板函数实参表获得的信息有矛盾; 需要获得特定类型的返回值,而不管参数的类型如何; 虚拟类型参数没有出现在模板函数的形参表中; 函数模板含 有常规形参。注意:模板形参分为两种类型;虚拟类型参数利常规参数。 25 【正确答案】 C 【试题解析】 对于 template class T Tadd(T x, T y)return x+y; 调用时可以省略模板实参的声明,但是要求 x和 y的数据类型必须是一样的。 26 【正确答案】 A 【试题解析】 数组定义中的数字指的是数组的大小,而下标是从 0开始的,所以题中数组的最后一个元素是 num9。 27 【正

25、确答案】 A 【试题解析】 此题在类 vector2D中 将运算符 “+”重载为成员函数,实现将两向量的分量 x和 y对应相加的功能。那么由题可知,在空格处填入的应当是运算符 “+”重载函数的声明。根据运算符 “+”重载函数在类体外的定义可知其声明语句为: vector2Doperator+(vector2DB) 28 【正确答案】 C 29 【正确答案】 A 30 【正确答案】 A 【试题解析】 虚函数只能是类的成员函数,不能是构造函数或析构函数。注意:虚函数可以是另一个类的友元函数。 31 【正确答案】 A 【试题解析】 选项 A)中 i自减到 1时就会执行 break 语句跳出循环,选项

26、 B)中 i 10永远成立不会跳出循环,选项 C)中第一次进入循环体后 i 0永远不会跳出循环,选项 D)中未给出结束循环的条件。 32 【正确答案】 C 【试题解析】 构造函数的目的是对象初始化。 33 【正确答案】 D 【试题解析】 由于是私有继承,基类中所有成员成为派生类中的私有成员,故不能由派生类的对象访问,只有派生类的公有成员可由派生类对象访问。 34 【正确答案】 A 【试题解析】 本题考查的知识点是:运算符的重载。运算符重载为成员函 数时,形参个数一般为运算符的元数减 1,因为此成员函数所属的对象可成为运算符的一个运算分量。重载为非成员函数时,形参个数一般和运算符元数相等。所以,

27、二元运算符重载为非成员函数时,参数表中应有两个参数,选项 C不正确;运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符,选项 A是正确的。一元运算符中, “-”取负、 “+”增 1、 “-”减 1等运算符均可重载为成员函数,故选项 B 不正确。 C+中,有 “.”、 “.*”、 “- *”、 “:”、 “?:”五个运算符不能重载,故选项 D不正确。本题应该选择 A。 35 【正确答案】 A 36 【正确答案】 逻辑 【试题解析】 数据的逻辑结构主要是反映数据之间的逻辑关系,而存储结构是用来反映数据的逻辑结构在计算机存储空间中的存放形式。循环队列主要是强调数据之间的关系,因此属于逻辑结

28、构。 37 【正确答案】 Base(a), com(b) 38 【正确答案】 关系 或 关系表 39 【正确答案】 常规参数 40 【正确答案】 120 41 【正确答案】 对象 【试题解析】 此题考查的是对象的概念。类是将不同类型的数据与这些数据相关的操作 封装在一起的集合体,对象是类的实例,一个对象必须属于一个已知的类。 42 【正确答案】 函数模板 【试题解析】 模板分为类模板和函数模板,函数模板使一个函数可以定义成对许多不同数据类型完成同一个任务。 43 【正确答案】 typename(或 class) 【试题解析】 函数模板的声明形式为: template class 数据类型参数标

29、识符 返回类型函数名 (参数表 ) 函数体 其中, template 是定义模板函数的关键字, template 后面的尖括号不能省略,typename(或 class)是声明数据类型参数标识符的关键字,用以说明它后面的标识符是数据类型标识符。这样,在以后定义的这个函数中,凡希望根据实参数据类型来确定数据类型的变量,都可以用数据类型参数标识符来说明,从而使这个变量可以适应不同的数据类型。 44 【正确答案】 n=10 45 【正确答案】 friend 46 【正确答案】 15 47 【正确答案】 XYZXY 48 【正确答案】 class 【试题解析】 本题考核模板的定义。函数模板的一般说 明形式如下: template类型形参表 返回类型函数名卜形参表 ) 函数体 其中,类型形参表可以包含基本数据类型,也可以包含类类型。类型形参需要加前缀 class。如果类型形参多于一个,则每个类型形参都要使用 class。形参表中的参数是惟一的,而且至少在函数定义体中出现一次。形参表中至少有一个形参的类型必须用类型形参表中的形参来定义。 49 【正确答案】 n/2 50 【正确答案】 , class

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

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

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