全国计算机等级考试真题演练(C++笔试部分)_第1页
全国计算机等级考试真题演练(C++笔试部分)_第2页
全国计算机等级考试真题演练(C++笔试部分)_第3页
全国计算机等级考试真题演练(C++笔试部分)_第4页
全国计算机等级考试真题演练(C++笔试部分)_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机等级考试

C++程序设计培训

第四部分

9完全讲解,深入剖析,全面覆盖所有考点

。讲解通俗易懂,由浅入深

。所有试题源自考试题库,命中率高

。真题备战,有的放矢

全国计算机等级考试一一二级C++真题演练

2004年9月考试真题

-、选择题(⑴〜(35)每小题2分,共70分)

下列各题A)、B)、C)、D)四个选项中,只有•个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷

上不得分。

(1)下面叙述正确的是

A)算法的执行效率与数据的存储结构无关

B)算法的空间复杂度是指算法程序中指令(或语句)的条数

C)算法的有穷性是指算法必须能在执行有限个步骤之后终止

D)以上三种描述都不对

(2)以下数据结构中不属于线性数据结构的是

A)队列B)线性表C)二叉树D)栈

(3)在一棵二叉树上第5层的结点数最多是

A)8B)16032D)15

(4)下面描述中,符合结构化程序设计风格的是

A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑

B)模块只有一个入口,可以有多个出口

C)注重提高程序的执行效率

D)不使用goto语句

(5)下面概念中,不属于面向对象方法的是

A)对象B)继承C)类D)过程调用

(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是

A)可行性分析B)需求分析C)详细设计D)程序编码

(7)在软件开发中,下面任务不属于设计阶段的是

A)数据结构设计B)给出系统模块结构C)定义模块算法D)定义需求并建立系统模型

(8)数据库系统的核心是

A)数据模型C)软件工具B)数据库管理系统D)数据库

(9)下列叙述中正确的是

A)数据库系统是个独立的系统,不需要操作系统的支持

B)数据库设计是指设计数据库管理系统

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

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

(10)卜.列模式中,能够给出数据库物理存储结构与物理存取方法的是

A)内模式B)外模式C)概念模式D)逻辑模式

(11)关于面向对象的程序设计方法,下列说法正确的是

A)“封装性”指的是将不同类型的相关数据组合在一起,作为一个整体进行处理

B)“多态性”指的是对象的状态会根据运行时要求自动变化

C)基类的私有成员在派生类的对象中不可访问,也不占内存空间

D)在面向对象的程序设计中,结构化程序设计方法仍有着重要作用

(12)判断字符型变量ch是否为大写英文字母,应使用表达式

A)ch>='A'&ch<=7:B)ch〈='A'||ch>='Z'C)'A'〈=ch<='Z'1))ch>='A'&&ch<=1:

(13)已知下列语句中的x和y都是int型变量,其中错误的语句

A)x=y++;B)x=++y;C)(x+y)++;D)++x=y;

(14)执行语句序列

intn;case3:

cin>>n;case4:cout«’2';break;

switch(n)default:cout«’3';

case1:

case2:cout«T';

时,若键盘输入1,则屏幕显示

A)1B)203D)12

(15)卜列程序的输出结果是

^include<iostream>

usingnamespacestd;

intmainO

chara[]="Hello,World”;

char*ptr=a;

while(*ptr)

if(*ptr>=*aJ&&*ptr<='z')

cout<<char(*ptr+'A'-'a');

elsecout«*ptr;

ptr++;

}

return0;

}

A)HELLO,WORLDB)Hello,WorldC)hELLO,wORLDD)hello,world

(16)已知:intm=10:在下列定义引用的语句中,正确的是

A)int&x=m;B)inty—m;C)int&z;D)int&t=&m;

(17)下列函数原型声明中错误的是

A)voidFun(intx=0,inty=0);B)voidFun(intx,inty);

