计算机等级考试笔试试题二级C语言

选35填空,15,每题2分。

2010计算机等级考试二级C++笔试试题

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

在下面的四个选项a),b),c)和d)中,只有一个选项是正确的。请在答题卡相应位置填写正确选项,答案不在试卷上计分。

(1)下列说法是正确的。

a)搜索长度为n的有序链表,最坏情况下需要的比较次数为n。

b)在长度为n的有序链表上进行二分搜索法,最坏情况下需要的比较次数为(n/2)。

c)对长度为n的有序链表进行二分搜索法,最差情况下比较次数为(log2n)。

d)在长度为n的有序链表上进行二分搜索法,最坏情况下所需的比较次数为(n log2n)。

(2)算法的时间复杂度是指

a)算法的执行时间

b)算法处理的数据量

c)算法程序中语句或指令的数量

d)算法在执行过程中所需的基本运算次数。

(3)软件按功能可分为应用软件、系统软件和支撑软件(或工具软件)。下列属于系统软件

a)编辑软件

b)操作系统

c)教育管理系统

d)浏览器

(4)软件(程序)调试的任务是

a)诊断和纠正程序中的错误

b)在程序中找到尽可能多的错误。

c)查找并纠正程序中的所有错误。

d)确定程序中错误的性质

(5)数据流程图(DFD图)是

a)软件概要设计工具

b)详细软件设计工具

c)结构化方法的需求分析工具

d)面向对象方法的需求分析工具

(6)软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于

a)定义阶段

b)发展阶段

c)维护阶段

d)上述三个阶段

(7)数据库管理系统中负责数据模式定义的语言是

a)数据定义语言

b)数据管理语言

c)数据操作语言

d)数据控制语言

(8)在学生管理的关系数据库中,用于访问学生信息的数据单元是

a)文件

b)数据库

c)现场

d)记录

(9)在数据库设计中,E-R图用于描述信息结构,但不涉及信息在计算机中的表示,属于数据库设计。

a)需求分析阶段

b)逻辑设计阶段

c)概念设计阶段

d)物理设计阶段

(10)R和T有如下两种关系:

那么从关系R获得关系T的操作是

a)选择

b)投影

c)薪酬

d)以及

(11)在下面的函数描述中,错误是

a)函数可以没有返回值。

b)函数可以没有参数。

c)一个函数可以是一个类的成员。

d)函数不能定义为模板。

(12)如果MyClass是一个类名,并且具有以下语句序列。

MyClass c1,* c2

MyClass * c3 =新的my class;

MyClass & ampC4 = c 1;

在上述语句序列中定义的类对象的数量是

A)1

B)2

C)3

D)4

(13)下列关于继承模式的描述中,错误的是

a)如果没有显式指定继承方法,则默认继承方法是私有的。

b)当采用公共继承时,基类中的公共成员仍然是派生类中的公共成员。

c)当采用受保护继承时,基类中的受保护成员仍然是派生类中的受保护成员。

d)当采用私有继承时,基类中的私有成员仍然是派生类中的私有成员。

(14)将前缀运算符“-”重载为非成员函数。在下面的原型中,它可以在类中正确使用。

a)Decr & amp;运算符-(int);

Decr操作员-(Decr & amp;,int);

c)朋友Decr & amp操作员-(Decr & amp;);

D)frlend Decr运算符-(Decr & amp;,int);

(15)如果MyTemp是一个只有一个虚拟类型参数的类模板,并且具有以下语句序列。

MyTempp2

mytempp 3[2];

当编译系统处理上述语句序列时,生成的模板MyTemp的实例数为

A)1

B)2

C)3

D)0

(16)在C++中,cin是

a)类别

b)对象

c)模板

d)功能

(17)在下列字符中,不允许作为C++标识符的是

A)b)

B)B

C)_

D)2

(18)在以下语句中,错误是

A)false是一个逻辑常数。

b)“b”是一个字符常量。

C)365是一个int常量。

D)3.1415926是一个双常数。

(19)如果程序中X和Y是两个整型变量,下面的if语句是正确的。

a)if(x = = 0)y = 1;否则y = 2;

b)如果(x==0)那么y=1否则y = 2;

c)if(x = = 0)y = 1 else y = 2;

d)如果x = = 0y = 1;否则y = 2;

(20)定义一个整数数组X包含三个元素,初始值为O,下列说法是错误的。

A)int x[3]={0,0,0 };

