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

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

1、国家二级( C+)笔试模拟试卷 51及答案与解析 1 在深度为 5的满二叉树中,叶子结点的个数为 ( A) 32 ( B) 31 ( C) 16 ( D) 15 2 若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是 ( A) bdgcefha ( B) gdbecfha ( C) bdgaechf ( D) gdbehfca 3 一些重要的程序语言 (如 c语言和 Pascal语言 )允许过程的递归调用。而实现递归调用中的存储分配通常用 ( A)栈 ( B)堆 ( C)数组 ( D)链表 4 软件工程的理论和技术性研究的内容主

2、要包括软件开发技术和 ( A)消除软件危机 ( B)软件工程管理 ( C)程序设计自动化 ( D)实现软件可重用 5 开发软件时对提高开发入员工作效率至关重要的是 ( A)操作系统的资源管理功能 ( B)先进的软件开发工具和环境 ( C)程序入员的数量 ( D)计算机的并行处理能力 6 在软件测试设计中,软件测试的主要目的是 ( A)实验性运行软件 ( B)证明软件正确 ( C)找出软件中全部错误 ( D)发现软件错误而执行程 序 7 数据处理的最小单位是 ( A)数据 ( B)数据元素 ( C)数据项 ( D)数据结构 8 索引属于 ( A)模式 ( B)内模式 ( C)外模式 ( D)概念

3、模式 9 下述关于数据库系统的叙述中正确的是 ( A)数据库系统减少了数据冗余 ( B)数据库系统避免了一切冗余 ( C)数据库系统中数据的一致性是指数据类型一致 ( D)数据库系统比文件系统能管理更多的数据 10 数据库系统的核心是 ( A)数据库 ( B)数据库管理系统 ( C)模拟模型 ( D)软件工程 11 下面关 于 C+语言的描述错误的是 ( A) C+语言支持数据封装 ( B) C+语言中引入友元没有破坏封装性 ( C) C+语言允许函数名和运算符重载 ( D) C+语言支持动态联编 12 设有定义 int a=1; float f=1.2; char c=a;,则下列表示错误的

4、是 ( A) +a; ( B) f; ( C) c+; ( D) 8+; 13 下列程序的运行结果为 #include iostream.h void main( ) int a=2; int b=a+l; cout a/b end1; ( A) 0.66667 ( B) 0 ( C) 0.7 ( D) 0.66666666 14 设 int a=l, b=2;,则 (a+)+b和 a+ +b这两个表达式的值分别为 ( A) 3, 3 ( B) 3, 4 ( C) 4, 3 ( D) 4, 4 15 下面程序的运行结果为 #include iostream.h void main( ) cha

5、r a=3; switch(a) case3: cout “3“; case2: cout “2“; break; default: cout “1“; ( A) 3 ( B) 321 ( C) 31 ( D) 32 16 有如下数组声明: int num10;,下标值引用错误的是 ( A) num10 ( B) num5 ( C) num3 ( D) num0 17 存在定义 int a10, x, *Pa;,若 pa= A(int num) n = num; void print( )cout n; ; int A: n=2; void main( ) A a, b (3); a prin

6、t( ); b print( ); cout end1; ( A) 11 ( B) 13 ( C) 23 ( D) 33 26 下列不是描述类的成员函数的是 ( A)构造函数 ( B)析构函数 ( C)友元函数 ( D)拷贝 构造函数 27 继承机制的作用是 ( A)信息隐藏 ( B)数据封装 ( C)定义新类 ( D)数据抽象 28 C+语言类体系中,不能被派生类继承的有 ( A)转换函数 ( B)构造函数 ( C)虚函数 ( D)静态成员函数 29 下面程序的运行结果是 #include iostream.h class base protected: int a; public: bas

7、e( )cout “0“; ; class basel: virtual base public: base1( )cout “1“; ; class base2: virtual base public: ( A) 123 ( B) 3120 ( C) 312 ( D) 3012 30 对于类定义 class A public: virtual void func1( ) void func2( ) ; class B: public A public: void func1( )cout “class B func 1“ end1; virtual void func2( )cout “c

8、lass B func2“ end1; ; 下面正确的 ( A) A:func2( )和 B:func1( )都是虚函数 ( B) A:func2( )和 B:func1( )都不是虚函数 ( C) B:func1( )是虚函数,而 A:func2( )不是虚函 数 ( D) B:func1( )不是虚函数,而 A:func2( )是虚函数 31 下面关于运算符重载的描述错误的是 ( A)运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构 ( B)不是所有的运算符都可以进行重载 ( C)运算符函数的调用必须使用关键字 operator ( D)在 C+语言中不可通