C)voidFun(intx,inty=0);D)voldFun(intx=0,inty);

(18)已知程序中已经定义了函数test,其原型是inttest(int,int,int);,则下列重载形式中正确的是

A)chartest(int,int,int);B)doubletest(int,int,double);

C)inttest(int,int,int=0);D)floattest(int,int,float=3.5F);

(19)有以下程序

#include<iostream>std::cout«i«,,,;

inti=0;)

voidfun()intmain()

staticinti=1;funO;fun();

std::cout«i++«,,y;return0;

))

程序执行后的输出结果是

A)l,2,1,2,B)1,2,2,3,C)2,0,3,0,D)1,0,2,0,

(20)已知函数f的原型是:voidf(int*a,long&b);变量vl、v2的定义是:intvl;longv2;,正确的调用语句是

A)f(vl,&v2);BI)f(vl,v2);0f(&vl,v2);D)f(&vl,&v2);

(21)有以下类定义

classMyClass

public:

MyClassO{cout«l;}

};

则执行语句MyClassa,b[2],*p[2];后,程序的输出结果是

A)llB)lll01111D)lllll

(22)关于友元,下列说法错误的是

A)如果类A是类B的友元,那么类B也是类A的友元

B)如果函数fun。被说明为类A的友元,那么在fun()中可以访问类A的私有成员

C)友元关系不能被继承

D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元

(23)关于动态存储分配,下列说法正确的是

A)new和delete是C++语言中专门用于动态内存分配和释放的函数

B)动态分配的内存空间也可以被初始化

C)当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间

【))当动态分配内存失败时,系统会立刻崩溃,因此•定要慎用new

(24)有以下程序

#include<iostream>MyClassfun(MyClassp)

usingnamespacestd;{

classMyClassMyClasstemp(p);

{returntemp;

public:)

MyClass(intn){number=n;}intmain()

〃拷贝构造函数{

MyClass(MyClass&other){number=other.number;}MyClassobjl(10),obj2(0);

^MyClassO{}MyClassobj3(objl);

private:obj2=fun(obj3);

intnumber;return0;

};)

程序执行时,MyClass类的拷贝构造函数被调用的次数是

A)5B)4C)3D)2

(25)在公有派生的情况下,派生类中定义的成员函数只能访问原基类的

A)公有成员和私有成员B)私有成员和保护成员C)公有成员和保护成员D)私有成员、保护成员和公有成员

(26)在C++中用来实现运行时多态性的是

A)重载函数B)析构函数C)构造函数D)虚函数

(27)一个类可以同时继承多个类,称为多继承。下列关于多继承和虚基类的表述中,错误的是

A)每个派生类的构造函数都要为虚基类构造函数提供实参

B)多继承时有可能出现对基类成员访问的二义性问题

C)使用虚基类可以解决二义性问题并实现运行时的多态性

D)建立最派生类对象时,虚基类的构造函数会首先被调用

(28)在个类体的下列声明中,正确的纯虚函数声明是

A)virtualvoidvf()=0;B)voidvf(int)=0;C)virtualintvf(int);D)virtualvoidvf(int){}

(29)在下面的运算符重载函数的原型中,错误的是

A)Volumeoperator-(double,double);B)doubleVolume::operator-(double);

C)VolumeVolume::operator-(Volume);D)Volumeoperator-(Volume,Volume);

(30)卜列是模板声明的开始部分,其中正确的是

A)template<T>B)template<classT1,T2>

C)template<classTl,classT2>D)tempiate<classTl;classT2>

(31)执行语句序列

ofstreamoutfile("DATA.DAT");

if(...)cout«"0K〃;elsecout«"FAIL";

后,如果文件打开成功显示“OK”,否则就显示“FZM。由此可知,上面if语句的...

处的表达式应是

A)outfile.fai1()或outfileB)outfile.good()或!outfi1e

C)outfile.goodO或outfileD)outfile.fail()或!outfile

