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

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

1、国家二级( C+)笔试模拟试卷 77及答案与解析 1 下列叙述中正确的是 ( A)数据的逻辑结构与存储结构必定一一对应 ( B)由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构 ( C)程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构 ( D)以上三种说法都不对 2 下列叙述中正确的是 ( A)线性表是线性结构 ( B)栈与队列是非线性结构 ( C)线性链表是非线性结构 ( D)二叉树是线性结构 3 设树 T的度为 4,其中度为 1, 2, 3, 4的结点个数分别 为 4, 2, 1, 1。则 T中的叶子结点数为 ( A) 5 ( B) 6 ( C

2、) 7 ( D) 8 4 程序设计方法要求在程序设计过程中 ( A)先编制出程序,经调试使程序运行结果正确后再画出程序的流程图 ( B)先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释 ( C)先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释 ( D)以上三种说法都不对 5 下列叙述中正确的是 ( A)在面向对象的程序设计中,各个对象之间具有密切的联系 ( B)在面向 对象的程序设计中,各个对象都是公用的 ( C)在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 ( D)上述三种说法都不对 6 下列叙述中正确的是 (

3、 A)黑箱 (盒 )测试方法完全不考虑程序的内部结构和内部特征 ( B)黑箱 (盒 )测试方法主要考虑程序的内部结构和内部特征 ( C)白箱 (盒 )测试不考虑程序内部的逻辑结构 ( D)上述三种说法都不对 7 下面不属于软件设计原则的是 ( A)抽象 ( B)模块化 ( C)自底向上 ( D)信息隐蔽 8 下述关于数据库系统的叙述中正确的是 ( A)数据库系统减少了数据冗余 ( B)数据库系统避免了一切冗余 ( C)数据库系统中数据的一致性是指数据类型一致 ( D)数据库系统比文件系统能管理更多的数据 9 用树形结构来表示实体之间联系的模型称为 ( A)关系模型 ( B)层次模型 ( C)网

4、状模型 ( D)数据模型 10 下列叙述中错误的是 ( A)在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统 ( B)在数据库设计的过程中,概念结构设计与具体的数据库管理系统有关 ( C)在数据库设计的过程中,逻辑结构设计与具体的数据库管理系统有 关 ( D)在数据库设计的过程中,物理结构设计依赖于具体的计算机系统 11 面向对象程序设计将数据和什么放在一起,作为一个相互依存、不可分割的整体来处理 ? ( A)对数据的操作 ( B)信息 ( C)数据隐藏 ( D)数据抽象 12 以下非法的赋值表达式是 ( A) n=(i=2, +i); ( B) j+; ( C) +(i+1); (

5、 D) x=j 0; 13 设有 a、 b、 c、 d、 m、 n均为 int型变量,且 a=5、 b=6、 c=7、 d=8、 m=2、n=2,则逻辑表达式 (m=a B) break; cout x endl; return 0; 执行后的输出结果是 ( A) 15 ( B) 16 ( C) 17 ( D) 18 16 下列对变量的引用中,错误的是 ( A) int a; int char *className() return baseName; ; class Derived: public base private: char derivedName10; public: Deriv

