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

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

1、国家二级( C+)笔试模拟试卷 197及答案与解析 1 下列叙述中正确的是 A) 算法的效率只与问题的规模有关,而与数据的存储结构无关 B) 算法的时间复杂度是指执行算法所需要的计算工作量 C) 数据的逻辑结构与存储结构是一一对应的 D) 算法的时间复杂度与空间复杂度一定相关 2 在结构化程序设计中,模块划分的原则是 A) 各模块应包括尽量多的功能 B) 各模块的规模应尽量大 C) 各模块之间的联系应尽量紧密 D) 模块内具有高内聚度,模块间具有低耦合度 3 下列叙述中正确的是 A) 软件测试的 主要目的是发现程序中的错误 B) 软件测试的主要目的是确定程序中错误的位置 C) 为了提高软件测试

2、的效率,最好由程序编制者自己来完成软件测试的工作 D) 软件测试是证明软件没有错误 4 下列选项中,不属于面向对象程序设计特征的是 A) 继承性 B) 多态性 C) 类比性 D) 封装性 5 下列对列的叙述中,正确的是 A) 队列属于非线性表 B) 队列按 “先进后出 ”的原则组织数据 C) 队列在队尾删除数据 D) 队列按 “先进先出 ”原则组织数据 6 某二叉树中有 n个度为 2的结点,则该二叉树中的 叶子结点数为 A) n+1 B) n-1 C) 2n D) n/2 7 在下列关系运算中,不改变关系表中的属性个数,但能减少元组个数的是 A) 并 B) 交 C) 投影 D) 笛卡儿乘积 8

3、 在 E-R图中,用来表示实体之间是联系的图形是 A) 矩形 B) 椭圆形 C) 菱形 D) 平行四边形 9 下列叙述中错误的是 A) 在数据库系统中,数据的物理结构必须与逻辑结构一致 B) 数据库技术的根本目标是要解决数据的共享问题 C) 数据库设计是指在已有数据库管理系统的基础上建立数据库 D) 数据 库系统需要操作系统的支持 10 要定义数组 A,使得其中每个元素的数据依次为 3、 9、 4、 8、 0、 0、 0,错误的定义语句是 A) int A =3, 9, 4, 8, 0, 0, 0; B) int A7=3, 9, 4, 8, 0, 0, 0; C) int A =3, 9,

4、4, 8; D) int A7=3, 9, 4, 8; 11 在 C+中,实现封装性需借助于 A) 枚举 B) 类 C) 数组 D) 函数 12 下列关于虚函数的描述中,正确的是 A) 虚函数是一个 static类型的成员函 数 B) 虚函数是一个非成员函数 C) 基类中采用 virtual说明一个虚函数后,派生类中定义相同类型的函数时可不必加 virtual D) 派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型 13 下列关于运算符重载的描述中,正确的是 A) 运算符重载可以改变操作数的个数 B) 运算符重载可以改变运算符的优先级 C) 运算符重载可以改变运算符的结合性 D

5、) 运算符重载可以使运算符实现特殊功能 14 有如下函数模板声明: template typename T T Max(T a, T B) return(a=B) ?a: b; 下列对函数模板 Max的调用中错误的是 A) Max(3.5, 4.5) B) Max(3.5, 4); C) Max double (3.5, 4.5) D) Max double (3.5, 4) 15 若语句: cout setfill( ) setw(5) 3141512 setw(5) “OK!“; 是程序中第一个输出语句,则输出结果是 A) 3141512 0K! B) 3141512 OK! C) 314

6、150K! D) 31415 OK 1 16 有如下语句序列: int k=0: d0k+=5; cout $; wbile(k 19); while(k- 0)cout *; 执行上面的语句后,序列输出字符 $和 *的个数分别是 A) 4和 20 B) 5和 20 C) 4和 21 D) 5和 21 17 针对数组定义 int data10;,下列叙述中错误的是 A) 用 *data可访问到数组的首元素 B) 用 data9可访 问到数组的末元素 C) 用 data10访问数组元素会超出数组的边界 D) data共有 10个元素,其首元素是 data1 18 已知 n是一个 int型变量,下

7、列语句中错误的是 A) long*p=new longn; B) long pn; C) long*p=new long(n); D) long p10; 19 下列函数中对调用它的函数没有起到任何作用的是 A) void f1(double x)-x; B) double f2(double x)return x-1.5; C) void f3(double x)-x; D) double f4(double *x)-*x; return*x; 20 有如下函数定义: void func(int a, int B) a+; b+; 若执行代码段: intx=0, y=1; func(x, y

8、); 则变量 x和 y值分别是 A) 0和 1 B) 1和 1 C) 0和 2 D) 1和 2 21 有如下程序: #include iostream using namespace std; class A public: static int a; void init( )a=l; A(int a=2)init( ); a+; ; int A:a=0; A obj; int main( ) cout obj.a; return 0; 程序的输出结果是 A) 0 B) 1 C) 2 D) 3 22 下列有关继承和派生的叙述中 ,正确的是 A) 派生类不能访问基类的保护成员 B) 作为虚基类的

