【计算机类职业资格】二级C++笔试-245及答案解析.doc

上传人:terrorscript155 文档编号:1324486 上传时间:2019-10-17 格式:DOC 页数:22 大小:72.50KB
下载 相关 举报
【计算机类职业资格】二级C++笔试-245及答案解析.doc_第1页
第1页 / 共22页
【计算机类职业资格】二级C++笔试-245及答案解析.doc_第2页
第2页 / 共22页
【计算机类职业资格】二级C++笔试-245及答案解析.doc_第3页
第3页 / 共22页
【计算机类职业资格】二级C++笔试-245及答案解析.doc_第4页
第4页 / 共22页
【计算机类职业资格】二级C++笔试-245及答案解析.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、二级 C+笔试-245 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下面关于运算符重载的描述错误的是( )。(分数:2.00)A.运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构B.不是所有的运算符都可以进行重载C.运算符函数的调用必须使用关键字 operatorD.在C+语言中不可通过运算符重载创造出新的运算符2.下列描述中错误的是( )。(分数:2.00)A.析构函数可以被继承B.虚函数不能被继承C.派生类可以有多个基类D.纯虚基类的子类可以是虚基类3.下列对重载函数的描述中,错误的是( )。(分数:2

2、.00)A.重载函数中不允许使用默认参数B.重载函数中编译是根据参数表进行选择的C.不要使用重载函数来描述毫不相干的函数D.构造函数重载将会给初始化带来多种方式4.下面程序的运行结果是( )。#includeiostream.hintfun(inta,int n)int result1;for(int i“in;i+)resultresultxai;return result;void main()inta33,4,5;coutfun(a,3)endl;(分数:2.00)A.12B.15C.20D.605.三种基本结构中,能简化大量程序代码行的是( )。(分数:2.00)A.顺序结构B.分支结

3、构C.选择结构D.重复结构6.概要设计中要完成的事情是( )。(分数:2.00)A.系统结构和数据结构的设计B.系统结构和过程的设计C.过程和接口的设计D.数据结构和过程的设计7.以下程序的运行结果是( )。#includeiostream.hvoid sub(int x,int y,int*z)*Z=y-x;void main()int a,b,c;sub(10,5,(分数:2.00)A.6.1 15.2B.6 15C.6 15.2D.6.1 159.有以下程序段:int k0;while(k1)k+;while循环执行的次数是( )。(分数:2.00)A.无限次B.有语法错,不能执行C.一

