2022年2022年计算机二级C++考试+年 2.pdf
《2022年2022年计算机二级C++考试+年 2.pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机二级C++考试+年 2.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机二级 C+考试 9 2015 年(总分:100.00,做题时间:90 分钟)一、选择题(每小题 1 分,共 40 小题,共40 分)(总题数:40,分数:40.00)1.设计程序时,应采纳的原则之一是()。(分数:1.00)A.程序的结构应有助于读者的理解B.限制 goto 语句的使用C.减少或取消注释行D.程序越短越好解析:【解析】程序设计的风格主要强调程序的简单、清晰和可理解性,以便读者理解。程序滥用goto 语句将使程序流程无规律,可读性差;添加注释行有利于对程序的理解不应减少或取消,程序的长短要依据实际的需要而定,并不是越短越好。2.需求分析阶段的任务是确定()。(分数:1.00
2、)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能解析:【解析】需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。3.结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法。(分数:1.00)A.对象B.数据结构C.数据流D.目标解析:【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。4.下列叙述中,不属于软件需求规格说明书的作用的是()。(分数:1.00)A
3、.便于用户、开发人员进行理解和交流B.反映出用户问题的结构,可以作为软件开发工作的基础和依据C.作为确认测试和验收的依据D.便于开发人员进行需求分析解析:【解析】使用软件需求规格说明书的目的是便于用户、开发人员进行理解和交流,它能够反映出用户问题的结构,可以作为软件开发工作的基础和依据,而且可以作为确认测试和验收的依据。它是需求分析的结果,而不是为了便于开发人员进行需求分析。因此答案是选项D。5.对下列二叉树进行中序遍历的结果是()。(分数:1.00)A.ACBDFEG B.ACBDFGE C.ABDCGEF D.FCADBEG 解析:【解析】二叉树的遍历有三种:前序、中序和后序。中序遍历首先
4、遍历左子树或左子结点,然后访问根结点,最后遍历右子树或右子结点。分析本题二叉树,对其进行中序遍历,结果为ACBDFEG。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 10 页 -6.SQL 语言又称为()。(分数:1.00)A.结构化定义语言B.结构化控制语言C.结构化操纵语言解析:【解析】SQL语言的全称为StructuredQueryLanguage,它是一种介于关系代数与关系演算之间的结构化查询语言,是一种面向数据库的通用数据处理语言规范。它包含数据查询语言、数据操纵语言、数据定义语言和数据控制语言四个部分。7.下列叙述中正确的是()。(分数:1.00)A.线性链表的各元
5、素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的解析:【解析】在线性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后关系。8.有下列二叉树,对此二叉树中序遍历的结果县()。(分数:1.00)A.BDYEACFXZ B.DYBEAFCZX C.ABCDEFXYZ D.ABDYECFXZ 解析:【解析】对二叉树的中序遍历是指:首先遍历左子树然后访问根结点
6、,最后遍历右子树。在遍历左、右子树时,注意依旧按照“左子树一根结点一右子树”的顺序。本题的遍历顺序是这样的:首先访问左子树 BDEY;在左子树BDEY中,也按中序遍历,先访问左子树DY;在左子树DY中,也按中序遍历,先访问左子树,左子树没有,则访问根结点D,然后访问右子树Y;接着访问根B,再访问右子树E;访问左子树 BDEY后,接着访问根结点A,然后访问右子树CFXZ;同理可得右子树CFXZ 的访问顺序为FC-ZX。9.最简单的交换排序方法是()。(分数:1.00)A.快速排序B.选择排序C.堆排序D.冒泡排序解析:【解析】交换排序方法是指借助数据元素之间的互相交换进行排序的一种方法,包括冒泡
7、排序和快速排序。冒泡排序是一种最简单的交换排序方法,它通过相邻元素的交换,逐步将线性表变得有序。10.数据库设计包括两个疗面的设计内容,他们是()。(分数:1.00)A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计解析:【解析】数据库设计包括数据库概念设计和数据库逻辑设计两个方面的内容。11.下列关于类和对象的叙述中,错误的是()。(分数:1.00)A.一个类只能有一个对象B.对象是类的具体实例C.类是对某一类对象的抽象D.类和对象的关系是一种数据类型与变量的关系名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 10 页 -解析:
8、【解析】本题考查类和对象的概念。类是用户定义的一种类型,程序员可以使用这个类型来说明多个变量,即对象。12.在函数中,可以用aut0、extern、register和 static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是()。(分数:1.00)A.auto B.extern C.register D.static 解析:【解析】变量在使用之前其数据类型必须加以说明,而存储类型则可默认说明或显式说明。显式说明指直接在变量说明前加上存储类型标志,如auto,register,static,extern等。关键字auto 通常省略。13.若变量已正确定义并赋值
9、,以下符合C语言语法的表达式是()。(分数:1.00)A.a:=b1 B.a=b=c 2 C.intl853 D.a=a7=cb 解析:【解析】本题考查C语言的正确赋值方法。a=b=c2 实际上相当于a=(b=c 2),进而可分解为两个表达式 b=c2 和 a=b。选项 A中包含一个不合法的运算符:=;选项 C应改为(int)1853;选项D可理解为两个表达式a7=cb 和 a=a7,其中第一个是错的,因为C 语言规定赋值号的左边只能是单个变量,不能是表达式或常量。14.以下叙述中正确的是()。(分数:1.00)A.构成 C语言程序的基本单位是类B.可以在一个函数中定义另一个函数C.main(
10、)函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义解析:【解析】关于C语言,应该了解以下必须要掌握的基础知识:C 程序是由类构成的;一个函数由两部分组成,即函数的首部和函数体;一个类由两部分组成,即类成员变量和类成员函数;一个 C程序总是从main 函数开始执行的,而不论 main 函数在整个程序中的位置如何(main 函数可以放在程序最前头,也可以放在程序最后,或写在一些函数之前,在另一些函数之后);C 程序在书写上,表现形式比较自由,一行内可以写几个语句,一个语句可以分写在几行上,每个语句和数据定义的最后必须有一个分号;可以用*和对C语言的程序的任何部分进行注释。15.
11、定义如下枚举类型enumMonday,Tuesday,Wednesday,Thrusday,Friday=2;则下列选项正确的是()。(分数:1.00)A.表达式 Wednesday=Friday 的值是 true B.Dayday;day=3;C.Dayday;day=Monday 3;D.Daydayday=Tuesday 10;解析:【解析】枚举类型定义了一些整型符号常量的集合,使用枚举类型时应该注意以下几点:枚举类型的第一个常量默认值是0;枚举类型常量的值允许彼此相同;虽然枚举类型常量是整数类型,但是不允许使用整数直接赋值给枚举类型变量,也不允许与整数进行运算,只可以与整数进行比较。1
12、6.下列有关模板的叙述中,正确的是()。(分数:1.00)A.函数模板不能含有常规形参B.函数模板的一个实例就是一个函数定义C.类模板的成员函数不能是模板函数名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 10 页 -D.用类模板定义对象时,绝对不能省略模板实参解析:【解析】本题考查的是模极的概念。函数模板可以含有常规形参;函数模板的一个实例就是一个函数定义;类模板中的成员函数都是模板函数;在用类模板定义对象时,由于没有像函数实参表这样的额外信患渠道,因此无法按函数模板的方式省略模板形参,但是可以为类模板的参数设置默认值。17.下列运算符函数中肯定不属于类FunNumber的成员
13、函数的是()。(分数:1.00)A.intoperator-(FunNumber);B.FunNumberoperator-();C.FunNumberoperator-(int);D.intoperator-(FunNumber,FunNumber);解析:【解析】本题考查的知识点是运算符一的重载。一运算符有一元(取负)和二元(减法)两种形式,且均可重载为成员函数和非成员函数。运算符重载为成员函数时,形参个数一般为运算符元数减1,因为此成员函数所属的对象可成为运算符的一个运算分量。重载为非成员函数时,形参个数一般和运算符元数相等。所以一运算符重载为成员函数时,参数个数可以是0 个和 1 个,
14、而重载为非成员函数时,参数个数可以是 1 个或 2 个。18.下列各组类型声明符中,含义相同的一组是()。(分数:1.00)A.unsignedlongint和 long B.signedshort和 short C.unsignedshort和 short D.shortint和 int 解析:【解析】本题考查的知识点是基本类型的派生类型的定义。派生类型声明符是由基本类型关键字char、int、float、double 前面加上类型修饰符组成的。类型修饰符包括short 短类型,缩短字长;long 长类型,加长字长;signed 有符号类型,取值范围包括正负值;unsigned 无符号类型,
15、取值范围只包括正值。其中signed 和 unsigned 只能同时出现一个,如果省略则默认为signed。short和 long 也只能同时出现一个,如果修饰的类型是int 则可以省略int。unsignedlongint的省略形式为unsignedlong;选项 B 中,signedshortint的省略形式就是short,正确;unsignedshortint的省略形式是unsignedshort;shortint的省略形式是short。故本题选B。19.关于纯虚函数,下列表述中正确的是()。(分数:1.00)A.纯虚函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是
16、以“=0”结束C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不可能是派生类解析:【解析】纯虚函数是在声明虚函数时被“初始化”为0 的虚函数。纯虚函数没有函数体,纯虚函数的作用是在基类中为其派生类保留一个函数名称。20.若已定义:inta=0,1,2,3,4,5,6,7,8,9,*p=a,i;其中 0i 9,则对a 数组元素不正确的引用是()。(分数:1.00)A.ap-a B.*(ai)C.pi D.a10 解析:【解析】通常,引用一个数组元素可以用下标法,如ap-a形式,或指针法,如*(ai)的形式。本题中 a9=9,a10 显然超出了数组范围,数组的下标是从0 开始的。21.派生类的
17、成员函数不能访问基类的()。(分数:1.00)A.公有成员和保护成员B.公有成员名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 10 页 -C.私有成员D.保护成员解析:【解析】基类的私有成员在派生类中都是不可见的,如果一个派生类要访问基类中声明的私有成员,可以将这个派生类声明为友元。22.函数定义为Fun(int i),变量定义n=100,则下面调用正确的是()。(分数:1.00)A.Fun(20);B.Fun(20 n);C.Fun(n);D.Fun(n);解析:【解析】本题考查函数的调用。当函数的参数是引用类型时,参数不能是常量、表达式和变量地址,只能是变量本身。23.有如
18、下四个语句:coutA coutcoutA cout*、:、?:五个运算符不能重载。25.有如下的程序:#include#include usingnamespacestd;classMyString public:MyString(constchar*s);MyString()deletedata;protected:unsignedlem char*data;MyStrin9:MyString(constchar*s)len=strlen(s);data=newcharlen1;strcpy(data,s);intmain()MyStringa(C Programing);MyString
19、b(a);return0;在运行上面的程序时出错,出错的原因是()。(分数:1.00)A.构造函数的实参不允许是本类的对象B.没有定义实现深层复制的复制构造函数C.构造对象 a 时实参与形参类型不符D.系统不能生成默认的复制构造函数解析:【解析】C语言中当一个新对象被另一个已存在的同类型对象初始化时要调用复制构造函数,语句MyStringb(a);符合此条件,将调用类MyString的复制构造函数,但是类MyString没有定义此复制构造函数,所以会出错。26.有如下程序:#include usingnamespacestd;classMyClass public:MyClass()count
20、;)MyClass()-count;)staticintgetCount()returncount;private:staticintcount;intMyClass:count=0;intmain()MyClassobj;cout MyClass*ptr=newMyClass;cout deleteptr;cout return0;程序的输出名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 10 页 -结果是()。(分数:1.00)A.121 B.232 C.221 D.122 解析:【解析】本题考查的知识点是静态成员。类中的静态成员是解决同一个类的不同对象之间的数据和函数共享问
21、题的。静态成员被所有属于这个类的对象共享。这种共享与全局变量或全局函数相比,既没有破坏数据隐藏的原则,又保证了安全性。题目中,首先定义了一个obj 对象,其构造函数使MyClass 的静态数据成员 count 增 1,所以第一条输出语句输出的结果是1。然后通过指针动态创建了一个MyClass 类的对象,构造函数再次被调用,count 变为 2,所以第二次输出结果是2。接下来是用dilete删除了刚才动态创建的 MyClass 对象。析构函数被调用,count 减 1 变为 1,第三次输出1。故本题的输出为121。27.有如下程序:#include usingnamespacestd;class
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算机二级C+考试+年 2022 计算机 二级 C+ 考试
限制150内