全国计算机等级考试二级C++历年真题Word格式文档下载.docx
《全国计算机等级考试二级C++历年真题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C++历年真题Word格式文档下载.docx(38页珍藏版)》请在冰豆网上搜索。
(10)下列叙述中错误的是。
A)在数据库系统中,数据的物理结构必须与逻辑结构一致.
B)数据库技术的根本目标是要解决数据的共享问题
C)数据库设计是指在已有数据库管理系统的基础上建立数据库
D)数据库系统需要操作系统的支持
(11)为了取代C中带参数的宏,在C++中使用
A)重载函数
B)内联函数
C)递归函数
D)友元函数
(12)下列关于类定义的说法中,正确的是
A)类定义中包括数据成员和函数成员的声明
B)类成员的缺省访问权限是保护的
C)数据成员必须被声明为私有的
D)成员函数只能在类体外进行定义
(13)下列关于派生类构造函数和析构函数的说法中,错误的是
A)派生类的构造函数会隐含调用基类的构造函数
B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数
C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数
D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数
(14)通过运算符重载,可以改变运算符原有的
A)操作数类型
B)操作数个数
C)优先级
D)结合性
(15)有如下函数模板:
templateTsouare(Tx)(retumx*x;
)
基中T是
A)函数形参
B)函数实参
C)模板形参
D)模板实参
(16)使用输入输出操作符setw,可以控制
A)输出精度
B)输出宽度
C)对齐方式
D)填充字符
(17)下列字符串中,不可以用作C++标识符的是
A)y_2006
B)____TEST__H
C)Retum
D)switch
(18)字面常量42、4.2、42L的数据类型分别是
A)long、doubleint
B)long、float、int
C)int、double、long
D)int、float、long
(19)执行下列语句段后,输出字符“*”的个数是
for(inti=50;
I>
1;
—i)cout<
<
”*”
A)48
B)49
C)50
D)51
(20)有如下程序段
int i=0,j=1;
int &r=i;
//①
r=j;
//②
int*p=&i;
//③
*p=&r;
//④
基中会产生编译错误的语句是
A)④
B)③
C)②
D)①
(21)有如下函数定义:
voidfunc(inta,int&b){a++;
b++;
}
若执行代码段:
int x=0,y=1
func(x,y);
则变量x和y值分别是
A)0和1
B)1和1
C)0和2
D)1和2
(22)有如下程序:
#include
usingnamespacestd;
classA{
public
staticinta;
voidinit(){a=1;
A(inta=2){init();
a++;
};
intA:
;
a=0
Aobj;
Intmain()
{
cout<
OBJ.A;
retum0;
}
运行时输出的结果是
A)0B)1C)2D)3
(23)下列有关继承和派生的叙述中,正确的是
A)派生类不能访问基类的保护成员
B)作为虚基类的类不能被实例化
C)派生类应当向基类的构造函数传递参数
D)虚函数必须在派生类中重新实现
(24)下列运算符中,不能被重载的是
A)&&B)!
=C).D)++
(25)下列函数模板的定义中,合法的是
A)templateTabs(Tx){returnx<
0–x:
x;
B)templateclassTabs(Tx){retumx<
0-x;
x;
C)templateTabs(Tx){retumx<
D)templateTabs(Tx){returmx<
(26)在语句cin>
>
data;
中,cin是
A)C++的关键字B)类名C)对象名D)函数名
(27)有如下程序:
classtest{
private:
inta;
public:
test(){cout<
”constructor”<
ENDL;
test(inta){cout<
A<
test(consttest&_test)
a=_testa;
”copyconstructor”<
”destructor”<
intmain()
testA(3)
return0;
运行时输出的结果是
A)3B)constructor
destruclor
C)copyconstructor
D)3
dstructordestruclor
(28)若有如下类声明
classMyClass{
MyClass(){cout<
执行下列语句
MyClassa,b[2],*P[2];
以后,程序的输出结果是
A)11B)111C)1111D)11111
(29)有如下程序:
classpoint{
staticintnumber;
point(){number++;
~point(){number-;
imtpoint:
:
number=0;
voidmain(){
point*ptr;
printA,B;
point*ptr_point=newpoint{3};
ptr=ptr_point;
pointC;
POINT:
NUMBER<
delete[]ptr;
A)3B)4
C)6D)7<
/POINT:
<
(30)如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员,有如下程序,没有使用多态机制。
classBase{
inta,b;
Bace(intx,inty){a=x;
b=y;
Voidshow(){cout<
’,’<
B<
clsaaDerived:
publicBase{
intc,d;
Derived(intx,inty,intz,intm):
Base(x,y){c=z;
d=m;
C<
’,’D<
BaseB1(50,50),*pb;
DerivedDI(10,20,30,40);
Pb=&D1;
Pb->
show();
Return0;
A)10,20B)30,40C)20,30 D)50,50
(31)有如下程序:
classA
public;
A(inti){x=i;
Voidsispa(){cout<
X<
’,’;
Private:
intx;
classB;
publicA
B(inti):
A(i+10){x=i;
vouddispb(){dispa();
cout<
ENDL;
Intx;
Bb
(2);
b.dispb()
retum0:
A)10,2B)12,10 C)12,2D)2,2
(32)虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。
有如下程序:
classBase
virtualvoidf(){cout<
”f0+”;
voidg(){cout<
”g0+”;
classDerived:
publicBase
voidf(){cout<
”f+”;
”g+”;
Derivedd;
Base*p=&d;
p->
f();
p->
g();
return0:
A)f+g+B)f0+g+C)f+g0+D)f0+g0+
(33)下面程序中对一维坐标点类Point进行运算符重载
point(intvaI){x=val;
point&operator++(){x++;
retum*this;
printoperator++(int){pointold=*this,++(*this);
retumold;
intGetX()const{retumx;
intx;
pointa(10);
(++a).GetX();
A++.GETX();
retum();
编译和运行情况是
A)运行时输出1011B)运行时输出1111
C)运行时输出1112D)编译有错
(34)有如下程序:
charstr[100],*p;
”pleaseinputastring:
”;
cin>
str;
p=str;
for(inti=0;
*p!
=”\0”;
p++,i++);
i<
retum0;
运行这个程序时,若输入字符串为
abcdefgabcd
则输出结果是
A)7B)12 C)13 D)100
(35)有如下程序:
:
usingnamespacestd:
classSample
friendlongfun(Samples);
Sample(longa){x=a;
longx;
longfun(Samples)
if(s.x<
2)retum1;
retums.x*fun(Sample(s.x-a));
intsum=0
6;
i++){sum+=fun(Sample(i);
)}
SUM;
A)120 B)16 C)154 D)34
二、填空题(每空2分,共30分)
请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
(1)在深度为7的满二叉树中,度为2的结点个数为【1】。
(2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于【2】测试。
(3)在数据库系统中,实现各种数据管理体制功能的核心软件称为【3】。
(4)软件生命周期可分为多个阶段,一般分为定义阶段、开发和维护阶段。
编码和测试属于【4】阶段。
(5)在结构化分析使用的数据流图(DFD)中,利用【5】对其中的图形元素进行确切解释。
(6)C++中只有两个逻辑常量:
true和【6】。
(7)若要访问指针变量p所指向的数据,应使用表达式【7】。
(8)已知一个函数的原型是:
intfn(doublex);
若要以5.27为实参调用该函数,应使用表达式【8】。
(9)有如下定义:
classMA{
intvalue;
MA(intn=0):
valut(n){}
MA*ta,tb;
其中MA类的对象名标识符是【9】。
(10)如下类定义中包含了构造函数和拷贝数的原型声明请在横线处写正确的内容,使拷贝构造函数的声明完整。
ClassmyClass{
Intdata:
Public:
MyClass(intvalue);
//构造函数
MyClass(const【10】anotherObject);
//拷贝构造函数
(11)用来派生新类的称为【11】,而派生出的新类称为它的子类或派生类。
(12)有如下程序:
clsaaCA{
CAD{cout<
A’;
classCB;
privateCA{
CB(){cout<
B’;
intmain(){cout<
intmain(){
CAa;
CBb;
这个程序的输出结果是【12】。
(13)若将一个二元运算符重载为类的成员函数,其形参个数应该是【13】个。
(14)有如下程序:
classDA{
intk;
DA(intx=1):
k(x){}
~DA(){cout<
DAd[]={DA(3),DA(3),DA(3)};
DA*p=newDA[2];
delete[]p;
这个程序的输出结果是【14】。
(15)C++语言中的多态性分为编译时的多态性和【15】时的多态性。
2007年4月计算机等级考试C++考试答案
选择题:
1-5BDACD6-10CABCA11-15BADAC16-20BCDBA21-25CCCCA26-30CDBDA30-35CBBBC
填空:
1、63
2、黑盒
3、DBMS
4、开发
5、数据字典
6、false
7、*P
8、fn(5.27)
9、tb
10、myclass&
11、基类
12、AAB
13、1个
14、11333
15、运行
2009年9月全国计算机等级考试二级二级C++笔试试卷
一、选择题(
(1)-(10)、(21)-(40)每题2分,(11)-(20)每题1分,共70分)
(1)下列数据结构中,属于非线性结构的是
A)循环队列
B)带链队列
C)二叉树
D)带链栈
(2)下列数据结果中,能够按照“先进后出”原则存取数据的是
B)栈
C)队列
D)二叉树
(3)对于循环队列,下列叙述中正确的是
A)队头指针是固定不变的
B)队头指针一定大于队尾指针
C)队头指针一定小于队尾指针
D)队头指针可以大于队尾指针,也可以小于队尾指针
(4)算法的空间复杂度是指
A)算法在执行过程中所需要的计算机存储空间
B)算法所处理的数据量
C)算法程序中的语句或指令条数
D)算法在执行过程中所需要的临时工作单元数
(5)软件设计中划分模块的一个准则是
A)低内聚低耦合
B)高内聚低耦合
C)低内聚高耦合
D)高内聚高耦合
(6)下列选项中不属于结构化程序设计原则的是
A)可封装
D)自顶向下
C)模块化
D)逐步求精
#include<
iostream>
classToy{
Toy(char*_n){strcpy(name,_n);
count++;
~Toy(){count--;
}
char*GetName(){returnname;
staticintgetCount(){returncount;
charname[10];
staticintcount;
intToy:
count=0;
intmail(){
Toyt1(“Snoopy”),t2(“Mickey”),t3(“Barbie”);
t1.getCount()<
endl;
return0;
运行时的输出结果是
A)1 B)2 C)3 D)运行时出错
(28)有如下程序
classA{
A(inti):
rl(i){}
voidprint(){cout<
’e’<
r1<
’-‘;
voidprint()const{cout<
’C’<
rl*rl<
intrl;
Aal
(2);
constAa2(4);
Al.print();
a2.print();
A)运行时出错 B)E2-C16- C)C4-C16- D)E2-E4-
(11)已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则
A)FA必须定义在FB之前
B)FB必须定义在FA之前
C)若FA定义在FB之后,则FA的原型必须出现在FB的定义之前
D)若FB定义在FA之后,则FB的原型必须出现在FA的定义之前
(12)有如下两个类定义
classAA{};
classBB{
AAv1,*v2;
BBv3;
Int*v4;
其中有一个成员变量的定义是错误的,这个变量是
A)v1 B)v2 C)v3 D)v4
(13)有如下类定义:
classXX{
intxdata;
XX(intn=0):
xdata(n){}
classYY:
publicXX{
intydata;
YY(intm=0,intn=0):
XX(m),ydata(n){}
YY类的对象