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

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

1、国家二级( C+)笔试模拟试卷 149及答案与解析 1 已知一棵二叉树前序遍历和中序遍历分别为 ABDEGCFH和 DBGEACHF,则该二叉树的后序遍历为 ( A) GEDHFBCA ( B) DGEBHFCA ( C) ABCDEFGH ( D) ACBFEDHG 2 树是节点的集合,它的根节点数目是 ( A)有且只有 1 ( B) 1或多于 1 ( C) 0或 1 ( D)至少 2 3 如果进栈序列为 e1, e2, e3, e4,则可能的出栈序列是 ( A) e3, e1, e4, e2 ( B) e2, e4, e3, e1 ( C) e3, e4, e1, e2 ( D)任意顺序

2、4 在设计程序时,应采纳的原则之一是 ( A)不限制 goto语句的使用 ( B)减少或取消注解行 ( C)程序越短越好 ( D)程序结构应有助于读者理解 5 程序设计语言的基本成分是数据成分、运算成分、控制成分和 ( A)对象成分 ( B)变量成分 ( C)语句成分 ( D)传输成分 6 下列叙述中,不属于软件需求规格说明书的作用的是 ( A)便于用户、开发人员进行理解和交流 ( B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 ( C)作为确 认测试和验收的依据 ( D)便于开发人员进行需求分析 7 下列不属于软件工程的 3个要素的是 ( A)工具 ( B)过程 ( C)方法 (

3、 D)环境 8 单个用户使用的数据视图的描述称为 ( A)外模式 ( B)概念模式 ( C)内模式 ( D)存储模式 9 将 E-R图转换到关系模式时,实体与联系都可以表示成 ( A)属性 ( B)关系 ( C)键 ( D)域 10 SQL语言又称为 ( A)结构化定义语言 ( B)结构化控制语言 ( C)结构化查询语言 ( D)结构化操纵语言 11 C 语言对 C语言做了很多改进, C语言相对于 C语言的最根本的变化是 ( A)增加了一些新的运算符 ( B)允许函数重载,并允许设置默认参数 ( C)规定函数说明符必须用原型 ( D)引进了类和对象的概念 12 下列哪个是 C语言的有效标识符

4、? ( A) _No1 ( B) No.1 ( C) 12345 ( D) int 13 设有定义 int x; float y; , 则 10 x y值的数据类型是 ( A) int ( B) double ( C) float ( D)不确定 14 下列程序的执行结果为 #include iostream.h void main( ) int a 3, b 0; int * p b a ; cout * p “,“ b endl; ( A) 3, 4 ( B) 4, 3 ( C) 3, 4 ( D) 4, 4 15 下面程序的运行结果为 #include iostream.h void m

5、ain( ) for(int a 0, x 0;!xa ) a ; cout a endl; ( A) 10 ( B) 11 ( C) 12 ( D) 0 16 下列选项,不正确的是 ( A) for(inta 1;a 10;a ) ; ( B) int a 1; do a ; while(a 10) ; ( C) int a 1; while(a 10) a ; ( D) for(int a 1;a 10;a ) a ; 17 下面关于数组的初始化正确的是 ( A) char str a,b,c ( B) char str2 a,b,c ( C) char str2 3 a,b,c,d,e,

6、f ( D) char str( ) a,b,c 18 下列程序的输出结果为 #include iostream.h void main( ) char * a “hello,“the“,“ world“; char * * pa a; pa ; cout * pa endl; ( A) hello ( B) the ( C) world ( D) hellotheworld 19 决定 C语言中函数的返回值类型的是 ( A) return语句中的表达式类型 ( B)调用该函数时系统随机产生的类型 ( C)调用该函数时的主调用函数类型 ( D)在定义该函数时所指定的数据类型 20 下列程序的输

7、出结果是 #include iostream. h int min(int a, int b) if(a b) retum a; else return b; return 0; void main( ) cout min(1,min(2,3) ) endl; ( A) 0 ( B) 1 ( C) 2 ( D) 3 21 下列程序的运行结果为 #include iostream. h void print(double a) cout a; void print(int a, int b) cout b a; void main( ) print(1.2) ; tout “ “; print(

8、3,4) ; ( A) 1.2 34 ( B) 2.2 34 ( C) 1.2 43 ( D) 2.2 43 22 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是 ( A)公有类型 ( B)私有类型 ( C)保护类型 ( D)友元类型 23 在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是 ( A)友元函数 ( B)虚函数 ( C)构造函数 ( D)析构函数 24 类的析构函数的 作用是 ( A)一般成员函数的初始化 ( B)类的初始化 ( C)对象的初始化 ( D)删除类创建的对象 25 下列说法正确的是 (

9、A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 ( B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 ( C)类的内联函数必须在类体内定义 ( D)类的内联函数必须在类体外通过加关键字 inline定义 26 下面对静态数据成员的描述中,正确的是 ( A)静态数据成员可以在类体内进行初始化 ( B)静态数据成员不可以被类的对象调用 ( C)静态数据成员不能受 private控制符的作用 ( D)静态数据成员可以直接用类名调用 27 下面对于友元函数描述正确的是 ( A)友元函数的实现必须在类的内部定义 ( B)友元函数是类的成员函数 ( C)友元函数破坏了类的

10、封装性和隐藏性 ( D)友元函数不能访问类的私有成员 28 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是 ( A)派生类的对象可以赋给基类的对象 ( B)派生类的对象可以初始化基类的引用 ( C)派生类的对象可以直接访问基类中的成员 ( D)派生类的对象 的地址可以赋给指向基类的指针 29 下面程序的运行结果为 #include iostream. h class A public: A( ) cout “1“; A( ) cout “2“; ; class B:public A public: B( ) cout “3“; B( ) cout “4“; ; void

11、main( ) B b; ( A) 1234 ( B) 1324 ( C) 1342 ( D) 3142 30 下列关于虚基类的描述,错误的是 ( A)设置虚基类的目的是为了消除二义性 ( B)虚基类的构造函数在非虚基类之后调用 ( C)若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用 ( D)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数 31 下列关于多态性的描述,错误的是 ( A) C语言中的多态性分为编译时的多态性和运行时的多态性 ( B)编译时的多 态性可通过函数重载实现 ( C)运行时的多态性可通过模板和虚函数实现 ( D)实现运行时

12、多态性的机制称为动态绑定 32 下列运算符中,在 C语言中不能重载的是 ( A) * ( B) ( C) : : ( D) / 33 当使用 fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 ( A) ios: :in ( B) ios: :out ( C) ios: :in | ios: :out ( D)以上都不对 34 下列程序的运行结果是 #include iostream.h class A int a; public: A( ) a 0; A(int aa) a aa; cout a ; ; void main( ) A x,y(2) ,z(3) ; co

13、ut endl; ( A) 00 ( B) 23 ( C) 34 ( D) 25 35 下面程序的输出结果是 #include iostream.h class example int a; public: example(int b) a b ; void pnnt( ) a a 1;cout a “ “; void print( ) constcout a “ “; ; void main( ) example x(3) ; const example y(2) ; x.print( ) ; y.print( ) ; ( A) 2 2 ( B) 4 3 ( C) 4 2 ( D) 3 2

14、36 对 n个元素的序列进行冒泡排序时,最少的比较次数是 _。 37 继承使得相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余信息,提高了软件的 _。 38 结构化分析方法是面向 _进行分析的方法。 39 在对一组记录 (54,38,96,23,15,72,60,45,83)进行直接插入排序时,当 把第 7个记录 60插入到有序表时,为寻找插入位置需比较 _次。 40 数据库技术的主要特点为 _,具有较高的数据和程序的独立性以及对数据实行集中统一的控制。 41 执行 ”cout char(A+2) endl;”语句后得到的输出结果为 _。 42 下列函数的功能是 _。 #inc

15、lude iostream.h int Func(int a,int b) if(a B)return 1; else if(a= =B)return 0; else return -1; 43 根据三角形的基本定理完成填空,则表达式应为 _。 #include iostream.h #include math.h void main( ) double a,b,e,s,area; cout “请输入三角形三边 a,b,e,“ endl; cin a b c; if(_) s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); cout “三角形的面积为: “

16、area; else cout “不能构成三角形 !“ endl; 44 下列程序的运行结果为 _。 #include iostream.h void main( ) int i; for(i=1;i 6;i+)if(i=3)break; cout “i=“ i endl; 45 下列程序编译错误,因为 add函数返回值是一个引用,故对 return返回值的要求是 _。 #include iostream.h int void main( ) int i=3,j=19; cout (add(i,j)+=20) endl; 46 在下 面的类定义中, this指针的用途是 _。 #include

17、 iostream.h class Sample int x,y; public: Sample(int i,int j)x=i;y=j; void assign(Sample sa); ; void Sample:assign(Sample p) if(this!= y=p.y; 47 参照函数模板的写法,完成非模板函数的定义,语句为 _。 #include iostream.h #include string.h template class T T min(T a,T b) return(a b? a:b); char*rain(char*a,char*b) _ void main( )

18、 double a=1.23,b=3.45; char s1=“abed“,s2=“efg“; cout min(a,b) min(s1,s2) endl; 48 下列程序的输出结果是 _。 #include iostream using namespace std; template typename T T fun(T a,T b)return(a =b)? a:b; int main( ) cout fun(3,6) , fun(3.14F,6.28F) endl; return 0; 49 下列程序的运行结果为 _。 #include iostream.h class myclass

19、private: int a,b,c; public: void fun( ) int a; a=10; this- a=5; b=6; this- c=7; cout “a=“ a “, this- a=“ this- a endl; ; void main( ) myclass objl; obj1.fun( ); 50 下列程序的运行结果是 _。 #include iostream.h class Sample int a; public: Sample(int aa=0)a=aa; Sample( )cout “Sample=“ a ; ; class Derived:public S

20、ample int b; public: Derived(int aa=0,int bb=0):Sample(aa)(b=bb; Derived( )cout “Derived=“ b “; ; void main( ) Derived d1(9); 国家二级( C+)笔试模拟试卷 149答案与解析 1 【正确答案】 B 【试题解析】 利用前序和中序遍历的方法可以确定二叉树的结构,具体步骤如下 : 前序遍历的第一个节点 A为树的根节点 ; 中序遍历中 A的左边的节点为 A的左子树, A右边的节点为 A的右子树 ; 再分别对 A的左右子树进行上述两步处理,直到每个节点都找到正确的位置。 2 【正

21、确答案】 A 【试题解析】 树是由一个或多个节点组成的有限集合,其中一个特定的节点称为根,其余节点分为 若干个不相交的集合。每个集合同时又是一棵树。树有且只有 1个根节点。 3 【正确答案】 B 【试题解析】 由栈 “后进先出 ”的特点可知 :选项 A) 中 e1不可能比 e2先出,选项C) 中 e3不可能比 e4先出,且 c1不可能比 e2先出,选项 D) 中栈是先进后出的,所以不可能是任意顺序。选项 B) 中出栈过程如下图所示。4 【正确答案】 D 【试题解析】 滥用 goto语句将使程序流程无规律,可读性差,因此选项 A) 不选 ;注解行有利于对程序的理解,不应减少或取消,选项 B) 也

22、不选 ;程序的长短要依照实际情 况而论,而不是越短越好,选项 C) 也不选。 5 【正确答案】 D 【试题解析】 程序设计语言是用于书写计算机程序的语言,其基本成分有以下 4种,数据成分 :用来描述程序中的数据。运算成分 :描述程序中所需的运算。控制成分 :用来构造程序的逻辑控制结构。传输成分 :定义数据传输成分,如输入 /输出语言。 6 【正确答案】 D 【试题解析】 软件需求规格说明书 (SRS, Software Requirement Specification) 是需求分析阶段的最后成果,是软件开发中的重要文档之一。它有以 下几个方面的作用 : 便于用户、开发人员进行理解和交流 ;

23、反映出用户问题的结构,可以作为软件开发工作的基础和依据 ; 作为确认测试和验收的依据。 7 【正确答案】 D 【试题解析】 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段 ;工具支持软件的开发、管理、文档生成 ;过程支持软件开发的各个环节的控制、管理。 8 【正确答案】 A 【试题解析】 软件工程包括 3个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段 ;工具支持软件的开发、管理、文档生成 ;过程支持软件 开发的各个环节的控制、管理。 9 【正确答案】 B 【试题解析】 数据库逻辑设计的主要工作是将 E-R图转换成指定 RDBMS中的关系模式。首先,从

