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

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

1、国家二级( C+)笔试模拟试卷 165及答案与解析 1 数据的存储结构是指 ( )。 ( A)数据所占的存储空间 ( B)数据的逻辑结构在计算机中的存放形式 ( C)数据在计算机中的顺序存储方式 ( D)存储在计算机外存中的数据 2 将 E-R图转换到关系模式时,实体与实体间的联系可以表示成 ( )。 ( A)属性 ( B)关系 ( C)键 ( D)域 3 下列叙述中正确的是 ( )。 ( A)一个算法的空间复杂度大,则其时 间复杂度必定大 ( B)一个算法的空间复杂度大,则其时间复杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)上述三种说法都不对 4 最简单的交换排

2、序方法是 ( )。 ( A)快速排序 ( B)选择排序 ( C)堆排序 ( D)冒泡排序 5 有下列二叉树,对此二叉树前序遍历的结果是 ( )。 ( A) ACFXDBEYZ ( B) ABEFXYZCD ( C) ABCDEFXYZ ( D) ABDYECFXZ 6 关于结构化程序设 计原则和方法的描述错误的是 ( )。 ( A)选用的结构只准许有一个入口和一个出口 ( B)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现 ( C)不允许使用 GOTO语句 ( D)语言中所没有的控制结构,应该采用前后一致的方法来模拟 7 对关系 S和 R进行集合运算,结果中既包含 S中的所有元组也包含 R

3、中的所有元组,这样的集合运算称为 ( )。 ( A)并运算 ( B)交运算 ( C)差运算 ( D)积运算 8 下列叙述中正确的是 ( )。 ( A)在面向对象的程序设计中,各个对象之间具有密切的关系 ( B)在面向对象的程序设计中,各个对象都是公用的 ( C)在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 ( D)上述 3种说法都不对 9 下列选项中不属于软件生命周期开发阶段任务的是 ( )。 ( A)软件测试 ( B)概要设计 ( C)软件维护 ( D)详细设计 10 数据库 DB、数据库系统 DBS、数据库管理系统 DBMS之间的关系是 ( )。 ( A) DB包括 DBS和

4、 DBMS ( B) DBMS包括 DB和 DBS ( C) DBS包括 DB和 DBMS ( D)没有任何关系 11 实现运行时的多态性要使用 ( )。 ( A)重载函数 ( B)析构函数 ( C)构造函数 ( D)虚函数 12 已知 char a iht b; float c; double d;则表达式 a*b+c-d结果为 ( )。 ( A) double ( B) int ( C) float ( D) char 13 已知一函数的形 参说明为 int arr56,则与此等效的形参说明为 ( )。 ( A) int arr ( B) int5 ( C) int*a6 ( D) int

5、(*a)6 14 下列关于虚函数的描述中,正确的是 ( )。 ( A)虚函数是一个 static类型的成员函数 ( B)虚函数是一个非成员函数 ( C)基类中采用 virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual说明 ( D)派生类中的虚函数与基类中相同原型的 虚函数具有不同的参数个数或类型 15 下面关于数组的初始化正确的是 ( )。 ( A) charstr=a, b, C ( B) charstr2 a, b, c ( C) charstr23: a, b, c, d), e, f ( D) charstr(): a, b, c 16 类模板 temp

6、late class T class x ,其中友元函数 f对特定类型 T(如 int),使函数 f(x int )成为 x int模板类的友元,则其说明为 ( )。 ( A) friend voidf(); ( B) friend voidf(x T ); ( C) friend voidA: f(); ( D) friend void C T: f(x T ); 17 下列是重载为非成员函数的运算符函数原型,其中错误的是 ( )。 ( A) Fraction operator+(Fraction, Fraction); ( B) Fraction operator-(Fraction);

7、( C) Fraction ( A) 25 ( B) 30 ( C) 20 ( D) 15 25 执行语句: cout setfill(*) Setw(10) setfill(#) left 123“OK” end后将输出 ( )。 ( A) 123* * * * * * * OK ( B) 123# # # # # # # OK ( C) 123* * * * * * * * OK* * * * * * * * ( D) 123# # # # # # # #OK# # # # # # # # 26 下面是关于派生类声明的开始部分,其中正确的是 ( )。 ( A) class virtual

8、B: public A ( B) virtual class B: public A ( C) class B: public A virtual ( D) class B: virtual publicA 27 下面程序的运行结果为 ( )。 #include(iostream.h) Class A public:A()cout “1”; A()cout “2”; ; Class B: public: A public: B()cout “3”; ) B()cout “4”; ; Void main() B b; ( A) 1234 ( B) 1324 ( C) 1342 ( D) 3142

9、 28 下列关于虚基类的描述,错误的是 ( )。 ( A)设置虚基类的目的是为了消除二义性 ( B)虚基类的构造函数在非虚基类之后调用 ( C)若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用 ( D)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调,用派生类的构造函数 29 下列关于多态性的描述,错误的是 ( )。 ( A) C+语言中的多态性分为编译时的 多态性和运行时的多态性 ( B)编译时的多态性可通过函数重载实现 ( C)运行时的多态性可通过模板和虚函数实现 ( D)实现运行时多态性的机制称为动态绑定 30 有以下程序: #include iostream

10、 using namespace std; #definePl 3.14 Class Point private: int x, y; public: Point(int a, intB) X a; y: b; int getx() return x; int gety() return y; ; class Circle: public Point pri ( A) 314 ( B) 157 ( C) 78.5 ( D) 153.86 31 有如下程序: #include iostream) using namespace std; int main() int*p; *p 9; cout

11、“The value at p: ” *p; return 0; 编译运行程序将出现的情况是 ( )。 ( A)编译时出现语法错误,不能生成可执行文件 ( B)运行时一定输出: The value at p: 9 ( C)运行时一定输出: The value at p:*9 ( D)运行时有可能出错 32 有如下类定义: class Foo public: Foo(intv): value(v) / Foo() / private: Foo() / int value 0; / ; 其中存在语法错误的行是 ( )。 ( A) ( B) ( C) ( D) 33 下列程序的运行结果是 ( )。

12、#include iostream.h classA int a; public: A()a 0; A()int aa a aa; cout a+; ; Void main() A x, y(2), z(3); cout endl; ( A) 00 ( B) 23 ( C) 34 ( D) 25 34 语句 ofstream f(“DATA DAT”, ios_base: app|ios_base: binary);的功能是建立流对象 f,并试图打开文件 DATA DAT并与之连接,而且 ( )。 ( A)若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件 ( B)若文件存在,将

13、其截为空文件,若文件不 存在,打开失败 ( C)若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件 ( D)若文件存在,打开失败;若文件不存在,建立一个新文件 35 下面程序的输出结果是 ( )。 #include iostream.h Class example int a; public: example(int B.a=b+; void print()a a+1 cout a “; void print()constcout a “; ; void main() example x(3); Const example y(2); x.print(); ( A) 2 2 (

14、B) 4 3 ( C) 4 2 ( D) 3 2 36 在结构化设计方法中,数据流图表达了问题中的数据流与加工间的关系,且每一个 _实际上对应一个处理模块。 37 数据库的逻辑模型设计阶段的任务是将 _转换成关系模式。 38 在面向对象程序设计中,从外面只能看到对象的外部特征,而 不知道无需知道数据的具体结构以及实现操作的算法,这称为对象的 _。 39 软件生命周期分为软件定义期、软件开发期和软件维护期,详细设计属于_中的一个阶段。 40 树中度为零的结点称为 _。 41 为了表明一个函数不带返回值,应在定义函数时指定该函数类型为 _。 42 语句 int *; i newint10,释放指针

15、 i的语句是 _。 43 在类的对象被创建时, _函数会被自动调用。 44 请将下列类定义补充完整。 classBasepublic: void fun()cout “Base: fun” endl; ; class Derived: public Base public: void fun() _/显式调用基类的 fun函数 cout “Derived: fun” endl; ; 45 有以下程序: #include”iostream.h” void main() int i 10; int j 5; cout(j+i+ endl; 的结果为 _。 46 根据下面的主程序,完成类的一种构造函

16、数的最简单形式。 #include iostream.h class base private: int num; public: _; void main() base try(6); 47 下列程序的运行结果是 _。 #inclUde(iostream h) Class A public: Virtual void use()cout “inAn”; ; class B: public A public: virtual void use()cout “inBn”;; class C: public B public: Virtual void use()cout “in Cn”; ; v

