计算机二级C++试题及答案_第1页
计算机二级C++试题及答案_第2页
计算机二级C++试题及答案_第3页
计算机二级C++试题及答案_第4页
计算机二级C++试题及答案_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

一、选择题(每小题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正

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

⑴下列关于栈的叙述中正确的是D

A)在栈中只能插入数据B)在枝中只能删除数据

C)栈是先进先出的线性表D)栈是先进后出的线性表

⑵下列数据结构中,插入时不需要移动其他元素的是D

A)有序线性链表B)无序线性链表

C)栈和队列D)以上三种都是

⑶下列叙述中正确的是B

A)同一个数据结构不管是采用何种存储方式,其所占的存储容量一定是相同的

B)同一个数据结构采用不同的存储方式,其所占的存储容量一般是不同的

C)同一个有序表不管是采用何种存储方式,都可以使用对分查找法

D)同一个有序表不管是采用何种存储方式,都不能使用对分查找法

⑷数据结构分为逻辑结构和存储结构,下列数据结构中不属于存储结构的是C

A)线性链表B)二叉链表C)栈与队列D)循环队列

⑸下列数据结构中,能直接使用堆排序法进行排序的是A

A)完全二叉树B)线性链表C)带链的栈D)带链的队列

⑹下列关于队列的叙述中正确的是B

A)只能插入元素,而不能删除元素B)可以插入元素,也能删除元素

。插入元素时需要移动队列中所有的元素D)删除元素时需要移动队列中所有的元素

⑺下列叙述中正确的是C

A)在模块化程序设计中,一个模块应尽量多的包括与其他模块联系的信息

B)在自顶向下、逐步细化的设计过程中,首先应设计解决问题的每一个细节

C)在模块化程序设计中,一个模块内部的控制结构也要符合结构化原则

D)在程序设计过程中,不能同时采用结构化程序设计方法与模块化程序设计方法

⑻数据独立性是数据库技术的重要特点之一。所谓数据独立性是指D

A)数据与程序独立存放B)不同的数据被存放在不同的文件中

C)不同的数据只能被对应的应用程序所使用D)以上三种说法都不对

⑼用树形结构来表示实体之间联系的模型称为B

A)关系模型B)层次模型C)网状模型D)格式化模型

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

A)用E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系

B)用E-R图只能表示实体集之间一对一的联系C)用E-R图只能表示实体集之间一对多

的联系D)用E—R图表示的概念数据模型只能转换为关系数据模型

H)以下对C/C++语言函数的描述中,正确的是A

A)C程序由一个或一个以上的函数组成B)C函数既可以嵌套定义又可以递归调用

C)函数必须有返回值,否则不能使用函数D)C++程序中调用关系的所有函数必须

放在同一个程序文件中

(12)以下正确的描述为C

A)每个C++语言程序必须在开头用预处理命令:B)预处理命令必须位于C++源程序的首部

C)在C++语言中预处理命令都以“#”开头D)C++语言的预处理命令只能实现宏定义和

条件编译的功能

(13)下列叙述中正确的是B

A)全局变量的作用域一定比局部变量的作用域范围大B)静态类别变量的生存期贯穿于

整个程序的运行期间C)函数的形参都属于全局变量

D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值

(14)以下选项中合法的用户标识符是B

A)longB)_2TestC)3DmaxD)A.dat

(15)已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字

符常量是AA)字符AB)字符aC)字符eD)非法的常量

(16)下面对宏定义的描述中不正确的是C

A)宏不存在类型问题,宏名无类型,它的参数也无类型B)宏替换不占用运行时间

C)宏替换时先求出实参表达式的值,然后代入形参数运算求值

D)其实,宏替换只不过是字符替代而已

(17)下列不是循环语句的是D

A)while语句B)do…*hile语句C)for语句D)if...else语句

(18)如果a=l,b=2,c=3,d=4,则表达式aAA)1B)2C)3D)4

(19)有关构造函数的说法中错误的是D

A)构造函数名字和类的名字一样B)构造函数在说明类变量时自动执行

C)构造函数无任何函数类型D)构造函数有且只有一个

(20)以下有关析构函数的叙述不正确的是B