24、 E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系, E-R图中的属性也可以转换成关系的属性。实体集也可以转换成关系。 10 【正确答案】 C 【试题解析】 结构化查询语言 (Structured Query Language,简称 SQL) 是集数据定义、数据操纵和数据控制功能于一体的数据库语言。 11 【正确答案】 D 【试 题解析】 C语言最重要的特点是其为一种面向对象的程序设计语言,但是 C语言也包含了 C语言的全部特征。 12 【正确答案】 A 【试题解析】 标识符是一个以字母或下画线开始的,由字母、下画线和数字组成的字符串,标识符不能与任意关键字同名。 13 【正确

25、答案】 C 【试题解析】 由算术运算符组成的表达式中,若含有不同类型的操作数,则系统隐含地将低类型转化为高类型,由低至高的顺序为 intfloatdouble 。 14 【正确答案】 B 【试题解析】 * p为所指对象 a的值, 语句 “b a ;”等价于 “b b a; a a 1;”。 15 【正确答案】 C 【试题解析】 在进入最后一次循环时 a 10,在循环体内执行 “a ;”后 a11,执行完该次循环体计算 for循环的增量部分后 a 12小于 10,循环结束。 16 【正确答案】 B 【试题解析】 本题考查的是基本循环语句的使用,选项 A) ,选项 C) 和选项 D) 都为正确的形

