计算机二级C++真题及答案.docx

上传人:b****7 文档编号:11332519 上传时间:2023-02-27 格式:DOCX 页数:103 大小:136.56KB
下载 相关 举报
计算机二级C++真题及答案.docx_第1页
第1页 / 共103页
计算机二级C++真题及答案.docx_第2页
第2页 / 共103页
计算机二级C++真题及答案.docx_第3页
第3页 / 共103页
计算机二级C++真题及答案.docx_第4页
第4页 / 共103页
计算机二级C++真题及答案.docx_第5页
第5页 / 共103页
点击查看更多>>
下载资源
资源描述

计算机二级C++真题及答案.docx

《计算机二级C++真题及答案.docx》由会员分享,可在线阅读,更多相关《计算机二级C++真题及答案.docx(103页珍藏版)》请在冰豆网上搜索。

计算机二级C++真题及答案.docx

计算机二级C++真题及答案

全国计算机等级考试二级笔试试卷(2004年9月)

公共基础知识及C++语言程序设计

(考试时间90分钟,满分100)分)

一、选择题(

(1)~(35)每小题2分,共70分)

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

(1)下面叙述正确的是______

A)算法的执行效率与数据的存储结构无关

B)算法的空间复杂度是指算法程序中指令(或语句)的条数

C)算法的有穷性是指算法必须能在执行有限个步骤之后终止

D)以上三种描述都不对

(2)以下数据结构中不属于线性数据结构的是______

A)队列B)线性表C)二叉树D)栈

(3)在一棵二叉树上第5层的结点数最多是______

A)8B)16C)32D)15

(4)下面描述中,符合结构化程序设计风格的是______

A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B)模块只有一个入口,可以有多个出口

C)注重提高程序的执行效率D)不使用goto语句

(5)下面概念中,不属于面向对象方法的是______

A)对象B)继承C)类D)过程调用

(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是______

A)可行性分析B)需求分析C)详细设计D)程序编码

(7)在软件开发中,下面任务不属于设计阶段的是______

A)数据结构设计B)给出系统模块结构

C)定义模块算法D)定义需求并建立系统模型

(8)数据库系统的核心是______

A)数据模型C)软件工具B)数据库管理系统D)数据库

(9)下列叙述中正确的是______

A)数据库系统是一个独立的系统,不需要操作系统的支持

B)数据库设计是指设计数据库管理系统

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

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

(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是______

A)内模式B)外模式C)概念模式D)逻辑模式

(11)关于面向对象的程序设计方法,下列说法正确的是

A)“封装性”指的是将不同类型的相关数据组合在一起,作为一个整体进行处理

B)“多态性”指的是对象的状态会根据运行时要求自动变化

C)基类的私有成员在派生类的对象中不可访问,也不占内存空间

D)在面向对象的程序设计中,结构化程序设计方法仍有着重要作用

(12)判断字符型变量ch是否为大写英文字母,应使用表达式____

A)ch>='A'&ch<='Z'B)ch<='A'||ch>='Z'

C)'A'<=ch<='Z'D)ch>='A'&&ch<='Z'

(13)已知下列语句中的x和y都是int型变量,其中错误的语句

A)x=y++;B)x=++y;C)(x+y)++;D)++x=y;

(14)执行语句序列

intn;

cin>>n;

switch(n)

{case1:

case2:

cout<<'1';

case3:

case4:

cout<<'2';break;

default:

cout<<'3';

}

时,若键盘输入1,则屏幕显示______

A)1B)2C)3D)12

(15)下列程序的输出结果是______

#include

usingnamespacestd;

intmain()

{

chara[]="Hello,World";

char*ptr=a;

while(*ptr)

{

if(*ptr>='a'&&*ptr<='z')

cout<

elsecout<<*ptr;

ptr++;

}

return0;

}

A)HELLO,WORLDB)Hello,World

C)hELLO,wORLDD)hello,world

(16)已知:

intm=10;在下列定义引用的语句中,正确的是______

A)int&x=m;B)inty=&m;C)int&z;D)int&t=&m;

(17)下列函数原型声明中错误的是______

A)voidFun(intx=0,inty=0);

B)voidFun(intx,inty);

C)voidFun(intx,inty=0);

D)voidFun(intx=0,inty);

(18)已知程序中已经定义了函数test,其原型是inttest(int,int,int);,则下列重载形式中正确的是______

A)chartest(int,int,int);

B)doubletest(int,int,double);

C)inttest(int,int,int=0);

D)floattest(int,int,float=3.5F);