A)一个类只能定义一个析构函数B)析构函数和构造函数一样可以有形参

C)析构函数不允许有返回值D)析构函数名前必须冠有符号"

(21)以下关于静态成员变量的叙述不正确的是D

A)静态成员变量为类的所有对象所公有B)静态成员变量可以在类内任何位置上声明

C)静态成员变量的赋初值必须放在类外D)定义静态成员变量时必须赋初值

(22)若执行下面的程序时,从键盘上输入3和4,则输出结果是B

main()

(

inta.b,s;

cin»a>>b,

s=a;

if(a<b)s=bj

S=S*Si

coutVVsVVendl;

A)14B)16C)18D)20

(23)以下程序不用第三个变量实现将两个数进行对调的操作,划线处应为B

mainO

inta«b;

scanf("%d%d”,&a,&b).:

cin>>a>>bi

,,w,,H

cout«a=«a«b=«b>

a=a+bib=a-b?a=i

cout«wa=H«a«*,b=M«b«endh

A)a+bB)a-bC)b*aD)a/b

(24)如下程序的输出结果是C

A)0.000000B)0.25000000.500000D)l.000000

(25)如下程序的输出结果是C

mainO

{in1a=2,b=—l,c=2:

if(a<b)

if(b<O)c=Oi

elsec++(

coutVVcVVendl;

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

(26)有以下程序段A

intk=O:while(k=l)k++;

while循环执行的次数是

A)无限次B)有语法错,不能执行C)一次也不执行D)执行1次

(27)以下程序的输出结果是B

main()

{intnum=0;

while(num<=2)

(

num++;cout«numi}

I

A)1234B)123C)12D)1

(28)设有数组定义:chararray[]="China”;贝4数组array所占的空间为C

A)4个字节B)5个字节C)6个字节D)7个字节

(29)以下程序的输出结果是D

intfO

{

staticinii=0;

ints=1;

=i;i++।

returnsi

}

mainO

(

inti.a=0|

for(i-0ii<5|i++)a+=£();

cout<<a<<endlj

A)20B)24025D)15

(30)有以下程序A

main。

int1,2・3).(4.5,。匕•(•pa)[3].i:

pa=a;

for(i=0“V3ii++)

if(i<2)pa[l][i]=pari][i]-1:

else=l;

cout«aC0]El]+a[l][i]4'a[l][2]<<endl;

执行后输出结果是A)7B)608D)无确定值

(31)有以下程序A

void!un(inti♦n.inii«intj)

int

if(iVj)i

fun(av++i.-----j)।

main()

<mt■,-(1.2・3.4・5・6).心

fun(a»0»5)i

for(i=s0>i<6ii4-+)

coutV<a[i]i

执行后输出结果是

A)654321

6)432156

0456123

D)123456

(32)有以下程序

main。

mtp[7]=(11.13.14・15,16.17・18;・i=O.k=Oi

while(i<7&&p[i]%2)(k=k+p[i]ii++「

coinVVkVVendl;

执行后输出结果是

A)58

B)56

045

D)2d

(33)有以下程序

mainC)

(inti=0・5・0i

dot

(i+十icontinue।)

)while(i<7)i

coutVV,V<endli

执行后输出结果是AA)654321B)4321560456123D)123456

(34)下列语句中,输出与众不同的是A

A)coinVV"1.Vv"Hello!*<C^cndli

B)COIHVV"1."VV*yV"Hello!\n"i

C)cout<Z<"l.Hello}*«endh

D)COUIVV"1.'*VLsetw(7)VV"Hello!**B

(35)阅读以下程序

二include<^fstream,h>

voidmainO

ifstreaminfilci

ofstreamoutfiles

fKircumiofilrt

iofile.open("a.txt".ion):in)i

iofile.CIOM?()।

iofile.op<?n(*b.:out))

下列描述借误的圮

A)对象infile只能用于文件人操作B)对象outfile只能用于文件输出操作

C)对象iofile在文件关闭后,不能再打开另一个文件

D)对象iofile可以打开一个文件同时进行输入和输出

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