(32)C++流中重载的运算符》是个()

A)用于输出操作的作成员函数B)用于输入操作的非成员函数

C)用于输出操作的成员函数D)用于输入操作的成员函数

(33)有以下类定义

classPoint{

public:

Point(intx=0,inty=0){_.x=x;y=y;}

voidMove(intxOff,intyOff)

{_x+=xOff;y+=yOff;}

voidPrint0const

{cout<<'('«_x«*,J<<_y<<')'«endl;}

private:

int_x,_y;

);

下列语句中会发生编译错误的是

A)Pointpt;pt.Print();B)constPointpt;pt.Print();

C)Pointpt;pt.Moved,2);D)constPointpt;pt.Move(1,2);

(34)有以下类定义

classMyClass

(

private:

intid;

chargender,

char*phone;

publie:

MyClass0:id(0),gender),phone(NULL){}

MyClass(intno,charge=',char*ph=NULL)

{id=no;gende=ge;phone=ph;}

};

下列类对象定义语句中错误的是

A)MyClassmyObj;B)MyClassmy0bj(ll,);

C)MyClassmyObj(12,'in');D)MyClassmy0bj(12);

(35)有以下程序

#include<iostream>{returnComplex(re+c.re,im+c.im);)

usingnamespacestd;private:

classComplexdoublere,im;

{};

public:intmain()

Complex(doubler=0,doublei=0):re(r),im(i)(

{)Complexa=Complex(1,1)+Complex(5);

doublereal()const{returnre;}cout<<a.real()«'+'«a.imagO<<'i'«endl;

doubleimagOconst{returnim;}return0;

Complexoperator+(Complexc)const)

程序执行后的输出结果是

A)6+6iB)6+1iC)l+6iD)1+li

二、填空题(每空2分,共30分)

请将每一个空的正确答案写在答题卜[1]-[15]序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须拼写

完整。

(1)算法的复杂度主要包括[1]时间复杂度和空间复杂度。

⑵数据的逻辑结构在计算机存储空间中的存放形式称为数据的[2]存储结构或物理结构或物理存储结构。

(3)若按功能划分,软件测试的方法通常分为白盒测试方法和[3]黑盒或黑箱测试方法。

(4)如果一个工人可管理多个设备,而一个设备只被一个工人管理,则实体“工人”与实体“设备”之间存在[4]一

对多或1对多或I:M或I:N(其中M、N大小写均可)的联系。

⑸关系数据库管理系统能实现的专门关系运算包括选择、连接和[5]投影。

(6)设有定义语句:inta=12;,则表达式a*=2+3的运算结果是[6]60.

⑺从实现的角度划分,C++所支持的两种多态性分别是[7]编译时的多态性和运行时的多态性。

(8)将一个函数声明为•个类的友元函数必须使用关键字[8]friend。

(9)请按下面注释的提示,将类B的构造函数定义补充完整。

classA

{inta;

public:

A(intaa=0)(a=aa;}

);

classB:publicA(

intb;

Ac;

public:

〃用aa初始化基类A,用aa+1初始化类对象成员c

B(intaa):[9]A(aa),c(aa+1)或c(aa+l),A(aa){b=aa+2;}

};

(10)下列程序的输出结果是[10]7o

#include<iostream>

usingnamespacestd;

intmain()

inti=5;

int&r=i;r=7;

cout<<i«endl;

return0;}

(11)下列程序的输出结果是[11]042o

^include<iostream>

usingnamespacestd;cout«Test::CountO«);

classTest{Testtl,t2;

public:Test*pT3=newTest;

Test0{cnt++;}Test*pT4=newTest;

~Test(){ent—;}cout«Test::CountO<<'’;

staticintCount(){returnent;}deletepT4;

private:deletepT3;

staticintent;cout<<Test::Count()<<endl;

};return0;

intTest::cnt=0;)

intmain()

(12)下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。(注:阶乘的定义是n!=n*(nT)*...*2*l)

