计算机等级考试C++考试及答案.docx

上传人:b****6 文档编号:4021990 上传时间:2022-11-27 格式:DOCX 页数:10 大小:20.34KB
下载 相关 举报
计算机等级考试C++考试及答案.docx_第1页
第1页 / 共10页
计算机等级考试C++考试及答案.docx_第2页
第2页 / 共10页
计算机等级考试C++考试及答案.docx_第3页
第3页 / 共10页
计算机等级考试C++考试及答案.docx_第4页
第4页 / 共10页
计算机等级考试C++考试及答案.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

计算机等级考试C++考试及答案.docx

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

计算机等级考试C++考试及答案.docx

计算机等级考试C++考试及答案

2007年4月计算机等级考试C++考试及答案

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

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(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)YDEBFZXCAC)ABDYECFXZD)ABCDEFXYZ

(7)某二叉树中有n个度为2的结点则该二叉树中的叶子结点数为

A)n+1B)n-1C)2nD)n/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)操作数类型B)操作数个数C)优先级D)结合性

(15)有如下函数模板:

templateTsouare(Tx)(retumx*x;)

基中T是

A)函数形参B)函数实参C)模板形参D)模板实参

(16)使用输入输出操作符setw,可以控制

A)输出精度B)输出宽度C)对齐方式D)填充字符

(17)下列字符串中,不可以用作C++标识符的是

A)y_2006B)____TEST__HC)RetumD)switch

(18)字面常量42、4.2、42L的数据类型分别是

A)long、doubleintB)long、float、int

C)int、double、longD)int、float、long

(19)执行下列语句段后,输出字符“*”的个数是

for(inti=50;I>1;—i)cout<<”*”

A)48B)49C)50D)51

(20)有如下程序段

inti=0,j=1;

int&r=i;//①

r=j;//②

int*p=&i;//③

*p=&r;//④

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

A)④B)③C)②D)①

(21)有如下函数定义:

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

若执行代码段:

intx=0,y=1

func(x,y);

则变量x和y值分别是

A)0和1B)1和1C)0和2D)1和2

(22)有如下程序:

#include

usingnamespacestd;

classA{

public

staticinta;

voidinit(){a=1;}

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

};

intA:

;a=0

Aobj;

Intmain()

{

cout<

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<0-x;x;}

D)templateTabs(Tx){returmx<0-x;x;}

(26)在语句cin>>data;中,cin是

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

C)对象名D)函数名

(27)有如下程序:

#include

usingnamespacestd;

classtest{

private:

inta;

public:

test(){cout<<”constructor”<

test(inta){cout<

test(consttest&_test)

{

a=_testa;

cout<<”copyconstructor”<

}

test(){cout<<”destructor”<

};

intmain()

}

testA(3)

return0;

运行时输出的结果是

A)3

B)constructor

destruclor

C)copyconstructor

D)3

dstructordestruclor

(28)若有如下类声明

classMyClass{

public:

MyClass(){cout<<1;}

};

执行下列语句

MyClassa,b[2],*P[2];

以后,程序的输出结果是

A)11B)111C)1111D11111

(29)有如下程序:

#include

usingnamespacestd;

classpoint{

public:

staticintnumber;

public:

point(){number++;

~point(){number-;}

};

imtpoint:

:

number=0;

voidmain(){

point*ptr;

printA,B;

{

point*ptr_point=newpoint{3};

ptr=ptr_point;

}

pointC;

cout<

:

number<

delete[]ptr;

}

运行时输出的结果是

A)3B)4C)6D)7

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

#include

usingnamespacestd;

classBase{

inta,b;

public:

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

Voidshow(){cout<

}

clsaaDerived:

publicBase{

intc,d;

public:

Derived(intx,inty,intz,intm):

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

Voidshow(){cout<

};

intmain()

{

BaseB1(50,50),*pb;

DerivedDI(10,20,30,40);

Pb=&D1;

Pb->show();

Return0;

}

运行时输出的结果是

A)10,20B)30,40C)20,30D)50,50

(31)有如下程序:

#include

usingnamespacestd;

classA

{

public;

A(inti){x=i;}

Voidsispa(){cout<

Private:

intx;

};

classB;publicA

{

public;

B(inti):

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

vouddispb(){dispa();cout<

Private:

Intx;

};

intmain()

{

Bb

(2);

b.dispb()

retum0:

}

运行时输出的结果是

A)10,2B)12,10C)12,2D)2,2

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

有如下程序:

#include

usingnamespacestd;

classBase

{

public:

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

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

};

classDerived:

publicBase

{

public:

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

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

};

intmain()

{

Derivedd;

Base*p=&d;

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

return0:

}

运行时输出的结果是

A)f+g+B)f0+g+C)f+g0+D)f0+g0+

(33)下面程序中对一维坐标点类Point进行运算符重载

#include

usingnamespacestd;

classpoint{

public:

point(intvaI){x=val;}

point&operator++(){x++;retum*this;}

printoperator++(int){pointold=*this,++(*this);retumold;}

intGetX()const{retumx;}

private:

intx;

};

intmain()

{

pointa(10);

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

cout<

retum();

}

编译和运行情况是

A)运行时输出1011

B)运行时输出1111

C)运行时输出1112

D)编译有错

(34)有如下程序:

#include

usingnamespacestd;

intmain()

{

charstr[100],*p;

cout<<”pleaseinputastring:

”;

cin>>str;

p=str;

for(inti=0;*p!

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

cout<

retum0;

}

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

abcdefgabcd

则输出结果是

A)7B)12C)13D)100

(35)有如下程序:

#include

usingnamespacestd:

classSample

{

friendlongfun(Samples);

public:

Sample(longa){x=a;}

Private:

longx;

};

longfun(Samples)

{

if(s.x<2)retum1;

retums.x*fun(Sample(s.x-a));

}

intmain()

{

intsum=0

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

cout<

retum0;

}

运行时输出的结果是

A)120B)16C)154D)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;

public:

MA(intn=0):

valut(n){}

};

MA*ta,tb;

其中MA类的对象名标识符是【9】。

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

ClassmyClass{

Private:

Intdata:

Public:

MyClass(intvalue);//构造函数

MyClass(const【10】anotherObject);//拷贝构造函数

}

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

(12)有如下程序:

#include

usingnamespacestd;

clsaaCA{

public:

CAD{cout<

};

classCB;privateCA{

public;

CB(){cout<

};

intmain(){cout<

};

intmain(){

CAa;

CBb;

retum0;

}

这个程序的输出结果是【12】。

(13)若将一个二元运算符重载为类的成员函数,其形参个数应该是【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;

return0;

}

这个程序的输出结果是【14】。

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

 

2007年4月计算机等级考试C++考试答案

选择题:

1-5BDACD

6-10CABCA

11-15BADAC

16-20BCDBA

21-25CCCCA

26-30CDBDA

30-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、运行

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

当前位置:首页 > 初中教育 > 政史地

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

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