试题 百分网手机站

下半年全国计算机二级C++考试考前练习题答案及解析

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

2015下半年全国计算机二级C++考试考前练习题答案及解析

  一、选择题

  (1)C

  【命题目的】考查考生对数据结构分类的理解。

  【解题要点】根据数据结构中各数据元素之间前后件关系的复杂程序,一般将数据结构分为两大类:线性结构和非线性结构。线性结构是指满足以下两个条件的非空的数据结构:一是有且只有一个根结点,二是每一个结点最多有一个前件,也最多有一个后件。如是一个数据结构不是线性结构,则称为非线性结构。

  【考点链接】数据结构的各种分类方法及标准。

  (2)B

  【命题目的】本题考查二叉树的基本概念及其基本性质。

  【解题要点】按照题目的要求可得到满足条件的二叉树,如下图所示:

  故该二叉树中总的结点个数为13。

  (3)D

  【命题目的】要求考生对几种排序方法的实现机制有充分的理解。

  【解题要点】快速排序的基本思想是,通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩下的子表采用同样的方法,直到表空为止;归并排序是将两个或两个以上的有序表组合成一个新的有序表。

  【考点链接】各种排序方法实现过程及实现机制。

  (4)B

  【命题目的】本题考查了结构化程序设计的原则。

  【解题要点】结构化程序设计方法的主要原则可以概括为以下4个方面,即自顶向下、逐步求精、模块化及限制使用goto语句。

  (5)B

  【命题目的】掌握软件调试技术的方法。

  【解题要点】调试的关键在于推断程序内部的错误位置及原因。主要的调试方法有强行排错法、回溯法和原因排除法。

  【考点链接】软件调试的各种方法及各种方法的区别。

  (6)B

  【命题目的】本题考查了几种常用的算法描述工具及其基本知识。

  【解题要点】常见的过程设计工具有:程序流程图、N-S图、PAD图和HIPO图。其中,为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为N-S图。

  【考点链接】其他常用算法描述工具的概念。

  (7)B

  【命题目的】记忆软件复杂性度量的参数。

  【解题要点】定量度量方法是程序复杂程度经常使用的方法,把程序的复杂程度乘以适当参数即可估算出软件中错误的数量以及软件开发需要用的工作量,定量度量的结果可以用来比较两个不同设计或两个不同算法的优劣,程序的定量的复杂程度可作为模块规模的精确限度,因而软件复杂性度量的参数包括规模。

  【考点链接】软件复杂性度量的方法及各种度量参数的作用。

  (8)B

  【命题目的】本题考查数据库系统的基础知识 -- 数据库系统的`组成部分。

  【解题要点】数据库系统(Database System,简称DBS)由如下几部分组成,即数据库、数据库管理系统、数据库管理员、硬件和软件。

  (9)B

  【命题目的】考查对数据库系统各方面之间的关系。

  【解题要点】数据库管理系统是对数据库进行管理和对数据库进行操作的管理系统,它是建立在操作系统基础之上的,位于操作系统和用户之间的一层数据管理软件,负责对数据库的数据进行统一的管理和控制,它是实现数据库和管理数据库的核心。

  【考点链接】数据库系统各方面之间的关系及相互作用。

  (10)B

  【命题目的】本题主要考查了数据库概念设计中,视图设计的基本概念。

  【解题要点】视图设计一般有3种设计次序,它们分别是自顶向下、自底向上和由内向外,它们又为视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用。

  【考点链接】数据库概念设计的过程:首先选择局部应用,再进行局部视图设计,最后对局部视图进行集成得到概念模式。

  (11)D

  【命题目的】C++语言关键字的概念。

  【解题要点】关键字是C++语言中预先定义并实现一定功能的一类单词,它不是由用户定义的,它是一种功能性单词。

  【考点链接】注意关键字不能用做用户标识符。

  (12)B

  【命题目的】关于C++语言中函数的基本概念。

  【解题要点】C++语言中函数在被调用以前必须先被声明,主函数是程序的入口函数,用户定义的函数是可以被重复调用的,C++语言中面向对象程序设计的基本组成单元是类。

  【考点链接】主函数可以放在程序中的任何位置。

  (13)A

  【命题目的】C++语言运算符的使用。

  【解题要点】C++语言规定:取余运算符的运算对象必须是整型,复合运算符"%="中包含%运算,它的运算对象也必须是整型。

  (14)D

  【命题目的】考查C++语言中的转义字符。

  【解题要点】在C++语言中退格符表示为\b退格。

  【考点链接】其他转义字符的意义:\n表示回车换行,\t表示横向跳到下一制表位置,\v表示竖向跳格,\r表示回车,\f表示走纸换页,\\表示反斜线符,\a表示鸣铃,

  \ddd1~3位表示八进制数所代表的字符,\xhh1~2位表示十六进制数所代表的字符。

  (15)D

  【命题目的】关于C++语言中逻辑运算符的考查。

  【解题要点】在C++语言中,逻辑运算符有4个,它们分别是!(逻辑非)、||(逻辑或)、&&(逻辑与)、^(异或)。在位运算里面还有&(位与)、|(位或)的运算。本题考查逻辑与运算符的用法,在语句x=(a&&b)&&(c<′B′);中,先判断a&&b条件,逻辑与条件的两边都要保证为1,即a和b都成立,当然c<′B′是成立的,显然,该表达式的值为1。

  (16)B

  【命题目的】考查C++语言中while语句的应用

  【解题要点】该题目应该根据循环体第一次和最后一次执行时的输出结果来决定哪一项是正确的。第一次进入循环时,n的值是9,循环体内,先经过n--运算,n的值变为8,所以第一次的输出值是8,由此可以排除选项A)和D)。由循环条件n>6可以知道,最后一次循环开始时,n的值应该为7,所以最后一次执行循环体时输出为6,由此可以排除C)。

  【考点链接】while与do-while的区别。

  (17)A

  【命题目的】本题考查对指针数组的掌握。

  【解题要点】指针数组的定义、赋初值、数组元素的引用与赋值等操作和一般数组的处理方法基本相同。需要注意指针数组是指针类型的,对其元素所赋的值必须是地址值。其格式是"存储类型数据类型*指针数组名1[长度1]={初值1},功能是定义指向"数据类型"变量或数组的指针型数组,同时给指针数组元素赋初值。这些指针变量具有指定的"存储类型"。本题中指针*p指向数组a,表达式*(p+3)+=4的含义是*(p+3)= *(p+3)+4,而*(p+3)在数组中指向的值为9,最后输出的结果为9+4=13。

  【考点链接】一个语句的结束要有分号。

  (18)D

  【命题目的】C++语言中字符串的赋值。

  【解题要点】C++语言中操作一个字符串常量的方法有:①把字符串常量存放在一个字符数组之中;②用字符指针指向字符串, 然后通过字符指针来访问字符串存贮区域。当字符串常量在表达式中出现时, 根据数组的类型转换规则, 它被转换成字符指针。本题D)项中错误的关键是对数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。

  (19)C

  【命题目的】数据类型的默认转换。

  【解题要点】本题中,先将x转换为浮点型再与3.8相加,得到结果与5.0相除。最后将得到的结果去掉小数位化成整型数据赋给y。另外,值得注意的是,整型、实型、字符型数据间可以混合运算。在进行运算时,不同类型的数据先转换成同一类型,然后再进行运算。

  【错解分析】如果认为执行y=(x+3.8)/5.0后y的值为1是错误的,此时y的值为0。

  【考点链接】x为int型,将1.2赋值给x时,x的值为1。

  (20)B

  【命题目的】本题考查了函数的递归调用的应用。

  【解题要点】在main函数中,对f(1)和f(2)的值进行了累加。过程如下:

  f(1)=1

  f(2)=f(1)+1=2

  最后,j的值为1+2=3。

  【考点链接】函数的递归调用需要有一个结束的条件。