unsignedfact(unsignedn)

(

if(n<=1)

return1;

return[12]n*fact(n-l);

)

(13)下列程序的输出结果是[13]3,3.14o

#include<iostream>

usingnamespacestd;

tempiate<tytenameT>

Tfun(Ta,Tb){return(a<=b)?:b;}

intmainO

{cout«fun(3,6)«fun(3.14F,6.28F)«endl;

return0;}

(14)与成员访问表达式p->name等价的表达式是[14](*p).name。

(15)下列程序的输出结果是[15]25o

4include<iostream>classderiveB:publicbase[

usingnamespacestd;public:

classbase{deriveB(intx):base(x){}

public:voidset(intm){n+=m;cout«n«';}

intn;);

base(intx){n=x;}intmain()

virtualvoidset(intm){n=m:cout<<n<<>{deriveAdl(1);

';}deriveBd2(3);

};base*pbase;

classderiveA:publicbase{phase=&dl;

public:pbase->set(1);

deriveA(intx):base(x){)phase=&d2;

voidset(mtm){n+=m;cout«n<<,;}pbase->set(2);

);return0;}

佳恒计算机教育培训中心

2005年9月C++笔试试题

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

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上

不得分。

(1)下列叙述中正确的是C

A)程序设计就是编制程序B)程序的测试必须由程序员自己去完成

C)程序经调试改错后还应进行再测试D)程序经调试改错后不必进行再测试

(2)卜.列数据结构中,能用二分法进行查找的是A

A)顺序存储的有序线性表B)线性链表C)二叉链表D)有序线性链表

(3)下列关于栈的描述正确的是C

A)在栈中只能插入元素而不能删除元素

B)在栈中只能删除元素而不能插入元素

C)栈是特殊的线性表,只能在一端插入或删除元素

D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素

(4)下列叙述中正确的是D

A)一个逻辑数据结构只能有一种存储结构

B)数据的逻辑结构属于线性结构,存储结构属于非线性结构

C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率

D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率

(5)下列描述中正确的是C

A)软件工程只是解决软件项目的管理问题

B)软件工程主要解决软件产品的生产率问题

C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

D)软件工程只是解决软件开发中的技术问题

(6)在软件设计中,不属于过程设计工具的是D

A)PDL(过程设计语言)B)PAD图C)N-S图D)DFD图

(7)下列叙述中正确的是A

A)软件交付使用后还需要进行维护

B)软件一旦交付使用就不需要再进行维护

C)软件交付使用后其生命周期就结束

D)软件维护是指修复程序中被破坏的指令

(8)数据库设计的根本目标是要解决A

A)数据共享问题B)数据安全问题C)大量数据存储问题D)简化数据维护

(9)设有如下关系表:

(10)数据库系统的核心是B

A)数据模型B)数据库管理系统C)数据库D)数据库管理员

(II)卜列关于C++函数的叙述中,正确的是C

8

佳恒计算机教育培训中心

A)每个函数至少要具有一个参数B)每个函数都必须返回一个值

C)函数在被调用之前必须先声明D)函数不能自己调用自己

(12)卜.列关于类和对象的叙述中,错误的是A

A)一个类只能有一个对象B)对象是类的具体实例

C)类是对某一类对象的抽象D)类和对象的关系是一种数据类型与变量的关系

(13)在C++中,用于实现运行时多态性的是D

A)内联函数B)重载函数C)模板函数D)虚函数

(14)下列关于运算符重载的叙述中,正确的是B

A)通过运算符重载,可以定义新的运算符

B)有的运算符只能作为成员函数重载

C)若重载运算符+,则相应的运算符函数名是+

D)重载一个二元运算符时,必须声明两个形参

(15)下列关于模板的叙述中,错误的是C

A)模板声明中的第一个符号总是关键字template

B)在模板声明中用<和>括起来的部分是模板的形参表