9、过运算符重载创造出新的运算符 32 与语句 cout end1;不等价的是 ( A) cout n; ( B) cout 12; ( C) cout xA; ( D) cout 0; 33 下面程序的运行结果是 #include iostream.h int fun ( int a , int n) int result=1; for(int i=1;i n; i+) result=result*ai; return result; void main( ) int a3=3, 4, 5; cout fun(a, ( A) 12 ( B) 15 ( C) 20 ( D) 60 34 下面程序的

10、运行结果是 #include iostream.h void main( ) int i=1; while(i =8) if ( +i%3!=2)continue; else cout i; ( A) 25 ( B) 36 ( C) 258 ( D) 369 35 下列程序的运行结果为 #include iostream.h template class TT class FF TTa1, a2, a3; public: FF(TTb1, TTb2, TTb3)a1=b1; a2=b2;a3=b3; TT Sum( )return al+a2+a3; ; void main( ) FF int

11、 x (int(1.1), 2, 3), y(int(4.2), 5, ( A) 6.1 15.2 ( B) 6 15 ( C) 615.2 ( D) 6.115 36 在深度为 5的完全二叉树中,度为 2的结点数最多为【 】。 37 在面向对象方法中,允许作用于某个对象上的操作称为【 】。 38 软件生命周期包括 8个阶段。为了使各时期的任务更明确,又可分为 3个时期:软件定义期、软件开发期、软件维护期。编码和测试属于【 】期。 39 在关系运算中,【 】运算是对两个具有公共属性的关系所进行的运算。 40 实体之间的联系可以归结为一对一的联系,一对多的联系与多对多的联系。如果一个学校有许多学

12、生,而一 个学生只归属于一个学校,则实体集学校与实体集学生之间的联系属于【 】的联系。 41 若 a=12,b=14,c=0,则表达式 “(y=(a B) ?a: B) C) ?y: c”的值为【 】。 42 下面程序的输出结果为【 】。 #include iostream using namespace std; void initialize (int print No,int state=0); void initialize(int printNo=1,int state); int main() initialize(); retum 0; void initialize (int

13、printNo,int state) cout printNo “,“ state end1; 43 下列程序的输出结果是【 】 #include iostream using namespace std; int &get Var(int*pint) return *pint; int main() int a=10; getvar(&A) =20; cout a end1; return 0; 44 若有以下程序: #include iostream using namespace std; class Base public: void who()cout “Base“ end1; cl

14、ass Derived1: public Base public: void who()cout “Derived“ end1; ; int main() Base *p; Derived1 obj1; p=&obj1; p who(); return 0; 则该程序运行后的输出结果是【 】 45 多态性分为两类:编译时的多态性和【 】的多态性。 46 C+中,设置虚基类的目的是【 】。 47 下列 程序的输出结果是【 】 #include iOStream using namespace std; template typename T T total (T*datA) T s=0; whi

15、le(*datA) s+=*data+; return s; int main() int x=2, 4, 6, 8, 0, 12, 14, 16, 18; cout total(x) end1; return 0; 48 下面程序的输出结果是【 】。 #include iostream.h #include math.h class point double x; double y; public: point(doublea, d double B) x=a; y=b; friend double distance (point a, point B) ; ; double distanc

16、e (point a,point B) return sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y); void main() point p1(1, 2); point p2(5, 2); cout distance(p1, p2) end1; 49 在 C+语言的结构化程序设计中,【 】是程序的基本组成单元;在 C+语言的面向对象设计框架中,【 】是程序的基本组成单元。 国家二级( C+)笔试模拟试卷 51答案与解析 1 【正确答案】 C 【试题解析】 所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个叶子结点。这就是说,在满

17、二叉树中,层上的结点数都达到最大值,即在满二叉树的第 k层上有 2k-1个结点,且深度为 m的满二叉树有 2m-1个结点。 2 【正确答案】 D 【试题解析】 前序遍历的第一个结点 a为树的根结点;中序遍历中 a的左边的结点为 a的左子树, a右边的结点为 a的右子树;再分别对 a的左右子树进行上述两步处理,直到每个结点都找到正确的位置。 3 【正确答案】 A 【试题解析】 一些较流行的程序语言允许过程的递归调用。递归调用就是过程调用本身。递归实现的是:当过程每一次执行后,都能返回到最近一次调用它的过程中。这样各调用点之间形成一种后进先出关系,而栈结构正适合来存储这些调用点。 4 【正确答案】

18、 B 【试题解析】 软件工程的目标是,在给定的成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应 性、可移植性、可追踪性和可互操作性且满足用户需求的产品。基于这一目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。 5 【正确答案】 B 【试题解析】 软件工程鼓励研制和采用各种先进的软件开发方法、工具和环境。工具和环境的使用又进一步提高了软件的开发效率、维护效率和软件质量。 6 【正确答案】 D 【试题解析】 使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为

19、了发现错误而执行程序的 过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。 7 【正确答案】 C 【试题解析】 数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项 C。 8 【正确答案】 B 【试题解析】 内模式 (Internal SchemA又称物理模式 (Physical SchemA,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路 径。 9 【正确答案】 A 【试题解析】 数据库系统的数据具有高共享性和低冗

20、余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。 10 【正确答案】 B 【试题解析】 数据库管理系统 (Database Management System,简称 DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。 11 【正确答案】 B 【试题解析】 数据封装就是数据抽 象;友元可以访问类中的所有成员,是面向对象的一个重要特征,但是破坏了封装性;重载和动态联编都是面向对象的另一个特点一多态性。 12 【正确答案】 D 【试题解析】 +, -运算符不能用于常

21、量表达式。 13 【正确答案】 B 【试题解析】 表达式值的类型是由操作数的类型决定的,因为本题的两个数都是int型的,所以得出的结果也为 int型,即去掉小数点后的部分,只取商的整数部分。 14 【正确答案】 A 【试题解析】 单目的 +运算优先级高于双目的 +运算,不过 +的结合性是自右向左的,而 +是自左至右的,所以上面的两个表达式都是先计算 a+b的值之后, a再自加 1。 15 【正确答案】 D 【试题解析】 本题主要考查的是 switch语句的使用,在第一个 case处,因为满足条件所以输出字符 3,但这个分支没有 break语句终止,所以会继续执行下面的分支语句,即输出字符 2,

22、这时出现 break语句,结束整个语句,即输出 32。 16 【正确答案】 A 【试题解析】 数组定义中的数字指的是数组的大小,而下标是从 0开始的,所以题中数组的最后一个元素是 num9。 17 【正 确答案】 A 【试题解析】 本题考查的是数组和指向数组的指针之间的关系,选项 A中 x是被数组 a的第一个元素赋值,其余的都是被数组 a的第二个元素赋值。 18 【正确答案】 D 【试题解析】 本题考查的是引用调用,因为函数 swap引用调用参数 a,所以在swap函数中 a的变化会改变主函数中 a的值,即 a自加 1,但 b的值并未改变。 19 【正确答案】 A 【试题解析】 本题考查的是内

23、联函数的使用,它的引入是为了解决程序中函数调用的效率问题,在编译时,编译器将程序中出现的内联函数的调用表达式用内 联函数的函数体来替换。 20 【正确答案】 B 【试题解析】 自动变量是函数体或分程序内定义的变量,它的作用域在所定义的函数体内或分程序体内。 21 【正确答案】 A 【试题解析】 本题考查点为类成员的访问权限, public关键字修饰的类成员可以被类的对象通过成员操作符 “.”直接访问, protected和 private则不能,而 static不能单独修饰类的成员。 22 【正确答案】 B 【试题解析】 对象属于某个已知的类,是类的实例,对象之间通信实际上就是通过函数传递信息

24、,封 装是把数据和操作结合在一起,继承是对于类的方法的改变和补充,重载是多态性之一。 23 【正确答案】 C 【试题解析】 析构函数可以被函数调用,也可以系统调用:函数体内的对象在函数结束时调用析构函数和使用 delete释放对象所占有用的资源。 24 【正确答案】 C 【试题解析】 拷贝初始化构造函数的作用是用一个已知的对象来初始化一个被创建的同类的对象,该函数只有一个参数,并且是对同类的某个对象的引用。 25 【正确答案】 D 【试题解析】 本题考查的是静态数据成员的使用, n为类 A的静态成员,即为类A的所有对象共有的成员,所以,当对象 b把 n初始化为 3时,对象 a的成员 n的值也为

25、 3(这两个 n实际上是同一个 )。 26 【正确答案】 C 【试题解析】 友元函数是独立于当前类的外部函数,但它可以访问该类的所有对象的成员;拷贝构造函数是使用已存在的对象初始化正在生成的对象时调用的成员函数。 27 【正确答案】 C 【试题解析】 数据封装就是数据抽象,即信息隐藏;而继承是实现程序复用的基础。 28 【正确答案】 B 【试题解析】 派生类对象的数据结构是由基类中说明的数 据成员和派生类中说明的数据成员共同构成,所以不能继承基类的构造函数,必须重新定义。 29 【正确答案】 A 【试题解析】 本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按

26、照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。 30 【正确答案】 C 【试题解析】 基类中说明的虚函数,在派生类中自然就是虚函数,所以类 B中funcl()是虚函数;而类 A中的 func2没有被关键字 virtual修饰,所以不是虚函数。 31 【正确答 案】 C 【试题解析】 例如 “:”运算符就不能被重载;通过重载可以创造新的运算方式,但是不能臆造新的运算符;定义的时候必须使用关键字 operator,而调用时可直接使用运算符。 32 【正确答案】 D 【试题解析】 题干表示的是回车换行,选项 A,选项 B和选项 C都表示回车换行。而选项 D是字符串的结

27、尾标志。 33 【正确答案】 C 【试题解析】 for循环执行 2次,所以第一次 for循环为 result=1*al=4,第二次for循环为 result =4*a2=20。 34 【正确答案】 C 【试题解析】 应该先做 +运算,然后进行 %运算,最后比较不等式,实际上最后输出的结果就是被 3除,余数为 2的不大于 8的数。 35 【正确答案】 B 【试题解析】 本题考查模板函数的应用,表达式 int(1.1)和 int(4.2)是将 1.1和 4.2强制转换为整型。 36 【正确答案】 15 【试题解析】 在深度为 5的完全二叉树中,度为 2的结点数最多的是深度为 5的满二叉树。在深度为

28、 5的满二叉树中,前 4层中所有结点的度为 2。即在深度为 5的完全二叉树中,度为 2的结点数最多 相当于深度为 4的满二叉树中的结点数。深度为 4的满二叉树中的结点数为 24-1=15。 37 【正确答案】 方法 【试题解析】 在面向对象方法中,方法是指允许作用于某个对象上的各种操作。允许作用于某个对象上的操作称为方法。 38 【正确答案】 软件开发 【试题解析】 软件生命周期包括 8个阶段:问题定义、可行性研究、需求分析、系统设计、详细设计、编码、测试、运行维护。为了使各时期的任务更明确,又可以分为 3个时期:软件定义期,包括问题定义、可行性研究和需求分析 3个阶段;软件开发期,包括系统设

29、计 、详细设计、编码和测试 4个阶段;软件维护期,即运行维护阶段。可知,编码和测试属于软件开发阶段。 39 【正确答案】 自然连接 【试题解析】 在关系运算中,自然连接运算是对两个具有公共属性的关系所进行的运算。 40 【正确答案】 一对多 【试题解析】 实体之间的联系可以归结为一对一、一对多与多对多。如果一个学校有许多学生,而一个学生只归属于 个学校,则实体集学校与实体集学生之间的联系属于一对多的联系。 41 【正确答案】 14 【试题解析】 本题考核运算符的应用。条件运算符是一种 在两个表达式中选择一个的操作,它是 C+中惟一的三元运算符。在本题中,先计算 (a B) ?a: b,因为a

30、b,所以条件表达式的值为 0,因此 y=b=14,而 y c的逻辑值为真,所以表达式的值为 y的值,即 14。 42 【正确答案】 1, 0 【试题解析】 本题考核带有缺省值的函数,本题中函数 initialize()进行了两次函数原型的说明,使本来不带默认值的形参带上默认值。由于主函数中调用initialize()时没有给定实参,所以函数自动调用其参数缺省值。输出 1和 0。 43 【正确答案】 20 【试题解析】 本题考核引用的使用。题中函数 getVar返回的为实参的引用,即将 a的引用赋值为 20,所以最后输出 a的值为 20。 44 【正确答案】 Derived 【试题解析】 本题考

31、核对象指针的使用。题中基类 Base对象指针 p用派生类Derived对象。 obj1来初始化,那么通过对象指针 p调用的 who函数版本为基类Base中定义的版本,所以程序输出 Derived。 45 【正确答案】 运行时 【试题解析】 本题考核多态性的概念。在 C+语言中,多态性可分为两类:编译时的多态性和运行 时的多态性。 46 【正确答案】 解决二义性问题 【试题解析】 C+中可以将共同基类设置为虚基类,这时从不同的路径继承过来的该类成员在内存中只有一个拷贝。这样就解决同名成员的二义性。 47 【正确答案】 20 【试题解析】 本题考核函数模板的应用。解此题的关键是理解函数 total

32、的作用, total的作用是将数组的元素值相加,直到某个元素值为 0截至,并返回相加的结果。数组 x的第 5个元素的值为 0,所以 total返回的结果为前 4个元素值的相加,即 20。 48 【正确答案】 4 【试 题解析】 本题考核友元函数的应用。分析程序:类 point中定义了两个私有成员 x和 y,以及一个友元函数 distance。从而,函数 distance可以访问类 point中的任何成员。在函数 distance中,返回值为 sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)。由此可知,函数 distance的功能是计算 a、 b两点之间的距离。在主函数 main中,先定义两点: p1(1, 2)和 p2(5,2)。然后调用函数 distance计算两点之间的距离为 4,所以程序最后输出为 4。 49 【正确答案】 函数 类 【试题解析】 函数是程序功能实现的主要方式,是实现结构化设计 (将程序分成若干个函数实现 )的基本组成;类是一种用户定义的类型,是实现数据封装和数据抽象的工具,是面向对象设计中的基本组成。

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

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

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