⑴对具有n个结点的线性表进行顺序查找,最坏情况下需要的比较次数为[nl

⑵设有下列二叉树:

对此二叉树中序遍历的结果为【TZBACYXP1

⑶在面向对象的程序设计中,用来请求对象执行某一处理或回答某些信息的要求称为

【消息】(4)程序的测试方法分为静态分析和动态分析。使用测试用例在计算机上运

行程序,使呈序在运行过程中暴露错误,这种方法称为【动态分析】。

⑸在关系模型中,一个关系的属性名表称为【关系模式】.也就是二维表的表框架,相当于

-己录型。(6)执行"cout«<ENDL;”语句后得到的输出结果后[DL

⑺十进制28和3.26的类型分别是[intdouble1(8)假定一个二维数组的定义为“

inta[3][5];",则该数组所含元素的个数为15,所占的字储空间的字节数为1601

⑼假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数

组,则使用的语句是【worker*r=newworker[n](10)将关键字const写在函数

头之后,函数体之前,说明该函数是一个const成员函数。比时const不是指定函数的返回

值,而是修饰[this]指针。(11)若要在程序文件中进行标准输入输出操作,

则必须在开始的#include命令中使用头文件【iostream】。

(12)下列程序的输出结果为【良好优秀良好工

SincliKir^iostrram.

voidFunc(r'hnrch)

switch(ch)

case'A:casea":

c仆VV"优秀"Wendi$

caseB:ca*rb'i

couiVV"良好■Wendh

breaks

caseCiCAACVi

cow<V"及格.VVendl,

breaki

default।

couiVV"不及格M«endli

)

voidmainO

charchi=!)•

Func(chl)i

EuncCA)i

(13)根据注释内容在空白处填写适当内容。

classLocation

private:

intX.Yt

publici

voidinit(intinitX.intinilY)i

intGetX()i

iniGetY()i

)i

voidLocation:tinit(intimtX«intinitY)

(

X-initXi

Y=®initYi

intLocation:tGetX()

(

reutmXi

)

intLocation11GetY<>

reulmYs

二includedIOSiream.h>

voidmain()

(

LocationAli

Al.init(2O«9O)i

【13】〃定义一个指向Al的用用rAl

cout<<rAl.GftX()«"।"VVrAl.GrtY(>Wendi।

(14)下列程序的执行结果是【20】。

#include<iostream.h>

floattempi

float&fn2(floatr)

(

temper*r•3.141

returntempi

)

voidmain()

(

floata=fn2<5.0)।

float&b=fn2(5.0):

b=201

comVVtempVVendli

(15)下列类的构造函数不能通过编译,正确的构造函数应该是

[sample(imm):con(m+1){n=m;)L

1)下列叙述中正确的是A

A)线性表是线性结构B)栈与队列是非线性结构

C)线性链表是非线性结构D)二叉树是线性结构

⑵下列数据结构中,插入时不需要移动其他元素的是C

A)有序线性表B)无序线性表C)栈和队列D)以上三种都不是

⑶数据的存储结构是指B

A)数据所占的存储空间量B)数据的逻辑结构在计算机中的表示

C)数据在计算机中的顺序存储方式D)存储在外存中的数据

⑷一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为B

A)221B)2190231D)229

⑸下列关于栈的叙述中正确的是B

A)只能在栈顶插入元素,而不能删除元素B)可以插入元素,也能删除元素

C)插入元素时需要移动栈中所有的元素D)删除元素时需要移动栈中所有的元素

⑹下列叙述中正确的是B

A)软件测试的目的是证明程序是否正确B)软件测试的目的是尽可能多的发现程序中的错

误。软件测试的目的是使程序运行结果正确

D)软件测试的目的是使程序符合结构化原则

⑺下列叙述中正确的是A

A)在面向对象的程序设计中,各个对象之间应相对独立,相互依赖性小

B)在面向对象的程序设计中,各个对象之间应具有密切的联系

C)在面向对象的程序设计中,各个对象应都是公用的D)上述三种说法都不对

⑻下列叙述中正确的是C

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

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

D)以上三种说法都不对

⑼设有二元关系R和三元关系S,下列运算中合法的是D

A)RnSB)RUSC)R—SD)RxS

(10)下列关于E—R图的描述中正确的是D