9、类不能被实例化 C) 派生类应当向基类的构造函数传递参数 D) 虚函数必须在派生类中重新实现 23 下列运算符中,不能被重载的是 A) B) != C) D) + 24 下列函数模板的定义中,合法的是 A) template typename T T abs(T x)retllrn x 0? -x: X; B) template class T T abs(T x)return x 0? -x; x; C) template T class T abs(T x)return x 0? -X; x; D) template T abs(T x)return x 0? -x; x; 25 在语句

10、cin data;中, cin是 A) C+的关键字 B) 类名 C) 对象名 D) 函数名 26 有如下程序: #include iostream using namespace std; class test private: int a; public: test( )cout “constructor“ endl; test(int A) cout a endl; test(const test _test) a=_test a; cout “copy constructor“ endl; test()cout “destructor“ endl; ; int main( ) test

11、 A(3) return 0; 程序的输出结果是 A) 3 destructor B) constructor destructor C) copy constructor destructor D) 3 27 若有类声明: class MyClass public: MyClass( )cout 1; ; 执行下列语句 MyClass a, b2, *P2; 以后,程序的输出结果是 A) 11 B) 111 C) 1111 D) 11111 28 有如下程序: #include iostream using namespaee std; class Point public: static

12、int number; Point( )number+; Point( )number-; ; int Point:number=0; void main( ) Point*ptr; Point A, B; Point*ptr_point=new Point3; ptr=ptr_point; Point C; cout Point:number endl; delete ptr; 程序的输出结果是 A) 3 B) 4 C) 6 D) 7 29 如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制: #include iostr

13、eam using namespace std; class Base int a, b; public: Base(int x, inty)a=x; b=y; void show( )cout a , b endl; ; class Derived: public Base int C, d; public: Derived(int x, int y, int z, intm): Base(x, y)c=z; d=m; void show( )cout c , d endl; int main( ) Base BI(50, 50), *pb; Derived D1(10, 20, 30, 4

14、0); pb=D1; pb- show( ); return 0; 程序的输出结果是 A) 10, 20 B) 30, 40 C) 20, 30 D) 50, 50 30 有如下程序: #include iostream using namespace std; class A public: A(int i)X=i; void dispa( )cout x , ; private: int x; ; class B: public A public: B(int i): A(i+10)x=i; void dispb( )dispa( ); cout x endl; private: int

15、x; ; int main( ) B b(2); b.dispb( ); return 0; 程序的输出结果是 A) 10, 2 B) 12, 10 C) 12, 2 D) 2, 2 31 虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有如下程序: #include iostream using namespaee std; class Base public: virtual void f( )cout “f0+“; void g( )cout “gO+“; ; class Derive

16、d: public Base public: void f( )cout “f+“; void g( )cout “g+“; ; int main( ) Derived d; Base*P= d: p- f( ); p- g( ); return 0; 程序的输出结果是 A) f+g+ B) f0+g+ C) f+g0+ D) f0+g0+ 32 下面程序对一维坐标点类 Point进行了运算符重载: #include iostream using namespace std; class Point public: Point(int val)x=val; Point operator+( )

17、x+; return*this; Point operator+(int)Point old=*this; +(*this); return old; int GetX( )eonst t return x; private: int x; ; int main( ) Point a(10); cout (+ A) .GetX( ); cout a+.GetX( ); return 0; 编译和运行情况是 A) 运行时输出 1011 B) 运行时输出 1111 C) 运行时输出 1112 D) 编译有错 33 有如下程序: #include iostream using namespace s

18、td; int main( ) char str100, *P; cout “please input a string: “; cin str; P=str; for(inti=0; *P!=0; p+, i+); cout i endl; return 0; 运行这个程序时,若输入字符串为 Abcdefg abcd 则输出结果是 A) 7 B) 12 C) 13 D) 100 34 有如下程序: #include iostream using namespace std; class Sample friend long fun(Sample s); public: Sample(long

19、 A) x=a; private: long x; ; long fun(Sample s) if(s x 2)return 1; return s x*fun(Sample(s x-1); int main( ) int sunl=0; for(inti=0; i 6; i+)sum+=fun(Sample(i); tout sum: return 0; 程序的输出结果是 A) 120 B) 16 C) 154 D) 34 35 下列关于栈的叙述中,正确的选项是 ( )。 A) 在栈中只能删除数据 B) 在栈中只能插入数据 C) 栈是先进先出的线性表 D) 栈是先进后出的线性表 36 37

20、38 39 40 41 42 43 44 45 46 47 48 49 50 国家二级( C+)笔试模拟试卷 197答案与解析 1 【正确答案】 B 【试题解 析】 本题考查数据结构中有关算法的基本知识和概念。数据的结构会直接影响算法的选择和效率。而数据结构包括两方面,即数据的逻辑结构和数据的存储结构。因此,数据的逻辑结构和存储结构都影响算法的效率。选项 A的说法是错误的。算法的时间复杂度是对算法在计算机内执行时所需时间的度量;与时间复杂度类似,空间复杂度是对算法在计算机内执行时所需存储空间的度量。 2 【正确答案】 D 【试题解析】 本题考查软件工程中软件设计的概念和原理。人们在开发计算机软

21、件的长期实践中积累了丰富的经验,总结这些经验得到如下的启发式 规则: 改进软件结构,提高模块独立性。通过模块的分解或合并,力求降低耦合、提高内聚。低耦合是指降低不同模块间相互依赖的紧密程度,高内聚是指提高一个模块内各元素彼此结合的紧密程度。 模块的规模应适中。一个模块的规模不应过大,过大的模块往往是由于分解不够充分;过小的模块开销大于有益操作,而且模块过多将使系统接口复杂,因此过小的模块有时不值得单独存在。 模块的功能应该可以预测,但也要防止模块功能过分局限。如果模块包含的功能太多,则不能体现模块化设计的特点;如果模块的功能过分局限,使用范围就过分狭窄。本题的正确答案 是选项 D。 3 【正确

22、答案】 A 【试题解析】 就软件测试而言,它的目的是发现软件中的错误。但是,发现错误并不是最终目的,最终目的是通过测试发现错误之后还必须诊断并改正错误,这才是测试的目的。由于测试的目标是暴露程序中的错误,所以从心理学角度看,由程序的编写者自己进行测试是不恰当的。因此,在软件测试阶段通常由其他人员组成测试小组来完成测试工作。经过上述分析可知,选项 A的说法是正确的,而选项 B、 C、 D的说法是错误的。 4 【正确答案】 C 【试题解析】 面向对象方法具有封装性、继承 性、多态性几大特点。就是这几大特点,为软件开发提供了一种新的方法学。封装性:所谓封装就是将相关的信息、操作与处理融合在一个内含的

23、部件中 (对象中 )。它是面向对象程序设计的基础。继承性:子类具有派生它的类的全部属性 (数据 )和方法,而根据某一类建立的对象也具有该类的全部属性 (数据 )和方法,这就是继承性。继承有利于提高软件开发效率,容易达到一致性。多态性:多态性就是多种形式。不同的对象在接收到相同的消息时,采用不同的动作。 5 【正确答案】 D 【试题解析】 本题考查数据结构中队列的基本知识。队列是一 种限定性的线性表,它只允许在表的一端插入元素,而在另一端删除元素,所以队列具有先进先出的特性。在队列中,允许插入元素的一端叫做队尾,允许删除元素的一端则称为队头。 6 【正确答案】 A 7 【正确答案】 B 【试题解

24、析】 本题考查数据库的关系运算。两个关系的并运算是指将第一个关系的元组加到第二个关系中,生成新的关系。因此,并运算不改变关系表中的属性个数,也不能减少元组个数。两个关系的交运算是包含同时出现在第一和第二个关系中的元组的新关系。因此,交运算不改变关系表中的属性个数,但能减少元组个 数。投影是一元关系操作。投影操作选取关系的某些属性,这个操作是对一个关系进行垂直分割,消去某些属性,并重新安排属性的顺序,再删除重复的元组。因此,投影运算既可以减少关系表中的属性个数,也可以减少元组个数。两个关系的笛卡儿积是指一个关系中的每个元组和第二个关系的每个元组连接。因此,笛卡儿积运算能够增加元组属性的个数。在上

25、述 4种运算中,交运算不改变关系表中的属性个数但能减少元组个数。 8 【正确答案】 C 【试题解析】 E-R模型中,有 3个基本的抽象概念:实体、联系和属性。 E-R图是 E-R模型的 图形表示法,在 E-R图中,用矩形框表示实体,菱形框表示联系,椭圆形框表示属性。 9 【正确答案】 A 【试题解析】 本题考查数据库系统的基本概念和知识。数据的逻辑结构是数据间关系的描述,它只抽象地反映数据元素之间的逻辑关系,而不管其在计算机中的存储方式。数据的存储结构又叫物理结构,是逻辑结构在计算机存储器里的实现。这两者之间没有必然的联系。因此,选项 A的说法是错误的。数据库可以看成是长期存储在计算机内的、大

26、量的、有结构的和可共享的数据集合。因此,数据库具有为各种用户所共享的特点。不同的用户可以 使用同一个数据库,可以取出它们所需要的子集,而且容许子集任意重叠。数据库的根本目标是要解决数据的共享问题。因此,选项 B的说法是正确的。数据库设计是在数据库管理系统的支持下,按照应用的要求,设计一个结构合理、使用方便、效率较高的数据库及其应用系统。数据库设计包含两方面的内容:一是结构设计,也就是设计数据库框架或数据库结构;二是行为设计,即设计基于数据库的各类应用程序、事务等。因此,选项 C的说法是正确的。数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件

27、开发工具等。对于大型的多用户数据库系统和网络数据库系统,还需要多用户系统软件和网络系统软件的支持。因此,选项 D的说法是正确的。因此,本题的正确答案是选项 A。 10 【正确答案】 C 【试题解析】 采用 int A =3, 4, 9, 8定义数组 A,则 A中只有 4个元素,而题干要求的是 7个元素, A4、 A5、 A63个元素就不存在。 11 【正确答案】 B 12 【正确答案】 C 【试题解析】 虚函数是在类的声明中使用 virtual关键字来限定的成员函数,在成员函数实现时不能再 使用 virtual关键字进行限定。派生类中的虚函数必须和基类中的虚函数的形参个数、形参类型、返回值完全

28、一致。虚函数不能用 static关键字进行修饰。 13 【正确答案】 D 14 【正确答案】 B 15 【正确答案】 A 16 【正确答案】 A 17 【正确答案】 D 18 【正确答案】 B 19 【正确答案】 C 20 【正确答案】 C 21 【正确答案】 B 22 【正确答案】 C 23 【正确答案】 C 24 【正确答案】 A 【试题解析】 函 数模板定义的一般格式为: Template typename类型参数 返回类型 函数名 (模板形参表 ) 函数体 25 【正确答案】 C 【试题解析】 cin是 istream输入流类的派生类 istream_withassign对象。 cou

29、t是ostream输出流类的派生类 ostream_withassign对象。 26 【正确答案】 A 27 【正确答案】 B 28 【正确答案】 C 【试题解析】 只有在创建对象时才会调用类的构造函数,在定义指 针时不会调用构造函数,只有给指针 new一个地址时会调用构造函数,所以本程序中一共生成了 6个 Point对象 (A, B, C, newPoint3)。 number作为静态数据成员,被同一类的不同对象所共享,故结果为 6。 29 【正确答案】 A 30 【正确答案】 C 【试题解析】 派生类的构造函数定义的一般格式为: 派生类名 (参数总表 ):基类名 (参数表 ) 派生类新增数

30、据成员的初始化语句 在生成对象 b时,就自动给基类构造函数传递实参 10+i,所以 dispa( )打印结果为 12, dispb( )打印结果为 2。 31 【正确答案】 C 32 【正确答案】 B 33 【正确答案】 A 34 【正确答案】 C 35 【正确答案】 D 36 【正确答案】 模式或逻辑模式或概念模式 【试题解析】 模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。 37 【正确答案】 一对多 【试题解析】 实体之间的对应关系称为联系,它反映现实世界事物之问的相互关联。两个实体间的联系可以归结为三种类型:一对一联系 表现为某一实体与

31、另一实体一一对应相关联;一对多联系表现为某一实体与相关多个实体相关联;多对多联系表现为多个实体与相关多个实体相联系。所以实体 “班主任 ”与实体 “班级 ”之间存在一对多联系。 38 【正确答案】 黑盒 【试题解析】 测试是否能够发现错误取决于测试实例的设计。动态测试的设计测试实例方法一般有两类:黑盒测试方法和白盒测试方法。 39 【正确答案】 参照完整性 【试题解析】 关系模型的完整性规则是对关系的某种约束条件,它允许定义三类数据约束,分别是:实体完整性、参照完整性及自定义完整 性,其中前两种完整性约束由关系数据库系统自动支持。 40 【正确答案】 关系 【试题解析】 在关系数据库中,把数据

32、表示成二维表,而一个二维表就是一个关系。 41 【正确答案】 抽象类 【试题解析】 C+中拥有纯虚函数的类成为抽象类,抽象类不能用来定义对象。若一个抽象类的派生类没有重定义其基类中的某个纯虚函数,则该函数在派生类中仍是纯虚函数,该类仍为抽象类。 42 【正确答案】 26 43 【正确答案】 私有继承 44 【正确答案】 11333 45 【正确答案】 4 46 【正确答案】 5 47 【正确答案】 BaseDerived 【试题解析】 创建 Derived类型的对象将导致 Derived的构造函数被执行,而执行 Derived构造函数时,首先要执行其父类的构造函数,所以先输出 ”Base”,然后输出 ”Derived”; p是一个指向 Base类型的指针,对其赋值不会引起构造函数的执行,所以本题输出为 ”BaseDerived”。 48 【正确答案】 TestClass& 49 【正确答案】 friendvoidfun(); 50 【正确答案】 15

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

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

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