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

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

1、国家二级( C+)笔试模拟试卷 151及答案与解析 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 1; cout a/b endl; ( A) 0.66667 ( B) 0 ( C) 0.7 ( D) 0.66666666 14 设 int a 1, b 2;,则 (a ) b和 a b这两个表达式的值分别为 ( A) 3,3 ( B) 3,4 ( C) 4,3 ( D) 4,4 15 下面程序的运行结果为 #include iostream.h void main( ) char a 3; sw

5、itch(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 ( B) x * (a 1) ; ( C) x * (pa 1) ; ( D) x * 1 ; 18 下面程序的运行结果为 #include iostream.h void swap(int te

6、mp a ; a b; b temp; void main( ) int a 2,b 3; swap(a, b) ; cout a “,“ b endl; ( A) 2,3 ( B) 3,2 ( C) 2,2 ( D) 3,3 19 一个函数功能不太复杂但要求被频繁调用,应选用 ( A)内联函数 ( B)重载函数 ( C)递归函数 ( D)嵌套函数 20 下面关于 C语言变量的叙述错误的是 ( A) C语言中变量分为 auto、 static、 extern和 register4种存储类型 ( B)自动变量和外部变量的作用域为整个程序 ( C)内部静态 变量的作用域是定义它的函数 ( D)外部

7、静态变量的作用域是定义它的文件 21 为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为 ( A) public ( B) protected ( C) private ( D) static 22 在 C语言程序中,对象之间的相互通信通过 ( A)继承实现 ( B)调用成员函数实现 ( C)封装实现 ( D)函数重载实现 23 类的析构函数是在什么时候调用的 ? ( A)类创建时 ( B)创建对象时 ( C)删除对象时 ( D) 不自动调用 24 通常拷贝构造函数的参数是 ( A)某个对象名 ( B)某个对象的成员名 ( C)某个对象的引用名 ( D)某个对

8、象的指针名 25 下面程序的运行结果为 #include iostream.h Class A static int n; public: A( ) n 1; A(int num) n num; void print( ) cout n; ; int A: :n 2; void main( ) A a,b(3) ; a. print( ) ; b. print( ) ; cout endl; ( A) 11 ( B) 13 ( C) 23 ( D) 33 26 下列不是描述类的成员函数的是 ( A)构造函数 ( B)析构函数 ( C)友元函数 ( D)复制构造函数 27 继承机制的作用是 (

9、A)信息隐藏 ( B)数据封装 ( C)定义新类 ( D)数据抽象 28 C语言类体系中,不能被派生类继承的有 ( A)转换 函数 ( B)构造函数 ( C)虚函数 ( D)静态成员函数 29 下面程序的运行结果是 #include iostream.h class base protected: int a; public: base( ) cout “0“; ; class base l: virtual base public: base l ( ) cout “1“; ; class base 2: virtual base public: base2 ( ) cout “2“; ;

10、class derived: public base 1, public base2 public: derived( ) cout “3“; ; void main( ) derive obj; cout endl; ( A) 0123 ( B) 3120 ( C) 0312 ( D) 3012 30 对于类定 义 class A public: virtual void func1( ) void func2( ) ; class B: public A public: void func1( ) cout “class B func 1“ endl; virtua1 void func2

11、( ) cout “class B func 2“ endl; ; 下面正确的叙述是 ( A) A: :func2( ) 和 B: :func1( ) 都是虚函数 ( B) A: :func2( ) 和 B: :func1( ) 都不是虚函数 ( C) B: :func1( ) 是虚函数,而 A: :func2( ) 不是虚函数 ( D) B: :func1( ) 不是虚函数,而 A: :func2( ) 是虚函数 31 下面关于运算符重载的描述错误的是 ( A)运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构 ( B)不是所有的运算符都 可以进行重载 ( C)