C)类模板不能有数据成员

D)在一定条件下函数模板的实参可以省略

<16)对于语句cout<<x«endl;中的各个组成部分,下列错误的是D

A)“cout”是一个输出流对象B)"endl”的作用是输出回车换行

C)“x”是一个变量D)”称作提取运算符

(17)下列字符串中,正确的C++标识符是D

A)foo-1B)2bC)newD)_256

(18)已知枚举类型定义语句为:

enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};A

则下列叙述中错误的是

A)枚举常量NAME的值为1B)枚举常量NUMBER的值为1

C)枚举常量MINUS的值为6D)枚举常量PRINT的值为10

(19)执行语句序列

inti=0;while(i<25)i+=3;cout«i;

输出结果是C

A)24B)25C)27D)28

(20)要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30,50,-88,0和0,则下列定义语句中

错误的是A

A)intvectl]={30,50,-88[;B)intvect[]={30,50,-88,0,0);

C)intvect[5]={30,50,-88);D)intvect[5]={30.50,-88,0,0);

(21)有如下程序:

#includc

voidfun(int&x,inty){intt=x;x=y;y=t;)

intmain()

{inta[2]=(23,42);

fun(a[l],a[0]);

std::cout«a[0]«","«a[l]«std::endl;

return0;}

执行后的输出结果是B

A)42,42B)23,23C)23,42D)42,23

9

佳恒计算机教育培训中心

(22)有如下类声明:

classFoo{inibar;);

贝ijFoo类的成员bar是C

A)公有数据成员B)公有成员函数C)私有数据成员D)私有成员函数

(23)有如下类声明:

classMyBASE{

intk;

public:

voidset(intn){k=n;}

intget()const{returnk;)

1;

classMyDERIVED:protectedMyBASE{

protected:

intj;

public:

voidset(intm,intn){MyBASE::set(m);j=n;}

intget()const{returnMyBASE::get()+j;}

);

则类MyDERIVED中保护的数据成员和成员函数的个数是B

A)4B)3C)2D)1

(24)已知在一个类体中包含如卜.函数原型:VOLUMEoperator-(VOLUME)const;,卜・列关于这个函数的叙述中,错误的

是B

A)这是运算符-的重载运算符函数

B)这个函数所重载的运算符是一个一元运算符

C)这是一个成员函数

D)这个函数不改变类的任何数据成员的值

(25)有如F函数模板定义:

template

Tfunc(Tx,Ty){returnx*x+y*y;)

在下列对func的调用中,错误的是C

A)func(3,5);B)func(3.0,5.5);C)func(3,5.5);D)func<int>(3,5.5);

(26)有如下程序:

#include

usingnamespacestd;

intmain()

(cout.fillC*');

cout.width(6);

coutJilK,#,);

cout«123«endl;

return0;}

执行后的输出结果是A

A)###123B)123###C)***123D)123***

(27)在下列函数原型中,可以作为类AA构造函数的是D

A)voidAA(int);B)intAA();C)AA(int)const;D)AA(int);

(28)卜.列关于this指针的叙述中,正确的是D

10

佳恒计算机教育培训中心

A)任何与类相关的函数都有this指针B)类的成员函数都有this指针

C)类的友元函数都有this指针D)类的非静态成员函数才有this指针

(29)有如F程序:

#includestaticintn;

usingnamespacestd;J;

classlest{intTbst二n=1;

public:intmain()

Test(){n+=2;}{Test*p=newlest;

-Tbst(){n-=3;}deletep;

staticintgetNum(){returnn;}cout«"n="«Test::getNum()«endl;

private:return0;)

执行后的输出结果是A

A)n=0B)n=lC)n=2D)n=3

(30)有如下程序:

#includeclassC:publicA{

usingnamespacestd;Bb;

classA{public:

public:C(){cout«"C";)

A(){cout«"AH;)1;

);intmain(){Cobj;return0;)

classB{public:B(){cout«"B";)};

执行后的输出结果是D

A)CBAB)BACC)ACBD)ABC

