计算机等级考试二级C++真题.docx

上传人:b****5 文档编号:6652503 上传时间:2023-01-08 格式:DOCX 页数:16 大小:19.85KB
下载 相关 举报
计算机等级考试二级C++真题.docx_第1页
第1页 / 共16页
计算机等级考试二级C++真题.docx_第2页
第2页 / 共16页
计算机等级考试二级C++真题.docx_第3页
第3页 / 共16页
计算机等级考试二级C++真题.docx_第4页
第4页 / 共16页
计算机等级考试二级C++真题.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

计算机等级考试二级C++真题.docx

《计算机等级考试二级C++真题.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C++真题.docx(16页珍藏版)》请在冰豆网上搜索。

计算机等级考试二级C++真题.docx

计算机等级考试二级C++真题

全国计算机等级考试二级

C++语言程序设计

2007年

4月笔试试卷

(考试时间

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)对下列二叉树

进行前序遍历的结果为

A)DYBEAFCZXB)YDEBFZXCA

C)ABDYECFXZD)ABCDEFXYZ

(7)某二叉树中有

n个度为

2的结点,则该二叉树中的叶子结点数为

A)n+lB)n-1

C)2nD)可

2

(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是()

A)并B)交

C)投影D)笛卡儿乘积

(9)在

E-R图中,用来表示实体之间联系的图形是()

A)矩形B)椭圆形

C)菱形D)平行四边形

(10)下列叙述中错误的是()

A)在数据库系统中,数据的物理结构必须与逻辑结构一致

B)数据库技术的根本目标是要解决数据的共享问题

C)数据库设计是指在已有数据库管理系统的基础上建立数据库

D)数据库系统需要操作系统的支持

(11)为了取代

C中带参数的宏,在

C++中使用

A)重载函数B)内联函数

C)递归函数D)友元函数

(12)下列关于类定义的说法中,正确的是

A)类定义中包括数据成员和函数成员的声明B)类成员的缺省访问权限是保护的

C)数据成员必须被声明为私有的D)成员函数只能在类体外进行定义

(13)下列关于派生类构造函数和析构函数的说法中,错误的是

A)派生类的构造函数会隐含调用基类的构造函数

B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数

C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数

D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数

(14)通过运算符重载,可以改变运算符原有的

A)操作数类型

C)优先级

(15)有如下函数模板:

templateTsquare(Tx){returnx*x;}

其中

T是

A)函数形参

C)模板形参

(16)使用输入输出操作符

setw,可以控制

A)输出精度

C)对齐方式

(17)下列字符串中,不可以用作

C一标识符的是

A)y_2006

C)Return

(18)字面常量

42、4.2、42L的数据类型分别是

A)long,double,int

C)

int,double,long

(19)执行下列语句段后,输出字符“

*”的个数是

for(inti=50;i>1:

--i)cout<<'*';

A)48

C)50

(20)有如下程序段:

inti=0,j=1;

int&r=i;//①

r=j;//②

int*p=&i;//③

*p=&r;//④

其中会产生编译错误的语句是

A)④

C)②

(21)有如下函数定义:

voidfunc(inta,int&b){a++;b++;}

若执行代码段:

intx=0,y=1;

func(x,y);

则变量

x和

y的值分别是

A)0和

1

C)0和

2

(22)有如下程序:

#include

usingnamespacestd;

classA{

public:

staticinta;

voidinit(){a=1;}

A(inta=2){int();a++;}

};

intA:

:

a=0;

Aobj;

intmain()

{

cout<

return0;

B)操作数个数

D)结合性

B)函数实参

D)模板实参

B)输出宽度

D)填充字符

B)___TEST_H

D)switch

B)long,float,int

D)

int,float,long

B)49

D)51

B)③

D)①

B)1和

1

D)1和

2

j

}

运行时输出的结果是

A)0B)1

C)2D)3

(23)下列有关继承和派生的叙述中,正确的是

A)派生类不能访问基类的保护成员

B)作为虚基类的类不能被实例化

C)派生类应当向基类的构造函数传递参数

D)虚函数必须在派生类中重新实现

(24)下列运算符中,不能被重载的是

A)&&B)!

=

C).D)++

(25)下列函数模版中的定义中,合法的是

A)templateTabs(Tx){returnx<0?

–x:

x;}

B)templateclassTabs(Tx){returnx<0?

–x:

x;}

C)templateTabs(Tx){returnx<0?

–x:

x;}

D)tempIateTabs(Tx){returnx<0?

-x:

x;〕

(26)在语句

cin>>data;中,cin是

A)C++的关键字B)类名

C)对象名D)函数名

(27)有如下程序:

#include

usingnamespacestd;

classtest{

private:

inta;

public:

test0{cout+"constructor"+endl;}

test(inta){cout+a+endl;}

test(consttest&test)

{

a=test.a;

cout+,,copyconstructor"+endl;

}

test(){Cout+"destructor"+endl;}

};

intmain()

{

testA(3);

return0;

}

运行时输出的结果是

A)3

B)constructor

destructor

C)copyconstructor

destructor

D)3

destructor

(28)若有如下类声明

classMyClass{

public:

MyClass(){cout<<1;}

};

执行下列语句

MyClassa,b[2],*p[2]:

以后,程序的输出结果是

A)11B)111

C)1111D)11111

(29)有如下程序:

#include

usingnamespacestd;

