2007年3月全国计算机等级考试二级C++笔试真题

  一、选择题(每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

2007年3月全国计算机等级考试二级C++笔试真题

(1)下列叙述中正确的是 。

A)算法的效率只与问题的规模有关,而与数据的存储结构无关.

B)算法的时间复杂度是指执行算法所需要的计算工作量

C)数据的逻辑结构与存储结构是一一对应的.

D)算法的时间复杂度与空间复杂度一定相关.

(2)在结构化程序设计中,模块划分的原则是 。

A) 各模块应包括尽量多的功能

B) 各模块的规模应尽量大

C)各模块之间的联系应尽量紧密

D) 模块内具有高内聚度,模块间具有低耦合度

(3)下列叙述中正确的是 。

A)软件测试的主要目的是发现程序中的错误.

B)软件测试的主要目的是确定程序中错误的位置.

C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作

D)软件测试是证明软件没有错误

(4) 下面选项中不属于面向对象程序设计特征的是 。

A)继承性

B)多态性

C)类比性

D)封装性

(5) 下列对列的叙述正确的是 。

A) 队列属于非线性表

B) 队列按”先进后出”的原则组织数据

C)队列在队尾删除数据

D) 队列按“先进先出”原则组织数据

(6)对下列二叉树

进行前序遍历的结果为

A)DYBEAFCZX

B)YDEBFZXCA

C)ABDYECFXZ

D)ABCDEFXYZ

(7)某二叉树中有n个度为2的结点则该二叉树中的叶子结点数为

A)n+1

B)n-1

C)2n

D)n/2

(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 。

A)井

B)交

C)投影

D)笛卡儿乘积

(9)在E-R图中,用来表示实体之间是联系的图形是 。

A) 矩形

B)椭圆形

C)菱形

D)平行四边形

(10)下列叙述中错误的是 。

A) 在数据库系统中,数据的物理结构必须与逻辑结构一致.

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

C)数据库设计是指在已有数据库管理系统的基础上建立数据库

D)数据库系统需要操作系统的支持

(11)为了取代C中带参数的宏,在C++中使用

A)重载函数

B)内联函数

C)递归函数

D)友元函数

(12)下列关于类定义的说法中,正确的是

A)类定义中包括数据成员和函数成员的声明

B)类成员的缺省访问权限是保护的

C) 数据成员必须被声明为私有的

D)成员函数只能在类体外进行定义

(13)下列关于派生类构造函数和析构函数的说法中,错误的是

A)派生类的构造函数会隐含调用基类的构造函数

B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数

C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数

D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数

(14)通过运算符重载,可以改变运算符原有的

A)操作数类型

B)操作数个数

C)优先级

D)结合性

(15)有如下函数模板:

template T souare(T x) (retumx * x ;)

基中T是

A)函数形参

B)函数实参

C)模板形参

D)模板实参

(16)使用输入输出操作符setw,可以控制

A)输出精度

B)输出宽度

C)对齐方式

D)填充字符

(17)下列字符串中,不可以用作C++标识符的是

A)y_2006

B)____TEST__H

C)Retum

D)switch

(18)字面常量42、4.2、42L的数据类型分别是

A)long、double int

B)long、float、int

C)int、double、long

D)int、float、long

(19)执行下列语句段后,输出字符“*”的个数是

for(int i =50;I>1;— i )cout<<”*”

A)48

B)49

C)50

D)51

(20)有如下程序段

int i =0, j=1;

int &r=i ; // ①

r =j; //②

int*p=&i ; //③

*p=&r ; //④

基中会产生编译错误的语句是

A)④

B)③

C)②

D)①

(21)有如下函数定义:

void func (int a,int&b) {a++; b++;}

若执行代码段:

int x=0 ,y=1

func(x,y);

则变量x和y值分别是

A)0和1

B)1和1

C)0和2

D)1和2

(22)有如下程序:

#include

using namespace std;

class A{

public

static int a;

void init(){a=1;}

A(int a=2) {init();a++;}

};

int A:;a=0

A obj;

Int main()

{

cout<  retum0;

}

运行时输出的结果是

A)0

B)1

C)2

D)3

(23)下列有关继承和派生的叙述中,正确的是

A) 派生类不能访问基类的保护成员

B)作为虚基类的类不能被实例化

C)派生类应当向基类的构造函数传递参数

D)虚函数必须在派生类中重新实现

(24)下列运算符中,不能被重载的是

A)&&

B)!=

C).

D)++

(25)下列函数模板的定义中,合法的是

A) template Tabs(T x) {return x <0 – x: x;}

B)template class Tabs(Tx){retumx<0 -x;x;}

C)template Tabs(T x){retum x<0 -x;x;}

D)template T abs(T x){returm x<0 -x;x;}

(26)在语句cin>>data;中,cin是

A)C++的关键字

B)类名

C)对象名

D)函数名

(27)有如下程序:

#include

using namespace std;

class test {

private:

int a;

public:

test(){cout<<”constructor”<  test(int a){cout<  test(const test&_test)

{

a=_testa;

cout<<”copy constructor”<  }

test(){cout<<”destructor”<  };

int main()

}

test A(3)

return0;

运行时输出的结果是

A)3

B)constructor

destruclor

C)copy constructor

D)3

dstructor destruclor

(28)若有如下类声明

class My Class {

public:

MyClass() {cout<<1;}

};

执行下列语句

MyClass a,b[2],*P[2];

以后,程序的输出结果是

A)11

B)111

C)1111

D11111

(29)有如下程序:

#include

using namespace std;

class point {

public:

static int number;

public:

point(){number++;

~point(){number-;}

};

imt point::number=0;

void main(){

point*ptr;

printA,B;

{

point*ptr_point=new point{3};

ptr=ptr_point;

}

pointC;

cout<  delete[]ptr;

}

运行时输出的结果是

A)3

B)4

C)6

D)7