试题

下半年全国计算机考试二级C++预测卷答案及解析

时间:2024-10-05 16:37:55 试题 我要投稿
  • 相关推荐

2015下半年全国计算机考试二级C++预测卷答案及解析

  一、选择题

2015下半年全国计算机考试二级C++预测卷答案及解析

  (1)B

  【命题目的】本题主要考查对于栈的理解。

  【解题要点】栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后插入的元素,从而也是最先能被删除的元素;栈底元素总是最先插入的元素,从而也是最后才能被删除的元素,即栈是按照"先进后出"或"后进先出"的原则组织数据的。

  【错解分析】队列组织数据的原则是"先进先出"或"后进后出"。

  【考点链接】数据结构中,栈和队列组织数据的原则。

  (2)D

  【命题目的】考查二叉树的基础知识。

  【解题要点】具有3个结点的二叉树具有以下的几种形态:

  【考点链接】二叉树的结构及画法。

  (3)B

  【命题目的】本题考查二叉树的遍历。

  【解题要点】所谓二叉树的前序遍历(DLR)是指在访问根结点、遍历左子树与遍历右子树这3者中,首先访问根结点,然后遍历左子树,最后遍历右子树,并且,在遍历左右子树时,上述规则同样适用,即"根-左-右"。故该二叉树的前序遍历结果为"ATBZXCYP"。

  【考点链接】对于本题,若使用后序遍历和中序遍历的结果分别为"ZBTYCPXA"和"TZBACYXP"。

  (4)D

  【命题目的】本题考查考生的结构化程序设计的思想。

  【考点链接】结构化的程序设计的目的。

  (5)B

  【命题目的】本题考查基本的程序控制结构。

  【解题要点】采用结构化程序设计方法编写程序,可使程序结构良好、易读、易理解、易维护,它包括3种基本控制结构,分别是顺序结构、选择结构和重复结构(又称循环结构)。

  【考点链接】控制程序结构的方法和作用。

  (6)C

  【命题目的】本题考查了软件测试的主要特征。

  【解题要点】软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。它有3个方面的重要特征,即测试的挑剔性、完全测试的不可能性及测试的经济性。其中没有测试的可靠性这一说法。

  【考点链接】软件测试与软件调试的概念,以及相应的方法。

  (7)A

  【命题目的】考查需求分析的作用。

  【解题要点】需求分析是软件定义时期的最后一个阶段,它的基本任务就是准确回答"系统必须做什么"这个问题即软件系统功能,需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。

  (8)B

  【命题目的】本题考查了专门的关系运算的类型及其相关知识点。

  【解题要点】关系代数中包括传统的集合运算和专门的关系运算。经过选择或投影运算得到的新关系的属性个数最多不会超过原关系中的属性个数。经过连接运算得到的新关系最多不少于原关系中属性的个数。

  (9)C

  【命题目的】本题主要考查了用E-R图表示实体之间联系的方法。

  【解题要点】两个实体之间的联系实际上是实体集间的函数关系,这种函数关系可以有下面几种,即一对一的联系、一对多(或多对一)的联系和多对多的联系;概念模型便于向各种模型转换。由于概念模型不依赖于具体的数据库管理系统,因此,容易向关系模型、网状模型和层次模型等各种模型转换。

  (10)C

  【命题目的】对数据库各种特性必须有正确的理解。

  【解题要点】数据库的完整性是指数据的正确性和相容性(如学生的学号必须惟一,性别只能是女或男等),数据库是否具备完整性关系到数据库系统能否真实反映现实世界,因此维护数据库的完整性是非常重要的。

  【考点链接】数据库的各种特性及表达形式。

  (11)C

  【命题目的】考查C++语言的关键字。

  【解题要点】要熟练掌握C++语言中的关键字。

  【错解分析】include不是C++语言的关键字。

  【考点链接】define也不是关键字。

  (12)A

  【命题目的】考查C++语言中的注释问题。

  【解题要点】C++语言中的注释与C语言不同,C语言的注释符号只有/* */,而C++在此基础上又加上了//,此注释用于单行注释。

  【考点链接】注释不影响程序的运行。

  (13)B

  【命题目的】考查C++语言各种数据类型所占的内存大小。

  【解题要点】char型数据所占内存的大小为1个字节。

  【错解分析】int型数据占内存的大小为4个,cong double,double占内存的大小为8个字节。

  【考点链接】求字节数用sizeof运算符。

  (14)B

  【命题目的】考查C++语言的正确赋值方法。

  【解题要点】a=b=c+2实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。

  【错解分析】选项A)中包含一个不合法的运算符":=";选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C++语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。

  【考点链接】C++语言赋值语句的运用。

  (15)A

  【命题目的】关于switch语句的考查。

  【解题要点】该题目的关键是要搞清楚该程序执行了哪几条语句。由于x的值等于1,所以switch结构中,程序从case 1后面的语句开始执行,又因为case 1后面的语句没有以break结束,所以程序要继续往下执行case 2后面的语句。所以,该程序共执行了这三条语句:a++;a++;b++;,因此,变量a和b最后的值应该为2和1。

  【考点链接】break语句可以结束switch语句。

  (16)C

  【命题目的】考查C++语言中"‖"和"&&"运算符。

  【解题要点】该题目的关键是要搞清楚"‖"和"&&"两个逻辑运算符的运算功能。运算符"‖"和"&&"是双目运算符,要求有两个运算量。且规定逻辑与运算中,只有前面运算量的值为真时,才需要判别后面的值。只要前面运算量为假,就不必判别后的值。而逻辑或则为只要前面的运算量为真,就不必判别后的值;只有前为假,才判别后。本题中j++值为真,不进行k++的运算,所以k的值保持不变。

  【考点链接】注意按位与和按位或的用法。

  (17)D

  【命题目的】数组的定义范围。

  【解题要点】本题定义a为3行×4列的数组,它可用的行下标最大为2,列下标最大为3。

  【错解分析】a[0][4]超过了数组的范围。

  【考点链接】数组的下标是从0开始的。

  (18)D

  【命题目的】对于运算符"&"和"*"的运用。

  【解题要点】"&"是求址运算符,"*"是指针变量的说明符,说明该变量只能存放所定义类型变量的地址。本题中选项D)中的第一和第三项所表达的是同样的意思。

  【错解分析】选项A)中a是一个整型变量。选项B)中&*a等价于a,*point是指针变量所指的内容。选项C)中也是同理。

  【考点链接】在指针运算中,&和*的作用相互抵消。

  (19)D

  【命题目的】本题综合考查函数的调用方式

  【解题要点】函数的形参和实参具有以下特点:

  ①形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分的内存单元。因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。②实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应通过预先用赋值,输入等办法使实参获得确定值。③实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生"类型不匹配"的错误。④函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。

  【错解分析】函数调用不可以作为一个函数的形参。

  【考点链接】函数可以嵌套调用,但是不可嵌套定义。

  (20)A

  【命题目的】考查三目运算符"?:"。

  【解题要点】三目运算符的表达式为(表达式1)?(表达式2):(表达式3),运算过程是当(表达式1)的值为真时,求(表达式2)的值为整个表达式的值;如果(表达式1)的值为假,则求(表达式3)的值为整个表达式的值。题中,表达式x>12的结果为假,所以执行的语句是x-12,最终结果应该是0。

  【考点链接】"?:"的优先级高于"="运算符的优先级。

  (21)D

  【命题目的】考查关于C++语言类的定义方法。

  【解题要点】在C++语言中类定义中的构造函数是私有的,但是其却调用了其中的公有变量,在实例化时会出现错误。

  【考点链接】C++语言类的定义

  (22)A

  【命题目的】考查C++语言中类定义和它的概念。

  【解题要点】C++语言的默认访问权限修饰符是private。

  【错解分析】C++语言中的构造函数是系统默认就有的,用户可以自己定义也可以不定义,故选项B)错误;C++语言的类是可以嵌套定义的,故选项D)错误;C++语言中成员函数的实现部分也可以写在类定义内,故选项C)错误。

  【考点链接】函数不能嵌套定义。

  (23)B

  【命题目的】关于C++语言继承问题的考查。

  【解题要点】C++语言中通常有3种继承修饰符public,protected和private,限制依次严格,另外对类中的数据和函数也有这3种修饰符进行限制。一个派生类能不能继承基类的所有数据成员受它们的限制。

  【考点链接】C++语言中继承关系的修饰符public,protected和private的运用。

  (24)D

  【命题目的】关于C++语言继承问题中派生类对基类的访问能力的考查

  【解题要点】C++语言中通常有三种继承修饰符public,protected,private,限制依次严格,另外对类中的数据和函数也有这三种修饰符进行限制,有3种是不能继承的:公有继承基类的私有成员,私有继承基类的私有成员,保护继承基类的私有成员。

  (25)A

  【命题目的】考查C++语言中不能够重载的操作符。

  【解题要点】C++语言中的不能重载的操作符是., .*, ->*, ::和?:。

  (26)D

  【命题目的】考查C++语言中操作符重载的概念。

  【解题要点】运算符重载的规则是重载时不能改变运算符的操作数个数,不能改变运算符的优先级,不能改变运算符的结合性,不能改变对预定义类型数据的操作方式。

  【考点链接】运算符重载的关键字是operator。

  (27)D

  【命题目的】考查C++语言中关于函数模板实参不能省略的情况

  【解题要点】函数模板实参不能省略的情况在C++语言中一共有4种:①从模板函数实参表获得的信息有矛盾;②需要获得特定类型的返回值,而不管参数的类型如何;③虚拟类型参数没有出现在模板函数的形参表中;④函数模板含有常规形参。

  【考点链接】模板形参分为两种类型;虚拟类型参数和常规参数。

  (28)A

  【命题目的】考查C++语言中>>运算符的意义。

  【解题要点】C++语言中<<和>>运算符都是友元函数重载,分别用于输出和输入。

  【考点链接】运算符[ ]只能作为成员函数重载。

  (29)C

  【命题目的】考查/和%运算符的意义。

  【解题要点】逻辑与运算符为真的前提是两边的表达式都为真,本题中6%3的值为0,显然该表达式的值应该为0。

  【考点链接】/是整除运算符,当两个操作数都为整数时,结果为整型,将小数部分舍去。

  (30)C

  【命题目的】return语句的意义和用法。

  【解题要点】在C++语言函数调用中,如果被调用函数中没有return语句,并不带回一个确定的、用户所希望得到的函数值,而是带回的是一个不确定的值。

  【考点链接】为了明确表示"不带回值",可以用void定义无类型(或称空类型),这时,系统就保证不使函数带回任何值。

  (31)A

  【命题目的】函数的参数设置问题。

  【解题要点】函数的参数个数是以第一层的逗号为区分的,本题中调用语句中有3个参数。

  (32)B

  【命题目的】本题考查对二维数组初始化知识点的掌握。

  【解题要点】在初始化语句时,需要注意下面几点:①所赋初值个数与数组元素的个数相同;②每行所赋初值个数与数组元素的个数不同时,系统将自动给该行其余的元素补初值0;③所赋初值行数少于数组行数时,系统将自动给后面各行的元素补初值0;④赋初值时省略行花括号对。在给二维数组赋初值时可以不用行花括号对。

  【错解分析】选项A)中省略了第二维的大小,所以是错误的;选项C)超出了数组的定义范围,所以是错误的;选项D)在初始化赋值的时候出现了错误。

  【考点链接】无论是几维的数组,下标都是从零开始的。

  (33)A

  【命题目的】对函数传参的考查 。

  【解题要点】在fun函数中,x接收的是main函数中y的地址,所以*x值为2,同样,*y值为1,所以第1次输出的是2 1, 第2次改变*x的值等同于改变y的值,改变*y的值也即改变x的值,所以第2次输出的是4 3。

  【考点链接】C++语言中函数的传参方式中关于指针的应用。

  (34)C

  【命题目的】本题考查if语句的使用方法。

  【解题要点】该表达式的语句是

  if(表达式1)

  语句1

  else if(表达式2)

  语句2

  else if(表达式3)

  语句3

  else

  语句4

  ……

  由if表达式可知,题中直接执行if语句的第2条else if(x<10.0)y=1.0/x;。

  【考点链接】else总是与最近的没有匹配的if匹配。

  (35)D

  【命题目的】for和switch语句的应用。

  【解题要点】本题考查循环的嵌套。只要注意在C++语言中,系统在字符指针的最后位置会增加一个字符串结束符′′,执行8次for循环,再根据switch语句中的条件易知答案。

  【考点链接】C++中各种条件判断,循环语句的用法。

  二、填空题

  (1)交换排序

  【命题目的】需要考生记住常见的排序方法。

  【解题要点】常见的排序方法有插入排序(包括简单插入排序法和希尔排序法等)、交换排序(包括冒泡排序和快速排序法等)和选择排序(包括简单选择排序和堆排序等)。

  【考点链接】常见的排序方法及其作用机制和区别。

  (2)上溢

  【命题目的】本题考查了队列的基本性质。

  【解题要点】入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当rear=m+1时置rear=1;然后将新元素插入队尾指针指向的位置。当循环队列非空(s=1)时且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算,这种情况称为"上溢"。

  (3)封装

  【命题目的】本题考查了面向对象技术中的一些基本概念。

  【解题要点】面向对象技术中包括以下几个基本概念,即对象、类、方法、消息、继承和封装,其中封装是一种信息隐蔽技术,目的在于将对象的使用者对象的和设计者分开。

  (4)输出结果

  【命题目的】本题主要考查测试的步骤。

  【考点链接】测试的基本方法和步骤。

  (5)关系运算

  【命题目的】本题考查了关系运算的基本知识。

  【解题要点】在关系模型的数据语言中,一般除了运用常规的集合运算,(并、交、差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择、连接等。前者是将关系(即二维表)看成是元组的集合,这些运算主要是从二维表的行的方向来进行的;后者主要是从二维表的列的方向来进行的运算。两者统称为关系代数。

  (6)编译器

  【命题目的】考查内联函数的基本概念

  【解题要点】内联函数是通过编译器,只是在调用的时候,像宏一样展开。

  【考点链接】内联函数比普通函数的效率更高。

  (7)16

  【命题目的】考查C++赋值表达式的运用。

  【解题要点】赋值表达式的值就是所赋值变量的值,本题中a+=8相当于a=a+8,对表达式逐步进行求解:

  a+=(a=8)此时,a的值由于赋值为8,而不是0

  a+=8

  a=a+8

  a=16

  【考点链接】要掌握"+="等相关运算符的用法。

  (8)acdb

  【命题目的】考查在继承中构造函数和析构函数的调用顺序。

  【解题要点】先调用基类的构造函数,再调用派生类的构造函数,调用析构函数时的顺序是先调用派生类的析构函数,后调用基类的析构函数。

  【考点链接】应掌握在继承中构造函数和析构函数的调用顺序。

  (9)内联

  【命题目的】注意内联函数与宏定义的区别。

  【解题要点】C++中的成员函数如果它的实现写在了类中,那么该函数就是一个内联函数。

  【考点链接】C++中内联函数的相关概念。

  (10)二义性

  【命题目的】关于C++中虚基类的作用。

  【解题要点】C++中产生虚基类的作用就是为了解决继承中的二义性问题,通过虚基类继承可以把父基类中相同的函数只编译一次。

  (11)public

  【命题目的】考查C++中运算符重载的固定格式和要求。

  【解题要点】C++中不论用成员函数还是友元函数重载运算符都必须用关键字operator,都必须将函数声明为公有的。

  【考点链接】operator是关键字。

  (12)函数模板~源代码~数据类型

  【命题目的】C++中函数模板的定义。

  【解题要点】函数模板是一系列相关函数的模型或样板,这些函数的源代码形式相同,只是所针对的数据类型不同。

  【考点链接】声明一个函数的模板格式是:template<<模板形参表声明>><函数声明>

  (13)有格式

  【命题目的】考查关于输入输出的概念。

  【解题要点】C++中运算符">>"和"<<"都是属于有格式的输入输出。

  【考点链接】使用cin,cout进行输入输出时应包括头文件"iostream.h。

【下半年全国计算机考试二级C++预测卷答案及解析】相关文章:

全国计算机二级考试《C++》笔试样卷06-12

下半年全国计算机二级C++考试模拟题及答案06-27

计算机二级C++程序题及答案解析12-02

2015下半年全国计算机二级C++预测题03-11

全国计算机二级考试C++巩固试题与答案03-01

2023下半年全国计算机二级C++考试模拟题及答案08-22

全国计算机二级《C++》上机试题及答案03-28

2015下半年全国计算机二级C++考试模拟题及答案(九)03-07

全国计算机二级考试C++真题09-20