国家二级(C++)机试模拟试卷308
选择题
1.若有以下程序:
#include
using namespace std;
class A
{
public:
A(int i,int j)
{
a=i;
b=j;
}
void move(int x,int y)
{
a+=X:
b+=y;
}
void show()
{
cout<<a<<\\(C)
A. 3,4
B. 6,8
C. 6,9
D. 4,3
解析:此题的执行过程如下:首先Bd(3,4);语句调用B类的构造函数:B(int i,int.j),B的构造函数中调用基类A的构造函数,使得a=3,b=4;d.fun()会调用函数move(3,5),使得(3,4)和(3,5)的对应部分分别相加,最后输出6,9。
2.下列队列的描述中,正确的是( )。(D)
A. 队列属于非线性表
B. 队列在队尾删除数据
C. 队列按“先进后出”进行数据操作
D. 队列按“先进先出”进行数据操作
解析:队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。队列的操作数是依据先进先出的原则进行的。因此队列亦称作先进先出的线性表。或后进后出的线性表。
3.假定MyClass为一个类,那么下列的函数说明中,( )为该类的析构函数。(D )
A. void~MyClass();
B. ~MyClass(int n);
C. MyClass();
D. ~MyClass():
解析:C++语言中析构函数为符号“~”加类名,且析构函数没有返回值和参数,故前不加void关键字。所以正确的形式应该是~MyClass()。
4.支持子程序调用的数据结构是( )。(A)
A. 栈
B. 树
C. 队列
D. 二叉树
解析:栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A。
5.在数据库系统的内部结构体系中,索引属于( )。(B)
A. 模式
B. 内模式
C. 外模式
D. 概念模式
解析:内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。
6.下列有关继承和派生的叙述中,正确的是( )。(C)
A. 派生类不能访问基类的保护成员
B. 作为虚基类的类不能被实例化
C. 派生类应当向基类的构造函数传递参数
D. 虚函数必须在派生类中重新实现
解析:派生类可以访问基类的保护成员,而不能访问基类的私有成员。作为虚基类的类可以被实例化。虚函数如果没有派生类中重新实现,那么仍然使用基类的成员函数。
7.有如下程序:
#include<iostream>
using namespace std;
class Publication{//出版物类
char name[30];
public:
Publication(char*name=\\(D)
A. 未知类型:未知名称
B. 未知类型:精彩人生
C. 书:未知名称
D. 书:精彩人生
解析:因为getl\\
8.关于虚函数,以下说法正确的是( )。(D)
A. 若在重定义虚函数时使用了virtual,则该重定义函数还是虚函数
B. 虚函数不能声明为友元
C. 子类必须重定义父类的虚函数
D. 虚函数不能是static的
解析:在C++中,虚函数可以是友元函数,但不能是静态成员。虚函数的重定义函数,无论是否使用virtual关键字,仍然是虚函数。所以答案选择D)。
9.下列叙述中正确的是( )。(C)
A. 对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n
B. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)
C. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)
D. 对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)
解析:二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。
10.若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是( )。(B)
A. Data+(Data);
B. Data operator+(Data);
C. Data+operator(Data);
D. operator+(Data,Data);
解析:根据重载加法运算符的格式,只有B选项正确。
11.有如下类定义:
class Point{
private:
static int how_many;
};
how_many=0;
要初始化Point类的静态成员how_many,下画线处应填入的内容是( )。(C)
A. int
B. static int
C. int Point::
D. static int Point::
解析:本题考查静态数据成员,静态数据成员可以初始化,但只能在类体外进行初始化,其一般形式为:数据类型类名::静态数据成员名=初值。所以本题答案为C。
12.在软件开发中,需求分析阶段产生的主要文档是( )。(D)
A. 软件集成测试计划
B. 软件详细设计说明书
C. 用户手册
D. 软件需求规格说明书
解析:需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D。
13.不能作为函数重载的判断依据的是( )。(B)
A. const
B. 返回类型
C. 参数个数
D. 参数类型
解析:所谓函数重载是指同一函数名可以对应多个函数实现。进行函数重载时,要求同名函数在参数个数上不同,或者参数类型上不同。但函数的返回类型不能作为判断重载的依据。
14.下面关于虚函数的描述中正确的是( )。(D)
A. 虚函数是一个静态成员函数
B. 虚函数是一个非成员函数
C. 虚函数既可以在函数说明时定义,也可以在函数实现时定义
<本文档预览:3600字符,共15014字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载