(31)有如下类声明:

classXA{classXB:publicXA{

intx;inty;

public:public:

XA(intn){x=n;}XB(inta,intb);

1;

在构造函数XB的下列定义中,正确的是B

A)XB::XB(inta,intb):x(a),y(b){)B)XB::XB(inta,intb):XA(a),y(b){)

C)XB::XB(inta,intb):x(a),XB(b){}D)XB::XB(inta,intb):XA(a),XB(b){}

(32)有如下程序:

includeclassDERIVED:publicBASE{

usingnamespacestd;public:

classBASE{~DERIVED(){cout«"DERIVED";}

public:};

~BASE(){cout<v"BASE”;}intmain(){DERIVEDx;return0;}

);

执行后的输出结果是D

A)BASEB)DERIVEDC)BASEDERIVEDD)DERIVEDBASE

(33)在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的

是C

A)operator+有两个参数,operator*有两个参数B)operater+有两个参数,operator*有一个参数

II

佳恒计算机教育培训中心

C)operalor+有一个参数,operator*有两个参数D)operator+有一个参数,operalor*有一个参数

(34)卜.面关于C++流的叙述中,正确的是A

A)cin是一个输入流对象

B)可以用ifstream定义•个输出流对象

C)执行语句序列char*y="PQMN”;coutcvy;将输出字符串“PQMN”的地址

D)执行语句序列charx[80];cin.getline(x,80);时,若键入

Happynewyear

则x中的字符串是“Happy”

(35)有如卜.程序:

#include);

usingnamespacestd;intmain()

classAA{

AAa(5);

public:constAAb(6);

AA(intk):n(k){)cout«a,get()«b.get();

intget(){returnn;}return0;

intget()const{returnn+1;}

执行后的输出结果是B

A)55B)57C)75D)77

二、填空题(每空2分,共30分)

请将每一个空的正确答案写在答题卡[1】〜【15】序号的横线上,答在试卷上不得分。

(1)数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是【I】0

数据库系统

(2)算法复杂度主要包括时间复杂度和【2】复杂度。空间

(3)在进行模块测试时,耍为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中【3】的

作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。驱动模块

(4)一棵二叉树第六层(根结点为第一层)的结点数最多为【4】个。32

(5)数据结构分为逻辑结构和存储结构,循环队列属于【5】结构。逻辑

(6)下列函数的功能是判断字符串str是否对称,对称则返回true,否则返回false。请在横线处填上适当内容,实现该函

boolfun(char*str)

inti=0J=0;

while(str|j])[6]

for(j-;i<j&&str[i|==str|j];i++,j-);

returni[7]j;>

(7)执行语句序列

intx=10,&r=x;

cout><«'-'«r«endl;

输出结果为【8】o10-10

(8)下列程序的输出结果为

Objectid=0

12

佳恒计算机教育培训中心

Objectid=l

请将程序补充完整。

#includeintX,Y;

usingnamespacestd;staticintcountP;

classPoint);