26、式,在选项 B) 中的 while(a 10) 后缺少结束符分号 “;”。 17 【正确答案】 A 【试题解析】 本题考查的是字符 数组的初始化。选项 B) 中用 3个元素初始化大小为 2的数组,越界了 ;选项 C) 中应该是 2行 3列的数组,题中使用 3行 2列初始化 ;选项 D) 中数组合后应用方括号。 18 【正确答案】 B 【试题解析】 本题主要考查的是指针数组和指向指针的指针之间的关系,其中 a是指针数组, pa是指向指针数组行的指针,所以 pa自加 1相当于指向下一行。 19 【正确答案】 D 【试题解析】 C语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。 20 【

27、正确答案】 B 【试题解析】 本题考查 的是函数的调用,第一次调用 min(2,3) ,因为 2 3,所以返回值为 2,第二次调用 min(1,2) ,因为 1 2,所以返回 1。 21 【正确答案】 D 【试题解析】 本题考查的是对重载函数的掌握,因为 a是右结合的,所以 a先自加 1再输出,即为 2.2,之后调用函数 print(int a, int b) 输出 b和 a,即 43。 22 【正确答案】 D 【试题解析】 所谓的访问控制只包含公有类型、私有类型和保护类型 3种,友元可以是一个函数,也可以是一个类。 23 【正确答案】 C 【试题解析】 构造函数在创建对象时系统自动调用,其功

28、能是使用给定的值将对象初始化。 24 【正确答案】 D 【试题解析】 析构函数就是用来释放对象的,它的调用完成之后,对象也就消失了,相应的内存空间也被释放了。 25 【正确答案】 B 【试题解析】 本题考查的是内联函数的定义,引入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省 ;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加 inline关键字,则编译器会将在类说明部分定义的任何函数 都被认定为内联函数。 26 【正确答案】 D 【试题解析】 静态数据成员必须在类体外初始化,它是类的所有对象的共有成员,需要使用类名调用,静态数据成员的初

