国家二级C++机试(选择题)模拟试卷222
选择题
1.下面程序的运行结果是( )。
#include<iostream>
using namespace std;
class TestClass
{static int n;
public:
TestClass 0
{
n++;
}
static int test()
{
for(int i=0;i<4;i++)
n++;
return n;
}
};
int TestClass::n=0;
intmain()
{tout<<TestClass::test()<<’’’’;
TestClass c1,c2;
tout<<TestClass::test()<<end1;
return 0;
}(A)
A. 4,10
B. 4,6
C. 0,6
D. 0,4
解析:在主函数中首先调用TestClass中的test函数输出,类中的n为静态数据成员,可以为所有的对象共享这些数据,这里调用后n等于4。定义对象c1,c2调用构造函数后n=6,所以主函数再次执行“cout<<TestClass::test()<<end1;”后,n等于10。
2.下列对于线性链表的描述中正确的是(A)
A. 存储空间不一定连续,且各元素的存储顺序是任意的
B. 存储空间不一定连续,且前件元素一定存储在后件元素的前面
C. 存储空间必须连续,且前件元素一定存储在后件元素的前面
D. 存储空间必须连续,且各元素的存储顺序是任意的
解析:一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针head称为头指针,当head=NULL(或0)时称为空表。
3.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是( )。(D)
A. 冒泡排序为n/2
B. 冒泡排序为n
C. 快速排序为n
D. 快速排序为n(n一1)/2
解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n一 1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。
4.下列排序方法中,最坏情况下比较次数最少的是(D)
A. 冒泡排序
B. 简单选择排序
C. 直接插入排序
D. 堆排序
解析:冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为:n(n-1)/2。而堆排序法在最坏的情况下需要比较的次数为O(nlog2n)。其中堆排序的比较次数最少。
5.下列函数原型声明中,错误的是( )。(C)
A. int function(int m,int n);
B. int function(int,int);
C. int function(intm=3,int n);
D. int function(int&m,int&n);
解析:在C++中,函数在使用之前要预先声明。这种声明在标准C++中称为函数原型,函数原型给出了函数名、返回类型以及在调用函数时必须提供的参数个数和类型。其语法为:();使用函数原型说明有两种形式:①直接使用函数定义的头部,并在后面加上一个分号;②在函数原型说明中省略参数列表中的形参变量名,仅给出函数名、函数类型、参数个数及次序。在选项C中,给出了形参变量m的初值。
6.执行后的输出结果是( )。
#include<iostream.h>
void main()
{
int i(0);
while(++i)
{
if(i==10)break;
if(i%3!=1)continue;
cout<<i<<end1;
}(A)
A. 1 4 7
B. 2 4 7
C. 4 3 2
D. 7 3 1
解析:从if(i==10)break;语句了解本循环只到10,输出i的条件是只要1-10之间的数对3取余为1的输出,所以输出的1 4 7。
7.层次型、网状型和关系型数据库划分原则是( )。(D)
A. 记录长度
B. 文件的大小
C. 联系的复杂程度
D. 数据之间的联系方式
解析:根据数据之间的联系方式,可以把数据库分为层次型、网状型和关系型数据库,它们是根据数据之间的联系方式来划分的。
8.已知枚举类型声明语句为:
enum COLOR{WHITE, YELLOW, GREEN=5, RED, BLACK=10};
则下列说法中错误的是( )。(D)
A. 枚举常量YELLOW的值为1
B. 枚举常量RED的值为6
C. 枚举常量BLACK的值为10
D. 枚举常量WHITE的值为1
解析:此题考查的是枚举类型的声明。声明枚举类型的语法形式为:enum类型名{枚举值表)。需注意的是:当n个枚举值全部未赋常量值时,它们自左至右分别与整数0、l、2、3…n—1对应:若第i个枚举值赋常量值为m,则其未赋常量值的后续枚举值分别与整数m+l、m+2…对应,直到下一个赋了值的枚举值或结束。
9.有如下程序:
#include
using narnespace std;
class Media{
public:
void Name();
void Show();
protected:
intpage;
};
class Book:private Media{
public:
void Print() {cout<<page<<end1;}
void Show(){Media∷Show();}∥①
};
int main(){
Book Blble;
Bible.Name(); ∥②
Bible.Print();∥③
Bible.Show(); ∥④
return 0:
}
编译时有错误的是( )。(B)
A. 语句①
B. 语句②
C. 语句③
D. 语句④
解析:类Book私有继承自类Med
本文档预览:3600字符,共7408字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载