12、运算符函数的调用必须使用关键字 operator ( D)在 C语言中不可通过运算符重载创造出新的运算符 32 与语句 cout endl; 不等价的是 ( 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 ; retum result; void main( ) int a3 3,4,5; cout ( A) 12 ( B)

13、 15 ( C) 20 ( D) 60 34 下面程序的运行结果是 #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(TT b1,TT b2,TT b3) a1 b1;a2 b2;a3 b3; TT Sum( ) return a1

14、a2 a3; void main( ) FF int x(int(1.1) ,2,3) ,y(int(4.2) ,5,6) ; cout x. Sum( ) y. Sum( ) endl; ( A) 6.1 15.2 ( B) 6 15 ( C) 6 15.2 ( D) 6.1 15 36 冒泡排序算法在最好的情况下的元素交换次数为 _。 37 在最坏情况下,堆排序需要比较的次数为 _。 38 若串 s=“MathTypes“,则其子串的数目是 _。 39 在软件生命周期的各个阶段都会发生一系列的文件,如手册、数据和程序等,它们总称为 _。 40 关系数据库的关系演算语言是以 _为基础的 DM

15、L语言。 41 函数定义的格式是 _函数名 (形式参数表 )函数体。 42 语句序列 long x; x=0L;可用一个语句表示为 _。 43 在 C+中的实型数据分为三种类型,即单精度 float、双精度 double和 _。 44 若 a. b和 C均是 int型变量,则表达式 a=(b=4)+(c=2)执行后, a的值为 _。 45 多态性分两类:编译时的多态性和 _。 46 下列程序的输出结果是 _。 #include iostream.h template class T T max(T x,int n) int i; T maxv=x0; for(i=1;i n;i+) if(ma

16、xv xi) maxv=xi; return maxv; void main( ) int a=3,2,7,6,8,9; double b=1.2,3.4,2.5,7.3,6.8; cout max(a,4) “,“ max(b,3) endl; 47 下列程序的运行结果是 _。 #include iostream.h class Base public: virtual void func(int i)cout “class Base:“ i end1;) ; class Derived: public Base public: void func(double d)cout “class

17、Derived:“ d endl; ; void main( ) Base a,*p=a; Derived b; p= (*p).func(3.3); 48 下列程序的输出结果是 _。 #include iostream.h int CalcDigital(char*str) if(str= =NULL) return 0; int num_of_digital=0; for(int i=0;stri!=0x0;i+) if(stri =9 return num_of_digital; void main( ) char a=“Beijing20080lympic“; cout CalcDig

18、ital(a) endl; 49 下列程序的输出结果是 _。 #include iostream using namespace std; class base public: int n; base(int x)n=x; virtual void set(int m)n=m;cout n ; ; class deriveA:public base public: deriveA(int x):base(x) void set(int m)n+=m;cout n ; ; class deriveB:public base public: deriveB(int x):base(x) void

19、set(int m)n+=m;cout n ; ; int main( ) deriveA d1(1); deriveB.d2(3); base*pbase; pbase= pbase- set(1); pbase= pbase- set(2); return 0; 50 下列程序编译错误,是由于划线处缺少某个语句,该语句是 _。 #include iostream.h class A private: int numl; public: A( ):numl(0) A(int i):numl(i) ; class B private: int num2; public: B( ):num2(0

20、) B(int i):num2(i) int my_math(A obj1, B obj2); ; int B:my_math(A obj1,B obj2) return(obj1.numl+obj2.num2); void main(void) A objl(4); B obj,obj2(5); cout “obj1+obj2:“ obj.my_math(obj1,obj2); 51 在 C语言的结构化程序设计中, _是程序的基本组成单元 ;在 C语言的面向对象设计框架中, _是程序的基本组成单元。 国家二级( C+)笔试模拟试卷 151答案与解析 1 【正确答案】 B 【试题解析】 所谓满

21、二叉树是指这样的一种二叉树 :除最后一层外,每一层上的所有节点都有两个叶子节点。这就是说,在满二叉树中,层上的节点数都达到最大值,即在满二叉树的第 k 层上有 2k 1个节点,且深度为 m的满二叉树有 2m 1个节点。 2 【正确答案】 D 【试题解析】 前序遍历的第一个节点 a为树的根节点 ;中序遍历中 a的左边的节点为 a的左子树, a右边的节点为 a的右子树 ;再分别对 a的左右子树进行上述两步处理,直到每个节点都找到正确的位置。 3 【正确答案】 A 【试题解析】 一些较流行的程序语言允许过程的递归调用。递归调用就是过程调用本身。递归实现的是 :当过程每一次执行后,都能返回到最近一次调

22、用它的过程中。这样各调用点之间形成一种后进先出的关系,而栈结构正适合来存储这些调用点。 4 【正确答案】 B 【试题解析】 软件工程的目标是,在给定的 成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。基于这一目标,软件工程的理论和技术性研究的内容主要包括 :软件开发技术和软件工程管理。 5 【正确答案】 B 【试题解析】 软件工程鼓励研制和采用各种先进的软件开发方法、工具和环境。工具和环境的使用又进一步提高了软件的开发效率、维护效率和软件质量。 6 【正确答案】 D 【试题解析】 使用人工或自动手段来运行

