2014年全国计算机等级《二级C++》上机考试冲刺试题(1)

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

试卷介绍: 2014年全国计算机等级《二级C++》上机考试冲刺试题(1)

开始答题

试卷预览

  • 1. 请使用VC6或使用【答题】菜单打开考生文件夹pr092下的工程pros2。此工程中包含一个程序文件main.cpp,其中有“部门”类Department和“职工”类Staff的定义,还有主函数main的定义。在主函数中定义了两个“职工”对象,他们属于同一部门。程序展示,当该部门改换办公室后,这两个人的办公室也同时得到改变。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:改换办公室前:职工号:0789姓名:张三部门:人事处办公室:521职工号:0513姓名:李四部门:人事处办公室:521改换办公室后:职工号:0789姓名:张三部门:人事处办公室:311职工号:0513姓名:李四部门:人事处办公室:311注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。#includeusingnamespacestd;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<<”职工号:”<<STAFF.GETID()<cout<<”姓名:”<<STAFF.GETNAME()<<"cout<<”部门:”<<STAFF.GETDEPARTMENT().GETNAME()<<"cout<<”办公室:”<<STAFF.GETDEPARTMENT().GETOFFICE()<<ENDL;&NBSP;&NBSP;&NBSP;}intmain(){Departmentdept(”人事处”,”521”);StaffZhang(”0789”,”张三”,dept),Li(”0513”,”李四”,dept);cout<<”改换办公室前:”<showStaff(Zhang);showStaff(Li);//人事处办公室由521搬到311//**********found**********———————————————————————一cout<<”改换办公室后:”<showStaff(Zhang);showStaff(Li);return0;}[24分]
  • 2. 请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,此工程中含有一个源程碍文件projl.epp。其中位于每个注释“//ERROR****found****”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:ConstruCtorCalled.Thevalueis10CopyConstruCtorCalled.Thevalueis10DestruCtorCalled.DestruCtorCalled.注意:只修改注释“//ERROR****found****”的下一行语句,不要改动程序中的其他内容。//pwjl.Cpp#inClude’usingnamespaCestd;ClassMyClass{publiC://ERROR**********found**********MyClass(inti){value=i;Cout<<”ConstruCtorCalled.”<<ENDL;}//ERROR**********found**********MyClass(eonstMyClassP){value=P.value;eout<<”CopyConstruCtorCalled.”<}voidPrint(){Cout<<”Thevalueis”<<VALUE<<ENDL;}//ERROR**********found*********void-MyClass(){Cout<<”DestruCtorCalled.”<<ENDL;}private:intvalue;};intmain(){MyChasobjlowl.Print();MyClmssobj2(owl);obj2.Print();retum0;[18分]
  • 3. 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中包含了类IntegerSet和主函数main的定义。一个IntegerSet对象就是一个整数的集合,其中包含0个或多个无重复的整数;为了便于进行集合操作,这些整数按升序存放在成员数组elem的前若干单元中。成员函数add的作用是将一个元素添加到集合中(如果集合中不存在该元素),成员函数remove从集合中删除指定的元素(如果集合中存在该元素)。请编写成员函数remove。在main函数中给出了一组测试数据,此时程序的正确输出结果应为:234527283166752345627283156752345619272831667534561927283166753456192728316675
  • 4. 下列()是C++语言的有效标识符。[1分]

    ANol

    BN0.1

    C12345

    Dint

  • 5. 下列关于运算符重载的叙述中,错误的是()。[1分]

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

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

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

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

  • 6. F列关于栈的叙述正确的是()。[1分]

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

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

    C只能在栈底插入数据

    D不能删除数据

  • 7. 软件生命周期中的活动不包括()。[1分]

    A市场调研

    B需求分析

    C软件测试

    D软件维护

  • 8. 有如下类声明:classSAMPLE{intn:public:SAMPLE(inti=0):n(i){}voidsetValue(intnO);};下列关于9etValue成员函数的定义中,正确的是()。[1分]

    ASAMPLE::setValue(intnO){n=n0;}

    BvoidSAMPLE::setValue(int胡){n=n0;

    CvoidsetValue(intnO){n=n0;}

    DsetValue(intnO){n=n0;}

  • 9. 下列关于c++函数的说明中,正确的是()。[1分]

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

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

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

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

  • 10. 有如下程序:#inCludeusingnamespaCestd;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);//②}};下列叙述中正确的是()。[1分]

    A程序编译正确

    B程序编译时语句①出错

    C程序编译时语句②出错

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

  • 11. 在公有继承的情况下,允许派生类直接访问的基类成员包括()。[1分]

    A公有成员

    B公有成员和保护成员

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

    D保护成员

  • 12. Tilil程序的运行结果是()。#includevoidmain(){inti=1:while(i<=8)if(++i%31=2)continue:elseeout<}[1分]

    A25

    B36

    C258

    D369

  • 13. 一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。[1分]

    A12345ABCDE

    BEDCBA54321

    CABCDEl2345

    D5432lEDCBA

  • 14. 下面程序的运行结果为()。#includevoidmain(){chara=’3’:switch(8){case'3':cout<<”3”:case'2':cout<<”2”;break;default:cout<<”l”;}}[1分]

    A3

    B321

    C31

    D32

  • 15. 一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为()。[1分]

    A16

    B10

    C6

    D4

  • 16. 下面对静态数据成员的描述中,正确的是()。[1分]

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

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

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

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

  • 17. 下面叙述中错误的是()。[1分]

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

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

    C程序调试通常也称为Debug

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

  • 18. 负责数据库中查询操作的数据库语言是()。[1分]

    A数据定义语言

    B数据管理语言

    C数据操纵语言

    D数据控制语言

  • 19. 有如下程序:#includeusingnamespacestd;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;}执行这个程序的输出结果是()。[1分]

    ABaseBase

    BBaseDerived

    CDerivedBase

    DDerivedDerived

  • 20. 有三个关系R、S和T如下:由关系R和S通过运算得到关系T,则所使用的运算为()。[1分]

    A笛卡尔积

    B

    C

    D自然连接

  • 21. 有如下程序:#inCludeusingnamespaCestd;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<<SUM:&NBSP;&NBSP;&NBSP;}执行这个程序的输出结果是()。[1分]

    A120

    B16

    C154

    D34

  • 22. 有如下头变件:intf1()StatiCintf2();ClassMApubliC:intf3();1statiCintf4();};在所描述的函数中,具有隐含的this指针的是()。[1分]

    Afl

    Bf2

    CB

    Df4

  • 23. 下列关于线性链表的叙述中,正确的是()。[1分]

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

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

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

    D以上说法均不正确

  • 24. 对于一个类定义,下列叙述中错误的是()。[1分]

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

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

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

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

  • 25. 为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为()。[1分]

    Apublic

    Bprotected

    Cprivate

    Dstatic

  • 26. 下列关于运算符函数的描述中,错误的是()。[1分]

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

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

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

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

  • 27. 下面程序的运行结果为()。#includevoidswap(int&a,intB.inttemp;temp=a++:a=b:b=temp;}voidmain(){ima=2,b=3;swap(a,B.;eout<<A<<”,”<<B<}[1分]

    A2,3

    B3,2

    C2,2

    D3,3

  • 28. 有如下程序:#inCludeusingnamespaCestd;ClassMyClass{publiC:MyClass(intX):val(X){}voidPrint()Const}tout<<”Const:val=”<<VAL<<’\T’;}&NBSP;&NBSP;&NBSP;Print(){tout<private:intval;};intmain(){ConstMyClassobjl(10);MyClassobj2(20);objl.Print();obj2.Print();retum0;}执行这个程序的输出结果是()。[1分]

    Aval=10Const:val=20

    BConst:val=10Const:val=20

    CConst:val=10val=20

    Dval=10val=20

  • 29. 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。[1分]

    A一对一

    B一对多

    C多对多

    D多对一

  • 30. 下列程序的运行结果是()。#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;[1分]

    Ainit();

    BvalueX(5);cout<

    C5062

    D0062

  • 31. 下面对静态数据成员的描述中,正确的是()。[1分]

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

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

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

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

  • 32. 设inta=10,b=11,C=12;,表达式(a+B.<C&&B==C的值是(&NBSP;[1分]

    A2

    B0

    C-2

    D1

  • 33. 下列说法正确的是()。[1分]

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

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

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

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

  • 34. 下面对于友元函数描述正确的是()。[1分]

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

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

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

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

  • 35. 一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是()。[1分]

    A1:1联系

    B1:m联系

    Cm:1联系

    Dm:n联系

  • 36. 在数据管理技术发展的三个阶段中,数据共享最好的是()。[1分]

    A人工管理阶段

    B文件系统阶段

    C数据库系统阶段

    D三个阶段相同

  • 37. 数据库设计中反映用户对数据要求的模式是()。[1分]

    A内模式

    B概念模式

    C外模式

    D设计模式

  • 38. 软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是()。[1分]

    A编译程序

    B操作系统

    C教务管理系统

    D汇编程序

  • 39. 层次型、网状型和关系型数据库划分原则是()。[1分]

    A己录长度

    B文件的大小

    C联系的复杂程度

    D数据之间的联系方式

  • 40. 下面程序的运行结果为()。#includeclassAstaticintn;public:A(){n=1;}A(intnum){n=hum;}voidprint(){cout<<N;}&NBSP;&NBSP;&NBSP;intA::n=2;voidmain(){Aa,b(3);a.print();b.print();cout<[1分]

    A11

    B13

    C23

    D33

  • 41. 已知枚举类型声明语句为:enumCOl,OR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};则下列说法中错误的是()。[1分]

    A枚举常量YELLOW的值为1

    B枚举常量RED的值为6

    C枚举常量BLACK的值为10

    D枚举常量WHITE的值为1

  • 42. 有如下类定义:classMyClass{public:private:______________________________________intdata;};若要为MyClass类重载流输入运算符“>>”,使得程序中可以“cin>>obj;”的形式改变MyClass类的对象0bj中数据成员data的值,则横线处的声明语句应为()。[1分]

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

    Bfriendistream&operator>>(istream&is,MyClass

    Cistream&operator>>(istream&is,MyClass&

    Distream&operator>>(istream&is,MyClass

  • 43. 有如下程序:#inCludeusingnamespaCestd;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;}若程序运行时输出结果是“文学”,则横线处缺失的语句是()。[1分]

    AChar*Category();

    BChar*Category()Const;

    CvirtualChar*Category()Const;

    DvirtualChar*Category()Const=0;

相关试卷
相关题库