4、次也不执行D.执行 1次10.以下程序不用第三个变量实现将两个数进行对调的操作,划线处应为( )。main()int a,b;scanf(“%d%d”,D.pa;18.有如下程序:#includeiostreamusing namespace std;Class Apublic:A()cout“A”;A()cout“A”;A*p;public:B()cout“B”;pnew A;B()cout“B”;delete p;B obj;return 0;)执行这个程序的输出结果是( )。(分数:2.00)A.BAAABAB.ABABAAC.BAABAAD.ABAABA19.下面程序的运行结果是( )

5、。#includeiostream.hclass baseprotected:int a;public:base()cout“0”;Class basel:Virtual basepublic:basel()cout“1”;Class base2:virtual basepublic:base2()cout“2”;);class derived:public base1,public base2public:derived()cout“3”;void main()derived obj;coutendl;(分数:2.00)A.0123B.3120C.0312D.301220.对于类定义:cla

6、ss Apublic:virtual void funcl()void func2();class B:public Apublic:voidfuncl()cout“class Bfunc 1”endl;virtual void func2()cout“class B func 2”endl;下面正确的叙述是( )。(分数:2.00)A.A:func2()和 B:funcl()都是虚函数B.A:func2()和 B:funcl()都不是虚函数C.B:funcl()是虚函数,而 A:func2()不是虚函数D.B:funcl()不是虚函数,而 A:func2()是虚函数21.关于类和对象描述错误

7、的是( )。(分数:2.00)A.对象(Object)是现实世界中的客观事物,对象具有确定的属性B.类是具有相同属性和行为的一组对象的集合C.对象是类的抽象,类是对象的实例D.类是对象的抽象,对象是类的实例22.有以下程序:void fun(int a*a,int i,int i)int t;if(ij);t=ai;aiaj;ajt;fun(a,+i,-j);main()inta1,2,3,4,5,6,i;fun(a,0,5);for(i0;i(6;i+)cout(ai;执行后输出结果是( )。(分数:2.00)A.6 5 4 3 2 1B.4 3 2 1 5 6C.4 5 6 1 2 3D.

8、1 2 3 4 5 623.下列关于栈的描述正确的是( )。(分数:2.00)A.在栈中只能插入元素而不能删除元素B.在栈中只能删除元素而不能插入元素C.栈是特殊的线性表,只能在一端插入或删除元素D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素24.假定 MyClass为一个类,则执行 MyClassab(2),*p;语句时,自动调用该类构造函数( )次。(分数:2.00)A.2B.3C.4D.525.能正确表示逻辑关系:”a10 或 a0”的 C+语言表达式是( )。(分数:2.00)A.a10 or a0B.a0|a10C.a=10D.MyClass();28.下列关于 get

9、line()函数的描述中,错误的是( )。(分数:2.00)A.该函数可以用来从键盘上读取字符串B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符时便停止D.该函数中所使用的终止符只熊是换行符,29.用树型结构表示实体之间联系的模型是( )。(分数:2.00)A.关系模型B.网状模型C.层次模型D.以上三个都是30.下列有关数据库的叙述,正确的是( )。(分数:2.00)A.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C.关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属性组并非该关系的关键字,但它

10、是另一个关系的关键字,则称其为本关系的外关键字。31.若执行下面的程序时,从键盘上输入 5和 2,则输出结果是( )。include(iostream.h)void main()int a,b,k;cinab;ka;if(ab)ka%b;elsekb%a;coutkendl;(分数:2.00)A.5B.3C.2D.032.与语句 coutendl;不等价的是( )。(分数:2.00)A.cout/n;B.cout/12;C.cout/xA;D.cout/0;33.两个或两个以上模块之间关联的紧密程度称为( )。(分数:2.00)A.耦合度B.内聚度C.复杂度D.数据传输特性34.下列描述中正确

11、的是( )。(分数:2.00)A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D.软件工程只是解决软件开发中的技术问题35.设有数组定义:chararray:”China”;则数组 array所占的空间为( )。(分数:2.00)A.4个字节B.5个字节C.6个字节D.7个字节二、填空题(总题数:14,分数:28.00)36.在面向对象方法中,类之间共享属性和操作的机制称为 1。(分数:2.00)填空项 1:_37.算法复杂度主要包括时间复杂度和 1 复杂度。(分数:2.00)填空项 1:_38.数据的

12、基本单位是 1。(分数:2.00)填空项 1:_39.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 1的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(分数:2.00)填空项 1:_40.数据库设计分为需求分析阶段、 1 阶段、逻辑设计阶段、物理设计阶段、数据库实施阶段、数据库运行和维护阶段。(分数:2.00)填空项 1:_41.C+中封装性、继承性和 1 是面向对象思想的主要特征。(分数:2.00)填空项 1:_42.下面程序的结果为_。#includeiostream.hvoid main()int 31,b2;bool c

13、1;if(ab)|c)cout“true”endl;elsecout“false”endl;(分数:2.00)填空项 1:_43.下列 for语句的循环次数为_。for(int a0,b1;b(分数:2.00)A.6.1 15.2B.6 15 C.6 15.2D.6.1 15解析:解析 本题考查模板函数的应用,表达式 int(1.1)和 int(4.2)是将 1.1和 4.2强制转换为整型。9.有以下程序段:int k0;while(k1)k+;while循环执行的次数是( )。(分数:2.00)A.无限次 B.有语法错,不能执行C.一次也不执行D.执行 1次解析:解析 本来 while中的表

14、达式应为 k1,而本题却为 k=1,是赋值表达式而不是逻辑表达式。因此,编译器将其值一直认为是 1,因此表达式一直为真,陷入无限次的循环。10.以下程序不用第三个变量实现将两个数进行对调的操作,划线处应为( )。main()int a,b;scanf(“%d%d”,D.pa;解析:解析 从循环语句中可以看出,是在 0到 4的循环中输出数组 a中的前 5个元素,输出的值为*(p+i),即为指针 p向后移动指向的元素。所以初始化要将指针 p指向数组 a,即 int*p=a;。18.有如下程序:#includeiostreamusing namespace std;Class Apublic:A()

15、cout“A”;A()cout“A”;A*p;public:B()cout“B”;pnew A;B()cout“B”;delete p;B obj;return 0;)执行这个程序的输出结果是( )。(分数:2.00)A.BAAABAB.ABABAA C.BAABAAD.ABAABA解析:解析 本题考查的是类的构造函数和析构函数。派生类构造函数的执行顺序:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用予对象的构造函数,调用顺序按它们在类中说明的顺序,最后是派生类构造函数中的内容。因此本题中,首先调用基类构造函数输出 A,然后调用于对象的构造函数输出 B,pnewA 再调用类

16、 A的构造函数输出 A;析构函数的调用顺序和构造函数的调用顺序相反。19.下面程序的运行结果是( )。#includeiostream.hclass baseprotected:int a;public:base()cout“0”;Class basel:Virtual basepublic:basel()cout“1”;Class base2:virtual basepublic:base2()cout“2”;);class derived:public base1,public base2public:derived()cout“3”;void main()derived obj;cout

17、endl;(分数:2.00)A.0123 B.3120C.0312D.3012解析:解析 本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。20.对于类定义:class Apublic:virtual void funcl()void func2();class B:public Apublic:voidfuncl()cout“class Bfunc 1”endl;virtual void func2()cout“class B func 2”endl;下面正确的叙述是( )。(分数

18、:2.00)A.A:func2()和 B:funcl()都是虚函数B.A:func2()和 B:funcl()都不是虚函数C.B:funcl()是虚函数,而 A:func2()不是虚函数 D.B:funcl()不是虚函数,而 A:func2()是虚函数解析:解析 基类中说明的虚函数,在派生类中自然就是虚函数,所以类 B中 funcl()是虚函数;而类A中的 func2没有被关键宇 virtual修饰,所以不是虚函数。21.关于类和对象描述错误的是( )。(分数:2.00)A.对象(Object)是现实世界中的客观事物,对象具有确定的属性B.类是具有相同属性和行为的一组对象的集合C.对象是类的抽

19、象,类是对象的实例 D.类是对象的抽象,对象是类的实例解析:解析 C+中,类是用户自定义的一种数据类型,对象是类的实例,类定义了属于该类的所有对象的共同特性。一个类作为一种数据类型,它可以定义多个对象。22.有以下程序:void fun(int a*a,int i,int i)int t;if(ij);t=ai;aiaj;ajt;fun(a,+i,-j);main()inta1,2,3,4,5,6,i;fun(a,0,5);for(i0;i(6;i+)cout(ai;执行后输出结果是( )。(分数:2.00)A.6 5 4 3 2 1 B.4 3 2 1 5 6C.4 5 6 1 2 3D.1

20、 2 3 4 5 6解析:解析 本题采用递归函数的方式将数组中的元素进行倒置,正确答案为 A。23.下列关于栈的描述正确的是( )。(分数:2.00)A.在栈中只能插入元素而不能删除元素B.在栈中只能删除元素而不能插入元素C.栈是特殊的线性表,只能在一端插入或删除元素 D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素解析:解析 根据数据结构对栈的定义及其特点可知:栈是限定只在表尾进行插入或删除操作的线性表,因此栈是先进后出的线性表,对栈的插入与删除操作,不需要改变栈底元素。栈是限定只在表尾进行插入或删除操作的线性表。24.假定 MyClass为一个类,则执行 MyClassab(2

21、),*p;语句时,自动调用该类构造函数( )次。(分数:2.00)A.2 B.3C.4D.5解析:解析 C+在创建一个对象时,会调用类的构造函数。执行 MyClassab(2),*p:创建了两个对象a、b 和指针 p,在创建对象 a和 b会调用构造函数,而创建指针 p时,由于 p本身不是对象,所以不调用类的构造函数。25.能正确表示逻辑关系:”a10 或 a0”的 C+语言表达式是( )。(分数:2.00)A.a10 or a0B.a0|a10C.a=10D.MyClass(); 解析:解析 C+语言中析构函数为符号“”加类名,且析构函数没有返回值和参数,故前不加 void关键宇。所以正确的形

22、式应该是MyClass()。28.下列关于 getline()函数的描述中,错误的是( )。(分数:2.00)A.该函数可以用来从键盘上读取字符串B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符时便停止D.该函数中所使用的终止符只熊是换行符, 解析:解析 本题考查的是无格式输入输出流对象中的 getline()函数。该函数的功能是允许从输入洗中读取多个字符,并且允许指定输入终止字符(默认是换行符),在读取完成后,从读取的内容中删除该终止字符。29.用树型结构表示实体之间联系的模型是( )。(分数:2.00)A.关系模型B.网状模型C.层次模型 D.以上三个都是解析:解析

23、层次模型是数据库系统中最早出现的数据模型,它用树型结构来表示各类实体及实体间的联系。在现实世界中事物之间的联系更多的是非层次关系的,用层次模型表示非树型结构很不直接,网状模型则用来表示非树型结构。关系模型是目前最重要的一种数据模型,它建立在严格的数学概念基础上。关系模型由关系数据结构、关系操作系统和关系完整性约束 3部分组成。30.下列有关数据库的叙述,正确的是( )。(分数:2.00)A.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C.关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另

24、一个关系的关键字,则称其为本关系的外关键字。 解析:解析 数据处理是指将数据转换成信息的过程,故选项 A叙述错误;数据的物理独立性是指数据的物理结构的改变不会影响数据库的逻辑结构,故选项 B叙述错误,关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项 C叙述错误。31.若执行下面的程序时,从键盘上输入 5和 2,则输出结果是( )。include(iostream.h)void main()int a,b,k;cinab;ka;if(ab)ka%b;elsekb%a;coutkendl;(分数:2.00)A.5B.3C.2 D.0解析:解析 本题考查简单

25、的 ifelse语句。先执行条件 if(ab),显然不成立,则执行 else语句。32.与语句 coutendl;不等价的是( )。(分数:2.00)A.cout/n;B.cout/12;C.cout/xA;D.cout/0; 解析:解析 题干表示的是回车换行,选项 A.,B.和 C都表示回车换行。而 D是字符串的结尾标志。33.两个或两个以上模块之间关联的紧密程度称为( )。(分数:2.00)A.耦合度 B.内聚度C.复杂度D.数据传输特性解析:解析 耦合是指模块之间的关联程度,内聚是指模块内部各部分的聚合程度。34.下列描述中正确的是( )。(分数:2.00)A.软件工程只是解决软件项目的

26、管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D.软件工程只是解决软件开发中的技术问题解析:解析 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法来开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件工程的目标是生产具有正确性、可用性及开销合宜的产品,它的主要思想是强调在软件开发过程中需要应用工程化原则。35.设有数组定义:chararray:”China”;则数组 array所占的空间为( )。(分数:2.00)A.4个字节B.5个字节C.6个字节 D.7个字节

27、解析:解析 本题考查在 C+语言中,字符串的存放规则。即字符串存放在字符数组中,而且在字符的后面自动插入标识字符串结束的标识符/0,因此,共 6个字符,每个字符占用一个字节,故正确答案为 C。二、填空题(总题数:14,分数:28.00)36.在面向对象方法中,类之间共享属性和操作的机制称为 1。(分数:2.00)填空项 1:_ (正确答案:继承。)解析:解析 类是面向对象语言中必备的程序语言结构,用来实现抽象数据类型。类与类之间的继承关系实现了类之间的共享属性和操作,一个类可以在另一个已定义的类的基础上定义,这样使读类型继承了其父类的属性和方法,当然,也可以定义自己的属性和方法。37.算法复杂

28、度主要包括时间复杂度和 1 复杂度。(分数:2.00)填空项 1:_ (正确答案:空间。)解析:解析 算法的复杂度主要包括时间复杂度和空间复杂度。38.数据的基本单位是 1。(分数:2.00)填空项 1:_ (正确答案:数据元素。)解析:解析 数据的基本单位是数据元素。39.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 1的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(分数:2.00)填空项 1:_ (正确答案:驱动模块。)解析:解析 在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。驱动模

29、块的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。桩模块用来代替被测模块所调用的模块,返回被测模块所需的信息。40.数据库设计分为需求分析阶段、 1 阶段、逻辑设计阶段、物理设计阶段、数据库实施阶段、数据库运行和维护阶段。(分数:2.00)填空项 1:_ (正确答案:概念设计。)解析:解析 本题考查数据库设计的流程,数据库设计按流程分为以下阶段:需求分析阶段概念设计阶段逻辑设计阶段物理设计阶段数据库实施阶段数据库运行、维护阶段。41.C+中封装性、继承性和 1 是面向对象思想的主要特征。(分数:2.00)填空项 1:_ (正确答案:多态性。)解析:解析 面向对象系统包含了三

30、个特征封装性、继承性和多态性,这三个特征可以很好的实现数据抽象,进行行为共享,完成进化求解和描述一个系统的确定行为。42.下面程序的结果为_。#includeiostream.hvoid main()int 31,b2;bool c1;if(ab)|c)cout“true”endl;elsecout“false”endl;(分数:2.00)填空项 1:_ (正确答案:true。)解析:解析 本题考查的是对于逻辑运算符号的理解,”|”运算符的任何一边取值为真,则整个运算结果为真。43.下列 for语句的循环次数为_。for(int a0,b1;b&a5;a+);(分数:2.00)填空项 1:_

31、(正确答案:5。)解析:解析 因为 b的值为 1,所以 b&a5 相当于 a5,当 a=5时退出循环,一共进行 5次循环。44.下面程序的输出结果是_。#includeiostream.hvoid main()inta61,2,3,4,5,6;for(int i0;i5;i+)coutai“;coutendl;(分数:2.00)填空项 1:_ (正确答案:1 2 3 4 5。)解析:解析 本题考查的是考生使用简单循环输出数组元素的能力,因为结束条件是 i5,而 i初始值为 0,所以只会输出前 5个元素。45.C+程序是从 1 函数开始执行的。(分数:2.00)填空项 1:_ (正确答案:mai

32、n。)解析:解析 所有的 C+语官程序都是从 main函数开始执行,而普通函数的存在是为了简化 main函数的复杂程度。46.假定 A为一个类,则语句 A(A&a);为该类 1 函数的原型说明。(分数:2.00)填空项 1:_ (正确答案:拷贝构造。)解析:解析 本题考查的是拷贝构造函数的定义,它是一种特殊的成员函数,作用是使用一个已知的对象来初始化一个被创建的同类的对象,定义格式是类名:拷贝构造函数名(类名&引用名)。47.派生类构造函数的执行顺序是先执行_的构造函数,然后执行成员对象的构造函数,最后执行_的构造函数。(分数:2.00)填空项 1:_ (正确答案:基类 派生类。)解析:解析

33、本题主要考查的是派生类构造函数的执行顺序,在 C+语言中构造函数的执行顺序是先基类后派生类,而析构函数的执行顺序正好相反,是先调用派生类后调用基类。48.类模板不同于函数模板,类模板只可用 1 型参数。(分数:2.00)填空项 1:_ (正确答案:类。)解析:解析 本题考查的是类模板的定义,C+语言中模板分为两种:类模板和函数模板,类模板只能用于类型参数,函数模板可以重载。49.下列程序的执行结果为_。#includeiostream.hvoid main()cout.fill(*);tout.width(10);cout“hello”endl;)(分数:2.00)填空项 1:_ (正确答案:* * * * *hello。)解析:解析 本题考查的是 C+语言的流输出操作,eout 中包括的函数 fill()和 width()分别实现填充和设定显示长度的功能。

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

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

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