2007年9全国计算机等级考试二级笔试试卷C++语言程序设计答案及解析

2007年9全国计算机等级考试二级笔试试卷C++语言程序设计答案及解析

(考试时间90分钟,满分100分)

 

一、选择题(每小题2分,共70分)

  下列个体A、B、C、D四个选项重,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)       软件是指

A 程序                            B 程序和文档

C 算法加数据结构                  D 程序、数据与相关文档的完整集合

【答案】D 程序、数据与相关文档的完整集合

 

(2)软件调试的目的是

       A 发现错误                        B 改正错误

       C 改善软件的性能                  D 验证软件的正确性

【答案】B

本题考查软件工程调试。

软件测试目的是发现错误、发现问题。而调试的目的是改正错误。

调试与测试是两个不同的过程,有着根本的区别:调试是一个随机的、不可重复的过程,它用于隔离和确认问题发生的原因,然后修改软件来纠正问题;测试是一个有计划的、可以重复的过程,它的目的是为了发现软件中的问题。因此,软件调试的目的是为了改正软件中的错误。

 

(3)在面对对象方法中,实现信息隐蔽是依靠

       A 对象的继承                      B 对象的多态

       C 对象的封装                      D 对象的分类

【答案】C 对象的封装

 

(4)下列叙述重,不符合良好程序设计风格要求是

       A 程序的效率第一,清晰第二        B 程序的可读性好

       C 程序中要有必要的注释            D 输入数据前要有提示信息

【答案】A

程序设计风格指一个人编制程序时所表现出来的特点,习惯逻辑思路等。在程序设计中要使程序结构合理、清晰,形成良好的编程习惯,对程序的要求不仅是可以在机器上执行,给出正确的结果,而且要便于程序的调试和维护,这就要求编写的程序不仅自己看得懂,而且也要让别人能看懂。

风格就是一种好的规范,当然我们所说的程序设计风格肯定是一种好的程序设计规范,包括良好的代码设计,函数模块,接口功能以及可扩展性等,更重要的就是程序设计过程中代码的风格,包括缩进,注释,变量及函数的命名,泛型和容易理解。

 

(5)下列叙述中正确的是

       A 程序执行的效率与数据的存储结构密切相关

       B 程序执行的效率只取决于程序的控制结构

       C 程序执行的效率只取决于所处理的数据量

       D 以上三种说法都不对

【答案】A 程序执行的效率与数据的存储结构密切相关 

【解析】其实程序执行的效率与程序的控制结构、数据的存储结构、所处理的数据量三个都有关系。但是B和C“只”就不对。
主要和CPU速度,程序的循环逻辑和选择逻辑的关系,程序的数据结构,数据量的使用。

 

(6)下列叙述中正确的是

       A 数据的输入结构与存储结构必定是——对应的

       B 计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

       C 程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构

       D 以上三种说法都不对

【答案】D 以上三种说法都不对

【解析】关于C,数组本身的存储结构是线性的,就是说它是连续存储的,但是数组中元素可以存储指针,就是指针型数组,它就可以利用数组处理非线性的数据。比如将一个链表每个结点的地址存入数组,那样访问数组,就是处理非线性的数据了。

一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,因此.数据的逻辑结构与存储结构不一定是一一对应的。选项A中的说法是错误的。

虽然计算机的存储空间是向量式的存储结构,但由于一种数据的逻辑结构根据需要可以表示成多种存储结构.例如。线性链表是线性表的链式存储结构。一般来说.在线性表的链式存储结构中,各数据结点的存储序号是不连续的.并且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。因此,数据的存储结构不一定是线性结构。选项B中的说法也是错误的。

虽然程序设计语言中的数组一般是顺序存储结构,但是,利用数组也能处理非线性结构。例如.满二叉树与完全二叉树是非线性结构.但对于满二又树与完全--3L树来说,根据完全二叉树的性质6,可以按层序进行顺序存储,即利用程序设计语言中的数组来存储。这样,不仅节省了存储空间。又能方便地确定每一个结点的父结点与左右子结点的位置。对于一般的二叉树来说,也可以将--3L树中每一个结点的左指针、右指针以及数据域分别用三个数组中的对应元素来存储,即实际上也是利用了程序设计语言中的数组来处理二又树这样的非线性结构。选项C中的说法也是错误的。综上所述.选项A、B与C中的说法都是错误的。

 

(7)冒泡排序在最坏情况下的比较次数:

A  n(n+1)/2    B  nlog2n   C  n(n一1)/2   D  n/2

【答案】C  n(n一1)/2

在最坏情况下,冒泡排序的比较次数为n(n一1)/2,快速排序的比较次数也为n(n一1)/2。

 

(8)一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为

       A 219           B 221           C 229             D 221

【答案】A 219

【解析】假设n表示二叉树的所有结点数,n0表示度为0的结点(叶子结点),n1表示度为1的结点,n2表示度为2的结点,由二叉树的性质有:n0 = n2 + 1
已知n0 = 70,则n2 = n0 -1 = 69。

而n = n0 + n1 + n2= 70 + 80 + 69= 219。

 

(9)下列叙述中正确的是

       A 数据库系统是一个独立的系统,它需要操作系统的支持

       B 数据库技术的根本目标是要解决数据的共享问题

       C 数据库管理系统是数据库系统

       D 以上说法都不正确

【答案】B 数据库技术的根本目标是要解决数据的共享问题

共享问题! 以前由于硬件设施的限制,内存只有几M,硬盘也不过几十M,所以要解决存储问题是很关键的.而现在科技发展迅猛,内存,硬盘已不是主要制约因素,而是实现资源共享问题!! 所以归根结底还是共享!

 

(10)下列叙述中正确的是

       A 为了建立一个关系,首先是要构造数据的逻辑关系

       B 表示关系的二维表中各各组的每一个分量还可以分成若干数据项

       C 一个关系的属性名称为关系模式

       D 一个关系可以包括多个二维表

【解析】该题没能解决,有的说答案是A,有的说答案是C。

 

(11)在函数中,可以用auto,extem,register,和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是

       A auto           B extem         C register         D static

【答案】  A auto

【解析】变量存储类型如果不说明存储类型,默认是自动变量,即auto!保存在堆栈上。

 

(12)对于一个类定义,下列叙述中错误的是

       A 如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数

       B 如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数

       C 如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数

       D 如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数

【答案】B

【解析】在C++中,如果类中没有定义构造函数,那么编译器会自动生成一个默认的构造函数,但是,只要类里有定义一个或多个构造函数,那么编译器就不会生成构造函数。
类里没有定义缺省的构造函数,并不表明没有有参数的构造函数,编译器会不会生成缺省的构造函数

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值