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

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

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

开始答题

试卷预览

  • 1. 请使用【答题】菜单命令或直接用VC6打开考生文件夹下的工程prog3,其中声明了ValArray类,该类在内部维护一个动态分配的整型数组。ValArray类的复制构造函数应实现对象的深层复制。请编写ValArray类的复制构造函数。在main函数中给出了一组测试数据,此种情况下程序的输出应该是:ValArrayvl={1,2,3,4,5}ValArrayv2={1,2,3,4,5}
  • 2. 请使用VC6或使用【答题】菜单打开考生文件夹progl下的工程progl,该工程中包含程序文件main.cpp,其中有Salary(“工资”)类和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句行有错误,请加以改正。改正后程序的输出结果应为:应发合计:3500应扣合计:67.5实发工资:3432.5注意:只修改每个“//ERROR****found****”下的那一行,不要改动程序中的其他内容。#includeusingnamespacestd;classSalary{public:Salary(constchar*id,doublethe_base,doublethebonus,doublethe_tax)//ERROR**********found**********:the_base(base),the_bonus(bonus),the_tax(tax){staff_id=newchar[strlen(id)+1];strcpy(staff_id,id);}//ERROR**********found**********~Salary(){delete*staff_id;}doublegetGmssPay()const{retumbase+bonus;}//返回应发项合计doublegetNetPay()const}retumgetGmssPay()-tax;}//返回实发工资额private:char*staffid;//职工号doublebase;//基本工资doublebonus;//奖金doubletax;//代扣个人所得税};intmain(){Salarypay(”888888”,3000.0,500.0,67.50);cout<<”应发合计:”<<PAY.GETGROSSPAY()<<"cout<<”应扣合计:”<<PAY.GETGROSSPAY()一PAY.GETNETPAY()<<””;//ERROR**********found**********cout<<”实发工资:”<<PAY::GETNETPAY()<<ENDL;return0;}[18分]
  • 3. 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,此工程包含有一个源程序文件proj2.cpp,其中定义了Stack类和ArrayStack类。Stack是一个用于表示数据结构“栈”的类,栈中的元素是字符型数据。Stack为抽象类,它只定义了栈的用户接口,如下所示:公有成员函数功能push入栈:在栈顶位置添加一个元素pop退栈:取出并返回栈顶元素ArrayStack是Stack的派生类,它实现了Stack定义的接口。ArrayStack内部使用动态分配的字符数组作为栈元素的存储空间。数据成员maxSize表示的是栈的最大容量,top用于记录栈顶的位置。成员函数push和pop分别实现具体的入栈和退栈操作。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述功能。此程序的正确输出结果应为:a,b,CC,b,a注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“//****料found****”。//proj2.cpp#includeusingnamespaccstd;classStack{public:virtualvoidpush(charC)=0;virtualcharpop()=0;};classArrayStack:publicStack{char*P;intmaxSizc;inttop;public:ArravStack(ints){top=0;maxSize=s://*********found*********P=______;}~ArrayStack(){//*********found*********_______;}voidpush(charc)}if(top==maxSize){cerr<<”Overflow!\n”:return;}//*********found*********_______;top++:}charpop(){if(top==0){cerr<<”Underflow!、n”;return‘\0’;}Top--;//*********found*********______;}};voidf(Stack&sRef){charch[]={‘a’,‘b’,‘c’};cout<<CH[0]<<”,”<<CH[1]<<”,”<<CH[2]<sRef.push(oh[0]);sRef.push(ch[1]);sRef.push(ch[2]);cout<<SREF.POP()<cout<<SREF.POP()<cout<<SREF.POP()<}intmain(){ArrayStackas(10);f(as):return0:}[24分]
  • 4. 有如下程序:#inCludeusingnamespaCestd;ClassB{publiC:virtualvoidshow(){Coutshow();}voidfUN2(B&ref){ref.show();}voidfhIl3(BB.{b.show();}intmain(){Bb,*P=newD;Dd;funl(P);fun2(B.;fun3(D);deleteP;return0;}执行这个程序的输出结果是()。[1分]

    ABBB

    BBBD

    CDBB

    DDBD

  • 5. 已知函数FA调用函数FB,若要把这两个函数定义在同一个文件中,则()。[1分]

    AFA必须定义在FB之前

    BFB必须定义在FA之前

    C若FA定义在FB之后,则FA的原型必须出现在FB的定义之前

    D若FB定义在FA之后,则FB的原型必须出现在FA的定义之前

  • 6. 下面关于c+十语言变量的叙述错误的是()。[1分]

    Ac++语言中变量分为aut0、static、extem和register4种存储类型

    B自动变量和外部变量的作用域为整个程序

    C内部静态变量的作用域是定义它的函数

    D外部静态变量的作用域是定义它的文件

  • 7. 有以下程序:#includefloattun(intX,intY){return(X+Y);}voidmain(){inta=2,b=5,c=8;cout<程序运行后的输出结果是()。[1分]

    A编译出错

    B9

    C21

    D9.0

  • 8. 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是()。[1分]

    A公有类型

    B私有类型

    C保护类型

    D友元类型

  • 9. 以下关键字不能用来声明类的访问权限的是()。[1分]

    ApubliC

    BstatiC

    CproteCted

    Dprivate

  • 10. 下列有关继承和派生的叙述中,正确的是()。[1分]

    A如果一个派生类公有继承其基类,则该派生类对象可以访问基类的保护成员

    B派生类的成员函数可以访问基类的所有成员

    C基类对象可以赋值给派生类对象

    D如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类

  • 11. 有如下程序:#includeusingnamespacestd;classBase{public:voidfun(){__________________cout<<”Base::fun”<<ENDL;}};classDerived:publicBase{public:voidfun(){cout<<”Derived::fun”<}};intmain(){Derivedd;Afun();return0;}已知其执行后的输出结果为:Base::funDerived::fun则程序中下画线处应填入的语句是()。[1分]

    ABase.fun();

    BBase::fun();

    CBase—>fun();

    Dfun();

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

    A栈顶元素最先能被删除

    B栈顶元素最后才能被删除

    C栈底元素永远不能被删除

    D栈底元素最先被删除

  • 13. 下面关于C++语言的描述错误的是()。[1分]

    AC++语言支持数据封装

    BC++语言中引入友元,没有破坏封装性

    CC++语言允许函数名和运算符重载

    DC++语言支持动态联编

  • 14. 有如下函数定义:voidfunC(inta,int&B.{a++;b++;}若执行代码段:intx=0,Y=1;funC(X,Y);则变量x和y的值分别是()。[1分]

    A0和1

    B1和1

    C0和2

    D1和2

  • 15. 下面程序的输出结果是()。#includeclassexample{inta;public:example(intB.{a=b++;}voidprint(){a=a+1;eout<<A<<””;}voidprint()const{cout<<A<<””;}};voidmain(){examplex(3);constexampleY(2);Aprint();Bprint();}[1分]

    A22

    B43

    C42

    D32

  • 16. 下列有关类继承的叙述中,错误的是()。[1分]

    A继承可以实现软件复用

    B虚基类可以解决由多继承产生的二义性问题

    C派生类构造函数要负责调用基类的构造函数

    D派生类没有继承基类的私有成员

  • 17. 下面程序的运行结果是()。#includeintfun(inta[],intn){intresuh=1;for(inli=1;i<11;1‘++)result=result*a[i];retumresult;}voidmain()inta[3]={3,4,5}:cout<<FUN(A,3)<}[1分]

    A12

    B15

    C20

    D60

  • 18. 下列叙述中正确的是()。[1分]

    A在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

    B在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

    C在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

    D以上说法都不正确

  • 19. 下列不是描述类的成员函数的是()。[1分]

    A构造函数

    B析构函数

    C友元函数

    D复制构造函数

  • 20. 有如下程序:intx=3:do{x-=2;COU[<}while(!(--X));执行这个程序的输出结果是()。[1分]

    A1

    B30

    C1—2

    D死循环

  • 21. 下列选项中属于面向对象设计方法主要特征的是()。[1分]

    A继承,

    B自顶向下

    C模块化

    D逐步求精

  • 22. 对于类定义classA{public:voidfunc2(){}};classB:publicA{public:w)idfuncl()|cout<<"classBfuncl”<<ENDL:}virtualvoiIlfimc2(){cout<<"classBfunc2"<<ENDL:}};下面正确的叙述是()。[1分]

    AA::rune2()和B::funcl()都是虚函数

    BA::func2()和B::funel()都不是虚函数

    CB::funcl()是虚函数,而A::func2()不是虚函数

    DB::funcl()不是虚函数,而A::func2()是虚函数

  • 23. 在c++语言程序中,对象之间的相互通信通过()。[1分]

    A继承实现

    B调用成员函数实现

    C封装实现

    D函数重载实现

  • 24. 下列叙述中正确的是()。[1分]

    A循环队列是队列的一种链式存储结构

    B循环队列是队列的一种顺序存储结构

    C循环队列是非线性结构

    D循环队列是一种逻辑结构

  • 25. 下面不属于需求分析阶段任务的是()。[1分]

    A确定软件系统的功能需求

    B确定软件系统的性能需求

    C需求规格说明书评审

    D制定软件集成测试计划

  • 26. 下列运算符中,不能被重载的是()。[1分]

    A&&

    B!=

    C

    D++

  • 27. 算法的空间复杂度是指()。[1分]

    A算法在执行过程中所需要的计算机存储空间

    B算法所处理的数据量

    C算法程序中的语句或指令条数

    D算法在执行过程中所需要的临时工作单元数

  • 28. c++语言类体系中,不能被派生类继承的有()。[1分]

    A转换函数

    B构造函数

    C虚函数

    D静态成员函数

  • 29. 对C++编译器区分重载函数无任何意义的信息是()。[1分]

    A参数类型

    B参数个数

    C返回值类型

    D常成员函数关键字Const

  • 30. 要想使23.78965421的输出为23.7887,应用的语句是()。[1分]

    Acout<<23.78965421;

    Bcout<<FIXED<<23.78965421;

    Ccout<<23.78965421—0.001;

    Dcout<<FIXED<

  • 31. 在软件开发中,需求分析阶段产生的主要文档是()。[1分]

    A软件集成测试计划

    B软件详细设计说明书

    C用户手册

    D软件需求规格说明书

  • 32. 下列关于类定义的说法中,正确的是()。[1分]

    A类定义中包括数据成员和函数成员的声明

    B类成员的缺省访问权限是保护的

    C数据成员必须被声明为私有的

    D成员函数只能在类体外进行定义

  • 33. 下列关于数据库设计的叙述中,正确的是()。[1分]

    A在需求分析阶段建立数据字典

    B在概念设计阶段建立数据字典

    C在逻辑设计阶段建立数据字典

    D在物理设计阶段建立数据字典

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

    A系统总体结构图支持软件系统的详细设计

    B软件设计是将软件需求转换为软件表示的过程

    C数据结构与数据库设计是软件设计的任务之一

    DPAD图是软件详细设计的表示工具

  • 35. 在满足实体完整性约束的条件下()。[1分]

    A一个关系中应该有一个或多个候选关键字

    B一个关系中只能有一个候选关键字

    C一个关系中必须有多个候选关键字

    D一个关系中可以没有候选关键字

  • 36. 下面程序的运行结果是()。#includevoidmain(){intnum=1:int&ref=num;ref=ref+2:cout<}[1分]

    A13

    B16

    C36

    D33

  • 37. 下列程序的运行结果为()。#includeinti=0;classA{public:A(){i++;}};voidmain(){Aa,b[3],*C;C=b;cout<<I<}[1分]

    A2

    B3

    C4

    D5

  • 38. 设有定义inta=1;floatf=1.2;charC='a';,则下列表示错误的是()。[1分]

    A++a;

    Bf一一;

    Cc++;

    D8++;

  • 39. 语句ofstreamf(”SALARY.DAT”,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALA-RY.DAT并与之连接,并且()。[1分]

    A若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件

    B若文件存在,将其置为空文件;若文件不存在,打开失败

    C若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件

    D若文件存在,打开失败;若文件不存在,建立一个新文件

  • 40. 下列符号中可以用做C++标识符的是()。[1分]

    A_radius

    Bf00~bar

    Celse

    D3room

  • 41. 以下各选项组中,均是C++语言关键字的组是()。[1分]

    Apublicoperatorthis

    Bshodstringstatic

    Citwhile>=

    Dpriratecoutprintf

  • 42. 下列选项,不正确的是()。[1分]

    Afor(inta=1;a<=10;a++);

    Binta=1;do{a++:}while(a<=10);

    Cinta=1;while(a<=10){a++:}

    Dfor(inta=1;a<=10;a++)a++;

  • 43. 下列关于运算符重载的描述中,正确的是()。[1分]

    A运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符

    B一元运算符只能作为成员函数重载

    C二元运算符重载为非成员函数时,参数表中有一个参数

    Dc++中可以重载所有的运算符

相关试卷
相关题库