国家二级C++机试(选择题)模拟试卷504
选择题
1.下列描述中正确的是( )。(A)
A. 线性链表是线性表的链式存储结构
B. 栈与队列是非线性结构
C. 双向链表是非线性结构
D. 只有根结点的二叉树是线性结构
解析:线性表的链式存储结构称为线性链表。线性表链式存储结构的基本单位称为存储结点,每个存储结点包括数据域和指针域两个组成部分。各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一结点的指针HEAD称为头指针,当HEAD=NULL时称为空表。栈、队列和双向链表是线性结构,树是一种简单的非线性结构。在树这种数据结构中,所有数据元素的关系具有明显的层次特征。二叉树是非线性结构。线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉树也是非线性结构。
2.下列关于线性链表的叙述中,正确的是(C)
A. 各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B. 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C. 进行插入与删除时,不需要移动表中的元素
D. 以上都不正确
解析:线性表的链式存储结构称为线性链表。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
3.在面向对象方法中,实现信息隐蔽是依靠( )。(C)
A. 对象的继承
B. 对象的多态
C. 对象的封装
D. 对象的分类
解析:对象的封装性是指从外部看只能看到对象的外部特征,即只需知道数据的取值范围和可以对该数据施加的操作,而不需要知道数据的具体结构以及实现操作的算法。对象的内部,即处理能力的实行和内部状态,对外是不可见的,从外面不能直接使用对象的处理能力,也不能直接修改其内部状态,对象的内部状态只能由其自身改变。
4.下面不属于需求分析阶段任务的是( )。(D)
A. 确定软件系统的功能需求
B. 确定软件系统的性能需求
C. 需求规格说明书评审
D. 制定软件集成测试计划
解析:需求分析阶段的工作可分为4个阶段:需求获取、需求分析、编写需求规格说明书、需求评审。
5.若有如下类声明:
class MyClass{
public:
MyClass(){cout<<1;}
};
执行下列语句
MyClass a,b[2],*p[2];
程序的输出结果是( )。(B)
A. 11
B. 111
C. 1111
D. 11111
解析:本题考查默认构造函数和带参数的构造函数,题目中定义一个对象a以及对象数组b[2],共执行3次构造函数,对象指针不调用构造函数。所以本题答案为B。
6.有如下程序:
class Base{
public:
int data;
};
class Derivedl:public Base{};
class Derived2:protected Base{};
int main()
{
Derived1 d1;
Derived2 d2;
d1.data=0;//①
d2.data=0;//②
retum 0;
}
下列关于程序编译结果的描述中,正确的是( )。(C)
A. ①②皆无编译错误
B. ①有编译错误,②无编译错误
C. ①无编译错误,②有编译错误
D. ①②皆有编译错误
解析:本题考查公用继承和保沪继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有。本题中Deljvedl公用继承Base,所以①编译正确,Derived2保护继承Base,所以②编译不正确。
7.下列描述中正确的是( )。(D)
A. 软件测试应该由程序开发者来完成
B. 程序经调试后一般不需要再测试
C. 软件维护只包括对程序代码的维护
D. 以上三种说法都不对
解析:为了达到好的测试效果,应该由独立的第三方进行测试工作。因为从心理学角度讲,程序人员或设计方在测试自己的程序时,要采取客观的态度是会不同程度地存在障碍的,所以选项A错误。在程序调试时,修改了一个错误的同时可能引入了新的错误,解决的办法是在修改了错误之后,必须进行回归测试,所以选项B错误。所谓软件维护,就是将交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改,所以选项C错误。
8.有如下程序:
#include
using namespace std;
class Toy{
public:
Toy(char*一n){strcpy(name,一n);count++;)
~Toy0{count一;)
char*GetName0{return name;}
static int getCount0{return count;)
private:
char name[10];
static int count;
);
int Toy::count=0;
int main(){
Toy tl(”Snoopy”),t2(”Mickey”),t3(”Barbie”);
cout<<t 1.getCount()<<endl;
return O:
)
运行时的输出结果是( )。(C)
A. 1
B. 2
C. 3
D. 运行时出错
解析:类Toy中包含一个字符数组name和一个静态整型变量count。在程序中首先给类Toy的成员count的赋初始值0,然后在主函数中,定义了三个Toy对象t1、t2、t3,并分别对它们的name字段赋值,在赋值的同时变量count的值加l,所以最后变量count的值等于3。
9.数据库设计的根本目标是要解决( )。(A)
A. 数据共享问题
B. 数据安全问题
C. 大量数据存储问题
D. 简化数据维护
解析:数据库应用系统中的一个核心问题就是设计一个能满足用户要求、性能良好的数据库,这就是数据库设计。数据库设计是在一定平台制约下,根据信息需求与处理需求设计出性能良好的数据模式。数据库设计的根本目标是要解决数据共享的问题。
10.有两个关系R和S如下:
(B)
A. 选择
B. 投影
C. 插入
D. 连接
解析:一个关系R通过投影运算后仍为一个关系R’,R’
本文档预览:3600字符,共8990字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载