0811年计算机二级C++笔试题及答案.docx

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

0811年计算机二级C++笔试题及答案.docx

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

0811年计算机二级C++笔试题及答案.docx

0811年计算机二级C++笔试题及答案

2008年4月全国计算机等级考试二级C++笔试试题及答案

窗体顶端

窗体底端

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

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

(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)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。

A)快速排序B)冒泡排序

C)直接插入排序D)堆排序

(7)下列关于栈的叙述正确的是()。

A)栈按“先进先出”组织数据

B)栈按“先进后出”组织数据

C)只能在栈底插入数据

D)不能删除数据

(8)在数据库设计中,将E-R图转换成关系数据模型的过程属于()。

A)需求分析阶段B)概念设计阶段

C)逻辑设计阶段D)物理设计阶段

(9)有三个关系R、S和T如下:

RST

BCD

a0k1

b1n1

由关系R和S通过运算得到关系T,则所使用的运算为()。

A)并B)自然连接C)笛卡尔积D)交

(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC

(学号,课号,成绩),则表SC的关键字(键或码)为()。

A)课号,成绩B)学号,成绩

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

BCD

a0k1

BCD

f3h2

a0k1

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,&v2);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)下面是一个模板声明的开始部分:

templutedouble__

由此可知

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

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

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

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

(26)有如下4个语句:

①cout<<'A'<

②cout<

③cout<<'A'<

④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{

public;

staticdoublegetPI(){return3.1416;}

};

Constantsconstants;

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

A)cout<getPI();和cout<

:

gerPI();

B)cout<

C)cout<getPI();和cout<getPI();

D)cout<

:

getPI();

(29)有如下程序:

#include

usingnamespacestd;

classVAC{

public;

intf()const{return3;}

intf(){return5;}

};

Intmain(){

VACv1;

constVACv2;

cout<

feturn0;

}

运行时的输出结果是

A)53B)35

C)55D)33

(30)有如下类声明:

classBase{

protected;

intamount;

public;

Base(intn=0):

amount(n){}

intgetAmount()const{retumamount;}

};

classDerived:

publicBase{

protected;

intvalue;

public;

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)有如下程序:

#include

usingnamespacestd;

classBase{

intx;

public;

Base{intn=0};x(n){cout<

IntgetX()const{returnx;}

};

classDerivedpublicBase{

inty;

public;

Derived(intm,intn):

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

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)有如下程序:

#include

Usingnamespacestd;

ClassAmount{

intamount;

public;

Amount(intn=0):

amount(n){}

IntgetAmount()const{returnamount;}

Amount&operator+=(Amounta){

amount+=a.amount;

return;

}

};

intmain(){

Amountx(3),y(7);

x+=y;

cout<

return0;

}

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

A)*thisB)this

C)&amountD)amount

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

A)cout<

B)cout<

C)cout<

D)cout<

(35)有如下程序:

#include

usingnamespacestd;

classGA{

public;

virtualintf(){retuml;}

};

classGB:

publicGA{

public;

virtualintf(){return2;}

};

voidshow(GAg){cout<

voiddisplay(GA&g){cout<

intmain(){

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

usingnamespacestd;

classBase{

public;

intm,n;

};

classDerived1:

___________Base{};

classDerived2:

publicDerived1{

public:

voidSetMN(intM,intN){M=M;n=N;}

intGetSumMN(){retum(m+n);}

};

intmain(){

Derived2objD;

objD.SetMN(3,4);

cout<<"M+N="<

retum0;

}

编译时只有“cout<<"M+N="<

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

(12)有如下程序:

#include

usingnamespacestd;

classBase{

intb;

public;

Base(inti){b=i;}

voiddisp(){cout<<"Base:

b="<

};

classbasel;virtualpublicBase{

public;

Base1(inti):

Base(i){}

};

classBase2:

virtualpublicBasc{

public;

Base2(inti):

Base(i){}

};

classDerived:

publicBase2.publicBase1{

intd;

public;

Derived(intI,intj):

Base1(j),Base2(j),___________

{d=i;}

voiddisp(){cout<<"Derived:

d="<

};

intmain(){

DerivedobjD(1,2);objD.disp();

objD.Basce:

:

disp();

objD.Basce1:

:

disp();

objD.Basce2:

:

disp();

return0;

}

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

Derived:

d=1Base:

b=2Base:

b=2Base:

b=2

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

请将程序补

充完整。

#include

#include

#include

usingnamespacestd;

classPhoneMumber{

public;

voidsetNumber(stringnumber){this->number=number;}

//重载流插入操作符

friend___________(ostream&output,constPhoneNumber&num)

{output<

private;

stringnumber;

};

intmain(){

PhoneNumberphone;

phone.setNumber("8008100598");

cout<<"Thephonenumberis:

"<

return0;

}

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

#include

#include

usingnamespacestd;

classTwoDShape{//二维图形类

charname[20];

public;

TwoDShape(char*n="unknown"){

strcpy(name,n);

}

char*getNa:

ne(){returnname;}

___________=0;

};

classRec:

publicTwoDShape{

doublewidth,height;

public;

Rec(doublew=0.0,doubleh=0.0):

TwoDShape("rectamgle")

{width=w;height=h;}

doublegetWidth(){returnwidth;}

doublegetHeight(){returnheight;}

doublearea(){returnwidth*height;}

};

intmain(){

TwoDShape*shape;

shape=newRec(2.1,3.0);

cout<<"objectis"<getName()<<"\n";

cout<<"Areais"<area()<<"\n";

return0;

}

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

objectistriangle

Areais6.3

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

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

#include

usingnamespacestd;

___________

T1i;

T2j;

public;

dataClass(T1aT2b){i=a;j=b;}

voidshow(){cout<

};

intmain(){

dataClassob1(10,0.23);

dataClassob2('X',"mydata");

ob1.show();

ob2.show();

retum0;

}

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

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)templateclassdataClass

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)人工管理阶

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

当前位置:首页 > PPT模板 > 其它模板

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

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