b)int x[]= { 0 };

c)static int x[3]= { 0 };

D)int x[]={0,0,0 };

(21)下列说法中关于什么是错误的

a)& lt;返回类型>可能包含关键字int。

b)& lt;返回类型>可以在。

c)& lt;返回类型>可以包含字符*

d)& lt;返回类型>可能包含[]。

(22)要定义引用变量p来引用MyClass类的对象,正确的定义语句是

a)my class p = my class;

b)my class p =新的my class;

c)my class & amp;p =新的MyClass

d)我的a级。p = a;

(23)类别有以下两种定义。

XX类

私人:

双x 1;

受保护:

双x2;

公共:

双x3;

};

YY级:受保护的XX{

私人:

双y 1;

受保护:

双y2;

公共:

双y3;

};

YY类中受保护成员变量的数量是

A)1

B)2

C)3

D)4

(24)下列关于运算符重载的描述是错误的。

a)可以通过运算符重载在C++中创建新的运算符。

b)赋值运算符只能作为成员函数重载。

c)当运算符函数重载为类的成员函数时,第一个操作数是类对象。

d)重载类型转换运算符时不需要声明返回类型。

(25)在下面对类模板的描述中,错误的是

a)类模板的成员函数都是模板函数。

b)可以为类模板参数设置默认值。

c)类模板描述了一组类

d)类模板中只允许一个类型参数。

(26)在下列控制格式输入和输出的运算符中,可以设置浮点数精度的是

a)设定精度

B)setw

c)设置填充

D)showpoint(27)下面的程序段包含四个函数,其中隐含这个指针的是

int fun 1();

类别测试{

公共:

int fun 2();

friend int fun3();

static int fun 4();

};

A)fun1

B)fun2

C)fun3

d)乐趣4

(28)有以下程序

#包括

使用命名空间std

类别测试{

公共:

测试(){ }

测试(const测试& ampt){ cout & lt;& lt1;}

};

测试乐趣(测试& ampu){测试t = u;return t;}

int main(){Test x,y;x =好玩(y);返回0;}

运行这个程序的输出是

a)无输出

B)1

C)11

D)111

(29)有以下程序

#包括

使用命名空间std

A级

公共:

A(int i=0):r1(i) { }

void print(){ cout & lt;& ltE ' & lt& ltr 1 & lt;& lt'-';} & ltp & gt

void print()const { cout & lt;& ltC ' & lt& ltr 1 * r 1 & lt;& lt'-';} & ltp & gt

void print(int x){ cout & lt;& ltP ' & lt& ltr 1 * r 1 * r 1 & lt;& lt'-';} & ltp & gt

私人:

int r 1;

};

int main() {

a a 1;

const A a2(4);

a 1 . print(2);

a 1 . print();

返回0;

}

运行时的输出是

A)P8-E4

P8-C16-

C)P0-E4-

D)P0-C16-

(30)下面的代码声明了三个类

类人{ };

班级学生:公众人物{ };

班级本科生:学生{ };

下面对这几类关系的描述是错误的。

a)班级人物是班级本科生的基础班级。

b)班级本科生公开继承班级学生。

C) class Student是class Person的派生类。

d)类本科是类人的派生类。

(31)有以下程序

#包括

使用命名空间std

类别基础{

公共:

base(int x = 0):valB(x){ cout & lt;& ltVALB} & ltp & gt

~ Base(){ cout & lt;& ltVALB} & ltp & gt

私人:

int valB

};

类别衍生:public Base{

公共:

Derived(int x=0,int y=0):Base(x),valD(y){ cout & lt;& ltVALD;} & ltp & gt

~ Derived(){ cout & lt;& ltVALD;} & ltp & gt

私人:

int valD

};

int main(){

派生obj12(2,3);

return 0;

}

运行时的输出是

A)2332

B)2323

3232

3223

(32)以下是阶级形状的定义:

类别形状{

公共:

虚拟void Draw()= 0;

};

以下关于Shape类的描述是正确的。

a)类形状是一个虚拟基类。

b)类Shape是一个抽象类。

c)类Shape中的Draw函数声明不正确。

d)陈述“形状s;”可以创建形状的对象

(33)将运算符“+”重载为非成员函数。在下面的原型声明中,错误是

A)MyClock运算符+ (MyClock,long);

B)MyClock运算符+ (MyClock,my clock);

C)MyClock运算符+ (long,long);

D)MyClock运算符+ (long,my clock);