23、或测定某个系统的过程,其目的在于检验它是否满足 规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。 7 【正确答案】 C 【试题解析】 数据处理的最小单位是数据项 ;由若干数据项组成数据元素 ;而数据是指能够被计算机识别、存储和加工处理的信息载体 ;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项 C) 。 8 【正确答案】 B 【试题解析】 内模式 (Internal Schema) 又称物理模式 (Physical Schema) ,它给出了 数据库物理存储结构与物理存取方法,如数据存储的

24、文件结构、索引、集簇及hash 等存取方式与存取路径。 9 【正确答案】 A 【试题解析】 数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余 ;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。 10 【正确答案】 B 【试题解析】 数据库管理系统 (DataBase Management System,简称 DBMS) 是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据 库管理系统是数据库系统的核心。 11 【正确答案】 B 【试题解析】 数据封装就是数据抽象 ;友元可以访问类中的所有成员,是面向对象的一个重要特征

25、,但是破坏了封装性 ;重载和动态联编都是面向对象的另一个特点 多态性。 12 【正确答案】 D 【试题解析】 、运算符不能用于常量表达式。 13 【正确答案】 B 【试题解析】 表达式值的类型是由操作数的类型决定的,因为本题的两个数都是int型的,所以得出的结果也为 int型,即去掉小数点后的部分,只取商的整数部分。 14 【 正确答案】 A 【试题解析】 单目的什运算优先级高于双目的 运算,不过抖的结合性是自右向左的,而是自左向右的,所以上面的两个表达式都是先计算 a b 的值之后,a再自加 1。 15 【正确答案】 D 【试题解析】 本题主要考查的是 switch 语句的使用,在第一个 c

26、ase处,因为满足条件所以输出字符 3,但这个分支没有 break 语句终止,所以会继续执行下面的分支语句,即输出字符 2,这时出现 break 语句,结束整个语句,即输出 32。 16 【正确答案】 A 【试题解析】 数组定义中的数字 指的是数组的大小,而下标是从 0开始的,所以题中数组的最后一个元素是 num9 。 17 【正确答案】 A 【试题解析】 本题考查的是数组和指向数组的指针之间的关系,选项 A) 中 x是被数组 a的第一个元素赋值,其余的都是被数组 a的第二个元素赋值。 18 【正确答案】 D 【试题解析】 本题考查的是引用调用,因为函数 swap引用调用参数 a,所以在swa

27、p 函数中 a的变化会改变主函数中 a的值,即 a自加 1,但 b的值并未改变。 19 【正确答案】 A 【试题解析】 本题考查的是内联函数的使 用,它的引入是为了解决程序中函数调用的效率问题,在编译时,编译器将程序中出现的内联函数的调用表达式用内联函数的函数体来替换。 20 【正确答案】 B 【试题解析】 自动变量是函数体或分程序内定义的变量,它的作用域在所定义的函数体内或分程序体内。 21 【正确答案】 A 【试题解析】 本题考查点为类成员的访问权限, public关键字修饰的类成员可以被类的对象通过成员操作符 “.”直接访问, protected 和 private则不能,而 stati

28、c不能单独修饰类的成员。 22 【正确答案】 B 【试题解析】 对象属于某个已知的类,是类的实例,对象之间通信实际上就是通过函数传递信息,封装是把数据和操作结合在一起,继承是对于类的方法的改变和补充,重载是多态性之一。 23 【正确答案】 C 【试题解析】 析构函数可以被函数调用,也可以系统调用 :函数体内的对象在函数结束时调用析构函数和使用 delete释放对象所占有用的资源。 24 【正确答案】 C 【试题解析】 复制初始化构造函数的作用是用一个已知的对象来初始化一个被创建的同类的对象,该函数只有一个参数,并且是对同类的某个 对象的引用。 25 【正确答案】 D 【试题解析】 本题考查的是

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

30、的构造函数,必须重新定义。 29 【正确答案】 A 【试题解析】 本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。 30 【正确答案】 C 【试题解析】 基类中说明的虚函数,在派生类中自然就是虚函数,所以类 B 中func1( ) 是虚函数 ;而类 A中的 func2没有被关键字 virtual 修饰,所以不是虚函数。 31 【正确答案】 C 【试题解析】 例如 “: :”运算符就不能被重载 ;通过重载可以创造新的运算方式,但是不能臆造新的运算符 ;定义的时候必须使用关键字 ope