(19)有以下程序

#include

inti=0;

voidfun()

{

{

staticinti=1;

std:

:

cout<

}

std:

:

cout<

}

intmain()

{

fun();fun();

return0;

}

程序执行后的输出结果是______

A)1,2,1,2,B)1,2,2,3,C)2,0,3,0,D)1,0,2,0,

(20)已知函数f的原型是:

voidf(int*a,long&b);变量v1、v2的定义是:

intv1;longv2;,正确的调用语句是______

A)f(v1,&v2);B)f(v1,v2);

C)f(&v1,v2);D)f(&v1,&v2);

(21)有以下类定义

classMyClass

{

public:

MyClass(){cout<<1;}

};

则执行语句MyClassa,b[2],*p[2];后,程序的输出结果是_____

A)11B)111C)1111D)11111

(22)关于友元,下列说法错误的是______

A)如果类A是类B的友元,那么类B也是类A的友元

B)如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员C)友元关系不能被继承

D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元

(23)关于动态存储分配,下列说法正确的是______

A)new和delete是C++语言中专门用于动态内存分配和释放的函数B)动态分配的内存空间也可以被初始化

C)当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间

D)当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用new

(24)有以下程序

#include

usingnamespacestd;

classMyClass

{

public:

MyClass(intn){number=n;}

//拷贝构造函数

MyClass(MyClass&other){number=other.number;}

~MyClass(){}

private:

intnumber;

};

MyClassfun(MyClassp)

{

MyClasstemp(p);

returntemp;

}

intmain()

{

MyClassobj1(10),obj2(0);

MyClassobj3(obj1);

obj2=fun(obj3);

return0;

}

程序执行时,MyClass类的拷贝构造函数被调用的次数是______

A)5B)4C)3D)2

(25)在公有派生的情况下,派生类中定义的成员函数只能访问原基类的______

A)公有成员和私有成员B)私有成员和保护成员

C)公有成员和保护成员D)私有成员、保护成员和公有成员

(26)在C++中用来实现运行时多态性的是______

A)重载函数B)析构函C)构造函数D)虚函数

(27)一个类可以同时继承多个类,称为多继承。

下列关于多继承和虚基类的表述中,错误的是______

A)每个派生类的构造函数都要为虚基类构造函数提供实参

B)多继承时有可能出现对基类成员访问的二义性问题

C)使用虚基类可以解决二义性问题并实现运行时的多态性

D)建立最派生类对象时,虚基类的构造函数会首先被调用

(28)在一个类体的下列声明中,正确的纯虚函数声明是______

A)virtualvoidvf()=0;B)voidvf(int)=0;

C)virtualintvf(int);D)virtualvoidvf(int){}

(29)在下面的运算符重载函数的原型中,错误的是______

A)Volumeoperator-(double,double);

B)doubleVolume:

:

operator-(double);

C)VolumeVolume:

:

operator-(Volume);

D)Volumeoperator-(Volume,Volume);

(30)下列是模板声明的开始部分,其中正确的是______

A)template

B)template

C)template

D)template

(31)执行语句序列

ofstreamoutfile("DATA.DAT");

if(...)cout<<"OK";elsecout<<"FAIL";

后,如果文件打开成功显示“OK”,否则就显示“F厶n。

”。

由此可知,上面if语句的...

处的表达式应是______

A)outfile.fail()或outfileB)outfile.good()或!

outfile

C)outfile.good()或outfileD)outfile.fail()或!

outfile

(32)C++流中重载的运算符>>是一个()

A)用于输出操作的非成员函数B)用于输入操作的非成员函数

C)用于输出操作的成员函数D)用于输入操作的成员函数

(33)有以下类定义

classPoint{

public:

Point(intx=0,inty=0){_.x=x;_.y=y;}

voidMove(intxOff,intyOff)

{_x+=xOff;_.y+=yOff;}

voidPrint()const

{cout<<'('<<_x<<','<<_y<<')'<

private:

int_x,_y;

};

下列语句中会发生编译错误的是______

A)Pointpt;pt.Print();

B)constPointpt;pt.Print();

C)Pointpt;pt.Move(l,2);

D)constPointpt;pt.Move(l,2);

(34)有以下类定义

classMyClass

{

private:

intid;

chargender,

char*phone;

public:

MyClass():

id(0),gender('#'),phone(NULL){}

MyClass(intno,charge='#',char*ph=NULl.)

{id=no;gende=ge;phone=ph;}

};

下列类对象定义语句中错误的是______

A)MyClassmyObj;

B)MyClassmyObj(11,"");