6、ed() strcpy(derivedName,“Derived“); char *myName() return derivedName; char *className() return derivedName; ; void showPtr(base int main() base bb; Derived dd; showPtr(dD) ; retum 0; 动行后的输出结果为 ( A) Derived Base ( B) Base Base ( C) Derived Derived ( D) Base Derived 36 算法的时间复杂度是 指【 】。 37 对于长度为 n的有序线性

7、表,在最坏情况下,二分查找需要比较 log2n,那么顺序查找需要比较的次数是【 】。 38 深度为 m的满二叉树共有【 】个节点。 39 关系模型的四种基本操作为插入、删除、修改和【 】。 40 关系中的属性或属性组合,其值能够惟一地标识一个元组,该属性或属性组合可选作为【 】。 41 阅读下面程序: #include iostream using namespace std; long fib(int n) if ( n 2 ) return (fib(n-1)+fib(n-2); else return 2; int main() cout fib(3) end1; return 0; 则

8、该程序的输出结果应该是【 】。 42 以下程序的输出结果是【 】。 #include iostream using namespace std; void fun() static int a=0; a+=2; cout a; int main() int cc; for(cc=1; cc 4; cc+) fun(); cout end1; return 0; 43 C+中,设置虚基类的目的是【 】。 44 C+语言中,派生类继承了基类的全部数据成员和除【 】之外的全部函数成员。 45 虚函数必 须是类的【 】。 46 有如下程序: #include iostream using namesp

9、ace std; template typename T T total( T *data) T s=0; while (*data) s+=*data+; return s; int main () int x=2,4,6, 8,0, 12, 14,16, 18 ; cout total (x); return 0; 执行上面程序的输出结果是【 】。 47 有以下程序: #include iostream using namespace std; class sample int x; public: void setx(int i) x=i; int putx () return x; ;

10、 int main ( ) sample *p; sample A3; A0 .set :(5); A1 .setx(6); A2 .setx(7); for (int j=0;j 3;j+) p= cout p- putx () “, “; cout end1; return 0; 执行后的输出结果是【 】。 48 下面程序的预设功能是:统计文件 abc.txt中的字符个数。 #include iostream.h #include fstream.h #include stdlib.h void main() fstream file; file.open( “abc.txt“, ios:

11、in); if ( !file ) cout “Can not open abc.txt“ end1; abort(); char ch; int i = O; while (_) file.get(ch); i+; cout “Characters : “ i end1; file.close(); 则程序中空白处应该填入的语句是【 】。 49 实现编译时的多态性的机制称为【 】,实现运行时的多态性的机制称为【 】。 国家二级( C+)笔试模拟试卷 77答案与解析 1 【正确答案】 D 【试题解析】 一种数据的逻辑结构根据需要可以表示成多种存储结构,因此,数据的逻辑结构与存储结构不一定是一一

12、对应的,因此选项 A错误。计算机的存储空间是向量式的存储结构,但一种数据的逻辑结构根据需要可以表示成多种存储结构,如线性链表是线性表的链式存储结构,数据的存储结构不一定是线性结构,因此 选项 B错误。数组一般是顺序存储结构,但利用数组也能处理非线性结构。选项 C错误。只有选项 D的说法正确。 2 【正确答案】 A 【试题解析】 非空的数据结构如果满足下列两个条件则称为线性结构:有且只有一个根结点:每一个结点最多有一个前件,也最多有一个后件。线性表是线性结构。选项 A的说法正确:栈与队列是特殊的线性表,因此,它们也是线性结构,选项 B的说法错误:线性链表是线性表的链式存储结构,因此,其对应的逻辑

13、结构也是线性结构,而不是非线性结构,选项 C的说法错误:二叉树是非线性结构,而不是线性结构,选项 D的说法错误。 3 【正确答案】 D 【试题解析】 根据给定的条件,在树中,各结点的分支总数为:41+22+13+41=15:树中的总结点数为: 15(各结点的分支总数 )+1(根结点 )=16:非叶子结点总数为: 4+2+1+1=8。因此,叶子结点数为 16(总结点数 )-8(非叶子结点总数 )=8。因此,本题的正确答案为 D。 4 【正确答案】 D 【试题解析】 程序设计的过程应是先画出流程图,然后根据流程图编制出程序,所以选项 A错误。 程序中的注释是为了提高程序的可读性,使程序易于理解、易

14、于维护,注释必须在编制程序的同时加入,所以,选项 B和 C错误。本题的正确答案为 D。 5 【正确答案】 C 【试题解析】 在面向对象的程序设计中,对象是面向对象的软件的基本模块,它是由数据及可以对这些数据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作。从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。由于完成对象功能所需要的元素 (数据和方法 )基本上都被封装在对象内部,它与外界的联系自然就比较少,所以,对象之间的耦合通常比较松。所以, 选项 A与 B错误,选项 C正确。 6 【正确答案】 A 【试题解析】 黑箱测试方法完

