计算机二级C++笔试34.docx
- 文档编号:7108418
- 上传时间:2023-01-18
- 格式:DOCX
- 页数:18
- 大小:21.55KB
计算机二级C++笔试34.docx
《计算机二级C++笔试34.docx》由会员分享,可在线阅读,更多相关《计算机二级C++笔试34.docx(18页珍藏版)》请在冰豆网上搜索。
计算机二级计算机二级C+笔试笔试34模拟模拟计算机二级(计算机二级(C+)笔试)笔试34一、选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的。
第1题:
下面关于成员函数重载运算符和友元函数重载运算符相同的是A.成员函数和友元函数可重载的运算符是不相同的B.成员函数和友元函数重载运算符时都需要用到this指针C.成员函数和友元函数重载运算符时都需要声明为公有的D.成员函数和友元函数重载运算符时的参数町能是相同的参考答案:
A答案解析:
考查C+语言中操作符重载中成员函数重载和友元函数重载的不同。
【解题要点】成员函数和友元函数可重载的运算符有些相同的,有些是不同的,友元函数没有this指针,二者重载相同运算符时的参数肯定是不同的,成员函数重载运算符时都必须声明为公有的。
【考点链接】友元函数的声明关健字是friend。
第2题:
C+语言是以哪种语言为基础逐渐发展演变而成的一种程序设计语言A.ASPB.CC.VBD.Java参考答案:
B答案解析:
C+语言是对C语言进行了扩充,继承了它的语法,并增加了面向对象的设计方法。
第3题:
NULL是指A.0B.空格C.未知的值或无任何值D.空字符串参考答案:
C答案解析:
此题属于记忆性的题目,NULL是指未知的值或无任何值。
第4题:
已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是A.堆排序B.直接插入排序C.快速排序D.直接选择排序参考答案:
B答案解析:
当数据表A中每个元素距其最终位置不远,说明数据表A按关键字值基本有序,在待排序序列基本有序的情况下,采用插入排序所用时间最少,故答案为选项B.。
第5题:
如果表达式+x/y中,+是作为友元函数重载的,/是作为成员函数重载的,则该表达式还可为A.(operator+(x)operator/(y)B.(operator+(0)operator/(y)C.operator/(operator+(x,0),y)D.operator/(operator+(0),y)参考答案:
A答案解析:
C+中用成员函数重载+x为:
xoperator+(),用友元函数重载+x为:
operator+(x),用成员函数重载x/y为:
xoperator/(y),用友元函数重载x/y为:
operator/(x,y)。
第6题:
A.输出的是1B.输出的是1和-2C.输出的是3和0D.是死循环参考答案:
B答案解析:
do-while语句的一般格式为do循环体语句while(表达式);,先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。
本题中,先执行x=x-2,即为1。
判断表达式的值,!
(-x)为真,x=0,继续循环。
再次执行循环体语句后,x=-2,此时表达式的值为0,结束循环。
第7题:
下面的哪个选项不能作为函数的返回类型?
A.voidB.intC.newD.long参考答案:
C答案解析:
new是动态申请内存空间时使用的关键字,不能作为函数的返回类型,选项A.为无返回值,选项(B)为返回整型,选项(D)为返回长整型。
NULL第8题:
A.89B.98C.程序有错误D.99参考答案:
A答案解析:
考查交换两整数的方法。
【解题要点】两数只在函数change内被使用,函数调用完后该内存被释放,因此没有交换两数。
【考点链接】交换两个数的方法简单说有两种一是使用指针,二是用引用。
第9题:
A.121B.122C.112D.222参考答案:
B答案解析:
C+语言中全局变量是任何函数都可以改变的量,静态变量的有效范围在定义它的类中,而普通的变量的有效性只在使用它的函数中,在本题中c为全局变量,b为静态变量,a为普通变量,b和c在类A的对象a1和a2中都自加1。
所以b,c为2,a为1。
第10题:
A.-1B.1C.2D.编译出错,无法运行参考答案:
A答案解析:
本题的函数是根据a和b的值来给c赋值。
第11题:
下列叙述中,不属于软件需求规格说明书的作用的是A.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于开发人员进行需求分析参考答案:
D答案解析:
软件需求规格说明书(SRS,SoftwareRequirementSpecificafon)是需求分析阶段的最后成果,是软件开发中的重要文档之一。
它有以下几个方面的作用:
便于用户、开发人员进行理解和交流;反映出用户问题的结构,可以作为软件开发工作的基础和依据;作为确认测试和验收的依据。
第12题:
类的析构函数的作用是A.一般成员函数的初始化B.类的初始化C.对象的初始化D.删除类创建的对象参考答案:
D答案解析:
析构函数就是用来释放对象的,它的调用完成之后,对象也就消失了,相应的内存空间也被释放了。
第13题:
在设计程序时,应采纳的原则之一是A.不限制goto语句的使用B.减少或取消注解行C.程序越短越好D.程序结构应有助于读者理解参考答案:
D答案解析:
滥用goto浯句将使程序流程无规律,可读性差,因此选项A.不选;注解行有利于对程序的理解,不应减少或取消,选项B.也不选;程序的长短要依照实际情况而论,而不是越短越好,选项C.也不选。
第14题:
关于虚函数下面说的正确的是A.若在重定义虚函数时使用了virtual,则该重定义函数还是虚函数B.虚函数不能声明为友元C.子类必须重定义父类的虚函数D.虚函数不能是static的参考答案:
D答案解析:
虚函数一定不能定义为静态的。
虚函数可以声明为友元,子类也不是必须重定义父类的虚函数,若在重定义虚函数时使用了virtual,则该重定义函数不一定还是虚函数。
第15题:
以下各选项组中,均是C+语言关键字的组是A.publicoperatorthisB.shodstringstaticC.itwhile=D.privatecoutprintf参考答案:
A答案解析:
关键字是系统已预定义的单词,在程序中有不同的用途,考生应该熟记。
第16题:
在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是A.友元函数B.虚函数C.构造函数D.析构函数参考答案:
C答案解析:
构造函数在创建对象时系统自动调用,其功能是使用给定的值将对象初始化。
第17题:
下面关于C+语言变量的叙述错误的是A.C+语言中变量分为auto,static,extem和register四种存储类型B.自动变量和外部变量的作用域为整个程序C.内部静态变量的作用域是定义它的函数D.外部静态变量的作用域是定义它的文件参考答案:
B答案解析:
自动变量是函数体或分程序内定义的变量,它的作用域在所定义的函数体内或分程序体内。
第18题:
下列描述中哪个是正确的?
A.派生类构造函数中没有调用父类构造函数则没有对父类初始化B.子类构造函数不能是内联函数C.派生类构造函数中可以对父类数据成员赋值D.构造函数的返回值为void类型参考答案:
C答案解析:
C+语言中继承中的赋值问题。
【解题要点】C+语言中基类的构造函数是可以被派生类继承并赋值的。
【考点链接】构造函数和析构函数均无返回值。
第19题:
A.不定值B.33C.30D.10参考答案:
A答案解析:
考查C+语言中数组初始化问题。
【解题要点】如果定义数组时没有进行初始化,则其各个成员的值不确定。
【考点链接】使用数组时应先赋初值。
第20题:
在软件生产过程中,需求信息的给出是A.程序员B.项目管理者C.软件分析设计人员D.软件用户参考答案:
D答案解析:
软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
第21题:
树是结点的集合,它的根结点数目是A.有且只有1B.1或多于1C.0或1D.至少2参考答案:
A答案解析:
树是一个或多个结点组成的有限集合,其中一个特定的结点称为根,其余结点分为若干个不相交的集合。
每个集合同时又是一棵树。
树有且只有1个根结点。
第22题:
已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A.acbedB.decabC.deabcD.cedba参考答案:
D答案解析:
依据后序遍历序列可确定根结点为c;再依据中序遍历序列可知其左子树由deba构成,右子树为空;又由左子树的后序遍历序列可知其根结点为e,由中序遍历序列可知其左子树为d,右子树由ba构成,如下图所示。
求得该二叉树的前序遍历序列为选项D.。
*第23题:
A.11B.12C.21D.22参考答案:
C答案解析:
本题考查考生对拷贝构造函数的掌握。
因为+运算是右结合的,所以在使用a对b赋值时,b的num变为1而a的num变为2(先赋值再自加)。
第24题:
下列不属于软件调试技术的是A.强行排错法B.集成测试法C.回溯法D.原因排除法参考答案:
B答案解析:
掌握软件调试技术的方法、【解题要点】调试的关键在于推断程序内部的错误位置及原因。
主要的调试方法有强行排错法、回溯法和原因排除法。
【考点链接】软件调试的各种方法及各种方法的区别。
第25题:
下面不属于软件设计原则的是A.抽象B.模块化C.自底向上D.信息隐蔽参考答案:
C答案解析:
软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念,它们是抽象、模块化、信息隐蔽和数据独立性。
自底向上是集成测试中增量测试的一种。
第26题:
对于模板定义关键字class和typename说法不正确的是A.程序中的class并不能都替换为typenameB.class和typename都可互相替换C.程序中的typename都能替换为classD.程序中的部分class可以替换为typename参考答案:
B答案解析:
在C+程序中的typename是都可以替换为class的,但class不能都替换为typename。
第27题:
A.1234B.1324C.1342D.3142参考答案:
C答案解析:
本题考查的是在继承中构造函数和析构函数的调用顺序,应该是先调用基类的构造函数,再调用派生类的构造函数,调用析构函数时的顺序是先调用派生类的析构函数,后调用基类的析构函数。
第28题:
A.10B.程序有误C.1D.0参考答案:
A答案解析:
考查return语句的用法和函数的调用。
【解题要点】本题函数Max的功能是求出两个整数中的较大者,并且通return语句返回。
【考点链接】retum语句的用法,注意return的条件。
第29题:
设inta=1,b=2;,则(a+)+b和a+b这两个表达式的值分别为A.3,3B.3,4C.4,3D.4,4参考答案:
A答案解析:
单目的+运算优先级高于双目的+运算,不过+的结合性是自右向左的,而+是自左至右的,所以上面的两个表达式都是先计算a+b的值之后,a再自加1。
第30题:
下列叙述中,不属于结构化程序设计方法的主要原则的是A.自顶向下B.由底向上C.模块化D.限制使用goto语句参考答案:
B答案解析:
本题考查了结构化程序设计的原则。
【解题要点】结构化程序设计方法的主要原则可以概括为以下4个方面,即自顶向下、逐步求精、模块化及限制使用goto语句。
第31题:
在结构化设计方法中,生成的结构图(SC)中,带有箭头的连线表示A.模块之间的调用关系B.程序的组成成分C.控制程序的执行顺序D.数据的流向参考答案:
A答案解析:
让考生对常用的软件结构设计工具要有较深入的了解。
【解题要点】常用的软件结构设计工具是结构图(SC-StructureChart),也称程序结构图。
其中,矩形内用于注明模块的功能和名字;箭头表示模块间的调用关系,带实心圆的箭头表示传递的是控制信息,带空心圆的箭头表示传递的是数据。
【考点链接】根据结构图设计思想,了解结构图构成的基本形式。
第32题:
A.ap-aB.,*(ai)C.piD.a10参考答案:
D答案解析:
通常,引用一个数组元素可以用下标法,如aP-a形式,或指针法,如。
(ai)的形式,本题中a9=9,a10显然超出了数组范围,注意,数组的下标是从0开始的。
第33题:
拷贝构造函数的参数一般是A.某对象名B.某对象成员名C.某对象的引用名D.指向对象的指针名参考答案:
C答案解析:
C+语言中拷贝构造函数的参数一般是某个对象的引用名。
第34题:
C+语言中标点符号中表示一条预处理命令开始的是A.#B.;C.D.参考答案:
A答案解析:
C+语言中预处理语句的开始符号是#。
第35题:
为了提高测试的效率,应该A.随机选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计划D.集中对付那些错误群集的程序参考答案:
D答案解析:
测试的目的是发现软件中的错误。
经验表明,程序中存在错误的概率与该程序中已发现的错误数成正比。
这一现象说明,为了提高测试效率,测试人员应该集中对付那些错误群集的程序。
二、填空题(每空2分,共30分)第36题:
软件危机出现于60年代末,为了解决软件危机,人们提出了()_的原理来设计软件,这就是软件工程诞生的基础。
参考答案:
软件工程学详细解答:
第37题:
通过使用new和delete两个运算符进行的分配为_存储分配。
参考答案:
动态详细解答:
本题考查的是对动态分配内存的掌握,在C+语言中,使用关键字new和delete进行动态内存申请和释放。
第38题:
如果类B继承了类A,则称类A为类B的基类,类B称为类A的_。
参考答案:
派生类详细解答:
如果类A为类B的基类,那么类B称为类A的派生类。
第39题:
将x+y中的+运算符用友元函数重载应写为()_。
参考答案:
operator+(x,y)详细解答:
C+中用成员函数重载x+y为xoperator+(y);,用友元函数重载x+y为operator+(x,y)。
第40题:
如果要把返回值为void的函数A声明为类B的友元函数,则应在类B的定义中加入的语句是()_。
参考答案:
friendvoidA();详细解答:
C+中类的友元函数在声明时应在该函数前面加上关键字friend,同样如果要声明一个类为另一个类的友元类也要在前面类名前加上friend。
第41题:
数据流图的类型有()_和事务型。
参考答案:
变换型详细解答:
典型的数据流类型有两种:
变换型和事务型。
变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。
第42题:
软件维护活动包括以下几类:
改正性维护、适应性维护、()_维护和预防性维护。
参考答案:
完善性详细解答:
软件维护活动包括以下几类:
改正性维护、适应性维护、完善性维护和预防性维护。
改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。
第43题:
C+在重载运算符中,如用成员函数重载一元运算符参数表中需要()_个参数,如用友元函数重载一元运算符参数表中需要()_个参数。
参考答案:
01详细解答:
题解命题目的:
考查C+中运算符重载中用成员函数和友元函数重载。
【解题要点】C+中友元函数重载一元运算符要有一个参数,重载二元运算符要有两个参数,而用成员函数重载时,重载一元运算符没有参数,重载二元运算符要有一个参数。
第44题:
一个C+语言程序的开发步骤通常包括编辑、()_、链接、运行和调试。
参考答案:
编译详细解答:
C+语言程序开发的基本步骤是编辑、编译、链接、运行和调试。
第45题:
一个类可以从直接或间接的祖先中继承所有属性和方法。
采用这个方法提高了软件的()_。
参考答案:
可重用性详细解答:
本题考查了继承的优点:
相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
第46题:
Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面()_的设计方法。
参考答案:
数据结构详细解答:
对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次。
第47题:
栈和队列通常采用的存储结构是()_。
参考答案:
链式存储和顺序存储详细解答:
题解命题目的:
考查考生对数据结构基本知识的了解。
【解题要点】栈和队列都属于线性表,它们一般采用顺序存储结构,也可以对它们采用链式存储结构。
【考点链接】栈、数组、表采用的存储结构,各种存储结构的定义和区别。
第48题:
语句coutn还可表示为()_。
参考答案:
coutend1;详细解答:
题解命题目的:
考查n和end1的意义。
【解题要点】n表示换行,end1也可表示换行。
【考点链接】end1和n可以通用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 C+ 笔试 34