A)E-R图只能表示实体之间的联系B)E-R图只能表示实体和实体之间的联系

C)E-R图只能表示实体和属性D)E-R图能表示实体、属性和实体之间的联系

H)以下叙述中不正确的是B

A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B)在C的函数中,最好使用全局变量

C)在C中,形式参数只是局限于所净?BR>D)在C中,函数名的存储类别为外部

(12)C++语言中函数返回值的类型决定于D

A)return语句中的表达式类型B)调用函数的主调函数类型

C)调用函数时r临时类型D)定义函数时所指定的函数类型

(13)若要说明一个类型名STP,使得STPs;等价于char*s;,以下选项中正确的是D

A)typedefSTPchara*s;B)typedefa*charSTP:

C)typedefSTPfi*char;D)typedefchara*TP:

(14)以下非法的赋值语句是CA)n=(i=2,++i);B)j++C)++(i+l)D)x=j>0;

(15)C十+语言中在C语言的基础上增加的特性不包括A

A)结构B)引用C)类和对象D)静态成员函数

(16)对于下列语句,正确的判断是for(x=0,y=0;(y!=123)&&(x<4);x++);C

A)是无限循环B)循环次数不定C)最多执行4次D)最多执行3次

(17)若有说明:inta[3][4];则对a数组元素的非法引用是D

A)a[0][2*1]B)a[l][3]C)a[4-2][0]D)a[0][4]

(18)设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a十h/b的值是D

A)6.500000B)605.500000D)6.000000

(19)下面赋值语句中正确的是D

A)a=7+b+c=a+7:B)a=7+b++=a+7:C)a=7+b,b++,a+7;D)a=7+b,c=a+7;

(20)语句cout«(a=2)&&(h=-2);的输出结果是D

A)无输出B)编译错误C)-lD)1

(21)在下面的函数声明中,存在着语法错误的是DA)VOidBC(inta,int)

B)voidBd(int,int)C)VOid(lBE(int,int=5)D}intBF(Intx;inty)

(22)下列关于指针的操作中.错误的是D

A)两个同类型的指针可以进行比较运算B)可以用一个空指针赋给某个指针

C)一个指针可以加上两个整数之差D)两个同类型的指针可以相加

(23)静态成员函数不能说明为CA)整型函数B)常函数C)虚函数D)内联函数

(24)静态成员函数没有B

A)返回值B)this指针C)指针参数D)返回类型(25)以下程序的输出结果为

(25)以下程序的输出结果为A

mainO

intE=7.TI=4J

floatH=38.4.b=6.4tx;

x=m/2+n*a/b-b1/2j

couiWxVVcndh

A)27.000000B)27.500000028.000000D)28.500000

(26)执行下列语句后,输出结果为COut.put(号):cout«,<«a5:B

A)caB)SCaOSD)a

(27)下列运算符中,不能重载的是A

A)?:B)+C)-D)<=

(28)所有在函数中定义的变量及函数的形式参数,都属于B

A)全局变量B)局部变量C)静态变量D)常量

(29)为引入对象的同义词,对象的别名称为BA)指针B)引用C)枚举D)结构

(30)以下不属于构造函数特征的是DA)构造函数名与类名相同B)构造函数可以重

载C)构造函数可以设置默认参数D)构造函数必须指定函数类型

31)以下关于虚函数的叙述中不正确的是CA)虚函数属于成员函数B)虚函数不

允许说明成静态的C)凡是虚函数必须用virtual说明D)虚函数可以被继承

(32)类的构造函数的作用是CA)一般成员函数B)类的初始化

C)对象的初始化D)删除对象创建的所有对象

(33)继承机制的作用是CA)信息隐藏B)数据封装C)定义新类D)数据抽象

(34)关于虚函数的描述中正确的是D

A)虚函数是一个静态成员函数B)虚函数是一个非成员函数

C)虚函数既可以在函数说明时定义,也可以在函数实现时定义

D)派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型

(35)下列表示纯虚函数的成员函数是C

A)virtualintfunc(int);B)voidfunc(int)=0;C)virtualvoidfunc=0;

D)virtualvoidfunc(int)0

⑴设一棵二叉树的中序遍历结果为ABCDEFG,前序遍历结果为DBACFEC,则后序遍