29、始化与权限控制无关。 27 【正确答案】 C 【试题解析】 友元函数的定义既可以在类内部进行,也可以在类外部进行。它提高了程序的运行效率,但破坏了类的封装性和隐藏性,使得类的非成员函数可以访问类的私有成员。 28 【正确答案】 C 【试题解析】 公有继承的派生类和基类是子类型的关系,所谓子类型是类型间一般和特殊的关系,即派生类 是基类的子类型或者说基类的操作可以被用于操作派生类的对象。 29 【正确答案】 C 【试题解析】 本题考查的是在继承中构造函数和析构函数的调用顺序,应该是先调用基类的构造函数,再调用派生类的构造函数,调用析构函数时的顺序是先调用派生类的析构函数,后调用基类的析构函数。

30、30 【正确答案】 B 【试题解析】 虚基类的引入就是为了消除二义性,其构造函数的调用仍然是按照继承的顺序进行的,对于多个虚基类则按它们说明的次序调用,虚基类的构造函数先于非虚基类的构造函数执行。 31 【正确答案】 C 【试题解析】 编译时的多态性是通过函数重载和模板体实现的,运行时的多态性是通过虚函数体实现的。 32 【正确答案】 C 【试题解析】 不能被重载的运算符还包括 :“.”、 “. *”、 “ *”和 “? :”。 33 【正确答案】 D 【试题解析】 使用 fstream类建立文件流必须定义打开方式,否则编译器无法判断该文件流是读还是写。 34 【正确答案】 B 【试题解析】

31、本题考查的是对构造函数的掌握,另外 “ ”运算符是右结合的,所以在进行输出的时候都是先把原来的输出 后再自加 1。 35 【正确答案】 C 【试题解析】 “ ”是右结合的,所以先赋值为 3,最后输出 3 1;常成员函数只有常对象才能调用,所以输出 2。 36 【正确答案】 n-1 【试题解析】 当初始元素正序时,第一趟比较 n-1次,交换数为 0,完成排序。 37 【正确答案】 可重用性 【试题解析】 继承的优点是,相似的对象可以共享程序的代码和数据结构,从而大大减少了程序中的冗余信息,提高软件的可重用性,便于软件的修改和维护。 38 【正确答案】 数据流 【试题解析】 结构 化分析方法是需求

32、分析的基本方法。与其他方法相比,结构化分析方法是面向数据流的分析方法。 39 【正确答案】 3 【试题解析】 当要插入 60时,前 6个元素已有序,即为: 15, 23, 38, 54,72, 96,需从后向前比较到 54为止,故要比较 3次。 40 【正确答案】 数据共享性 【试题解析】 数据库技术的主要特点有以下几个方面:数据结构化;数据的共享性高,冗余度低,易扩充;数据独立性高;数据由 DBMS进行统一管理和控制。 41 【正确答案】 C 【试题解析】 本题考察强制类型转化, char( )在这里作为一个强制类型转化函数存在,将整数转化为字符。 42 【正确答案】 比较两个整数 a和 b

33、的大小,若 a b则返回 1,若 a等于 b,则返回 0,否则返回 -1。 43 【正确答案】 a 0 【试题解析】 对于两个变量的比较来说,字符问的比较不同于整型或浮点型变量那样可以直接比较,而是要采用专用函数进行,因此不能采用同一个函数模板,所以本题采用的就是单独写成一个非模板函数。 48 【正确答案】 3,3,14 【试题解析】 本题考核模板函数的使用。 C+编译系统将根据实参表中的实参的类型来确定函数的形参列表中的类型。函数 fun的功能是返回两者中较小的值,函数调用 fun(3,6)返回的值为 3,函数调用 fun(3.14F,6.28F)返回的值为 3.14。 49 【正确答案】 a=10,this- a=5 【试题解析】 本题考察在类的成员函数定义中,如果出现类的数据成员和成员函数的局部变量同名的情况下,如何正确引用合适的变量或数据成员。本题巧妙的采用了 this指针完成这种标识。 50 【正确答案】 Derived=0 Sample=9 【试题解析】 本题考察派生类和基类的构造函数,析构函数的执行顺序。

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

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

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