(34)打开文件时,您可以单独或组合使用以下文件打开模式。

①IOs _ base::app②IOs _ base::binary

③ios_base::in ④ios_base::out

要以二进制读取模式打开文件,要使用的文件打开模式是

A)①③

B)①④

C)②③

D)②④

(35)有以下程序:

#包括

使用命名空间std

B类{

公共:

b(int xx):x(xx){ ++ cout;x+= 10;}

虚拟void show() const

{ cout & lt& lt计数& lt& lt_ ' & lt& ltX & lt& ltENDL} & ltp & gt

受保护:

静态整数计数;

私人:

int x;

};

D类:公共B{

公共:

D(int xx,int yy):B(xx),y(YY){ ++ count;y+= 100;}

虚拟void show() const

{ cout & lt& lt计数& lt& lt_ ' & lt& ltY & lt& ltENDL} & ltp & gt

私人:

int y;

};

int B::count = 0;

int main(){

B * ptr =新D(10,20);

ptr-& gt;show();

删除ptr

返回0;

}

运行时的输出是

A)1_120

B)2_120

C)1_20

d)2-20

二、填空(每空2分,***30分)

请将每一个空白的正确答案写在答题卡序号l~15的横线上,答案不在试卷上计分。

(1)队列的初始状态为空。现在元素A,B,C,D,E,F,5,4,3,2,1依次放入队伍,然后依次退役,所以元素退役的顺序是1。

(2)设循环队列的容量为50。如果头指针front=45(指向队列头元素的前一个位置),尾指针rear=10(指向队列尾元素),则循环队列中有2个元素。

(3)如下设置二叉树:

二叉树后序遍历的结果是3。

(4)软件是数据和文档的集合。

(5)学生选课是有关系的,其中学生的关系模型是:学生(学号,姓名,班级,年龄),课程的关系模型是:课程(班号,课程名称,课时),其中两个关系模型的关键字分别是学号和班号,那么选课的关系模型可以定义为:选课(学号,5,年级)。

(6)如果X和Y是两个整型变量,在执行完语句序列后。

x = 5;y = 6;y+= x-;

之后x+y的值就是6。

(7)在语句序列的执行中

int I = 0;do i++;while(I * I & lt;10);

,do后的循环语句i++执行7次。

(8)具有以下功能定义:

int Xfun(int *a,int n){

int x = * a;

for(int * pa = a+1;pa & lt& gt

if(* pa & gt;x)x = * pa;

返回x;

}

如果语句被执行

int x[5]={23,46,78,55,16 };

之后由表达式Xfun(x,5)调用函数,返回值为8。

(9)定义了以下功能:

int Xfun(int x){

int y = x;

{ int x = 10;y+= x;}

返回x+y;

}

通过表达式Xfun(5)调用这个函数,返回值是9。

(10)假设Xcs是一个类,这个类中一个成员函数的原型是“Xcs * ABC();”,在类外定义时,对应的函数头是10。

(11)请完成以下上课日期的定义,使其由语句组成。

第一天的日期;

定义的对象FirstDay的值是2010101。

上课日期{

公共:

日期(11):年(y),月(m),日(d){ }

私人:

int年、月、日;//依次表示年、月、日。

};

(12)请完成以下程序,使程序输出“飘是张娜的书”。

#包括

使用命名空间std

课堂用书{

公共:

Book(char *str) {strcpy(title,str);}

12 void PrintInfo(){ cout & lt;& ltTITLE & lt& ltENDL} & ltp & gt

受保护:

char title[50];

};

类MyBook:public Book{

公共:

我的书(char *s1,char *s2= "张娜"):

13 {strcpy(所有者,S2);}

虚拟void PrintInfo(){ cout & lt;& ltTITLE & lt& lt“是”所有者

私人:

char owner[10];

};

int main(){

Book *prt=new MyBook("乱世佳人");

PRT-& gt;PrintInfo();

返回0;

}

(13)重载插入运算符

类理性{

公共:

Rational(int aa,int qq):a(aa),q(qq){ }

朋友14接线员& lt& lt(ostream & amp出,理性& ampx)

{

返回(out & lt& ltX . A & lt& ltp?& lt& ltx . q);& lt& gt

}

私人:

int a,q;

};

(14)以下函数定义是可由函数模板生成的函数实例。

int square(int n){ return n * n;}

double square(double n){ return n * n;}

所以这个函数模板的定义是15。