31、rator,而调用时可直接使用运算符。 32 【正确答案】 D 【试题解析】 题干表示的是回车换行,选项 A) ,选项 B) 和选项 C) 都表示回车换行。而选项 D) 是字符串的结尾标志。 33 【正确答案】 C 【试题解析】 for循环执 行 2次,所以第一次 for循环为 result 1 * a1 4,第二次 for循环为 result 4 * a2 20。 34 【正确答案】 C 【试题解析】 应该先做运算,然后进行 %运算,最后比较不等式,实际上最后输出的结果就是被 3除,余数为 2的不大于 8的数。 35 【正确答案】 B 【试题解析】 本题考查模板函数的应用,表达式 int(1

32、.1) 和 int(4.2) 是将 1.1和4.2强制转换为整型。 36 【正确答案】 0 【试题解析】 根据冒泡排序算法思想可知 ,若待排序的初始序列为 “正序 ”序列,则只需进行一趟排序,在排序过程中进行 n-1次关键字间的比较,且不移动和交换记录,这种情况是冒泡排序的最好情况,故冒泡排序算法在最好的情况下的元素交换次数为 0。 37 【正确答案】 O(nlog2n) 【试题解析】 在最坏情况下,堆排序、需要比较的次数是 O(nlog2n)。 38 【正确答案】 46 【试题解析】 串 s中共有 9个字符,由于串中字符各不相同,则其子串中有 0个字符的 1个 (空串 ), 1个字符的 9个

33、, 2个字符的 8个, 3个字符的 7个, 4个字符的 6个, 5个字 符的 5个, 6个字符的 4个, 7个字符的 3个, 8个字符的 2个, 9个字符的 1个,共有 1+2+3十 4+5+6+7+8+9+1=46。 39 【正确答案】 软件配置 【试题解析】 在软件生命周期的各个阶段会产生一系列的文件,包括报告、数据和程序,它们的总称为软件配置。软件配置具有时间和形态特征,它是软件以某种形态在某一具体时间的存在。其形态可表现为两种形式,即可执行形式和不可执行形式。 40 【正确答案】 谓词演算 【试题解析】 关系数据库中的关系演算包括元组关系演算和域关系演算。二者都是由原子 公式组成的公式

34、。而这些关系演算都是以数理逻辑中的谓词演算为基础的。 41 【正确答案】 返回类型 【试题解析】 本题考察基本的函数定义格式。 42 【正确答案】 long x=0L; 【试题解析】 变量的声明和赋值可以分别进行也可以同时进行。分别进行时称为赋值,同时进行是称为初始化。 43 【正确答案】 长双精度 long double 【试题解析】 长精度类型一般用于高精度的科学运算。 44 【正确答案】 6 【试题解析】 本题考察运算优先级问题,从右向左,先括号后乘 除,随后加减,这是基本的运算规则。 45 【正确答案】 运行时的多态性 46 【正确答案】 7, 3.4 【试题解析】 函数的功能是求出数

35、组中指定范围的元素中的最大值。所以在 a数组中前四个数据中最大值为 7,数组 b 中前 3个元素中最大值为 3.4。 47 【正确答案】 class Base:3 【试题解析】 题中基类和派生类中有同名函数,但是参数不同。派生关系中,只有在函数类型、函数名和参数个数、参数类型完全相同时,才表现多态性。本题中参数不同,编译器便认为是两个完全不同的函数。通过基类的指 针指向派生类对象时,该指针只能访问到派生类中具有多态性的成员函数,而与基类无关的函数是无法通过基类指针来访问的。故调用的是 base类的 func函数,系统将 3.3强制转化为整型数 3。如果将派生类中的 func的形参改为 int型

36、,则执行的就会是派生类的 func函数,此时表现为多态。 48 【正确答案】 4 【试题解析】 分析本题可知函数功能为计算一个字符串中包含的数字个数。字符串中包含的数字有 2008,故输出为 4。 49 【正确答案】 25 【试题解析】 本题考核虚函数的定义和调用。在 C+中,一个基类指针 (或引用 )可以用来指向它的派生类对象,而且通过这样的指针 (或引用 )调用虚函数时,被调用的是该指针 (或引用 )实际所指向的对象类的那个重定义版本。题中基类成员函数set( )被定义成虚函数,而且其派生类 deriveA 和 deriveB都有函数 set( )的重定义版本,所以通过指针 pbase的两次调用分别调用的是派生类 deriveA 和 deriveB中定义的版本,即输出 25。 50 【正确答案】 friend class B; 【试题解析】 在 B类中出现了对 A类中私有成员 numl 的直接访问 ,这是不允许的。所以必须要把类 B设成类 A的友员才可以通过编译。 51 【正确答案】 函数;类 【试题解析】 函数是程序功能实现的主要方式,是实现结构化设计 (将程序分成若干个函数实现 ) 的基本组成 ;类是一种用户定义的类型,是实现数据封装和数据抽象的工具,是面向对象设计中的基本组成。

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

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

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