历结果为LACBEGFD】.(2)在面向对象方法中,属性与操作相似的一组对象称为【类】。

⑶在结构化设计方法中,数据流图表达了问题中的数据流与加工之间的关系,并且,每一

个【加工】实际上对应一个处理模块。(4)在进行模块测试时,要为每个被测

试的模块另外设计两类模块:驱动模块和承接模块.其中【驱动模块】的作用是将测试

数据传送给被测试的模块,并显示被测试模块所产生的结果。(5)在关系运算中,

【选择】运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个

新的关系是原关系的一个子集。⑹为了表明一个函数不带返回值,应在定义函数

时指定该函数类型为【void].

⑺下列程序如果去掉for循环外围的大括号对,则会出现编译错误.错误原因是【a重定

义】。

include<iosireani,h>

ini

voidmain()

(

inta=10»b=20;

coutVVaVV"J'VVbVVQFdl;

(

inta=0tb=0;

for(inti=ljiV8,i+十)

(

a+=i;

b+=a;

)

cout«a«\H«b-<<%H«::a«endl;

)

coutVV8VV"."VVbWendL

⑻对于下列语旬

rhiir•*trl=i

char♦sir2=**Hello"i

*Mrl=P:

其输出结果为:[Pellol

⑼下列程序不能通过编译,应该在划线部分填写的语句是【returnx】。

doubleFunc(inta«intb,charch)

doublex;

switch(ch)

(

case

x=double(a)+b;

breakj

case

x=double(a)-bj

break;

case'*

x=douhle(a)*b;

break;

case7*s

if(b)x=double(a)/b:

else

exit(1);

break;

default:

exit(l);

}

}

voidmain。

(

cout«Func(32»6»*—*)«'*•M;

coutVVFunc(32,6,'>。VV".":

,

cont<Z<Func(32t6//X<end1;

(10)根据下面的主程序,完成类的一种构造函数的最简单形式。Base(intn){)

#include

classbase

private:

intnum;

public:

【10】,

voidmain。

{

basetry(6);

)

(ID下列程序的执行结果为[a=3,b=2]。

#include<iostream.h>

intf(inti)(return++i;>

intg(int&4){return++i;}

voidmainO

{inta«b;

a=b=0;

a+=f(g(a))i

b+=f(f(b));

cout«°a=H«a«,',b=<*«b«endl.

(12)下列程序的运行结果是【inC】。

tncludrVisuream.h:>

classA

publics

virtualvoiduse()(rout</*inA\nMt

I9

classB:publicA

(

public:

virtualvoiduse()(cnui«"inB\n*i)

11

classCtpublicB

public:

virtualvoiduse()(couiVV"inC\nwi>

voidmainO

(

A•obj।

obj■newCs

obj->use()t

deleteobji

(13)完成下列类的构造函数,初始化语句为[x=initx,y=initly]

#include<iostream.h>

classTest

(

private:

intx»yi

public:

voidTest(intinitxjntinity){

voidprintx<)(couiVVxV<"—"VVyVV"="VVx一";

h

voidmain()

(.

Testx(300.200);

x.printx();

(14)根据下列程序的执行结果,可以断定划线部分的修饰符应为【Static】。

执行结果:

i9afootballiscreated,

afootballiscreated.

afootballisdestroyed,

afootballiscreated.

i-20

afootballisdestroyed,

afootballisdestroyed.

源程序i

aindude<Tios<ream.h>

classFootball

(

publict

Footb«li()(cout«-afootballiscreated."«endh;

***Football()(cout«*«footballisdestroyed,"«endli

h

voidfunc(inti)

(

Footballfl।

Football(2i

coutVV—-"VViVVcndh

i・

voidnuiinC)

<

func(10)।

func(20)i

(15)下列程序的输出结果是[5,10,3】。

#include<iostream.h>

classMyClass

public:

ininumber;

voidset(inci);

h

intnumber=3;

voidMyClass::sei(inii)

[

number=i;

voidmainO

MyClassmyl;

ininumber=10;

myl.set(5)।

cout<<myl.numberVVj

myLset(number);

cout<<myl.number<</.

myl.set(::number);

couiVVmyl.number;

}

Ill算法的时间复杂度是指c

A)算法程序运行的具体时间B)算法程序的长度

O算法程序执行过程中基本运算的次数D)运行时算法程序所占的内存容量

⑵下列数据结构中能使用对分查找的是D

A)二叉链表B)带链的栈C)有序线性链表D)有序顺序表

⑶按“先进先出”原则组织数据的结构是CA)有序表B)栈C)队列D)二叉树

⑷对下列二叉树进行前序遍历的结果是B

A)ZBTYCPXAB)ATBZXCYPC)ZBTACYXPD)ATBZXCPj

⑸下列叙述中正确的是DA)软件就是程序清单

B)软件就是存放在计算机中的文件c)软件应包括程序清单以及运行结果

D)软件包括程序和文档

(6)在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送D

A)调用语句B)命令C)口令D)消息

⑺在模块化程序设计中,按功能划分模块的原则是A

A)各模块的功能尽量单一,且各模块之间的联系尽量的少

B)各模块的功能尽量单一,且各模块之间的联系尽量紧密

C)各模块应包括尽量多的功能D)各模块应包括尽量多的输入输出操作

⑻下述关于数据库系统的叙述中正确的是A

A)数据库系统减少了数据冗余B)数据库系统避免了一切冗余

C)数据库系统中数据的一致性是指数据类型一致D)数据库系统比文件系统能管

理更多的数据

⑼在关系数据库中,用来表示实体之间联系的是D

A)树结构B)网结构C)线性表D)二维表

(10)下列叙述中正确的是B

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

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

C)数据库管理系统就是数据库系统D)以上三种说法都不对

H)设char型变量x中的值为10100111,则表达式(2+x)A(~3)的值是D

A)10101001B)10101000C)111111010)0101010]

(12)以下叙述中不正确的是C

A)C++语言中的文本文件以ASCII码形式存储数据B)C++语言中,对二进制文件的访问速

度比文本文件快OC++语言中,随机读写方式不适用于文本文件

D)C++语言中,顺序读写方式不适用于二进制文件

(13)若已定义inta=256,执行语句cout<AA)100B)256OffD)ff

(14)执行下列程序的结果是A

main。

floatx=l»ys

y=++x*++x,

cout<<y<<endlt

A)9.000000B)6.000000C)l.000000D)程序有错误

(15)下面程序的输出结果是A

m»in()

{inta=15J)=2Km=0j

switch(a%3)

(case0:m+4-

case1:m++,

switch(b%2)

{default:m++1

case0:m++1break;

)

}

coutVVmVVundl;

A)1B)203D)4

(16)有以下程序

intfKintx«inty)

{returnx>y?x:y;}

intf2(iniy>

(returnx>y?y:x?!

main。

{inta=4,b=3,c=5.d,e・f;

d=fl(a,b):d=fl(d.c);

e=f2(a,b);c=f2(e«c)i

f=a-b+c-d-e;

H

cout«d«\"«f«"t«e«endl;

}

执行后输出结果是cA)3,4,5B)j,3,4C)j,4,3D)3,5,4

(17)有以下程序

voidf(inty)

{intt>

if(x<y){t=x»x=yjy=t;}

)

mainO

s

{inta=4tb=3,c=5;

f(a.b);f(a9c)if(b*c);

M

cout«a«"/«b«\«c«endl1

执行后输出结果是DA)3,4,5B)5,3,4C)5,4,3D)4,3,5

(18)与数学式子函,3X对应的C++语言表达式是C

A)3*xAn/(2*x—1)B)3*x**n/(2*x—1)

C)3*pow(x,n)*(1/(2*x-1))D)3*pow(n,x)/(2*x—1)

(19)若有以下程序:

main()

{intk=2us=s2tm;

m=(k+=i*=k)i

cout<<m<<**»°«i«endl

执行后的输出结果是CA)8,6B)8,306,4D)7,4

(20)设有定义:

classperson

{intnum;

charname[101;

public:

voidinitCintn»char*m):

H

personstd[30]

则以下叙述不正确的是D

A)std是一个含有30个元素的对象数组B)std数组中的每个元素都是person类的对象

0std数组中的每个元素都有自己的私有变量hum和name

D)std数组中的每个元素都有各自的成员函数init

21)以下叙述中不正确的是C

A)一个类的所有对象都有各自的数据成员,它们共享函数成员

B)一个类中可以有多个同名的成员函数C)一个类中可以有多个构造函数、多个析构函

数D)在一个类中可以声明另一个类的对象作为它的数据成员

(22)以下关于私有和保护成员的叙述中,不正确的是A

A)私有成员不能被外界引用,保护成员可以B)私有成员不能被派生类引用,保护成员在

公有继承下可以C)私有成员不能被派生类引用,保护成员在保护继承下可以

D)私有成员不能被派生类引用,保护成员在私有继承下可以

(23)友元函数的作用是AA)提高程序的效率B)加强类的封装性

C)实现数据的隐蔽性D)增加成员函数的种类

(24)使用静态数据成员的好处不包括D

A)可以节省内存空间B)是为了解决数据共享问题

C)可以直接用类名来引用D)可以提高运算速度

(25)以下不能正确创建输出文件对象并使其与磁盘文件相关联的语句是D

A)ofstreammyfile;myfile.open(wd:ofile.txt''):

B)ofstream*myfile=newofstream;myfile->open("d:ofile.txt");

C)ofstreammyfileC,d:ofile.txt");

D)ofstream*myfi1e=new(wd:ofile:txt");

(26)有关析构函数的说法中错误的是C

A)析构函数有且只有一个B)析构函数无任何函数类型

C)析构函数和构造函数一样可以有形参D)析构函数的作用是在对象被撤销时做清理工作

(27)下列运算符中,不能重载的是AA)?:B)+O-D)<=

(28)已知类A中有公用数据成员B*b;其中B为类名。则下列语句错误的是C

A)A():d(newB)()B)A(constA&oo):d(newB){*d=*oo.d:}

C)~A(d)(}D)-A(){deleted;}

(29)以下有关析构函数的叙述中错误的是B

A)一个类只能定义一个析构函数B)析构函数和构造函数一样可以有形参

C)析构函数不允许有显式的返回值D)析构函数名前必须冠有符号

(30)在C+十语言程序中D

A)函数的定义可以嵌套,但函数的调用不可以嵌套B)函数的定义和调用均可以嵌套

C)函数的定义和调用均不可以嵌套D)函数的定义不可以嵌套,但函数的调用可以嵌套

(31)以下叙述中不正确的是C

A)在类的定义中通常是用数据成员描述对象的属性,用成员函数描述对象的行为

B)类的一个成员只能具有一种访问控制属性C)构造函数和析构函数是特殊的成

员函数,因此不允许重载D)通过对象只能访问类的公有成员

(32)磁盘文件操作中,打开磁盘文件的访问方式中以追加方式打开文件的C

A)inB)outC)appD)ate

(33)假定AB为一个类,则执行ABx;语句时将自动调用该类的B

A)有参构造函数B)无参构造函数C)拷贝构造函数D)赋值重载函数

(34)通常初始化拷贝构造函数的参数是C

A)某个对象名B)某个对象的成员名C)某个对象的引用名D)某个对象的指针名

(35)实现运行时的多态性用D

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

⑴在深度为4的满二叉树中,叶子结点的个数为[8]。(2)在一个容量为25的循

环队列中,若头指针front=9指针rea=16,则该循环队列中共有17】个元素。

⑶在面向对象方法中,允许作用于某个对象上的操作称为【方法】。

(4)软件生命周期包括八个阶段。为使各时期的任务更明又可以分为以下三个时期:软件定

义期,软件开发期,软件维护期。编码和测试属于【软件开发】期。

⑸在数据库系统中,数据具有独立性。由于数据的存储结构与逻辑结构之间由系统提供映

象,使得当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序

不必修改。这种独立性称为【物理独立性1(6)在任何类中都有三种访问权

限的数据成员,这三种权限是public、private和【protected]。

⑺下列程序的输出结果是[43]

#include<Ciostream,h>

voidmainO

(

charaCJ-^abcdabcabfgacd*'>

intil=0,i2=0.i=0:

while(a[i])

(

if=il++i

if<aEi]=="bw)i2++,

i++;

}.

coutVVilVV".VVi2VVendl:

⑻如下程序编译时发生错误,错误的原因是show函数实现语句错误,则正确的语句应

该为[voidtest::showO{cout<]。

#includc<Ciostream.h>

classtest

(

private:

intnum;

public।

test(int)।

voidshow();

}i

test:•test(inth){num=n,}

test::show。(cout«num<<endl;)

voidmainO

(

testT(10);

T.show。;

⑼下列程序的运行结果是【b=762】

二inclu(ie<Tiornamp.h>

infFunc<int,n・inin)

int11

for(inti-OjiVn“++)

a•=•a++.

returns1

voidtnain()

<

tnt■口=(L2・3,4・5・6.7・8h

intb=Func(..6)+Func(&.[5].2)j

cout«^b=yVbVVendh

」.

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

?♦includr<iofitreHni.h>

mt&*niAX(int&x»int&y)

(return(x>y?x:y)«*

voidmainO

inin=3.mH12j

inax(m«n)+4।

coui«Hm=<*<<m«,,.n-"«n<<endh

includc<iosiream.hZ>

classbase

(

intx,y;

public:

base(in«i*inij)(x=i;y=jj}

virtualintadd(){returnx十y;)

}i

classthree:publicbase

(

intzi

public:

three(inlj*intk):base(i,j){z=k】>

intadd(){return(base::add()-f-z);}

}.

voidmain()

(

three«q=newthree(1O»2O»3O><

cout<<q—>add(X<endl:

(11)下面程序编译时发现ma⑶

一9错误,其原因是[11]。

#includediostream.h>

classFunArray

(

int*pa;〃指向一个数组空间

intsize:〃数组元素个数

public:

FunArray(inia[].intthesize):pa(a)«size(tl

intSize(){returnsize;1

)

}i

voidmain()

(

ints[J-<3.7.2,1,5.4},

FunArrayma(s»sizeof(s)/sizeof(int));

ma[3]=9;

coutVVma[3]VVendl;

>

(12)下列程序的执行结果是L40060]

include<Ciostream.h>

HassStudent

)ublic:

Student(iisfxx){x=xxi)

virtufilfloatcalcJuition<)i

irotecied:

inix;

lornStudent:tcalcTuitionC)

(

returnfloat(x•x)i

)

classGraduatcStudcnt:publicStudent

[

publics

GraduatrSiudentCintxx)tStudent(xx)I)

floatcalcTuition()i

)i

floatGraduateSludtnt:icalcTuitionC)

(

returnfloat(x•2)i

I

voidmam()

(

Students(20)i

GmdualeStudentgs(30)i

cou««s,ealcTuition()«""<<gs,calcTuiUon()«en<ll«

〃计真学生»和研究生R*的学普

(13)下列程序中需要清理动态分配的的数组,划线处应有的语句【delete口ptr】是。

#include<iostream.h>

classperson»

(

intage,tall;

public:

pcrson()(age^0Hall=40;cou!<C*'Ababyisborn."VVendl,}

persontinti){age=i।tall40<coul<<wAoldperson.**<<endl;}

person(intifinlj)(age=iitall-j।cout<<°aoldpersonwithtall."<<

endli)

-^personC){coul<<**persondead."<-<cndl;}

voidshow。

(

cout«"age=,,«age«\tall=',«call«endli

)

)I

voidmainO

(

person*ptr;

ptr=newpersonC3];

ptr[0]=personOi

ptrri]=person(18);

ptr[2]=person(20.120)i

for(inii=0si<3]++)

pir[i].show();

(14)下列程序完成从文件读取文件显示的同时写入第二个文件,则在程序中划线部分应

该出现的语句是[file2.Open(fn2,ios::out);L

#includc<iosiream.h>

#include<fstream.h>

voidmainO

(

fstreamfilelTfile2;

charfnlf10]tfn2C10]»chi

couiVV”输入源文件名、

cin>>fnl;

coutVV”输入目标文件名、

cin>>fn2j•

filel.open(fnl«ios::in)i

while((ch=filel.gei())!=EOF

温馨提示

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

评论

0/150

提交评论