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

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

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

开始答题

试卷预览

  • 1. 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数0perator=,以实现深层复制。
  • 2. 请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,该工程含有一个源程序文件pn,jl.cpp。其中位于每个注释“//ERROR木}}水found}}水木”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为:Thevalueis10注意:只修改注释“//ERROR****found****”的下一行语句,不要改动程序中的其他内容。//pmjl.cpp#includeusingnamespacestd;classMyClass{intvalue;public://ERROR********found*********voidMyClass(intval):value(val){}intGetValue()const{returnvalue;}voidSetValue(intval);};//ERROR********found********inlinevoidSetValue(intval){value=val;}intmain()MyClassobj(O);obj.SetValue(10);//ERROR********found********下列语句功能是输出obj的成员value的值tout<<”Thevalueis”<<OBJ.VALUE<return0;}[18分]
  • 3. 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,其中有矩阵基类MatrixBase、矩阵类Matrix和单位阵UnitMatrix的定义,还有main函数的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:123452345634567100000010000001000000100000010000001注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//t+++found母***”。#nCludeusingnamespaCestd;//矩阵基础类,一个抽象类ClassMatrixBase{introws,Cols;publiC:MatrixBase(introws,intCols):roWS(rows),Cow(Cols){}intgetRows()Const{retumrows;}//矩阵行数intgetCols()Const{returnCols;}//矩阵列数virtualdoublegetElement(intr,intC)Const=0;//取第i个元素的值voidshow()Const{//分行显示矩阵中所有元素for(inti=0;i}};//矩阵类ClassMatrix:publiCMatfixBase{double*val;publiC://**********found**********Matrix(introws,intCols,doublein[]=NULL):——{//**********found**********val=;for(inti=0:i<ROWS*COLS;I++)val[i]=(m==NULL?0.0:Ill[i]);}一Matrix(){delete[]val;}doublegetElement(intr,intC)Const{retumval[r*getCols()+C];}};//单位阵(主对角线元素都是l,其余元素都是0的方阵)类ClassUnitMatrix:publiCMatrixBase{publiC:UnitMatrix(intrOWS):MatrixBase(rows,rows){}//单位阵行数列数相同doublegetElement(intr,intC)Const{//**********found**********if(_____)retuml.0;retum0.0;}};intmain(){MatrixBase*m;doubled[][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7}};ITI=newMatrix(3,5,(double*)d);m→show();deletem;Cout<m=newUnitMatrix(6);Ill→show();deletem;retum0;}[24分]
  • 4. 下列排序方法中,最坏情况下比较次数最少的是()。[1分]

    A冒泡排序

    B简单选择排序

    C直接插入排序

    D堆排序

  • 5. 以下程序中调用cin函数给变量a输入数值的方法是错误的,其错误原因是()。#includevoidmain(){int*P,*q,a,b;P=&a:eout>P:[1分]

    A*P表示的是指针变量P的地址

    BP表示的是变量a的地址,而不是变量a的值

    C*P表示的是指针变量P的值

    D*P只能用来说明P是一个指针变量

  • 6. 如果表达式x*y+z中,“*”是作为友元函数重载的,“+”是作为成员函数重载的,则该表达式还可为()。[1分]

    Aoperator+(operator$(X,Y),z)

    Bx.operator+(operator*(x,y),Z)

    CY.operator*(operator+(x,Y),z)

    Dx.operator+(operator{(X,Y))

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

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

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

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

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

  • 8. this指针是C++语言实现()的一种机制。[1分]

    A抽象

    B封装

    C继承

    D重载

  • 9. 有如下程序:#includeusingnamespacestd;classGA{public:virtualintf()tretuml;}};classGB:publicGA{public:virtualintf(){retum2;}};voidshow(GAg){eout<<9.f();}voiddisplay(GA&g){cout<<9.f();}intmain(){GAa;show(A.;display(A.;GBb;show(B.;display(B.;return0;}执行这个程序的输出结果是()。[1分]

    A1111

    B1211

    C1112

    D1212

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

    A从虚基类继承的函数都是虚函数

    B虚函数不得是静态成员函数

    C只能通过指针或引用调用虚函数

    D抽象类中的成员函数都是虚函数

  • 11. 下列语句中不是死循环的是()。[1分]

    Ainti=10;

    Bfor(inti=1;j<10;i++)while(1){{i--;i--;}if(i==1)break;

    Cinti-0;

    Dinti=1:

  • 12. C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()。[1分]

    A增加了一些新的运算符

    B允许函数重载,并允许设置默认参数

    C规定函数说明符必须用原型

    D引进了类和对象的概念

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

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

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

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

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

  • 14. 在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是()。[1分]

    Aios_base::cur

    Bios—base::beg

    Clos_base::0ut

    Dios—base::end

  • 15. 在下列关键字中,不能用来表示继承方式的是()。[1分]

    Aprivate

    Bstatic

    Cpublic

    Dprotected

  • 16. 下面的()选项不能作为函数的返回类型。[1分]

    Avoid

    Bint

    Cnew

    Dlong

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

    A0和1

    B1和1

    C0和2

    D1和2

  • 18. 定义无符号整数类为UInt,下面可以作.为类UInt实例化值的是()。[1分]

    A一369

    B369

    C0.369

    D整数集合{1,2,3,4,5}

  • 19. 某二叉树共有7个结点,其中叶子结点只有l个,则该二叉树的深度为(假设根结点在第1层)()。[1分]

    A3

    B4

    C6

    D7

  • 20. 在数据库设计中,将E~R图转换成关系数据模型的过程属于()。[1分]

    A需求分析阶段

    B概念设计阶段

    C逻辑设计阶段

    D物理设计阶段

  • 21. 下列关于类模板的模板参数的叙述中,错误的是()。[1分]

    A模板参数可以作为数据成员的类型

    B模板参数可以作为成员函数的返回类型

    C模板参数可以作为成员函数的参数类型

    D模板参数不能作为成员函数的局部变量的类型

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

    A可行性分析报告

    B软件需求规格说明书

    C概要没计说明书

    D集成测试计划

  • 23. 下面关于模板的描述,错误的是()。[1分]

    A函数模板和类模板的参数可以是任意的数据类型

    B类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使用

    C函数模板不能直接使用,需要实例化为模板函数后才能使用

    D类模板的成员函数都是模板函数

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

    A运算符重载是多态性的一种表现

    BC++中可以通过运算符重载创造新的运算符

    CC++中所有运算符都可以作为非成员函数重载

    D重载运算符时可以改变其结合性

  • 25. 必须用一对大括号括起来的程序段是()。[1分]

    AswitCh语句中的ease标号语句

    Bif语句的分支

    C循环语句的循环体

    D函数的函数体

  • 26. 有如下程序:#includeusingnamespaeestd;intmain(){voidfunction(doubleval);doubleval:function(val);eout<return0;}voidfunction(doubleval){val=3;}编译运行这个程序将出现的情况是()。[1分]

    A编译出错,无法运行

    B输出:3

    C输出:3.0

    D输出一个不确定的数

  • 27. 面向对象方法中,继承是指()。[1分]

    A一组对象所具有的相似性质

    B一个对象具有另一个对象的性质

    C各对象之间的共同性质

    D类之间共享属性和操作的机制

  • 28. 下列程序的运行结果为()。#includevoidmain(){inta=2:intb=a+1:cout<[1分]

    A0.66667

    B0

    C0.7

    D0.66666666…

  • 29. 有如下定义:inta[5]={1,3,5,7,9},*P=a;下列表达式中不能得到数值5的是()。[1分]

    Aa[2]

    Ba[3]

    C*(P+2)

    D+P+4

  • 30. 派生类的成员函数不能访问基类的()。[1分]

    A公有成员和保护成员

    B公有成员

    C私有成员

    D保护成员

  • 31. 下列代码段中声明了3个类:ClassPerson{};ClassStudent:publiCPerson{};ClassUndergraduate:Student{};下列关于这些类之间关系的描述中,错误的是()。[1分]

    A类Person是类Undergraduate的基类

    B类Undergraduate从类Student公有继承

    C类Student是类Person的派生类

    D类Undergraduate是类Person的派生类

  • 32. 若有下面的函数调用:fun(fl+b,3,max(n一1,B.)则fun的实参个数是()。[1分]

    A3

    B4

    C5

    D6

  • 33. 有如下两个类定义:classXX{private:doublexl;protected:doublex2;public:doublex3;};classYY:protectedXX{private:doubleyl;protected:doubley2;public:doubley3;在类YY中保护成员变量的个数是()。[1分]

    A1

    B2

    C3

    D4

  • 34. 下面程序的运行结果为()。#includeclassA{public:A(){tout<<”1”;}~A(){tout<<”2”;}};classB:publicA{public:B(){cout<<”3”;}~B(){cout<<”4”;}};voidmain(){Bb;}[1分]

    A1234

    B1324

    C1342

    D3142

  • 35. 与语句cout<<ENDL;不等价的是(&NBSP;&NBSP;&NBSP;)。[1分]

    Acout<<’\n’;

    Bcout<<‘\l2’:

    Ccout<<’\xA’;

    Dcout<<‘\0’:

  • 36. 有如下程序:#ncludeusingnamespacestd;intmain(){voidfunction(doubleval);doubleval;function(val);cout<return0;}voidfunction(doubleval)}val=3;}编译运行这个程序将出现的情况是()。[1分]

    A编译出错,无法运行

    B输出:3

    C输出:3.0

    D输出一个不确定的数

  • 37. 下面关于虚函数的描述,错误的是()。[1分]

    A在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数

    B基类中说明了虚函数后,派生类中对应的函数也必须说明为虚数

    C虚函数可以是另一个类的友元函数,但不能是静态成员函数

    D基类中说明的纯虚函数在其任何派生类中都必须实现

  • 38. C++系统预定义了4个用于标准数据流的对象,下列选项中不属于此类对象的是()。[1分]

    Acout

    Bcin

    Ccerr

    Dcset

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

    A有一个以上根结点的数据结构不一定是非线性结构

    B只有一个根结点的数据结构不一定是线性结构

    C循环链表是非线性结构

    D双向链表是非线性结构

  • 40. 数据库系统的三级模式不包括()。[1分]

    A概念模式

    B内模式

    C外模式

    D数据模式

  • 41. 为了取代c中带参数的宏,在c++中使用()。[1分]

    A重载函数

    B内联函数

    C递归函数

    D友元函数

  • 42. 建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、C(派生类)构造函数),这3种构造函数的调用顺序为()。[1分]

    AabC

    BaCb

    CCab

    DCba

  • 43. 当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为()。[1分]

    Aios—base::in

    Bios—base::inliosbase::0ut

    Closbase;:0ut

    Dios_base::in&ios_base::0ut

相关试卷
相关题库