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

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

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

开始答题

试卷预览

  • 1. 请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,该工程中包含一个程序文件main.Cpp,其中有坐标点类point、线段类Line和三角形类Triangle的定义.还有main函数的定义。程序中两Sidel:9.43398Side2:5Side3:8area:20注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。#inClude#nCludeusingnamespaCestd;ClassPoint{//坐标点类publiC:Constdoublex,y;Point(doublex=0.0,doubleY=0.0):x(x),Y(Y){}//**********found**********doubledistanCeTo(_____)Const{//到指定点的距离returnsqrt((x-P.X)*(x-P.x)+(Y-P.Y)*(Y-P.Y));}};ClassLine{//线段类publiC:eonstPointpl,p2;//线段的两个端点//**********found**********Line(Pointpl,Pointp2):——{}doublelength()eonst/retumpl.distanCeTo(p2);}//线段的长度};Ct彝SSTriangle{//三角形类publiC:ConstPointpl,p2,p3;//三角形的三个顶点//**********found**********Triangle(_____):pl(p1),p2(p2),p3(p3){}doublelengthl()Const{//边pl,p2的长度retumLine(pl,p2).1ength();}doublelength2()Const{//边p2,p3的长度returnLine(p2,p3).1ength();}doublelength3()Const{//边p3,pl的长度returnLine(p3,pl).1ength();}doublearea()Const{//三角形面积//**********found**********doubles=_____;returnsqrt(s{(S-lengthl())*(s-length2())*(s—length3()));}};intmain(){Triangler(Point(0.0,8.0),Point(5.0,0.0),Point(0.0,0.0));Cout<<”Sidel:”<<R.1ENGTHL()<Cout<<”Side2:”<<R.1ENGTH2()<<ENDL;&NBSP;&NBSP;&NBSP;retum0;[24分]
  • 2. 清使用VC6或使用【答题】菜单打开考生文件夹projl下的工程projl,此工程中包含了类Pets(“宠物”)和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:Name:sonnyType:dogName:JohnType:dogName:DannyTypc:catName:JohnType:dog注意:只修改每个“//ERROR****found****”下的那一行,不要改动程序中的其他内容。#includeusingnamespacesm;enumPets_type{d09,cat,bird,fish};classPets{private:char*name;Pets_typetype;public:Pets(constchar*name=”sonny”,Pets_typetype=dog);Pets&operator=(constPets&s);~Pets();voidshow()eonst;};Pets::Pets(eonstchar$naIne,Pets_typetype)//构造函数{This->name=newchar[strlen(name)+1];strcpy(this一>name,name);//ERROR*********found*********type=type;}{Pets::~Pets()//析构函数,释放name所指向的字符串{//ERROR*********found*********name=’/0‘;}Pets&Pets::0perator=(constPets&s){if(&s==this)//确保不要向自身赋值return*this;delete[]name;name=newchar[strlen(S.name)+1];//ERROR*********found*********strcpy(this一>nmne,name);type=S.type:return*this;}voidPets::show()constcout<<“Name:”<<NAME<[18分]
  • 3. 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。DataList的重载运算符函数0perator+,其功能是求当前数据表与另一个相同长度的数据表之和;即它返回一个数据表,其每个元素等于相应两个数据表对应元素之和。请编写这个operator+函数。程序的正确输出应该是:两个数据表:1,2,3,4,5,63,4,5,6,7,8两个数据表之和:4,6,8,10,12,14
  • 4. 下列叙述中正确的是()。[1分]

    A栈是一种先进先出的线性表

    B队列是一种后进先出的线性表

    C栈与队列都是非线性结构

    D以上三种说法都不对

  • 5. 关于关键字class和typename,下列表述中正确的是()。[1分]

    A程序中的typename都可以替换为class

    B程序中的class都可以替换为typename

    C在模板形参表中只能用{ypename来声明参数的类型

    D在模板形参表中只能用class或typenanle来声明参数的类型

  • 6. 数据库管理系统是()。[1分]

    A操作系统的一部分

    B在操作系统支持下的系统软件

    C一种编译系统

    D一种操作系统

  • 7. 软件生命周期是指()。[1分]

    A软件产品从提出、实现、使用维护到停止使用退役的过程

    B软件从需求分析、设计、实现到测试完成的过程

    C软件的开发过程

    D软件的运行维护过程

  • 8. 下列符号中不属于C++关键字的是()。[1分]

    Afriend

    Bnamespaee

    CContinue

    Dbyte

  • 9. 某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。[1分]

    A10

    B8

    C6

    D4

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

    Ainta=5;intx[a];

    Beonstinta=5;intx[a];

    Cintn=5;int*P=newint[a];

    Dconstintn=5;int*p=newint[a];

  • 11. if语句的语法格式可描述为:格式l:if()或格式2:if()else关于上面的语法格式,下列表述中错误的是()。[1分]

    A部分可以是一个if语句,例如if(if(a==0)…)…

    B部分可以是一个if语句,例如if(…)if(…)…

    C如果在前加上逻辑非运算符!并交换和的位置,语句功能不变

    D部分可以是一个循环语句,例如if(…)while(…)…

  • 12. 结构化程序设计的基本原则不包括()。[1分]

    A多态性

    B自顶向下

    C模块化

    D逐步求精

  • 13. 有如下类定义:ClassAA{inta;publiC:AA(intn=0):a(n){}};ClassBB:publiCAA{publiC:BB(intn)——};其中横线处缺失的部分是()。[1分]

    A:a(n){}

    B:AA(n)|}

    C{a(n);}

    D{a=n;}

  • 14. 下列关于派生类构造函数和析构函数的说法中,错误的是()。[1分]

    A派生类的构造函数会隐含调用基类的构造函数

    B如果基类中没有缺省构造函数,那么派生类必须定义构造函数

    C在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数

    D在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数

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

    A顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

    B顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

    C顺序存储结构能存储有序表,链式存储结构不能存储有序表

    D链式存储结构比顺序存储结构节省存储空间

  • 16. 下面程序的运行结果是()。#includeclassbase{protected:inta;public:base(){cout<<”0”;}};classbasel:virtualbase{public:basel(){cout<<”1”;}};classbase2:virtualbaseipublic:base2(){cout<<”2”;}};classderived:publicbasel,publicbase2{public:derived(){cout<<”3”;}};voidmain()derivedobj;cout<[1分]

    A0123

    B3120

    C0312

    D3012

  • 17. 在c++语言中,数据封装要解决的问题是()。[1分]

    A数据的规范化

    B便于数据转换

    C避免数据丢失

    D防止不同模块之间数据的非法访问

  • 18. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()。[1分]

    A派生类的对象可以赋给基类的对象

    B派生类的对象可以初始化基类的引用

    C派生类的对象可以直接访问基类中的成员

    D派生类的对象的地址可以赋给指向基类的指针

  • 19. 下列关于this指针的描述中,正确的是()。[1分]

    A类的成员函数都有this指针

    B类的友元函数都有this指针

    C任何与类相关的函数都有this指针

    D类的非静态成员函数都有this指针

  • 20. 设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课Sc(学号,课号,成绩),则表Sc的关键字(键或码)为()。[1分]

    A课号,成绩

    B学号,成绩

    C学号,课号

    D学号,姓名,成绩

  • 21. 有如下程序:#jnCludeusingnamespaCestd;ClassPart{publiC:Part(intx=0):val(X){Cout<<VAL;}&NBSP;~Part(){Cout<<val;}private:intval;t};ClassWhole{publiC:Whole(intx,intY,intz=0):p2(x),pl(y),val(z){Cout<<VAL;}&NBSP;&NBSP;&NBSP;~Whole(){eout<<val;}private:Partpl,p2;intval;};intmain(){Wholeobj(1,2,3);return0;}执行这个程序的输出结果是()。[1分]

    A123321

    B213312

    C213

    D123123

  • 22. 没有定义intx;floatY;,则10+x+y值的数据类型是()。[1分]

    Aint

    Bdouble

    Cfloat

    D不确定

  • 23. 有如下类定义:classPoint{private:staticinthow_many;};___________how_many=0;要初始化Point类的静态成员how_many,下画线处应填入的内容是()。[1分]

    Aint

    Bstaticint

    CintPoint::

    DstaticintPoint::

  • 24. 有如下类定义:classTest{public:Test(){a=0;c=0;}//①intf(imA.const{this->a=a;}//②staticintg(){returna;f//③voidh(intB.{Test:.b=b;};//④private:inta;staticintb;constintC;};intTest::b=0:在标注号码的行中,能被正确编译的是()。[1分]

    A

    B

    C

    D

  • 25. 下列描述正确的是()。[1分]

    A表示m>n为true或mn&&m<N&NBSP;&NBSP;&NBSP;

    BswitCh语句结构中必须有default语句

    Cif语句结构中必须有else语句

    D如果至少有一个操作数为true,则包含“If”运算符的表达式为true

  • 26. 下列运算符函数中肯定不属于类FunNumber的成员函数的是()。[1分]

    Aintoperator一(FunNumber);

    BFunNumberoperator一();

    CFunNumberoperator一(int);

    Dintoperator一(FunNumber,FunNumber);

  • 27. 下列程序的运行结果是()。#includeclassA{inta;public:A(){a=0;}A(intaA.{a=aa;cout<}};voidmain(){AX,Y(2),z(3);cout<}[1分]

    A00

    B23

    C34

    D25

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

    A重载函数的函数名必须相同

    B重载函数必须在参数个数或类型上有所不同

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

    D重载函数的函数体可以有所不同

  • 29. 有如下程序:#inCludeusingnamespaCe耐:ClassMyClass{publiC:MyClass(){++Count;}~MyClass(){--Count;}statiCintgetCount(){retumCount;}private:statiCintCount;};‘intMyClass::Count=0;intmain(){MyClassobj;Cout<MyClass+ptr=newMyClass:Cout<<MYCLASS::9ETCOUNT();&NBSP;Cout<<MYCLASS::9ETCOUNT();&NBSP;&NBSP;&NBSP;}执行这个程序的输出结果是()。[1分]

    A121

    B232

    C221

    D122

  • 30. 数据流图中带有箭头的线段表示的是()。[1分]

    A控制流

    B事件驱动

    C模块调用

    D数据流

  • 31. 下列程序的运行结果为()。#includetemplateclassFF{TTal,a2,a3;public:FF(TTbl,TTb2,TTb3){al=bl;a2=b2;a3=b3;}TTSum(){returnal+a2+a3;};}voidmain(){FFx(int(1.1),2,3),Y(int(4.2),5,6);cout<<X.SUM()<<''<<Y.SUM()<<ENDL;&NBSP;&NBSP;&NBSP;}[1分]

    A6.115.2

    B615

    C615.2

    D6.115

  • 32. 下列选项中不属于结构化程序设计原则的是()。[1分]

    A可封装

    B自顶向下

    C模块化

    D逐步求精

  • 33. 有三个关系R,S和T如下:其中关系T由关系R和s通过某种操作得到,该操作为()。[1分]

    A选择

    B投影

    C

    D

  • 34. 在E—R图中,用来表示实体联系的图形是()。[1分]

    A椭圆形

    B矩形

    C菱形

    D三角形

  • 35. 某系统总体结构图如下图所示:该系统总体结构图的深度是()。[1分]

    A7

    B6

    C3

    D2

  • 36. 有如下类定义:classMyClass{intvalue;public:MyClass(intn):value(n){}intgetValue()const{retumvalue;}};则类MyClass的构造函数的个数是()。[1分]

    A1个

    B2个

    C3个

    D4个

  • 37. 下面关于数组的初始化正确的是()。[1分]

    Acharstr[]={’a’,’b’,’C’}

    Bcharstr[2]={’a’,’b’,’c’}

    Ccharstr[2][3]={{’a’,’b’},{’C’,’d’},{’e’,’f’}}

    Dcharstr()={~a,~b,~C}

  • 38. 下列各组类型声明符中,含义相同的一组是()。[1分]

    Aunsignedlongint和long

    Bsignedshortint和short

    Cunsignedshort和short

    Dshortint和int

  • 39. 在C++中,Cin是一个()。[1分]

    A

    B对象

    C模板

    D函数

  • 40. 要建立文件流并打开当前目录下的文件6le.dat用于输入,下列语句中错误的是()。[1分]

    Aifstreamfin=ffstream.open(”file.dat”);

    Bifstream*fin=newifstream(”file.dat”);

    Cifstreamfin;fin.open(”file.dat”);

    Difstream*fin=newifstream();fin->open(”file.dat”);

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

    A派生类不彘访问基类的保护成员

    B作为虚基类的类不能被实例化

    C派生类应当向基类的构造函数传递参数

    D虚函数必须在派生类中重新实现

  • 42. 已知函数f的原型是voidf(int*a,long&B.;,变量v1、v2的定义是:intv1;long:v2;下列调用语句中正确的是()。[1分]

    Af(v1,&v2);

    Bf(v1,v2);

    Cf(&v1,&v2);

    Df(&v1,v2);

  • 43. 下列控制格式输入/输出的操作符中,能够设置浮点数精度的是()。[1分]

    AsetpreCision

    Bsetw

    Csetfill

    Dshowpoint

相关试卷
相关题库