([9]〃静态数据成员的初始化intpoinl::countP=0;

public:intmain()

Point(intxx=0,intyy=0){X=xx;Y=yy;countP++;}(

~Point(){countP-;}Point::GetC();

intGelX(){returnX;)PointA(4,5);

intGetY()(returnY;JA.GetC();

staticvoidGetC(){cout«"Objectid="«countP«endl;}return0;

private:)

(9)非成员函数应声明为类的【10】函数才能访问这个类的private成员。友元

(10)派生类中的成员不能直接访问基类中的[11]成员。私有

(II)卜列程序的输出结果为2,请将程序补充完整。virtual

#includevoidfun(){cout«2:)

usingnamespacestd;

classBaseintmain()

i(

\

public:Base*p=newDerived;

[12]voidfun(){cout«l;}p->fun();

);deletep;

classDerived:publicBasereturn0;

public:

(12)请将下列类定义补充完整。

classBase{public:voidfun(){cout«,,Base::fun',<endl;));

classDerived:publicBase{

public:

voidfun(){

[13]〃显式调用基类的fun函数Base::fun();

cout«"Derived::fun"«endl;

));

(13)多数运算符既能作为类的成员函数重载,也能作为类的非成员函数重载,但[]运算符只能作为类的【14】函

数重载。成员

(14)下面是一个栈类的模板,其中push函数将元素i压入栈顶,pop函数弹出栈顶元素。栈初始为空,top值为0,栈顶

元素在stack[iop-l]中,在下面横线处填上适当语句,完成栈类模板的定义。

templateclass<T>voidpush(constT&i){

classTstackif(top<SIZE)

{enum{size=1(X)0};stack[top++]=i;

Tstack[size];)

inttop:Tpop()(

public:if(top==0)exit(l);〃栈空时终止运行

lstack():top(0){}return[15];}};stack)-top]

13

佳恒计算机教育培训中心

2006年4月考试真题

-、选择题

(1)下列选项不属于结构化程序设计方法的是D

A.自顶向下B.逐步求精C.模块化D.可复用

(2)两个或两个以上模块之间关联的紧密程度称为A

A.耦合度B.内聚度C.复杂度D.数据传输特性

(3)卜一列叙述中正确的是D

A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试

C.软件维护只包括对程序代码的维护D.以上三种说法都不对

(4)按照“后进先出”原则组织数据的数据结构是B

A.队列B.栈C.双向链表D.二叉树

(5)下列叙述中正确的是A

A.线性链表是线性表的链式存储结构

B.栈与队列是非线性结构

C.双向链表是非线性结构

D.只有根结点的二叉树是线性结构

(6)对如下二叉树,进行后序遍历的结果为D

A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA

(7)在深度为7的满二叉树中,叶子结点的个数为C

A.32B.31C.64D.63

(8)“商品”与“顾客”两个实体集之间的联系一般是D

A.一对一B.一对多C.多对一D.多对多

(9)在E-R图中,用来表示实体的图形是A

A.矩形B.椭圆形C.菱形D.三角形

(10)数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是C

A.DB包含DBS和DBMSB.DBMS包含DB和DBSC.DBS包含DB和DBMSD.没有任何关系

(H)下列关于C++函数的说明中,正确的是C

A.内联函数就是定义在另一个函数体内部的函数

B.函数体的最后一条语句必须是return语句

C.标准C++要求在调用一个函数之前,必须先声明其原型

D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式

(12)由于常对象不能被更新,因此A

A.通过常对象只能调用它的常成员函数

B.通过常对象只能调用静态成员函数

C.常对象的成员都是常成员

D.通过常对象可以调用任何不改变对象值的成员函数

(13)下列关于虚函数的说明中,正确的是B

A.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数

C.只能通过指针或引用调用虚函数D.抽象类中的成员函数都是虚函数

14

佳恒计算机教育培训中心

(14)运算符重载是对已有的运算符赋予多重含义,因此C

A.可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义

B.可以改变一个已有运算符的优先级和操作数个数

C.只能重载C++中已经有的运算符,不能定义新运算符

D.C++中已经有的所有运算符都可以重载

(15)模板对类型的参数化提供了很好的支持,因此B

A.类模板的主要作用是生成抽象类

B.类模板实例化时,编译器将根据给出的模板实参生成一个类

C.在类模板中的数据成员都具有同样类型

D.类模板中的成员国数都没有返回值

(16)下列关于C++流的说明中,正确的是A

A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现

B.从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作

C.cin是一个预定义的输入流类

D.输出流有一个名为open的成员函数,其作用是生成一个新的流对象

(17)下列符号中可以用作C++标识符的是A

A._radiusB.foo-barC.elseD.3room

(18)下列语句中,错误的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论