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