C)MyClassmyObj(12,'m');

D)MyClassmyObj(12);

(35)有以下程序

#include

usingnamespacestd;

classComplex

{

public:

Complex(doubler=0,doublei=0):

re(r),im(i){}

doublereal()const{returnre;}

doubleimag()const{returnim;}

Complexoperator+(Complexc)const

{returnComplex(re+c.re,im+c.im);}

private:

doublere,im;

};

intmain()

{

Complexa=Complex(l,1)+Complex(5);

cout<

return0;

}

程序执行后的输出结果是______

A)6+6iB)6+1iC)1+6iD)1+1i

二、填空题(每空2分,共30分)

请将每一个空的正确答案写在答题卡[1]-[15]序号的横线上,答在试卷上不得分。

注意:

以命令关键字填空的必须拼写完整。

(1)算法的复杂度主要包括[1]复杂度和空间复杂度。

(2)数据的逻辑结构在计算机存储空间中的存放形式称为数据的[2]。

(3)若按功能划分,软件测试的方法通常分为白盒测试方法[3]____________测试方法。

(4)如果一个工人可管理多个设备,而一个设备只被一个工人管理,则实体“工人”与实体“设备”之间存在[4]的联系。

(5)关系数据库管理系统能实现的专门关系运算包括选择、连接和[5]。

(6)设有定义语句:

inta=12;,则表达式a*=2+3的运算结果是[6]。

(7)从实现的角度划分,C++所支持的两种多态性分别是[7]______时的多态性和运行时的多态性。

(8)将—个函数声明为一个类的友元函数必须使用关键字[8]。

(9)请按下面注释的提示,将类B的构造函数定义补充完整。

classA

{

inta;

public:

A(intaa=0){a=aa;}

};

classB:

publicA{

intb;

Ac;

public:

//用aa初始化基类A,用aa+1初始化类对象成员c

B(intaa):

[9]{b=aa+2;}

};

(10)下列程序的输出结果是[10]。

#include

usingnamespacestd;

intmain()

{

inti=5;

int&r=i;r=7;

cout<

return0;

}

(11)下列程序的输出结果是[11]。

#include

usingnamespacestd;

classTest{

public:

Test(){cnt++;}

~Test(){cnt--;}

staticintCount(){returncnt;}

private:

staticintcnt;

};

intTest:

:

cnt=0;

intmain()

{

cout<

:

Count0<<'';

Testtl,t2;

Test*pT3=newTest;

Test*pT4=newTest;

cout<

:

Count0<<'';

deletepT4;

deletepT3;

cout<

:

Count()<

return0;

}

(12)下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。

(注:

阶乘的定义是n!

=n*(n-1)*...*2*1)

unsignedfact(unsignedn)

{

if(n<=1)

return1;

return[12];

}

(13)下列程序的输出结果是[13]。

#include

usingnamespacestd;

template

Tfun(Ta,Tb){return(a<=b)?

:

b;}

intmain()

{

cout<

return0;

}

(14)与成员访问表达式p->name等价的表达式是[14]。

(15)下列程序的输出结果是[15]。

#include

usingnamespacestd;

classbase{

public:

intn;

base(intx){n=x;}

virtualvoidset(intm){n=m;cout<

};

classderiveA:

publicbase{

public:

deriveA(intx):

base(x){}

voidset(mtm){n+=m;cout<

};

classderiveB:

publicbase[

public:

deriveB(intx):

base(x){}

voidset(intm){n+=m;cout<

};

intmain()

{

deriveAdl

(1);deriveBd2(3);

base*pbase;pbase=&dl;

pbase->aet

(1);pbase=&d2;

pbase->set

(2);return0;

}

 

计算机等级考试二级C++笔试试题(2010年3月)

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

  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

  

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

  A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n

  B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)

  C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)

  D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)

  

(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是一个类名,且有如下语句序列

  MyClassc1,*c2;

  MyClass*c3=newMyClass;

  MyClass&c4=c1;

  上面的语句序列所定义的类对象的个数是______

  A)1  B)2  C)3  D)4

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

  A)如果不显式地指定继承方式,缺省的继承方式是私有(private)

  B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员

  C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员

  D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员

  (14)将前缀运算符“--”重载为非成员函数,下列原型中,能正确用于类中说明的是______

  A)Decr&operator--(int);

  B)Decroperator--(Decr&,int);

  C)friendDecr&operator--(Decr&);

  D)frlendDecroperator--(Decr&,int);

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

  MyTempp2;

  MyTempp3[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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1