0811年计算机二级C++笔试题及答案Word格式文档下载.docx

上传人:b****5 文档编号:16470679 上传时间:2022-11-23 格式:DOCX 页数:89 大小:148.10KB
下载 相关 举报
0811年计算机二级C++笔试题及答案Word格式文档下载.docx_第1页
第1页 / 共89页
0811年计算机二级C++笔试题及答案Word格式文档下载.docx_第2页
第2页 / 共89页
0811年计算机二级C++笔试题及答案Word格式文档下载.docx_第3页
第3页 / 共89页
0811年计算机二级C++笔试题及答案Word格式文档下载.docx_第4页
第4页 / 共89页
0811年计算机二级C++笔试题及答案Word格式文档下载.docx_第5页
第5页 / 共89页
点击查看更多>>
下载资源
资源描述

0811年计算机二级C++笔试题及答案Word格式文档下载.docx

《0811年计算机二级C++笔试题及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《0811年计算机二级C++笔试题及答案Word格式文档下载.docx(89页珍藏版)》请在冰豆网上搜索。

0811年计算机二级C++笔试题及答案Word格式文档下载.docx

C)学号,课号D)学号,姓名,成绩

(11)下列有关函数重载的叙述中,错误的是

A)函数重载就是用相同的函数名定义多个函数

B)重载函数的参数列表必须不同

C)重载函数的返回值类型必须不同

D)重载函数的参数可以带有默认值

(12)下列有关类成员的叙述中,正确的是

A)友元函数是类的成员函数

B)类成员的默认访问权限是私有的

C)类成员函数必须声明为公有的

D)类的静态数据成员不能是常成员

(13)下列有关类继承的叙述中,错误的是

A)继承可以实现软件复用

B)虚基类可以解决由多继承产生的二义性问题

C)派生类构造函数要负责调用基类的构造函数

D)派生类没有继承基类的私有成员

(14)下列有关运算符重载的叙述中,正确的是

A)运算符重载是多态性的一种表现

B)C++中可以通过运算符重载创造新的运算符

C)C++中所有运算符都可以作为非成员函数重载

D)重载运算符时可以改变基结合性

(15)下列有关模板的叙述中,正确的是

A)函数模板不能含有常规形参

B)函数模板的一个实例就是一个函数定义

C)类模板的成员函数不能是模板函数

D)用类模板定义对象时,绝对不能省略模板实参

(16)下列有关C++流的叙述中,错误的是

A)C++操作符setw设置的输出宽度永久有效

B)C++操作符endl可以实现输出的回车换行

C)处理文件I/O时,要包含头文件fstream

f3h2

n2x1

D)进行输入操作时,eof()函数用于检测是否到达文件尾

(17)下列符号中能够作为C++标识符的是

A)constB)2aC)_shapeD)-count

(18)已知枚举类型声明语句为:

enumCOLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};

则下列说法中错误的是

A)枚举常量YELLOW的值为1B)枚举常量RED的值为6

C)枚举常量BLACK的值为10D)枚举常量WHITE的值为1

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

for(inti=50;

i>

1;

I-=2)cout<

<

'

*'

;

A)24B)25

C)26D)50

(20)有如下定义:

inta[5]={1,3,5,7,9},*p=a;

下列表达式中不能得到数值5的是

A)a[2]B)a[3]

C)*(p+2)D)*p+4

(21)已知函数f的原型是voidf(int*a,long&

b);

,变量v1、v2的定义是:

intv1;

loongv2;

下列调用语句中正确的是

A)f(v1,&

v2);

B)f(v1,v2);

C)f(&

v1,&

D)f(&

v1,v2);

(22)有如下类定义:

classPoint{

private;

staticinthow_many;

};

______how_many=0;

要初始化Point类的静态成员how_many,下划线处应填入的内容是

A)ingB)staticint

C)intPoint:

:

D)staticintPoint:

(23)在下列关键字中,不能用来表示继承方式的是

A)privateB)static

C)publicD)protected

(24)已知Value是一个类,Value是Value的一个对象。

下列以非成员函数形式重载的运算符函数原形中,正确的是

A)Valueoperator+(Valuev,inti);

B)Valueoperator+(Valuev=value,inti);

C)Valueoperator+(Valuevinti=0);

D)Valueoperator+(Valuev=value,inti=0);

(25)下面是一个模板声明的开始部分:

templute<

typenameT>

double__

由此可知

A)这可能是一个函数模板的声明

