第 1 页:冲刺试题 |
第 3 页:参考答案 |
点击查看:2018年12月计算机二级C++考试冲刺试题及答案汇总
一、选择题(每小题1分,共40小题,共40分)
1.在计算机中,算法是指( )。
A.查询方法
B.加工方法
C.解题方案的准确而完整的描述
D.排序方法
2.下列叙述中,不属于测试的特征的是( )。
A.测试的挑剔性
B.完全测试的不可能性
C.测试的可靠性
D.测试的经济性
3.数据处理的最小单位是( )。
A.数据
B.数据元素
C.数据项
D.数据结构
4.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为( )。
A.1
B.2
C.3
D.9
5.下列对于软件测试的描述正确的是( )。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能地多发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
6.下列选项中,不是一个算法的基本特征的是( )。
A.完整性
B.可行性
C.有穷性
D.拥有有足够的情报
7.下列选项中不属于结构化程序设计方法的是( )。
A.自顶向下
B.逐步求精
C.模块化
D.司复用
8.下列不是软件工程基本目标的照( )。
A.付出较低的维护费用
B.达到要求的功能
C.不管时间限制,只要最终把用户要求的产品交出来
D.产品的性能比较好
9.以三级模式为框架形成的三种数据库中,真实存在于计算机外存的数据库是( )。
A.概念数据库
B.用户数据库
C.物理数据库
D.逻辑数据库
10.数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是( )。
A.DB包括DBS和DBMS
B.DBMS包括DB和DBS
C.DBS包括DB和DBMS
D.没有任务关系
11.下列符号中可以用做C++标识符的是( )。
A._radius
B.foo~bar
C.else
D.3room
12.类模板的使用实际上是将类模板实例化成一个具体的( )。
A.类
B.对象
C.函数
D.模扳类
13.下列有关类继承的叙述中,错误的是( )。
A.继承可以实现软件复用
B.虚基类可以解决由多继承产生的二义性问题
C.派生类构造函数要负责调用基类的构造函数
D.派生类没有继承基类的私有成员
14.若有以下定义:
inta[]={1,2,3,4,5,6,7};
charc1=’b’,c2=’2’;
则数值不为2的表达式是( )。
A.a[1]
B.’d’c1
C.a[’3’-c2]
D.c2-0
15.已知intm=10;在下列定义引用的语句中,正确的是( )。
A.int&x=m;
B.inty=&m;
C.int&z;
D.int&t=&m;
16.针对数组定义intdata[10];,下列表述中错误的是( )。
A.用*data可访问到数组的首元素
B.用data[9]可访问到数组的末元素
C.用data[10]访问数组元素会超出数组边界
D.data共有10个元素,其首元素是data[1]
17.设有定义:
classperson
{inthum;
charname[10];
public:
voidinit(intn,char*m);
};
personstd[30]
则以下叙述不正确的是( )。
A.std是一个含有30个元素的对象数组
B.std数组中的每个元素都是person类的对象
C.std数组中的每个元素都有自己的私有变量num和name
D.std数组中的每个元素都有各自的成员函数init
18.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。
A.函数调用可以作为独立的语句存在
B.函数调用可以无返回值
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
19.已知Value是一个类,Value是Value的一个对象。
下列以非成员函数形式重载的运算符函数原形中,正确的是( )。
A.Valueoperator+(Valuev,inti);
B.Valueoperator+(Valuev=value,inti);
C.Valueoperator+(Valuevinti=O);
D.Valueoperator+(Valuev=value,inti=O);
20.下列关于运算符重载不正确的是( )。
A.运算符重载不能改变运算符的操作数个数
B.运算符重载不能改变运算符的优先级
C.运算符重载不能改变运算符的结合性
D.运算符重载能改变对预定义类型数据的操作方式
21.派生类对象对其基类中的什么成员是可访问的?( )
A.公有继承的私有成员
B.私有继承的公有成员
C.私有继承的保护成员
D.保护继承的保护成员
22.有如下程序:
#included
usingnamespacestd;
classA{
public:
virtualvoidfuncl(){cout<<"A1";)
voidrune2(){cout<<"A2";}};
classB:publicA{
public:
voidfuncl(){cout<<:"B1";}
voidfunc2(){eout<<"B2";}};
intmain(){
A*p=newB;
p->func1();
P->func2();
return0;}
执行该程序,屏幕上将显示输出( )。
A.B1B2
B.A1A2
C.B1A2
D.A1B2
23.重载输人流运算符>>必须使用的原型为( )。
A.istream&operator>>(istream&,<类名>&);
B.istream&operator>>(istream,<类名>);
C.istreamoperator>>(istream,<类名>&);
D.<类名>operator>>(istream&,<类名>&);
24.有如下语句序列:
intk=0:
do{k+=5;cout<<’$’;}whilc(k<19);
while(k->O)cout<<’*’;
执行上面的语句序列输出字符“$”和“*”的个数分别是( )。
A.4和20
B.5和20
C.4和21
D.5和21
25.下列关于模板的说法正确的是( )。
A.模板的实参在任何时候都可以省略
B.类模板与模板类所指的是同一概念
C.类模板的参数必须是虚拟类型的
D.类模板中的成员函数全部都是模板函数
26.有以下程序:
#include
usingnamespacestd;
classA
{private:
inta:
public:
A(inti)
{a=i;}
voiddisp()
{cout< classB
(private:
intb;
public:
B(intj)
{b=j;}
voiddisp()
{cout< classC:publicB,publicA
{private:
intC;
public:
c(intk):A(k-2),B(k+2)
{c=k;
}
voiddisp()
{
a::disp();
B::disp();
COUt< }
};
intmain()
{
Cobj(10);
obj.disp();
return0;
}
程序执行后的输出结果是( )。
A.10,10,10
B.10,12,14
C.8,10,12
D.8,12,10
27.下列程序的输出结果是( )。#include
voidmain()
(char*str="12123434";
intx1=0,x2=0,x3=0,x4=0,i;
for(i=0;str[i]!=’\0’;i++)
switch(str[i])
{case’1’:x4++;
case’2’:x3++;
case’3’:x2++;
case’4’:x1++;
}
cout< <","< }
A.8,6,4,1
B.8,6,3,2
C.8,8,4,1
D.8,6.4,2
28.以下不能正确创建输出文件对黎并使其与磁盘文件相关联的语句是( )。
A.ofstreammyfile;myfile.open("d:ofile.txt");
B.ofstream*myfile=newofstream;myfile->open("d:ofile.txt”);
C.ofstreammyfile("d:ofile.txt");
D.ofstream*myfile=new("d:ofile.txt");
29.以下类定义中可能会引起错误的语句是( )。
classA
{
public:
~A( ){}//1
inti;//2
private:
intj;//3
A(inti){i++;}//4
};
A.1
B.2
C.3
D.4
30.有如下程序:
#include
usingnamespacestd;
classTestClass
{public:
virtualvoidfunl()
{cout<<"funlTestClass";}
virtualvoidfun2()
{cout<<“fun2TestClass”;}};
classTestClassl:publicTestClass
{voidfun()
{cout<<“funlTestClassl”;}};
intmain()
{TestClassobj1,*P;
TestClasslobj2;
p=&obj2;
p->fun1();
p->fun2();
return0;}
该程序执行后的输出结果是( )。
A.funlTestClasslfun2TestClass
B.funlTestClass1fun2TestC1ass1
C.funlTestClassfun2TestClass
D.funlTestClassfun2TestClassl
31.有如下程序:
#included
usingnamespqcestd;
classTestClass
{
private;
charC;
public;
TestClass(charn):c(n){}
~TestClass()
{
cout< }
};
classTestClassl:publicTestClass
{
private:
charC;
public:
TestClassl(charn):TestClass(n+1),c(n){}~TestClassl()
{
cout< }
};
intmain()
{
TestClasslobj(’X’);
return0;
}
执行上面的程序将输出( )。
A.xy
B.yx
C.X
D.y
32.有如下程序:
#include
usingnamespacestd;
classBase
{
public:
Base(){cout<<"BB";f();}
voidf(){cout<<"BF";}
};
classDerived:publicBase
{
public:
Derived(){cout<<"DD";}
voidf(){eout<<"Df";}
};
intmain(){Derivedd;return0;}
执行上面的程序将输出( )。
A.BBBfDD
B.BBDfDDDf
C.DD
D.DDBBBf
33.已知枚举类型定义语句为
enHmToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};
则下列叙述中错误的是( )。
A.枚举常量NAME的值为1
B.枚举常量NUMBER的值为1
C.枚举常量MINUS的值为6
D.枚举常量PRINT的值为10
34.有如下程序:
#include
usingnamespacestd;
classBASE{
public:
~BASE(){cout<<"BASE";}
};
classDERIVED:publicBASE{
public:
~DERIVED(){cout<<"DERIVED";}
};
intmain(){DERIVEDx;return0;)
执行后的输出结果是( )。
A.BASE
B.DERlVED
C.BASEDERIVED
D.DERlVEDBASE
35.有如下程序:
#include
usingnamespacestd;
classTest
{
public:
Test(){n+=2;}
~Test(){n-=3;}
staticintgetNum(){returnn;}
private:
staticintn;
};
intTest::n=1;
intmain()
{
Test*p=neWTest;
deletep;
cout<<"n="< return0;
}
执行该程序的输出结果是( )。
A.n=0
B.n=1
C.n=2
D.n=3
36.下列关于纯虚函数与抽象类的描述中,错误的是( )。
A.纯虚函数是一种特殊的虚函数,它没有具体的实现
B.抽象类是指具有纯虚函数的类
C.一个基类声明了纯虚函数,该基类的派生类一定不是抽象类
D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出
37.以下程序的输出结果是( )。
#include
longfun(intn)
{longS;
if(n==1‖n==2)s=2;
elses=n-fun(n-1):
returnS;
}
voidmain(){cout< A.1
B.2
C.3
D.4
38.对于模板定义关键字class和typename说法不正确的是( )。
A.程序中的class并不能都替换为typename
B.class和typename都可互相替换
C.程序中的typename都能替换为class
D.程序中的部分class可以替换为typename
39.有如下程序:
#include
usingnamespacestd;
classCon
charID;
public:
Con():ID(’A){cout<<1;}
Con(charID):ID(ID){eout<<2;}
Con(Con&c):ID(c.getID()){cout<<3;}
chargetID()corlst{returnID;}
};
voidshow(Conc)(cout< intmain()
{
Conc1:
show(c1);
Conc2(’B’);
show(c2);
return0;
}
执行上面程序的输出是( )。
A.13A23A
B.23A13B
C.13A23B
D.13823A
40.对于类定义:
classA{
public:
virtualvoidfuncl(){}
voidfunc2(){}
};
classB:publicA{
public:
voidfuncl(){cout<<"classBfunc1"< virtualvoidfunc2(){cout<<"classBfunc2"
< };
下面正确的叙述是( )。
A.A::func2( )和B::func1( )都赵虚函数
B.A::rune2( )和B::func1( )都不是虚函数
C.B::func1( )是虚函数,而A::fune2( )不是虚函数
D.B::func1( )不是虚函数,而A::func2( )是虚函数
微信搜索"考试吧"了解更多考试资讯、下载备考资料
相关推荐: