计算机二级《C++》上机考前冲刺试题1.docx

上传人:b****2 文档编号:23071323 上传时间:2023-04-30 格式:DOCX 页数:23 大小:26.62KB
下载 相关 举报
计算机二级《C++》上机考前冲刺试题1.docx_第1页
第1页 / 共23页
计算机二级《C++》上机考前冲刺试题1.docx_第2页
第2页 / 共23页
计算机二级《C++》上机考前冲刺试题1.docx_第3页
第3页 / 共23页
计算机二级《C++》上机考前冲刺试题1.docx_第4页
第4页 / 共23页
计算机二级《C++》上机考前冲刺试题1.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

计算机二级《C++》上机考前冲刺试题1.docx

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

计算机二级《C++》上机考前冲刺试题1.docx

计算机二级《C++》上机考前冲刺试题1

一、选择题(每小题1分,共40分)

1、一个教师可讲授多门课程,一门课程可由多个教师讲授。

则实体教师和课程间的联系是(   )。

A.1:

1联系

B.1:

m联系

C.m:

1联系

D.m:

n联系

2、Tilil程序的运行结果是( )。

#include   voidmain()

{

inti=1:

while(i<=8)

if(++i%31=2)continue:

   elseeout<

}

A.25

B.36

C.258

D.369

3、下列关于线性链表的叙述中,正确的是(   )。

A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致

B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续

C.进行插入与删除时,不需要移动表中的元素

D.以上说法均不正确

4、对于一个类定义,下列叙述中错误的是(   )。

A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数

B.如果没有定义缺省的构造函数,编译器一定将生成一个缺省的构造函数

C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数

D.如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数

5、为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为(   )。

A.public

B.protected

C.private

D.static

6、下列关于运算符函数的描述中,错误的是(   )。

A.运算符函数的名称总是以operator为前缀

B.运算符函数的参数可以是对象

C.运算符函数只能定义为类的成员函数

D.在表达式中使用重载的运算符相当予调用运算符重载函数

7、一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是(  )。

A.12345ABCDE

B.EDCBA54321

C.ABCDEl2345

D.5432lEDCBA

8、在数据管理技术发展的三个阶段中,数据共享最好的是(  )。

A.人工管理阶段

B.文件系统阶段

C.数据库系统阶段

D.三个阶段相同

9、下面程序的运行结果为(   )。

#include

voidmain()       {

chara=’3’:

       switch(8)

{

case'3':

cout<<”3”:

case'2':

cout<<”2”;break;   default:

cout<<”l”;

}

}

A.3

B.321

C.31

D.32

10、数据库设计中反映用户对数据要求的模式是(   )。

A.内模式

B.概念模式

C.外模式

D.设计模式

11、一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为(   )。

A.16

B.10

C.6

D.4

12、下列(   )是C++语言的有效标识符。

A.Nol

B.N0.1

C.12345

D.int

13、下列关于运算符重载的叙述中,错误的是(   )。

A.有的运算符可以作为非成员函数重载

B.所有的运算符都可以通过重载而被赋予新的含义

C.不得为重载的运算符函数的参数设置默认值

D.有的运算符只能作为成员函数重载

14、F列关于栈的叙述正确的是(   )。

A.栈按“先进先出”组织数据

B.栈按“先进后出”组织数据

C.只能在栈底插入数据

D.不能删除数据

15、软件生命周期中的活动不包括(   )。

A.市场调研

B.需求分析

C.软件测试

D.软件维护

16、下面对静态数据成员的描述中,正确的是()。

A.静态数据成员是类的所有对象共享的数据

B.类的每个对象都有自己的静态数据成员

C.类的不同对象有不同的静态数据成员值

D.静态数据成员不能通过类的对象调用

17、软件按功能可以分为:

应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是(  )。

A.编译程序

B.操作系统

C.教务管理系统

D.汇编程序

18、下面叙述中错误的是(  )。

A.软件测试的目的是发现错误并改正错误

B.对被调试的程序进行“错误定位”是程序调试的必要步骤

C.程序调试通常也称为Debug

D.软件测试应严格执行测试计划,排除测试的随意性

19、层次型、网状型和关系型数据库划分原则是(   )。

A.己录长度

B.文件的大小

C.联系的复杂程度

D.数据之间的联系方式

20、下面程序的运行结果为(   )。

#include   voidswap(int&a,intB.   inttemp;

temp=a++:

   a=b:

b=temp;

}

voidmain()

{

ima=2,b=3;   swap(a,B.;

eout<

}

A.2,3

B.3,2

C.2,2

D.3,3

21、有如下程序:

#inClude   usingnamespaCestd;   ClassMyClass{

publiC:

MyClass(intX):

val(X){}

voidPrint()Const}tout<<”Const:

val=”<

intval;   };

intmain(){

ConstMyClassobjl(10);   MyClassobj2(20);

objl.Print();   obj2.Print();   retum0;

}

执行这个程序的输出结果是(   )。

A.val=10   Const:

val=20

B.Const:

val=10   Const:

val=20

C.Const:

val=10   val=20

