2014年全国计算机等级《二级C++》考前押密试卷(1)

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

试卷介绍: 2014年全国计算机等级《二级C++》考前押密试卷(1)

开始答题

试卷预览

  • 1. 请使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,该工程中包含程序文件main.epp,其中有类Door(“门”)和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:打开503号门…门是锁着的,打不开。打开503号门的锁…锁开了。打开503号门…门打开了。打开503号门…门是开着的,无须再开门。锁上503号门…先关门...门锁上了。注意:只修改每个“//ERROR***********found**********”下的那一行,不要改动程序中的其他内容。#includeusingnamespacestd;classDoor{intBum;//门号boolclosed;//true表示门关着boollocked://true表示门锁着public:Door(intnHm){//ERROR***********found***********nun=this一>ann:closed=locked=true:}boolisClosed()const{rehlrnclosed;}//门关着时返回true,否则返回falseboolisOpened()const{return!closed;}//门开着时返回true,否则返回falseb001isLocked()const{retumlocked;}//门锁着时返回true,否则返回falseboolisUnlocked()const{return!locked;}//门未锁时返回true,否则返回falsevoidopen(){//开门cout<<ENDL<<”打开”<<NNM<//ERROR***********found***********if(closed)cout<<”门是开着的,无须再开门。”;elseif(10cked)cout<<”门是锁着的,打不开。”;else{closed=false;eout<<”门打开了。”;}}voidclose(){//关门cout<<ENDL<<”关上”<<NUM<if(closed)cout<<”门是关着的,无须再关门。”;else{closed=true;cout<<”门关上了.";}}//ERROR************found************voidlock()const{//锁门cout<<ENDL<<”锁上”<<NUM<if(locked)cout<<”门是锁着的,无须再锁门。”;else{if(!closed){cout<<”先关门...”;closed=true;}locked=true:cout<<”门锁上了。”;}}wildunlock(){//开锁cout<<ENDL<<”开”<<NUM<if(!locked)cout<<”门没有上锁,无须再开锁。”;else{locked=false;cout<<”锁开了。”;}};intmain(){Doordoor(503);door.open();door.unlock();door.open();door.open();floor.10ck();return0;}[18分]
  • 2. 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中包含一个程序文件main.cpp,其中有类CPolygon(“多边形”)、CRectangle(“矩形”)、CTriangle(“三角形”)的定义。请在横线处填写适当的代码并删除横线,以实现上述类定义。该程序的正确输出结果应为:注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。#include{toutprintarea();ppoly2->printarea();retun0;[24分]

    A(1),height(h){}//*********found*********intarea(void){return(——)/2;}};intmain(){CRectanglerect(4,5);CTriangletrgl(4,5);//*********found*********______*ppolyl,*ppoly2;ppolyl=&rect;ppoly2=&trgl;ppolyl->printarea();ppoly2->printarea();retun0;[24分]

  • 3. 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。s0rt成员函数的功能是将当前数据表中的元素升序排列。请编写这个sort函数。程序的正确输出应为:排序前:7,1,3,11,6,9,12,10,8,4,5,2排序后:l,2,3,4,5,6,7,8,9,10,11,12
  • 4. 有三个关系RS和T如下则由关系R和S得到关系T的操作是()。[1分]

    A自然连接

    B

    C

    D

  • 5. 有如下程序:#inCludeusingnamespaCestd;Classtest{private:inta;publiC:test(){Cout<<”ConstruCtor”<<ENDL;}&NBSP;&NBSP;&NBSP;test(intA.{Cout<<a<<endl;}test(Consttest&_test){a=test.a:Cout<<”CopyConstruCtor”<<ENDL:&NBSP;&NBSP;&NBSP;}test(){Cout<<”destruCtor”<<ENDL;}};intmain(){testA(3);return0;}执行这个程序的输出结果是()。[1分]

    A3

    BConstruCtordestruCtor

    CCopyConstruCtordestruCtor

    D3destruCtor

  • 6. 下列程序的输出结果为()。#includevoidmain(){char*a[]={”hell0”,”the”,”world”};char**pa=a:pa++;cout<<*pa<}[1分]

    Ahello

    Bthe

    Cworld

    Dhellotheworld

  • 7. 可以用P.a的形式访问派生类对象P的基类成员a,其中a是()。[1分]

    A私有继承的公有成员

    B公有继承的私有成员

    C公有继承的保护成员

    D公有继承的公有成员

  • 8. 下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是()。[1分]

    Acout<<INTERNAL<<12345;

    Beout<<LEFT<<12345;

    Ccout<<RIGHT<<12345;

    Dcout<<SETW(6)<

  • 9. 有如下程序:#includeusingnamespacestd;classVAC{public:intf()const{return3;}intf(){retum5;}};intmain(){VACvl;constVACv2;cout<<VL.F()<return0;}执行这个程序的输出结果是()。[1分]

    A53

    B35

    C55

    D33

  • 10. 通常拷贝构造函数的参数是()。[1分]

    A某个对象名

    B某个对象的成员名

    C某个对象的引用名

    D某个对象的指针名

  • 11. 一个函数功能不太复杂但要求被频繁调用,应选用()。[1分]

    A内联函数

    B重载函数

    C递归函数

    D嵌套函数

  • 12. 将E—R图转换为关系模式时,实体和联系都可以表示为()。[1分]

    A属性

    B

    C关系

    D

  • 13. 有如下程序:#includeusingnamespacestd;classAA{intk;protected:intn;voidsetK(intk){this一>k=k;}public:voidsetN(intn){this一>n=n;}};classBB:publicAA{/*类体略*/};intmain()}BBX;An=1;//1BsetN(2);//2Ck=3;//3DsetK(4);//4return0;}在标注号码的四条语句中正确的是()。[1分]

    A1

    B2

    C3

    D4

  • 14. 假定int类型变量占用两个字节,其有定义intx[10]={0,2,4};,则数组x在内存中所占字节数是()。[1分]

    A3

    B6

    C10

    D20

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

    A选择

    B投影

    C插入

    D连接

  • 16. 对于循环队列,下列叙述中正确的是()。[1分]

    A队头指针是固定不变的

    B队头指针一定大于队尾指针

    C队头指针一定小于队尾指针

    D队头指针可以大于队尾指针,也可以小于队尾指针

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

    Apublic

    Bstatic

    Cprotected

    Dprivate

  • 18. 下面程序的运行结果为()。#includeclassA{inthum;public:A(inti){nuln=i;}A(A&A.{num=a.num十+;}voidprint(){eout(voidmain()Aa(1),b(A.;a.print();Aprint();[1分]

    A11

    B12

    C21

    D22

  • 19. 下面是重载为非成员函数的运算符的函数原型,其中错误的是()。[1分]

    AFractionoperator+(Fraction,Fraction);

    BFractionoperator一(Fraction);

    CFraction&operator=(Fraction&,Fraction);

    DFraction&operator+=(Fraction&,Fraction);

  • 20. 下列语句中错误的是()。[1分]

    AConstinta;

    BConstinta=10;

    CConstint*point=0;

    DConstint*point=newint(10);

  • 21. 数据库应用系统中的核心问题是()。[1分]

    A数据库设计

    B数据库系统设计

    C数据库维护

    D数据库管理员培训

  • 22. 有如下程序:ClassBase{publiC:intdata;};ClassDerivedl:publiCBase{};ClassDerived2:proteCtedBase{};intmain(){Derivedldl;Derived2d2;dl.data=0;//①d2.data=0;//②retum0;}下列关于程序编译结果的描述中,正确的是()。[1分]

    A①②皆无编译错误

    B①有编译错误,②无编译错误

    C①无编译错误,②有编译错误

    D①②皆有编译错误

  • 23. 下列关于基类和派生类关系的叙述中,正确的是()。[1分]

    A每个类最多只能有一个直接基类

    B派生类中的成员可以访问基类中的任何成员

    C基类的构造函数必须在派生类的构造函数体中调用

    D派生类除了继承基类的成员,还可以定义新的成员

  • 24. 结构化程序所要求的基本结构不包括()。[1分]

    A顺序结构

    BGOT0跳转

    C选择(分支)结构

    D重复(循环)结构

  • 25. 下列有关函数重载的叙述中,错误的是()。[1分]

    A函数重载就是用相同的函数名定义多个函数

    B重载函数的参数列表必须不同

    C重载函数的返回值类型必须不同

    D重载函数的参数可以带有默认值

  • 26. 下面关于类和对象的描述中,错误的是()。[1分]

    A类就是C语言中的结构体类型,对象就是C语言中的结构体变量

    B类和对象之间的关系是抽象和具体的关系

    C对象是类的实例,一个对象必须属于一个已知的类

    D类是具有共同行为的若干对象的统一描述体

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

    AC++已有的任何运算符都可以重载

    B运算符函数的返回类型不能声明为基本数据类型

    C在类型转换符函数的定义中不需要声明返回类型

    D可以通过运算符重载来创建C++中原来没有的运算符

  • 28. 在下列原型所示的C++函数中,按“传值”方式传递参数的是()。[1分]

    Avoidfl(intX);

    Bvoidt2(int*X);

    Cvoidf3(Constint*X);

    Dvoidf4(int&x);

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

    A函数可以没有返回值

    B函数可以没有参数

    C函数可以是一个类的成员

    D函数不能被定义为模板

  • 30. 有三个关系R、S和T如下:则由关系R和S得到关系T的操作是()。[1分]

    A自然连接

    B

    C

    D

  • 31. 一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。[1分]

    A一对一

    B一对多

    C多对一

    D多对多

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

    A循环队列有队头和队尾两个指针,因此,循环队列是非线性结构

    B在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况

    C在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况

    D循环队列中元素的个数是由队头指针和队尾指针共同决定

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

    A(operator++(x)).operator/(Y)

    B(operator++(0)).operator/(Y)

    Coperator/((operator++(x,0)),Y)

    Doperator/((operator++(0)),Y)

  • 34. 下面是一个模板声明的开始部分:templatedouble…由此可知()。[1分]

    A这可能是一个函数模板的声明

    B这可能是一个类模板的声明

    C这既可能是一个函数模板的声明,也可能是一个类模板的声明

    D这肯定是一个错误的模板声明

  • 35. 有如下头文件:intfl();staticintf2();classMA{public:intf3();staticintf4();};在所描述的函数中,具有隐含的this指针的是()。[1分]

    Afl

    Bf2

    Cf3

    Df4

  • 36. 有如下函数模板:templateTeast(Uu)ireturnu;}其功能是将U类型数据转换为T类型数据。已知i为int型变量,下列对模板函数cast的调用中正确的是()。[1分]

    Acast(i);

    Bcast(i);

    Ceast(i);

    Deast(i);

  • 37. 下面程序的运行结果是()。#includevoidfun(int*a,int*B.{intx=*a:*a=*b;*b=X;cout<<*a<<*b<<””:voidmain(){intX=1,Y=2;fun(&x,&y);cout<<X<<Y<}[1分]

    A1212

    B1221

    C2112

    D2121

  • 38. 在C++语言中,打开一个文件就是将这个文件与一个()建立关联。[1分]

    A

    B

    C结构

    D对象

  • 39. 下列语句中,错误的是()。[1分]

    Aconstintbuffer:256;

    Bconstinttemp;

    Cconstdouble*point;

    Dconstdouble*rt=newdouble(5.5);

  • 40. 下列关于二叉树的叙述中,正确的是()。[1分]

    A叶子结点总是比度为2的结点少一个

    B叶子结点总是比度为2的结点多一个

    C叶子结点数是度为2的结点数的两倍

    D度为2的结点数是度为1的结点数的两倍

  • 41. 有以下语句,则对a数组元素的引用不正确的是(0≤i≤9)()。inta[10]={0,1,2,3,4,5,6,7,8,9},*P=a;[1分]

    Aa[P-a]

    B*(&a[i])

    CP[i]

    D*(*(a+i))

  • 42. 下列程序的运行结果为()。#includevoidprint(doubleA.{cout<<++a:}voidprint(intatintB.{cout<<B<}voidmain(){print(1.2);eout<<””:print(3,4);}[1分]

    A1.234

    B2.234

    C1.243

    D2.243

  • 43. 存在定义inta[10],x,*pa;,若pa=&a[0],下列的()选项和其他3个选项不是等价的。[1分]

    Ax=*pa;

    Bx=*(a+1);

    Cx=*(pa+l)

    Dx=a[1];

相关试卷
相关题库