15、全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例,选项 A是正确的,选项 B错误。 白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,选项 C错误。正确答案为 A。 7 【正确答案】 C 【试题解析】 软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。它们是:抽象、模块化、信息隐蔽、模块独立性。没有自底向上,所以,本题的正确答案是 C。 8 【正确答案】 A 【试题解析】 数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性

16、和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项 A正确,选项 B错误。在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项 C错误。数据库系统比文件系统能管理更多的数据, 并非是数据库系统的特点,选项 D错误。本题正确答案是 A。 9 【正确答案】 B 【试题解析】 在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统 (DBMS)也不同。目前常用的数据模型有 3种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用

17、树结构来表示的,其中实体集 (记录型 )是树中的结点,而树中各结点之间的连线表示它们之间的关系。所以,本题的正确答案是 B。 10 【正确答案】 B 【试题解析】 数据库设计主要分四个步骤:需求分析,概念结构设计,逻辑结构设计,物理结构 设计。 选项 B错误,应为所选,因为概念结构设计在需求分析的基础上对客观世界做抽象,独立于数据库的逻辑结构,也独立于具体的数据库管理系统,与具体的数据库管理系统无关。 11 【正确答案】 A 【试题解析】 面向对象语言包含 3个要素,即对象、类和继承。这 3个要素反映了面向对象的传统观念。面向对象程序设计的本质是把数据和对数据的操作当成一个整体即对象。 12

18、【正确答案】 C 【试题解析】 对于任何一种赋值运算,其赋值号或复合赋值号左边必须是一个左值。左值是指具有对应的可由用户访问的存储单元, 并且能够由用户改变其值的量。而在 C) 选项中赋值号对应的是表达式 “i+1”,不是一个左值,因此是非法的赋值表达式。 13 【正确答案】 C 【试题解析】 在 ”后, a的值为 2,输出 2。第 2次调用时, a的初始值为 2,执行语句 “a+=2; ”后, a的值为 4,最后输出 4。第 3次调用时, a的初始值为 4,执行语句 “a+=2; ”后, a的值为 6,最后输出 6。 43 【正确答案】 解决二义性问题 【试题解析】 C+中可以将共同基类设置

19、为虚基类,这时从不同的路径继承过来的该类成员在内存中只有一个副本。这样就解决同名成员的二义性。 44 【正确答案】 构造函数和析构函数 【试题解析】 在 C+类的继承中,基类的构造函数和析构函数不能被继承。 45 【正确答案】 成员函数 【试题解析】 设置虚函数时必须注意下列事项: 只有类的成员函数才能说明为虚函数。这是因为虚函数仅适用于有继承关系的类对象,所以普通函数不能说明为虚函数。 静态成员函数不能是虚函数,因为静态成员函数不受限于某个对象。 内联函数不能是虚函数,因为内联函数是不能在运行中动态确定其位置。即使虚函数在类的内部定义,编译时仍将其看作是非内联的。 构造函数不能是虚函数,因为

20、 构造时对象还是一片未定型的空间。只有在构造完成后,对象才能成为一个类的名副其实的实例。 析构函数可以是虚函数,而且通常说明为虚函数。说明虚函数的目的在于:使用 delete运算符删除一个对象时,能确保析构函数被正确地执行,这是因为设置虚析构函数后,可以利用动态联编方式选择析构函数。 一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。 46 【正确答案】 20 【试题解析】 函数模板实现的功能是计算所传入数组 data中元素值为 0的元素前面所有元素值的和。 47 【正确答案】 5,6,7 【试题解析】 本题考核对象指针与对象数组的应用。主函数中定义对象数组 A,然后调用各自的 setx()函数赋值,最后通过 for循环输出各自内部变量,所以程序最后输出 5, 6, 7。 48 【正确答案】 !file eof() 【试题解析】 文件流对象的成员函数 eof的功能是再进行输入操作时,若达到文件尾则返回 true,否则返回 false。程序的 while循环中调用 set()成员函数进行输入操作,循环结束的条件是操作到文件尾部。 49 【正确答案】 静态联编 (或静态绑定 ) 动态联编 (或动态绑定 ) 【试题解析】 本题考核静态联编和动态联编的概念。

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

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

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