B)这可能是一个类模板的声明

C)这既可能是一个函数模板的声明,也可能是一个类模板的声明

D)这肯定是一个错误的模板声明

(26)有如下4个语句:

①cout<

A'

setfill('

)<

left<

setw(7)<

B'

endl;

②cout<

③cout<

serfill('

right<

④cout<

其中能显示A******B的是

A)①和③B)①和④

C)②和③D)②和④

(27)有如下类定义:

classMyClass{

Intvalue;

public;

MyClass(intn):

value(n){}

intgerValue()const{returnvalue;

}

则类MyClass的构造函数的个数是

A)1个B)2个

C)3个D)4个

(28)有如下类和对象的定义:

classConstants{

staticdoublegetPI(){return3.1416;

Constantsconstants;

下列各组语句中,能输出3.1416的是

A)cout<

constants->

getPI();

和cout<

Constants:

gerPI();

B)cout<

constants.getPI();

Constants.getPI();

C)cout<

Constants->

D)cout<

(29)有如下程序:

#include<

iostream>

usingnamespacestd;

classVAC{

intf()const{return3;

}

intf(){return5;

Intmain(){

VACv1;

constVACv2;

cout<

v1.f()<

v2.f();

feturn0;

运行时的输出结果是

A)53B)35

C)55D)33

(30)有如下类声明:

classBase{

protected;

intamount;

Base(intn=0):

amount(n){}

intgetAmount()const{retumamount;

classDerived:

publicBase{

intvalue;

Derived(intm,intn):

value(m).Base(n){}

IntgetData()const{returnvalue+amount;

已知x是一个Derived对象,则下列表达式中正确的是

A)x.value+x.getAmount()B)x.getData()-x.gctAmount()

C)x.getData()-x.amountD)x.value+x.amount

(31)有如下程序:

classBase{

intx;

Base{intn=0};

x(n){cout<

n;

IntgetX()const{returnx;

classDerivedpublicBase{

inty;

y(m),Base(n){cout<

m;

Derived(intm):

y(m){cout<

intmain(){

Deriveddl(3),d2(5,7);

Return0;

A)375B)357 

C)0375D)0357

(32)下列有关抽象类和纯虚函数的叙述中,错误的是

A)拥有纯虚函数的类是抽象类,不能用来定义对象

B)抽象类的派生类若不实现纯虚函数,它也是抽象类

C)纯虚函数的声明以“=0;

”结束

D)纯虚函数都不能有函数体

(33)有如下程序:

Usingnamespacestd;

ClassAmount{

Amount(intn=0):

IntgetAmount()const{returnamount;

Amount&

operator+=(Amounta){

amount+=a.amount;

return;

Amountx(3),y(7);

x+=y;

x.getAmount()<

return0;

已知程序的运行结果是10,则下划线处缺失的表达式是

A)*thisB)this

C)&

amountD)amount

(34)下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“<

left”,输出效果将发生变化的是

357;

setw(5)<

"

ABCDE"

(35)有如下程序:

classGA{

virtualintf(){retuml;

classGB:

publicGA{

virtualintf(){return2;

voidshow(GAg){cout<

g.f();

voiddisplay(GA&

g){cout<

GAa:

show(a);

display(a);

GBb:

show(b);

display(b);

retum0;

A)1111B)1211

C)1112D)1212

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

(1)测试用例包括输入值集和值集。

(2)深度为5的满二叉树有个叶子结点。

(3)设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该

循环队列中共有个元素。

(4)在关系数据库中,用来表示实体之间联系的是。

(5)在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,负责数据的模式定义与数据

的物理存取构建。

(6)在面向对象的程序设计中,将数据和处理数据的操作封装成一个整体就定义了一种事物的类型,称作“类”。

是一种抽象的概念,属于该类的一个实例叫做“___________”。

(7)指针数组是由___________构成的数组。

(8)如果使用数组名称为函数参数,形实结合时,传递的是___________。

(9)在类的对象被创建的时候,___________函数会被自动调用。

(10)在类中,___________成员为类的所有对象所共享。

(11)有如下程序:

#include<

intm,n;

classDerived1:

___________Base{};

classDerived2:

publicDerived1{

public:

voidSetMN(intM,intN){M=M;

n=N;

intGetSumMN(){retum(m+n);

Derived2objD;

objD.SetMN(3,4);

M+N="

objD.m+bojD.n<

编译时只有“cout<

”有语法错误,程序的其他地方没有语法错误,请判断下

划线处使用的关键字是什么。

(12)有如下程序:

intb;

Base(inti){b=i;

voiddisp(){cout<

Base:

b="

b<

classbasel;

virtualpublicBase{

Base1(inti):

Base(i){}

classBase2:

virtualpublicBasc{

Base2(inti):

Base(i){}

publicBase2.publicBase1{

intd;

Derived(intI,intj):

Base1(j),Base2(j),___________

{d=i;

voiddisp(){cout<

Derived:

d="

d<

DerivedobjD(1,2);

objD.disp();

objD.Basce:

disp();

objD.Basce1:

objD.Basce2:

请将程序补充完整,使程序在运行时输出:

d=1Base:

b=2Base:

b=2

(13)如下程序声明了一个电话号码类PhoneNumber,重载了流插入运算符<

,以便于电话号码的输出。

请将程序补

充完整。

iomanip>

string>

classPhoneMumber{

voidsetNumber(stringnumber){this->

number=number;

//重载流插入操作符

friend___________(ostream&

output,constPhoneNumber&

num)

{output<

num.number;

returnoutput;

stringnumber;

PhoneNumberphone;

phone.setNumber("

8008100598"

);

cout<

Thephonenumberis:

phone<

end1;

(14)如下程序声明了一个二维图形类TwoDShape,从其派生出矩形类Rec。

classTwoDShape{//二维图形类

charname[20];

TwoDShape(char*n="

unknown"

){

strcpy(name,n);

char*getNa:

ne(){returnname;

___________=0;

classRec:

publicTwoDShape{

doublewidth,height;

Rec(doublew=0.0,doubleh=0.0):

TwoDShape("

rectamgle"

{width=w;

height=h;

doublegetWidth(){returnwidth;

doublegetHeight(){returnheight;

doublearea(){returnwidth*height;

TwoDShape*shape;

shape=newRec(2.1,3.0);

objectis"

shape->

getName()<

\n"

Areais"

area()<

objectistriangle

Areais6.3

(15)如下程序声明了一个使用两个通用数据类型的模板类dataClass,其中构造函数用于初始化两个数据成员,成员

函数show用于输出两个数据成员的数值。

___________

T1i;

T2j;

dataClass(T1aT2b){i=a;

j=b;

voidshow(){cout<

i<

"

j<

\n'

dataClass<

int,double>

ob1(10,0.23);

char,char*>

ob2('

X'

mydata"

ob1.show();

ob2.show();

10,0.23

X,mydata__

2008年4月二级C++笔试试题答案

一、选择题

(1)C

(2)A(3)B)(4)B)(5)A)(6)D(7)B(8)C(9)D)(10)C)(11)C(12)B(13)D(14)A(15)B)(16)A(17)C(18)D(19)B(20)B)(21)D(22)C(23)B(24)B(25)A)(26)C)27)A(28)D(29)A(30)B)(31)C(32)D(33)D(34)B(35)C)

二、填空题

(1)输出

(2)16(3)24(4)关系(5)数据定义语言(6)对象(7)指针或指针变量(8)地址(9)构造(10)静态(11)private(12)Base(j)(13)PhoneNumberoperator<

(14)virvaldoublearea()(15)template<

classT1,T2>

classdataClass

2008年9月计算机等级考试

二级C++笔试试题

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

(1)一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。

A)123456ABCDEB)EDCBA54321

C)ABCDE12345D)54321EDCBA

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

A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

D)循环队列中元素的个数是由队头指针和队尾指针共同决定

(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。

A)O(n) 

B)O(n2)

C)O(log2n)D)O(nlog2n)

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

A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C)顺序存储结构能存储有序表,链式存储结构不能存储有序表

D)链式存储结构比顺序存储结构节省存储空间

(5)数据流图中带有箭头的线段表示的是()。

A)控制流C)模块调用

B)事件驱动D)数据流

(6)在软件开发中,需求分析阶段可以使用的工具是()。

A)N-S图B)DFD图(数据流图)

C)PAD图D)程序流程图

(7)在面向对象方法中,不属于“对象”基本特点的是()。

A)一致性B)分类性

C)多态性D)标识唯一性

(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。

A)一对一B)一对多

C)多对一D)多对多

(9)在数据管理技术发展的三个阶段中,数据共享最好的是()。

A)人工管理阶

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

当前位置:首页 > 总结汇报 > 其它

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

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