试题 百分网手机站

下半年全国计算机等级考试二级C++模拟试题答案及解析

时间:2020-08-30 20:03:01 试题 我要投稿

2015下半年全国计算机等级考试二级C++模拟试题答案及解析

  一、选择题

2015下半年全国计算机等级考试二级C++模拟试题答案及解析

  (1)B

  解析: 所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个叶子结点。这就是说,在满二叉树中,层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。

  (2)D

  解析: 前序遍历的第一个结点a为树的根结点;中序遍历中a的左边的结点为a的左子树,a右边的结点为a的右子树;再分别对a的左右子树进行上述两步处理,直到每个结点都找到正确的位置。

  (3)A

  解析: 一些较流行的程序语言允许过程的递归调用。递归调用就是过程调用本身。递归实现的是:当过程每一次执行后,都能返回到最近一次调用它的过程中。这样各调用点之间形成一种后进先出关系,而栈结构正适合来存储这些调用点。

  (4)B

  解析: 软件工程的目标是,在给定的成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。基于这一目标,软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。

  (5)B

  解析: 软件工程鼓励研制和采用各种先进的软件开发方法、工具和环境。工具和环境的使用又进一步提高了软件的开发效率、维护效率和软件质量。

  (6)D

  解析: 使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。

  (7)C

  解析: 数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。故正确答案为选项C)。

  (8)B

  解析: 内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径。

  (9)B

  解析: 数据库系统的数据具有高共享性和低冗余性,但不能完全避免数据冗余;数据的一致性是指在系统中同一数据的不同出现应保持相同的值。

  (10)B

  解析: 数据库管理系统(Database Management System,简称DBMS)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心。

  (11)C

  解析: C++语言中的类是可以组成层次结构的,类是用于描述事物的属性和对事物的操作,类与类之间有相对的独立性,但其可以通过一些方法进行信息的通信。

  (12)B

  解析: C++语言中语句的结束符是分号。

  (13)A

  解析: 关于C++语言,我们应该了解以下必须要掌握的基础知识:

  ① C++程序是由类构成的。② 一个函数由两部分组成:函数的首部和函数体。③ 一个类由两部分组成:类成员变量和类成员函数。④ 一个C++程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或写在一些函数之前,在另一些函数之后)。⑤ C++程序在书写上,表现形式比较自由,一行内可以写几个语句,一个语句可以分写在几行上。每个语句和数据定义的最后必须有一个分号。⑥ 可以用/*……*/和//对C++语言的程序的任何部分作注释。

  (14)B

  解析: "++","--"运算符不能用于常量。

  (15)A

  解析: 在main函数中,调用reverse函数将b数组中的前8个成员进行互置,执行完毕后,b数组中的成员为{8,7,6,5,4,3,2,1,9,10},在执行for循环结构后,将b[6],b[7]……b[9]的值相加,结果为1+2+9+10=22。注意:在计算累加和时,应将累加变量赋值为零。

  (16)B

  解析: do-while语句的一般形式是

  do

  {

  语句

  } while (表达式);

  特点是:"直到型"循环结构。先执行一次"语句",判"表达式",当"表达式"为非0,再执行"语句",直到"表达式"的值为0时停止执行语句。在一般情况下,用while和do-while语句解决同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但当while后面的"表达式"一开始就为"假"时,两种循环的结果不同。这是因为此时while循环的循环不被执行,而do-while循环的循环体被执行一次。本题的关键是两个加数分别能被13和11整除,在i=0时,直接将316赋值给k,当k的值为0时,则不必执行循环,将执行j=k/11语句,输出结果,所以该表达式合理的条件是k。

  (17)C

  解析: 在给数组赋值时,可以用一个字符串作为初值,这种方法直观,方便而且符合人们的习惯。数组array的长度不是5,而是6,这点必须要注意。因为字符串常量的最后由系统加上一个′\0′,因此,上面的初始化与下面的等价:

  char array[]={′C′,′h′,′i′,′n′,′a′,′\0′};

  (18)D

  解析: 通常,引用一个数组元素可以用下标法,如a[p-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。

  (19)C

  解析: cout << x++;语句中,程序先输出x的值,然后再加1,所以结果为1,此时x的值为2;在int x=0;x+=y*2;语句中,将0的值赋给x,然后再运算x+=y*2的值,结果为x=6(此时x的值为局部变量),y的值不变,在最后在执行了x语句后的值,所以应为2。

  (20)D

  解析: 本题首先通过第一个while循环计算字符串a的长度,再通过第二个循环,将字符串a和b相连,最后返回连接后的总长度。

  (21)B

  解析: 首先,当i=0时,数组中的位置是a[2][0]=7,当然,如果用排除法的话,就不用考虑后面的循环了,因为在4个选项中,第1个数为7的选项只有B)。本题执行第2次循环时,i的值为1,则cout函数中的数组指向为a[1][1]=5,依次循环,可求出答案。

  (22)B

  解析: C++语言中全局变量是任何函数都可以改变的量,静态变量的有效范围在定义它的类中,而普通的变量的有效性只在使用它的函数中,在本题中c为全局变量,b为静态变量,a为普通变量,b和c在类A的对象a1和a2中都自加1。所以b,c为2,a为1。

  (23)B

  解析: C++语言中一个派生类能不能继承基类的所有数据成员受继承方式的限制。

  (24)C

  解析: 构造函数是一类特殊的函数,其特点是函数名与类同名,没有返回值,也可以省略不写,还可以对类中的成员进行初始化。

  (25)D

  解析: C++中用友元函数重载运算符至少有一个参数,重载一目运算符要有一个参数,重载二目运算符要有两个参数。

  (26)D

  解析: C++语言中用成员函数重载时,重载一目运算符没有参数,重载二目运算符要有一个参数。

  (27)D

  解析: 在C++中规定如果一个类被声明为类模板,那么其中的所有成员函数就都成为了模板函数。

  (28)B

  解析: 表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是showpoint()和eof()。

  (29)A

  解析: 本题中(a
  (30)C

  解析: 如果在子类中要访问父类的函数应用"∷"运算符。

  (31)D

  解析: 运算符"%"的两侧都应该是整型数。另外,本题需要掌握的知识点是x%=k等价于x=x%k。

  (32)B

  解析: 右移运算符">>"是双目运算符。其功能是把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数。例如:设a=15,a>>2 表示把000001111右移为00000011(十进制3)。

  (33)B

  解析: 要把结点b连接到结点a之后,必须把b 的地址给a的next指针,选项A)中,指针变量q保存的就是变量b的`地址,选项B)中的p是指针变量,应该是p->next=&b;在选项D)中,用*运算符取出结构体变量,并且保存的就是b的地址,所以正确。

  (34)D

  解析: 一个类的友元函数对类成员的访问能力等同于类的成员函数,即能访问类的所有成员。

  (35)C

  解析: 该函数的调用方式是strcpy(字符数组, 字符串)其中"字符串"可以是串常量,也可以是字符数组。函数的功能是将"字符串"完整地复制到"字符数组"中,字符数组中原有内容被覆盖。使用该函数时注意:①字符数组必须定义得足够大,以便容纳复制过来的字符串。复制时,连同结束标志′\0′一起复制。②不能用赋值运算符"="将一个字符串直接赋值给一个字符数组,只能用strcpy()函数来处理。strcat(字符数组, 字符串)功能是把"字符串"连接到"字符数组"中的字符串尾端,并存储于"字符数组"中。"字符数组"中原来的结束标志,被"字符串"的第一个字符覆盖,而"字符串"在操作中未被修改。使用该函数时注意:①由于没有边界检查,编程者要注意保证"字符数组"定义得足够大,以便容纳连接后的目标字符串;否则,会因长度不够而产生问题。②连接前两个字符串都有结束标志′\0′,连接后"字符数组"中存储的字符串的结束标志′\0′被舍弃,只在目标串的最后保留一个′\0′。

  二、填空题

  (1)前件

  解析: 在树形结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点;每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶子结点。

  (2)数据结构

  解析: 结构化分析方法主要包括:面向数据流的结构化分析方法(SA-Structured analysis),面向数据结构的Jackson方法(JSD-Jackson system development method)和面向数据结构的结构化数据系统开发方法(DSSD-Data structured system development method)。

  (3)类

  解析: 面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化;将属性集和方法集相同的所有对象组合在一起,可以构成一个类。

  (4)降低复杂性

  解析: 模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程,由此分解来降低复杂性。

  (5)逻辑数据模型

  解析: 数据是现实世界符号的抽象,而数据模型(data model)则是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束行为,为数据库系统的信息表示与操作提供一个抽象的框架。

  数据模型按不同的应用层次分成3种类型,它们是概念数据模型(conceptual data model)、逻辑数据模型(logic data model)、物理数据模型(physical data model)。

  (6)从基类继承的成员

  解析: 派生类的成员由继承的成员和自己定义的成员组成。

  (7)0

  解析: 本题的关键在于对变量c的赋值运算:

  d=(a>b>c)

  d=(5>4>3)

  先算5>4,为真,得1,即:d=(1>3),此时1>3,为假,得0。

  (8)10

  解析: 该for语句以i为0、j为10初始化,循环条件是i<=j,每次循环后i增1、j减1,循环体是将i与j的和赋给k。这样变量k将保存的是最后一次赋给它的值。一次循环后i为1、j为9,二次循环后i为2、j为8,……,五次循环后i为5、j为5,继续第六次循环,将i与j的和10存于k后,i为6、j为4,结束循环。所以循环执行后k为10。

  (9)friend void A();

  解析: C++中类的友元函数在声明时应在该函数前面加上关键字friend,同样如果要声明一个类为另一个类的友元类也要在前面类名前加上friend。

  (10)派生类

  解析: 如果类A为类B的基类,那么类B称为类A的派生类。

  (11)operator+(x,y)

  解析: C++中用成员函数重载x+y为x.operator+(y);,用友元函数重载x+y为operator+(x,y)。

  (12)a1.x=1;~a1.y=2;~a1.z=3;

  解析: 通过程序的结果知道数据类型是int,所以调用时声明模板实参为int的,再对x,y,z进行赋值。

  (13)509.123457

  解析: fixed的意义是在小数点后保留六位,所以fixed输出为509.123457。

【2015下半年全国计算机等级考试二级C++模拟试题答案及解析】相关文章:

2015全国计算机等级考试二级C++语言程序设计考试大纲11-09

全国计算机等级考试二级C++笔试题09-08

2015下半年全国计算机二级C++考试内容07-08

全国计算机等级考试一级模拟试题及答案解析09-21

2015年全国计算机等级考试二级考试调整11-13

2015年全国计算机等级考试二级考试简介11-15

2015下半年全国计算机等级考试上机考试步骤及技巧07-24

2015下半年全国计算机等级考试备考策略07-24

甘肃2015下半年全国计算机等级考试须知07-26

2015全国计算机等级考试二级VB题型分析08-02