classPoint{

public:

staticintnumber;

public:

Pointo{number++;}

~Point(){number--;}

};

intPoint:

:

number--0;

voidmainO{

Point*ptr;

PointA,B;

{

Point*ptr_point=newPoint[3];

ptx=ptr_point;

}

PointC;

Gout+Point:

:

number+endl;

delete[]ptr;

}

运行时输出的结果是

A)3B)4

C)6D)7

(30)如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。

有如

下程序,没有使用多态机制。

#include

usingnamespacestd;

classBase{

inta,b;

public:

Base(intx,inty){a=x;b=y;}

voidshow(){cout<

};

classDerived:

publicBase{

intc,d;

public:

Derived(intx,inty,intz,intm):

Base(x,y){c=z;d=m;}

voidshow(){cout<

};

intmain()

{

BaseB1(50,50),*pb;

DerivedD1(10,20,30,40);

pb=&D1;

return0;

return();

}

运行时输出的结果是

A)10,20

C)20,30

(31)有如下程序:

#include

usingnamespacestd;

classA

{

public:

A(inti){x=i;}

voiddispa(){cout<

private:

intx;

};

classB:

publicA

{

public:

B(inti):

A(i+10){x=i;}

voiddispb(){dispa();cout<

B)30,40

D)50,50

private

intx;

};

intmain()

{

Bb

(2);

b.dispb();

return0;

}

运行时输出的结果是

A)10,2B)12,10

C)12,2D)2,2

(32)虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的

是指针所指的实际对象的虚函数。

而非虚函数不支持多态调用。

有如下程序:

#include

usingnamespacestd;

classBase

{

public:

virtualvoidf(){cout<<”f0+”;}

voidg(){cout<<”g0+”;}

};

classDerived:

publicBase

{

public:

voidf(){cout<<”f+”;}

voidgo{cout<<,”g+”;}

};

intmain

{

Derivedd;

Base*p=&d;

p->f();P->g();

return0;

}

运行时输出的结果是

A)f+g+

C)f+g0+

(33)下面程序中对一维坐标点类

Point进行运算符重载

#include

usingnamespacestd;

classPoint{

public:

Point(intval){x=val;}

Point&operator++(){x++;return*this;}

B)f0+g+

D)f0+g0+

Pointoperator++(int){Pointold=*this;++(*this);returnold;}

IntGetX()const{returnx;}

private:

intx;

};

intmain()

{

Pointa(10);

cout<<(++a).GetX();

cout<

return0;

}

编译和运行情况是

A)运行时输出

1011B)运行时输出

1111

C)运行时输出

1112D)编译有错

(34)有如下程序:

#include

usingnamespacestd;

intmain()

{

charstr[100],*p;

cout<<"Pleaseinputastring:

”;

cin;str;

p=str;

for(inti=0;*p!

=’\0’;p++,i++);

cout<<“I”<

return0;

}

运行这个程序时,若输入字符串为

abcdefgabcd

则输出结果是

A)7B)12

C)13D)100

(35)有如下程序:

#include

usingnamespacestd;

classSample

{

friendlongfun(Samples);

public:

Sample(longa){x=a;}

private:

longx;

};

longfun(Samples)

{

if(s.x<2)return1:

returns.x*fun(Sample(s.x-1)):

}

intmain()

{

intsum=0;

for(inti=0;i<6;i++){sum+=fun(Sample(i));}

cout<

return0;

}

运行时输出的结果是

A)120B)16

C)154D)34

二、填空题(每空

2分,共30分)

(1)在深度为7的满二叉树中,度为2的结点个数为___________。

(2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于___________测试。

(3)在数据库系统中,实现各种数据管理功能的核心软件称为___________。

(4)软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。

编码和测试属于___________阶段。

(5)在结构化分析使用的数据流图(DFD)中,利用___________对其中的图形元素进行确切解释。

(6)C++中只有两个逻辑常量:

true和___________。

(7)若要访问指针变量p所指向的数据,应使用表达式___________。

(8)已知一个函数的原型是:

intfn(doublea);

若要以5.27为实参调用该函数,应使用表达式___________。

(9)有如下定义:

classMA{

intvalue;

public:

MA(intn=0):

value(n){}

};

MA*ta,tb;

其中MA类的对象名标识符是___________。

(10)如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函

明完整。

classmyClass{

private:

intdata;

public:

myClass(intvalue);//构造函数

myClass(const___________anotherObject);//拷贝构造函数

}

(11)用来派生新类的类称为___________,而派生出的新类称为它的子类或派生类。

(12)有如下程序:

#include

usingnamespacestd;

classCA{

public:

CA(){cout+'A';}

};

classCB:

privateCA{

public:

CB(){cout<<’B’;}

};

intmain(){

CAa;

CBb;

return0;

}

这个程序的输出结果是___________。

(13)若将一个二元运算符重载为类的成员函数,其形参个数应该是___________个。

(14)有如下程序:

#include

usingnamespacestd;

classDA{

intk;

public:

DA(intx=1):

k(x){}

~DA(){cout<

};

intmain(){

DAd[]={DA(3),DA(3),DA(3)};

DA*p=newDA[2];

delete[]p;

return();

}

这个程序的输出结果是___________。

(15)C++语言中的多态性分为编译时的多态性和___________时的多态性。

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

当前位置:首页 > 医药卫生 > 基础医学

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

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