D.val=10   val=20

22、一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间 的联系是(   )。

A.一对一

B.一对多

C.多对多

D.多对一

23、下列程序的运行结果是()。

#includeclassLoeation{

private:

intX,Y;

public:

voidinit(int=0,int=0);

voidvalueX(intval){X=val;}intvalueX(){returnx;}

voidvalueY(intval){Y=val;}intvalueY(){returnY;}};

voidLocation:

init(intinitX,intinitY){X=initX;

Y=initY4}

voidmain(X

{LocationA,B;

A.init();

B.valueX(5);

cout<

B.valueY(4);

eout<

}

A.5

0

6

4

B.0

0

6

4

C.5

0

6

2

D.0

0

6

2

24、下面程序的运行结果为(   )。

#include   classA

staticintn;

public:

A(){n=1;}

A(intnum){n=hum;}   voidprint(){cout<

intA:

n=2;

voidmain()       {

Aa,b(3);   a.print();   b.print();

cout<

A.11

B.13

C.23

D.33

25、负责数据库中查询操作的数据库语言是(   )。

A.数据定义语言

B.数据管理语言

C.数据操纵语言

D.数据控制语言

26、已知枚举类型声明语句为:

enumCOl,OR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};

则下列说法中错误的是(   )。

A.枚举常量YELLOW的值为1

B.枚举常量RED的值为6

C.枚举常量BLACK的值为10

D.枚举常量WHITE的值为1

27、有如下程序:

#include

usingnamespacestd;

classBase

{

public:

voidfunl(){cout<<”Base\n”;}

virtualvoidfun2(){eout<<”Base\n”;}

};

classDerived:

publicBase{

public:

voidfunl(){eout<<”Derived、n”;}

voidfura(){eout<.<”Derived\n”;}

};

voidf(Base&B.}b.funl();b.ftm2();}

intmain()

{

Derivedobj;

f(obj);

return0;

}

执行这个程序的输出结果是(  )。

A.Base

Base

B.Base

Derived

C.Derived

Base

D.Derived

Derived

28、有如下类声明:

classSAMPLE

{

intn:

public:

SAMPLE(inti=0):

n(i){}

voidsetValue(intnO);

};

下列关于9etValue成员函数的定义中,正确的是(  )。

A.SAMPLE:

setValue(intnO){n=n0;}

B.voidSAMPLE:

setValue(int胡){n=n0;

C.voidsetValue(intnO){n=n0;}

D.setValue(intnO){n=n0;}

29、下列关于c++函数的说明中,正确的是(   )。

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

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

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

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

30、有如下程序:

#inClude   usingnamespaCestd;   ClassMusiC{

publiC:

voidsetTitle(Char*str){strCpy(title,str);}   proteCted:

Chartype[10];   private:

Chartitle[20];

ClassJazz:

publiCMusiC{   publiC:

voidset(Char*str){

strCpy(type,”Jazz'’);//①   strCpy(title,str);//②

}   };   下列叙述中正确的是(  )。

A.程序编译正确

B.程序编译时语句①出错

C.程序编译时语句②出错

D.程序编译时语句①和②都出错

31、在公有继承的情况下,允许派生类直接访问的基类成员包括(  )。

A.公有成员

B.公有成员和保护成员

C.公有成员、保护成员和私有成员

D.保护成员

32、有三个关系R、S和T如下:

由关系R和S通过运算得到关系T,则所使用的运算为(  )。

A.笛卡尔积

B.交

C.并

D.自然连接

33、有如下类定义:

classMyClass

{

public:

private:

______________________________________

intdata;

};

若要为MyClass类重载流输入运算符“>>”,使得程序中可以“cin>>obj;”的形式改变MyClass类的对象0bj中数据成员data的值,则横线处的声明语句应为(   )。

A.friendistream&operator>>(istream&is,MyClass&A.;

B.friendistream&operator>>(istream&is,MyClassA.;

C.istream&operator>>(istream&is,MyClass&A.;

D.istream&operator>>(istream&is,MyClassA.;

34、有如下程序:

#inClude   usingnamespaCestd;   ClassSample{

friendlongfun(SampleS);   publiC:

Sample(10ngA.{x=a;}   private:

longX;

};      longfun(SampleS){

if(S.x<2)returnl;

returnS.X*fun(Sample(s.x-1));   }

intmain(  )   {

intsum=0;

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

Cout<

   

}

执行这个程序的输出结果是(  )。

A.120

B.16

C.154

D.34

35、有如下程序:

#inClude   usingnamespaCestd;   ClassBook{

publiC:

Book(Char*t=””){strCpy(title,t);}

private:

Chartitlel40];   };

ClassNovel:

publiCBook{   publiC:

Novel(Char*t=””):

Book(t){}

Char*Category(  )Const{return”文学”;}   };

intmain(  ){   Book*pb;   pb=newNovel(  );

Cout<

return0;   }

若程序运行时输出结果是“文学”,则横线处缺失的语句是(  )。

A.Char*Category(  );

B.Char*Category(  )Const;

C.virtualChar*Category(  )Const;

D.virtualChar*Category(  )Const=0;

36、有如下头变件:

intf1()

StatiCintf2();   ClassMA

publiC:

   intf3();

1statiCintf4();

};

在所描述的函数中,具有隐含的this指针的是(   )。

A.fl

B.f2

C.B

D.f4

37、下面对静态数据成员的描述中,正确的是(   )。

A.静态数据成员可以在类体内进行初始化

B.静态数据成员不可以被类的对象调用

C.静态数据成员不能受private控制符的作用

D.静态数据成员可以直接用类名调用

38、设inta=10,b=11,C=12;,表达式(a+B.

A.2

B.0

C.-2

D.1

39、下列说法正确的是(   )。

A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方

B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方

C.类的内联函数必须在类体内定义

D.类的内联函数必须在类体外通过加关键字inline定义

40、下面对于友元函数描述正确的是(   )。

A.友元函数的实现必须在类的内部定义

B.友元函数是类的成员函数

C.友元函数破坏了类的封装性和隐藏性

D.友元函数不能访问类的私有成员

   >

二、基本操作题(18分)

41、请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,此工程中含有一个源程碍文件projl.epp。

其中位于每个注释“//ERROR****found****”之后的一行语句存在错误。

请改正这些错误,使程序的输出结果为:

ConstruCtorCalled.Thevalueis10

CopyConstruCtorCalled.Thevalueis10

DestruCtorCalled.DestruCtorCalled.注意:

只修改注释“//ERROR****found****”的下一行语句,不要改动程序中的其他内容。

//pwjl.Cpp

#inClude’usingnamespaCestd;ClassMyClass{

publiC:

//ERROR**********found**********

MyClass(inti)

{value=i;Cout<<”ConstruCtorCalled.”

{

value=P.value;

eout<<”CopyConstruCtorCalled.”<}

voidPrint()

{Cout<<”Thevalueis”

{Cout<<”DestruCtorCalled.”

intvalue;

};intmain()

{MyChasobjl

owl.Print();

MyClmssobj2(owl);obj2.Print();

retum0;

三、简单应用题(24分)

42、请使用VC6或使用【答题】菜单打开考生文件夹pr092下的工程pros2。

此工程中包含一个程序文件main.cpp,其中有“部门”类Department和“职工”类Staff的定义,还有主函数main的定义。

在主函数中定义了两个“职工”对象,他们属于同一部门。

程序展示,当该部门改换办公室后,这两个人的办公室也同时得到改变。

请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。

此程序的正确输出结果应为:

改换办公室前:

职工号:

0789姓名:

张三部门:

人事处办公室:

521

职工号:

0513姓名:

李四部门:

人事处办公室:

521

改换办公室后:

职工号:

0789姓名:

张三部门:

人事处办公室:

311

职工号:

0513姓名:

李四部门:

人事处办公室:

311

注意:

只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。

#include

usingnamespacestd;

classDepartment{//“部门”类

public:

Department(constchar*name,constchar*office){

strcpy(this一>name,nanle);

//**********found**********

}

constchar*getName()const{returnname;}//返回部门名称

//**********found**********

constchar*getOffice()const{________}//返回办公室房号

voidchangeOfficeTo(constchar*office){//改换为指定房号的另一个办公室

strcpy(this一>office,office);

}

private:

charname[20];//部门名称

charoffice[20];//部门所在办公室房号

};

classstaff{//“职工”类

public:

//**********found**********

Staff(constchar*my—id,constchar木my_name,Department&my_dept):

——{

strcpy(this一>staffid,my_id);

strcpy(this一>name,my_name);

}

constchar*getlD()const{returnstaff_id;}

constchar*getName()consl{returnname;}

DepartmentgetDepartment()const{returndept;}charstaff=id[10];//职工号

charname[20];//姓名

Department&dept;//所在部门

};voidshowStaff(Staff&staff){

cout<<”职工号:

Departmentdept(”人事处”,”521”);

StaffZhang(”0789”,”张三”,dept),Li(”0513”,”李四”,dept);

cout<<”改换办公室前:

//人事处办公室由521搬到311//**********found**********———————————————————————一

cout<<”改换办公室后:

return0;}

四、综合应用题(18分)

43、

请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中包含了类IntegerSet和主函数main的定义。

一个IntegerSet对象就是一个整数的集合,其中包含0个或多个无重复的整数;为了便于进行集合操作,这些整数按升序存放在成员数组elem的前若干单元中。

成员函数add的作用是将一个元素添加到集合中(如果集合中不存在该元素),成员函数remove从集合中删除指定的元素(如果集合中存在该元素)。

请编写成员函数remove。

在main函数中给出了一组测试数据,此时程序的正确输出结果应为:

23452728316675

234562728315675

23456192728316675

3456192728316675

3456192728316675

要求:

补充编制的内容写在“//***********333***********”与“//***********666***********”之间,不得修改程序的其他部分。

注意:

程序最后将结果输出到文件out.dat中。

输出函数writeToFile已经编译为obj文件,并且在本程序中

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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