17、oid 48 有以下程序: #include iostream using namespace std; class MyClass public: MyClass(); MyClass(); static int s; void SetValue(int val); ); int MyClass: s 0; MyClass: MyClass() -s+; Void MyClass: SetValue(int v 49 下面是复数类 complex的定义,其中作为友元函数重载的运算符 “-”的功能是将参数对象的实部减 1,然后 返回对该对象的引用;请补充完整。 class complex pr

18、ivate: int real; int imag; public: complex(int r 0, int i 0): real(r), imag(i) void show() cout(real (imag 0?”-”: ”+”) (imag i; 50 已经 int DBL(int n)return n+n;和 long DBL(long n)return n+n是一个函数模板的两个实例,则该函数模板的定义是 _。 国家二级( C+)笔试模拟试卷 165答案与解析 1 【正确答案】 B 【试题解析】 数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式。数据的存储

19、结构有顺序结构,链式结构、散列结构和索引结构等。 2 【正确答案】 B 【试题解析】 将 E-R图转换成指定 RDBMS中的关系模式是数据库逻辑设计的主要工作。从 E-R图到关系模式的转换是比较直接的,实体和联系都可以表示成关系。 3 【正确答案】 D 【试题解析】 算法的时间复杂度和算法的空间复杂度是从不同的角度来衡量算法的执行情况的,它们之间没有内在联系。 4 【正确答案】 D 5 【正确答案】 D 【试题解析】 对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右于树。记住 3种遍历的顺序: (1) 前序,访问根

20、一按前序遍历左子树一按前序遍历右子树; (2) 中序,按中序遍历左子树一访问根一按中序遍历右子树: (3) 后序,按后序遍历左子树 一按后序遍历右子树一访问根。 6 【正确答案】 C 【试题解析】 限制使用 GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用 GOTO语句。其他 3项为结构化程序设计的原则。 7 【正确答案】 A 【试题解析】 关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。 8 【正确答案】 C 【试题解析】 面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互

21、联系。 9 【正确答案】 C 【试题解析】 软件的生命周期可分为软件定义、软件开发及软件运行维护 3个阶段。其中软件定义阶段的主要工作有可行性研究与计划制定和需求分析等;软件开发阶段的主要工作有概要设计、详细设计和测试等,软件运行维护阶段的主要工作是软件的运行及后期的维护等。 10 【正确答案】 C 【试题解析】 数据库系统 (DBS)由数据库 (DBS)、数据库管理系统 (DBMS)、数据库管理员、硬件平台和软件平台 5个部分组成,可见 DB和 DBMS都是 DBS的组成部分。 11 【正确答案】 D 【试题解析】 C+中函数重载和运算符重载实现的多态性属于静态多态性,在程序编译时系统就能决

22、定调用的是哪个函数。动态多态性是在程序运行过程中才动态确定操作所针对的对象。动态多态性是通过虚函数实现的。 12 【正确答案】 A 【试题解析】 本题考查混合运算表达式类型,由表达式中具有最高优先级的类型所确定,所以答案为 A。 13 【正确答案】 D 【试题解析】 二维数组可以看作是一维数组的扩展。选项 D表示的是一个一维数组,里面每个元素是一个指针,而指针肯定指向某个地址,从而完成二维数 组的扩展。考生要 *和 的运算优先级。 14 【正确答案】 C 【试题解析】 在成员函数声明的前面加上 virtual关键宇印把该函数声明为虚函数。虚函数可以是另一个类的友元函数,但不是静态成员函数。在派

23、生类中可以重新定义从基类继承下来的虚函数,在派生类中重定义虚函数时,函数名、形参表和返回值类型必须保持不变。 15 【正确答案】 A 【试题解析】 本题考查的是字符数组的初始化。选项 B中用 3个元素初始化大小为 2的数组,越界了;选项 C中应该是 2行 3列的数组,题中使用 3行 2列初始化,选项 D中数组合后应用方括号。 16 【正确答案】 B 【试题解析】 声明一个函数模板的格式: template模板形参表声明函数声明。调用模板函数时,如果与模板实参中最后的若干个参数有关的信息可以从模板函数的实参中获得,则相关的模板实参可以省略。 17 【正确答案】 C 【试题解析】 由于取负运算符

24、“-”是一元运算符,当作为成员函数重载时参数表中没有参数,那个唯一的操作数以 this指针的形式隐藏在参数表中。 18 【正确答案】 B 【试题解析】 本题考查的是内联函数的定义,引 入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加 inline关键字,则编译器会将在类说明部分定义的任何函数都被认定为内联函数。 19 【正确答案】 C 【试题解析】 所谓函数重载,是指同一个函数名可以对应多个函数的实现,进行函数重载时,要求同名函数的参数个数上不同,或者参数类型上不同。 20 【正确答案】

25、D 【试题解析】 第一个字符必须是字母或下划线,中间不能有空格,在第一个字母后,可以是任意字母、下划线和数字组成的字符序列;标识符的长度是任意的,但特定的编译系统能够识别的标识符长度是有限的。一般不要超过 31个字符;标识符中大小写字母是有区别的;用户定义标识符时,不要采用系统的保留字。 21 【正确答案】 B 【试题解析】 value作为类的数据成员在引用时可以通过对象来引用,也可以通过域操作符引入类名来限定。由于选项 D中 p是指针,它对指针变量的赋值方式是错误的。 22 【正确答案】 C 【试题解析】 本题考查友元函数的应用。程序中函数 square是类 sample的一个友元函数,它可

26、以直接访问类 sam- pie的所有成员。它的功能是返回类 sample的私有数据成员 x的平方。所以程序的执行结果是 900。 23 【正确答案】 B 【试题解析】 调用拷贝构造函数的情况为:一个新对象被另一个已存在的同类型对象初始化,当一个对象作为实参传遵给函数时为初始化形参,要调用拷贝构造函数。在函数值返回时形参的生命期结束时它的析构函数被调用,在函数返回一个对象时调用拷贝构造函数。符合以上条件的有:用对象 obj1来初始化obj3;obj3作为实参被传入,函数 fun返回 一个对象时,系统用返回值初始化一个匿名对象时调用了拷贝构造函数。总共调用 4次。 24 【正确答案】 A 【试题解

27、析】 由主函数 main入手,定义外部变量 x和 y,调用函数 add。因为x, y为外部变量,所以 “int x(20), y (5); ”的赋值在 add也是有效的,即 add函数的运算结果为 25。 25 【正确答案】 B 【试题解析】 函数 setfill(char c)用于设置填充字符,在输出数据时,如果数据宽度小于设置的宽度,则空闲位置要用填充字符填满,设置的填充符一直有效,直到再次填 充字符为止,如题中调用函数 setfill(*)将填充字符设置为 *,后又调用函数 setfill(#)将填充字符设置为 #。函数 setw(int n)用于设置输入输出宽度,宽度设置的效果只对一次

28、输入或输出有效,在完成一次数据的输出成输入后,宽度设置自动恢复为 0,如题中语句以宽度 10输出嗽据 “123”后,字符串 “OK”的输出宽度就自动恢复为 0了 26 【正确答案】 D 【试题解析】 C+中,虚基类说明格式为: class类名: virtual继承方式基类名其中, virtual是 虚基类的关键词。虚基类的说明是用在定义派生类时,写在派生类名的后面。 27 【正确答案】 C 【试题解析】 本题考查的是在继承中构造函数和析构函数的调用顺序,应该是先调用基类的构造函数,再调用派生类的构造函数,调用析构函数时的顺序是先调用派生类的析构函数,后调用墓类的析构函数。 28 【正确答案】

29、B 【试题解析】 虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虚基类的构造函数选于非虚基类的构造函数执行。 29 【正确答案】 C 【试题解析】 编译时的多态性是通过函数重载和模板体现的,运行时的多态性是通过虚函数体现的。 30 【正确答案】 A 【试题解析】 本程序设计了一个点类 Point,包含了横,纵两个坐标数据 x和y,由它派生出了圃类 Circle,并加入了新的数据成员,即一个半径 r和一个求圆面积的函数成员 area。在主函数 main中,首先定义了一个圃 Circle类的对象c1,并通过它的构造函数初始化其数据

30、成员。由此可知,其半径 r的值为 10,所以其面积为 PI*10*10=314,即对象 c1的函数 成员 area的返回值为 314。 31 【正确答案】 D 【试题解析】 本题考查的是指针的使用。在给 *p赋值前,指针 p并没有指向一个具体的对象。此时可以通过编译,但运行时由于 p中为随机值,该赋住可能会破坏内存中某个重要的地址空间的内容,导致程序出错; 32 【正确答案】 D 【试题解析】 本题考查的是类的定义。 C+语言规定,在类体由不允许对所定义的数据成员进行初始化。 33 【正确答案】 B 【试题解析】 本题考查的是对构造函数的掌握,另外 ”+”运算符是右结合的,所以在 进行输出的时

31、候都是先把原来的输出后再自加 1。 34 【正确答案】 C 【试题解析】 C+中可以在定义文件沈对象的同时打开文件,也可以在定义文件流对象以后用 open函数打开文件。可以通过构造函数或 open函数的第 2个参数,确定文件的打开模式。 35 【正确答案】 C 【试题解析】 “+”是右结合的,所以先赋值为 3,最后输出 3+1;常成员函数只有常对象才能调用,所以输出 2。 36 【正确答案】 加工。 【试题解析】 数据流图是从数据传遵和加工的角度,来刻画数据流从输入到输出的移动变换过程,其中的每一个加工对应一个处理模块。 37 【正确答案】 E-R图。 【试题解析】 数据库逻辑设计的任务是将概

32、念模型进一步转化成相应的数据模型。而 E-R图是主要的概念模型,因此数据库的逻辑设计的主要工作是将 E.R图转换成关系模式。 38 【正确答案】 封装性。 【试题解析】 对象具有下列 5个基本特点: (1) 标识惟一性, (2) 分类性, (3) 多态性: (4) 封装性, (5) 模块独立性好。其中,封装性是指从外面看只能看到对象的外部特征,对象的内部特征即处理能力的实行和 内部状态,对外是不可见的,对象的内部状态只能由其自身改变。 39 【正确答案】 软件开发期。 【试题解析】 软件生命周期分为 3个时期,共 8个阶段:软件定义期 (问题定义、可行性研究和需求分析 )、软件开发期 (系统设

33、计,详细设计、编码和测试 )、软件维护期 (即运行维护阶段 )。 40 【正确答案】 叶子结点。 【试题解析】 树中度为零的结点,也就是没有后件的结点,称为叶子结点。 41 【正确答案】 void。 【试题解析】 void表明该函数不带返回值,如果没有 void,则系统会 返回一个默认类型的随机值,这对程序可能造成不必要的问题。 42 【正确答案】 deletei;。 【试题解析】 本题考查 new和 delete的用法。申请内存空间时用 new,释放内存空间用 delete。 43 【正确答案】 构造。 【试题解析】 本题考查的是构造函数的应用。构造函数的作用是在对象被创建时利用特定的值构造

34、对象,构造函数在对象被创建封由系统自动调用。 44 【正确答案】 Base: fun();。 【试题解析】 本题考查的是虚基类的使用。使用符号 “: ”可以 用来限定要访问的成员所在类的名称。在派生类中对基类成员的访问应读是唯一的,多继承情况下就需要通过使用对象作用域分辨来解决这种对基类成员访问的二义性问题; 45 【正确答案】 15。 【试题解析】 考查 +运算符的用法,各种运算符的应用,注意 +, -。 i+为先做与 i有关的运算后, i自加 1,而 +i是先给 i加 1再进行与 i有关的操作。 46 【正确答案】 base(int n)。 【试题解析】 根据 main函数中对类 base

35、的使用情况可知, base类必须提供整型单参构造函数,同时 要求构造其最简单的形式,故函数体为空。 47 【正确答案】 in C。 【试题解析】 本题考查虚函数和多态性。原本 obj指向祖先类,随后被赋值,指向新的子孙类,则在使用 use这个重载的虚函数时,根据当前指向可确定调用子孙的同名虚函数。 48 【正确答案】 3。 【试题解析】 本题程序中把变量 s定义为静态数据成员,它的作用域是类范围。在类 MyClass的构造函数中,每创建一个对象, s就增 1,由此可知 s用来记录建立对象的个数。由于创建对象指针 p时并不会调用构造函数,所以 s最后的值是3。 49 【正确答案】 friend complex&operator-(complex&)。 【试题解析】 程序要填入的是运算符函数 operator-在类 complex中的声明,运算符 “-”是作为友元函数重载的。 50 【正确答案】 template(class T)T DBL(Tn)returnn+n; 。 【试题解析】 函数模板的一般说明形式如下: template(类型形参表 )返回类型函数名 (形参表 )/函数体 。函数调用方式为:函数名 (实参表 );。形参表中的类型以实参表中 的实际类型为依据。

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

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

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