国家二级C++机试(选择题)模拟试卷7(共233题)_第1页
国家二级C++机试(选择题)模拟试卷7(共233题)_第2页
国家二级C++机试(选择题)模拟试卷7(共233题)_第3页
国家二级C++机试(选择题)模拟试卷7(共233题)_第4页
国家二级C++机试(选择题)模拟试卷7(共233题)_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家二级C++机试(选择题)模拟试卷7(共9套)(共233题)国家二级C++机试(选择题)模拟试卷第1套一、选择题(本题共21题,每题1.0分,共21分。)1、必须用一对大括号括起来的程序段是()。A、switch语句中的case标号语句B、if语句的分支C、循环语句的循环体D、函数的函数体标准答案:D知识点解析:此题考查的是语句块和函数。if语句的分支和循环语句的循环体可以是一条语句也可以使一个语句块,所以不是必须用一个大括号括起来:switch语句中的case标号语句可以是一系列语句,也可以包含语句块,也不是必须用一对大括号括起来:函数的函数体必须用一对大括号括起来。2、字面常量42、4.2、42L的数据类型分别是()。A、long,double,intB、long,float,intC、int,double,longD、int,float,long标准答案:C知识点解析:此题考查的知识点是字面常量。对于整型字面常量,要没有超过C++中整数所能表示的范围,C+十将自动按整数来存储此数,也可以通过在整型字面常量后添加u或1来指定无符号整数或长整数来存储;对于实型字面常量,C++将自动按照双精度数来存储,也可以通过在实型字而常量后添加f来指定按单精度数存储。3、某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为()。A、n+1B、n-1C、2nD、n/2标准答案:A知识点解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。所以该二叉树的叶子结点数等于n+1。4、有如下程序:#include<iostream>usingnamespacestd;classTest{public:Test(){n+=2;}~Test(){n-=3;}staticintgetNum(){returnn;}private:staticintn;};intTest::n=1;intmain(){Test*p=newTest;deletep;cout<<"n="<<Test::getNum()<<endl;return0:}执行后的输出结果是()。A、n=0B、n=1C、n=2D、n=3标准答案:A知识点解析:语句Test*p=newTest;会调用类的构造函数Test(){n+=2;},使n的值由原来的1变为3,然后deletep调用类的析构函数~Test(){n-=3;},因为n是static型变量,所以会在3的基础上减3使得输出结果为0。5、下列有关拷贝构造函数的描述中错误的是()。A、拷贝构造函数是一种构造函数B、拷贝构造函数与一般的构造函数一样,可以设置多个形参C、每一个类中都必须有一个拷贝构造函数D、拷贝构造函数的功能是用一个已知对象去初始化一个正在创建的对象标准答案:B知识点解析:拷贝构造函数是一个特殊的构造函数,它用一个己知的对象初始化一个正在创建的同类对象,它不能指定函数返回类型;只有一个参数,是同类的某个对象名的引用。每一个类中都必须有一个拷贝构造函数,如果类中未声明,编译器会自动生成一个公有的拷贝构造函数。6、对如下二叉树进行后序遍历的结果为()。A、ABCDEFB、DBEAFCC、ABDECFD、DEBFCA标准答案:D知识点解析:所谓后序遍历是指在访问根据结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。其简单描述为:若二叉树为空,则结束返回:否则,先后序遍历左子树,然后后序遍历右子树,最后访问根结点。对于后序遍历,第一个访问的结点一定是最左下的结点,最后一个访问的结点一定是根结点,所以选项D)为正确答案。7、假定MyClass为一个类,则该类的拷贝构造函数的声明语句为()。A、MyClass(MyClassx);B、MyClass(MyClass&x);C、MyClass(&x);D、MyClass(x);标准答案:B知识点解析:拷贝构造函数也是构造函数,所以函数名字为。MyClass,但它只有一个参数,这个参数是本类的对象,即x;而且采用对象的引用的形式,也就是&x。所以本题答案是B)。8、软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于()。A、定义阶段B、开发阶段C、维护阶段D、上述三个阶段标准答案:B知识点解析:本题考查软件生命周期的相关概念。通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。还可以将软件生命周期分为软件定义、软件开发及软件运行维护三个阶段。9、下面不属于软件需求分析阶段主要工作的是()。A、需求变更申请B、需求分析C、需求评审D、需求获取标准答案:A知识点解析:在软件开发的过程中,应该尽早的制定测试计划,其中在需求分析阶段制定系统测试计划,在概要设计阶段制定集成测试计划,在详细设计阶段制定单元测试计划。10、下列说法中错误的是()。A、公有继承时基类中的public成员在派生类中仍是public的B、公有继承时基类中的private成员在派生类中仍是private的C、私有继承时基类中的public成员在派生类中是private的D、保护继承时基类中的public成员在派生类中是protected的标准答案:B知识点解析:此题考查的是继承时基类成员属性改变。选项B)中,公有继承时基类中的private成员在派生类中不是private的,而是不可访问的。所以选项B)错误;其他选项叙述均正确。11、下面不属于软件测试实施步骤的是A、集成测试B、回归测试C、确认测试D、单元测试标准答案:B知识点解析:软件测试实施的步骤有单元测试、集成测试和确认测试。12、负责数据库中查询操作的数据库语言是()。A、数据定义语言B、数据管理语言C、数据操纵语言D、数据控制语言标准答案:C知识点解析:负责数据库中查询操作的数据库语言足数据操纵语言。13、已知基类Employee只有一个构造函数,其定义如下:Employee::Employee(intn):id(n){)Manager是Employee的派生类,则下列对Manager的构造函数的定义中,正确的是()。A、Manager::Manager(intn):id(n){}B、Manager::Manager(intn){id=n;}C、Manager::Manager(intn):Employee(n){)D、Manager::Manager(intn){Employee(n);)标准答案:C知识点解析:基类的构造函数是带有参数的,派生类从基类派生,这就需要在派生类的构造函数名后而显示的调用基类的构造函数。14、有如下程序:#include<iostream>usingnamespacestd;classAA{intn;public:AA(intk):n(k){}intget0{returnn;}intgetoconst{returnn+1;}};intmain(){AAa(5);constAAb(6);cout<<a.get()<<b.get();return0;}执行后的输出结果是()。A、55B、57C、75D、77标准答案:B知识点解析:此题考查的是常成员函数和函数的重载。所谓函数重载,是指同一个函数名可以对应着多个函数实现。一般对象a既可以调用普通成员函数get,也可以调用常成员函数get,由于常成员函数不能更新对象的数据成员,所以题目中通过对象a调用的函数为常成员函数:常对象b只能调用普通成员函数。15、有类定义如下:classType{public:Type(inti=0);Typeoperator一(int);friendTypeoperator+(Type,Type);private:intval;};若有对象定义Typecl;则下列语句序列中,错误的是()。A、Type(3)+c1;B、cl+Type(3);C、3一cl;D、c1—3;标准答案:C知识点解析:由于在类Type中对“-”进行了重载,所以根据“-”重载的形式定义,c1-3是正确的,而3-c1是错误的表达式。16、下列关于构造函数的描述中,错误的是()。A、构造函数名与类名相同B、构造函数可以有返回值C、构造函数可以重载D、每个类都有构造函数标准答案:B知识点解析:构造函数具有下面4个特殊的性质:构造函数的名字必须与类名相同;构造函数不指定返回类型,它隐含有返回值,由系统内部使用:构造函数可以有一个或多个参数,因此构造函数可以重载;在创建对象时,系统会自动调用构造函数。17、有如下程序:#inc1ude<iostream>usingnamespacestd;classBase{prVate:Voidmnl()const{cout<<"fun1";}proteCted:Voidfun2()const{cout<<”mn2¨;}public:Voidfun3()const{cout<<"fun3";}};classDeriVed:prOteCtedBaSe{public:Voidfun4()const{cout<<"fIun4";}};intmain(){DeriVedobj;obj.fun1();//①obj.fun2();//②obj.fun3();//③obj.fun4();//④reurnO:}其中有语法错误的语句是()。A、①②③④B、①②③C、②③④D、①④标准答案:B知识点解析:此题考查的是保护继承。因为Derived以protected方式继承了Base类,所以父类Base中的公有成员和保护成员均成了Derived类的保护成员,而Base类的私有成员Derived类不可访问。所以,主函数中通过Derived类的对象只能够访问到Derived类的公有成员。18、当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是()。A、任何B、公有或保护C、保护或私有D、私有标准答案:B知识点解析:基类的公有成员和保护成员只有在以保护继承方式继承时,其在继承类中是保护成员。19、已知类Myclass的定义如下:classMyClass{public:MyClass(intd){data=d;}~MyClass(){}private:intdata;};下列对Myclass类对象数组的定义和初始化语句中,正确的是()。A、MyClassarrays[2];B、MyClassarrays[2]={MyClass(5)};C、MyClassarrays[2]={MyClass(5),MyClass(6)};D、MyClass*arrays=newMyClass[2];标准答案:C知识点解析:在选项C中定义了类MyClass对象数组arrays[2],并用对象MyClass(5)和MyClass(6)对这个数组中的两个元素赋初值。20、下列关于模板的描述中,错误的是()。A、类模板的成员函数都是模板函数B、函数模板是一种参数化类型的函数C、满足一定条件时可以省略模板实参D、模板形参只能由关键字typename声明标准答案:D知识点解析:同一模板的声明和定义中,模板形参的名字不必相同。每个模板类型形参前面必须带上关键字typename/class,每个非类型形参前面必须带上类型名字。21、模板对类型的参数化提供了很好的支持,因此()。A、类模板的主要作用是生成抽象类B、类模板实例化时,编译器将根据给出的模板实参生成一个类C、在类模板中的数据成员都具有同样类型D、类模板中的成员函数都没有返回值标准答案:B知识点解析:此题考查了类模板的概念。在定义对象的过程中,系统会自动地根据需要生成相应的类定义,这种依据类模板生成具体类的过程称为类模板的实例化。国家二级C++机试(选择题)模拟试卷第2套一、选择题(本题共34题,每题1.0分,共34分。)1、在一棵二叉树上,第5层的结点数最多是()。A、8B、9C、15D、16标准答案:D知识点解析:根据二叉树的性质:二叉树第i(i>1)层上至多有2i-1个结点。得到第5层的结点数最多是16个。2、一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。A、12345ABCDEB、EDCBA54321C、ABCDE12345D、54321EDCBA标准答案:B知识点解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是EDCBA54321。3、有如下函数模板:template<classT>Tsquare(Tx){returnx,x;}其中T是()。A、函数形参B、函数实参C、模板形参D、模板实参标准答案:C知识点解析:此题考查的是函数模板。声明一个函数模板的格式是:template<模板形参表声明>函数声明,{函数体}其中的<模板形参表声明>是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:typename参数名;class参数名;类型修饰参数名。4、下面的描述中,正确的是()。A、virtual可以用来声明虚函数B、含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类C、即使基类的构造函数没有参数,派生类也必须建立构造函数D、静态数据成员可以通过成员初始化列表来初始化标准答案:A知识点解析:在基类中用virtual声明成员函数为虚函数,所以A是正确的。纯虚函数是在声明虚函数时被“初始化”为0的虚函数。纯虚函数是一种特殊的虚函数,它没有具体的实现。静态数据成员函数只能在类外进行初始化。5、结构化程序设计的基本原则不包括()。A、多元性B、自顶向下C、模块化D、逐步求精标准答案:A知识点解析:结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。6、有如下程序:#includeusingnamespacestd;voidfl(int&x){x++;}voidf2(intx){++x;}intmain(){intx=10,y=12;f1(x);f2(y);cout<<x+y<<endl;return0;}运行这个程序的输出结果是()。A、22B、23C、24D、25标准答案:B知识点解析:在函数f1(int&x){x++;}中,是对变量x的引用,所以当在-main函数中执行“fl(x);”语句后,变量x的值等于11,而在函数voidf2(intx){++x;)中,对变量x的传递调用,在main函数中执行“f2(y);”语句后,变量y的值仍然等于12,所以输出x+y的值等于23。7、在软件开发中,需求分析阶段产生的主要文档是()。A、软件集成测试计划B、软件详细设计说明书C、用户手册D、软件需求规格说明书标准答案:D知识点解析:在软件开发过程中,需求分析阶段产生的主要文档是软件需求规格说明书。8、两个或两个以上模块之间关联的紧密程度称为()。A、耦合度B、内聚度C、复杂度D、数据传输特性标准答案:A知识点解析:模块的独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系较少且接口简单。衡量软件的模块独立性使用:内聚性和耦合性两个定性度量标准。内聚性是对一个模块内部各个元素彼此结合的紧密程度的度量:耦合性是对模块间互相连接的紧密程度的度量。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。9、有如下程序:#includeusingnamespacestd;classToy{public:Toy(char*一n){strcpy(name,一n);count++;)~Toy0{count一;)char*GetName0{returnname;}staticintgetCount0{returncount;)private:charname[10];staticintcount;);intToy::count=0;intmain(){Toytl(”Snoopy”),t2(”Mickey”),t3(”Barbie”);cout<<t1.getCount()<<endl;returnO:)运行时的输出结果是()。A、1B、2C、3D、运行时出错标准答案:C知识点解析:类Toy中包含一个字符数组name和一个静态整型变量count。在程序中首先给类Toy的成员count的赋初始值0,然后在主函数中,定义了三个Toy对象t1、t2、t3,并分别对它们的name字段赋值,在赋值的同时变量count的值加l,所以最后变量count的值等于3。10、有如下类定义:classSample{public;Sample(intx):ref(x){}∥①private:Sample():ref(0){)∥②staticintval=5;∥③constintref;∥④);上述程序段中,错误的语句是()。A、①B、②C、③D、④标准答案:C知识点解析:静态整型数据不能定义为类的数据成员。11、有三个关系R、S和T如下:则由关系R和S得到关系T的操作是()。A、自然连接B、差C、交D、并标准答案:B知识点解析:关系T中的元组是R关系中有而s关系中没有的元组的集合,所以进行的是差的运算。12、有三个关系R、S和T如下:则由关系R和S得到关系T的操作是()。A、自然连接B、差C、交D、并标准答案:B知识点解析:由三个关系R、S和T的结构可以知道,关系T是由关系R、S经过差运算得到的。13、在下列横线处应添加的语句是()。classBase{public:voidfun(){cout<<"Base::fun"<<endl;}};classDerived:publicBase{public:voidfun(){//显示调用基类的fun函数cout<<"Derived::fun"<<endl;}};A、Derived::funB、Base::fun();C、Pubic::funD、fun();标准答案:B知识点解析:此题考查的是成员函数的调用。因为横线处的作用是调用基类的fun函数,又因为派生类中也有fun()函数,所以必须对fun()函数加以限定,即Base::fun();。14、if语句的语法格式可描述为:格式1:if(<条件>)<语句>或格式2:if(<条件>)<语句1>else<语句2>关于上面的语法格式,下列表述中错误的是()。A、<条件>部分可以是一个if语句,例如if(if(a==0)…)…B、<语句>部分可以是一个if语句,例如if(…)if(…)…C、如果在<条件>前加上逻辑非运算符!并交换<语句1>和<语句2>的位置,语句功能不变D、<语句>部分可以是一个循环语句,例如if(…)while(…)…标准答案:A知识点解析:此题考查的是if语句。If语句的条件部分是一个表达式而不是语句,因此选项A叙述错误。15、数据库管理系统的基本功能不包括A、数据库访问B、数据库定义C、数据库的建立和维护D、数据库和网络中其他系统的通信标准答案:D知识点解析:数据库管理系统的主要功能包括:数据库定义,数据操作,数据库的运行管理,数据组织、存储与管理,数据库的保护,数据库的维护和通信。数据库不能和网络中的其他系统通信。16、已知Value是一个类,Value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是()。A、Valueoperator+(ValueV,inti);B、Valueoperator+(ValueV=value,inti);C、Valueoperator+(Valuevinti=O);D、Valueoperator+(ValueV:value,inti=O);标准答案:B知识点解析:此题考查的是重载加法运算符“+”。“+”是二元运算符,其第一操作数是对象本身,i为第二操作数,由此可知选项B正确。17、有如下程序:#inc1ude<iostream>usingnamespacestd;voidfl(int&x){x++;}voidf2(intx){++x;}intmain(){intx=10,y=12;f1(x);f2(y);cout<<x+y<<end1;return0;}运行这个程序的输出结果是()。A、22B、23C、24D、25标准答案:B知识点解析:在函数fl(irit&x){XH,)中,是对变量x的引用,所以当在maln函数中执行“n(x);”语句后,变量x的值等于11,而在函数voidf2(intx){++x;)中,对变量x的传递调用,在main函数中执行“f2(y);”语句后,变量y的值仍然等于12,所以输出x+y的值等于23。18、若已经声明了函数原型“voidfun(inta,doubleb=0.0);”,则下列重载函数声明中正确的是()。A、voidfun(inta=90,doubleb=0.0);B、intfun(inta,doubleb);C、voidfun(doublea,intb)D、boolfun(inta,doubleb=0.0);标准答案:C知识点解析:函数重载的原则就是至少要在参数个数或参数类型上有所不同,且如果函数只是函数类型不同的,而其他完全相同,也不能作为重载函数来使用。19、下列选项中,不是C++关键字的是()。A、classB、functionC、friendD、vinual标准答案:B知识点解析:class、friend、virtual都是C+的关键字,而funtion是VB的关键字。20、若x和y是程序中的两个整型变量,则下列if语句中正确的是()。A、if(x==0)y=1;elsey=2;B、if(x==0)theny=1elsey=2;C、if(x==0)y=1elsey=2;D、if(x==0)y=1;elsey=2;标准答案:A知识点解析:ifelse语句的形式为:if(<条件>)<语句1>else<语句2>所以符合以上形式的ifelse语句为选项A。21、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assPart{public:Part(intx=0):val(x){cout<<val;}~Part0{cout<<val;)private:intval,};c1assWhole{public:Whole(intx,inty,intz=0):p2(x),p1(y),val(z){cout<<val;)~Whole(){cout<<val;}private:Partp1,p2;intval;};intmain(){Wholeobj(1,2,3);return0;}程序的输出结果是()。A、123321B、213312C、213D、123123标准答案:B知识点解析:此题考查的是类的构造与析构。建立类的对象时,构造函数的执行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右)接着执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序,最后执行自身的构造函数。析构顺序与之相反。本题中,Whole类中有两个Part类的成员p1和p2,根据它们定义的顺序,先构造p1再构造p2。所以,首先被构造的是p1(y),输出2;第二个被构造的是p2(x),输出1;最后调用析构函数,输出val的值3;析构函数调用顺序与构造函数相反。故最后输出213312。22、下列关于类成员对象构造函数调用顺序的叙述中,正确的是()。A、与它们在初始化列表中的顺序相同B、与它们在类中声明的顺序相同C、与析构函数的调用顺序相同D、顺序不确定标准答案:B知识点解析:类成员对象构造函数的调用是按照在类中定义的顺序进行的,而不是按照构造函数说明后的冒号顺序进行构造的。23、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assTest{public:TestO{n+=2;}~Test0{n—=3;}staticintgetNum0{returnn;}private:staticintn;};intTest::n=1;intmain(){Test*p=newTest;deletep;cout<<"n="<Test::getNumO<<end1;retum0;}执行后的输出结果是()。A、n=0B、n=1C、n=2D、n=3标准答案:A知识点解析:此题考查的是静态数据成员和静态成员函数。静态数据成员是类中所有对象共享的成员,而不是某个对象的成员。题目中的静态数据成员n的运算具有叠加性,执行“n+—2”和“n——3”后n的值为0。24、有如下程序:#include<iostream>usingnamespacestd;classAA{intk;protected:intn;voidsetK(intk){this->k=k;}public:voidsetN(intn){this->n=n;}};classBB:publicAA{/*类体略*/};intmain(){BBx;x.n=1;//1x.setN(2);//2x.k=3;//3x.setK(4);//4return0;}在标注号码的四条语句中正确的是()。A、1B、2C、3D、4标准答案:B知识点解析:因为类BB公有继承自类AA,所以AA中的保护成员和公有成员在类BB中仍是保护成员和公有成员。在选项B中调用了公有成员函数setN(intn){this->n=n;},对保护成员n进行赋值操作。25、派生类的成员函数不能访问基类的()。A、公有成员和保护成员B、公有成员C、私有成员D、保护成员标准答案:C知识点解析:此题考查的是派生类对基类成员的访问。派生类对基类的各个成员的访问能力与继承方式无关,其成员不能访问基类中的私有成员,可以访问基类的公有成员和保护成员。26、有如下程序:#include<iostream>usingnamespacestd;classAA{public:AA(){cout<<’1’;}};classBB:publicAA{intk;public:BB():k(0){cout<<’2’;}BB(intn):k(n){cout<<’3’;}};intmain(){BBb(4),c;return0;}运行时的输出结果是()。A、1312B、132C、32D、1412标准答案:A知识点解析:在基类AA的默认构造函数中,输出字符‘1’,在继承类BB的默认构造函数中,输出字符‘2’,在带有参数n的构造函数中,输出字符‘3’。在主函数中,在创建BB的对象b(4)时,会首先调用基类AA的构造函数输出字符‘1’,再调用类BB带参数的构造函数输出字符‘3’。在创建BB的对象c时,会首先调用基类AA的构造函数输出字符‘1’,再调用类BB默认的构造函数输出字符‘2’。所以程序输出的结果为1312。27、有如下类定义:classSample{public;Sample(intx):ref(x){}//①private:Sample():ref(0){}//②staticintval=5;//③constintref;//④};上述程序段中,错误的语句是()。A、①B、②C、③D、④标准答案:C知识点解析:静态整型数据不能定义为类的数据成员。28、在下列关键字中,不能用来表示继承方式的是()。A、privateB、staticC、publicD、protected标准答案:B知识点解析:此题考查的是继承方式。继承方式有私有(private)、保护(protected)、公有(public)三种。29、己知在一个类体中包含如下函数原型:VOLUMEoperator一(VOLUME)const;,下列关于这个函数的叙述中,错误的是()。A、这是运算符.的重载运算符函数B、这个函数所重载的运算符是一个一元运算符C、这是一个成员函数D、这个函数不改变类的任何数据成员的值标准答案:B知识点解析:此题考查的是运算符的重载。运算符“一”有一元和二元两种,在本题中它作为…个二元运算符,所以它不能更新对象的数据成员,也不能调用该类中没有const修饰的成员函数。30、若需要为XV类重载乘法运算符,运算结果为XV类型,在将其声明为类的成员函数时,下列原型声明正确的是()。A、XVoperator*(XV,XV);B、XV*(XV);C、operator*(XV);D、XVoperator*(XV);标准答案:D知识点解析:“*”是一个二元运算符,在作为成员函数重载时参数表中只有一个参数,对应于第二个操作数,而第一个操作数就是对象本身,仅以this指针的形式隐藏在参数表中。31、下列函数模版中的定义中,合法的是()。A、temp1ate<typenameT>Tabs(Tx){returnx<0?—x:x;)B、temp1atec1ass<T>Tabs(Tx){returnx<0?—x:x;}C、temp1ateT<c1assT>abs(Tx){returnx<0?—x:x;}D、temp1ateTabs(Tx){retumx<0?—x:x;)标准答案:A知识点解析:此题考查的是函数模板。声明一个函数模板的格式是:temp1ate<模板形参表声明>函数声明,其中的<模板形参表声明>是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:t)rpename参数名;class参数名;类型修饰参数名。32、关于运算符重载,下列表述中正确的是()。A、C++已有的任何运算符都可以重载B、运算符函数的返回类型不能声明为基本数据类型C、在类型转换符函数的定义中不需要声明返回类型D、可以通过运算符重载来创建C++中原来没有的运算符标准答案:C知识点解析:此题考查的是运算符重载的概念。C++语言规定,“.”、’’*’’、’’->*’’、“::”和“?:”这五个运算符不能被重载,故选项A错误;运算符函数的返回类型由该运算符所组成的表达式的值的类型来决定,故选项B说法是错误的:运算符重载是针对原有运算符,并不能通过重载创造出新的运算符,故选项D错误。33、当使用ofstream流类定义—个流对象并打开一个磁盘文件时,文件的默认打开方式为()。A、ios_base::inB、ios_base::binaryC、ios_base::in|iosbase::out.D、ios_base::out标准答案:D知识点解析:对于ofstream,默认的打开方式是ios_base::out,ofstream只能用于输出,它没有提供任何用于输入的操作。34、C++系统预定了4个用于标准数据流的对象,下列选项中不属于此类对象的是()。A、coutB、cinC、cerrD、cset标准答案:D知识点解析:C++流有4个预定义的流对象,它们分别是:ein标准输入:cout标准输出;cerr标准出错信息输出;clog带缓冲的标准出错信息输出。国家二级C++机试(选择题)模拟试卷第3套一、选择题(本题共24题,每题1.0分,共24分。)1、下面叙述中正确的是()。A、线性表是线性结构B、栈与队列是非线性结构C、线性链表是非线性结构D、二叉树是线性结构标准答案:A知识点解析:线性表是最简单的、最常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是—种简单的非线性结构,二叉树是树的一种。2、某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)()。A、3B、6C、8D、12标准答案:D知识点解析:根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,故该二叉树为12层,每层只有一个结点。3、在深度为7的满二叉树中,叶子结点的个数为A、32B、31C、64D、63标准答案:C知识点解析:所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。也就是在满二叉树中,每一层上的结点数都是最大结点数,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。对于深度为7的满二叉树,叶子结点所在的是第7层,一共有27-1=64个叶子结点。全部结点共27-1=127个。4、从工程管理角度看,软件设计一般分为两步完成,它们是()。A、概要设计与详细设计B、数据设计与接口设计C、软件结构设计与数据设计D、过程设计与数据设计标准答案:A知识点解析:软件设计是开发阶段最重要的步骤。从工程管理的角度来看可分为两步:概要设计和详细设计。概要设计是将软件需求转化为软件体系结构,确定系统级接口、全局数据结构或数据库模式;详细设计是指确立每个模块的实现算法和局部数据结构,用适应方法表示算法和数据结构的细节。从技术观点来看,软件设计包括软件结构设计(定义软件系统各主要部件之间的关系)、数据设计(将分析时创建的模型转化为数据结构)、接口设计(描述软件内部、软件与协作系统之间以及软件与人之间如何通信)、过程设计(把系统结构部件转换成软件的过程)四个步骤。5、下列描述中正确的是()。A、软件测试应该由程序开发者来完成B、程序经调试后一般不需要再测试C、软件维护只包括对程序代码的维护D、以上三种说法都不对标准答案:D知识点解析:为了达到好的测试效果,应该由独立的第三方进行测试工作。因为从心理学角度讲,程序人员或设计方在测试自己的程序时,要采取客观的态度是会不同程度地存在障碍的,所以选项A错误。在程序调试时,修改了一个错误的同时可能引入了新的错误,解决的办法是在修改了错误之后,必须进行回归测试,所以选项B错误。所谓软件维护,就是将交付的软件投入运行,并在运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改,所以选项C错误。6、在E-R图中,用来表示实体联系的图形是()。A、椭圆形B、矩形C、菱形D、三角形标准答案:C知识点解析:构成E.R图的基本要素是实体型、属性和联系,其表示方法为:实体型(Entity)一用矩形表示;属性(Attribute)一用椭圆形表示,联系(Relationship)一用菱形表示,菱形框内写明联系名。7、定义如下枚举类型enum{Monday,Tuesday,Wednesday,Thrusday,Friday=2};则下列语句正确的是()。A、表达式Wednesday=Friday的值是trueB、Dayday;day=3C、Dayday;day=Mondday+3D、Dayday;day=Tuesday+10标准答案:A知识点解析:enum<枚举类型名>{<枚举元素表>):其中:关键词enum表示定义的是枚举类型,枚举类型名由标识符组成,而枚举元素表由枚举元素或枚举常量组成。其中enum{Monday,Tuesday,Wednesday,Thrusday,Friday=2}的值由0开始,即0,1,2,3。D中的本题中的枚举类型中的数据值Wednesday为2,而Friday的值赋值为2,所以判断Wednesday等于Friday的表达式值为真,即true。即选择A。8、负责数据库中查询操作的数据库语言是A、数据定义语言B、数据管理语言C、数据操纵语言D、数据控制语言标准答案:C知识点解析:负责数据库中查询操作的数据库语言是数据操纵语言。9、下列语句中,正确的是()。A、char*myString="Hello-World!";B、charmyString="Hello-World!";C、charmyString[11]:="Hello-World!";D、charmyString[12]="Hello-World!";标准答案:A知识点解析:对于B来说,会造成溢出,对于C和D来说同样如此,因为“Hello-world!”一个是12个字符组成,加上空字符一共13个,所以都会造成溢出,只有A是将字符串的地址赋给字符型指针。10、已知数组arr的定义如下:intarr[5]={1,2,3,4,5};下列语句中输出结果不是2的是()。A、cout<<*arr+1<<end1;B、cout<<*(arr+1)<<end1;C、cout<<arr[1]<<end1;D、cout<<*art<<end1;标准答案:D知识点解析:因为一维数组arr[5]的首地址是第一数组元素的地址,所以选项D)中,输出*arr的值就是数组arr[5]中第一数组元素l。其他选项都输出数组arr[5]的第二元素2。11、下列是重载乘法运算符的函数原型声明,其中错误的是()。A、MyClassoperator*(double,double);B、MyClassoperator*(double,MyClass);C、MyClassoperator*(MyClass,double);D、MyClassoperator*(MyClass,MyClass);标准答案:A知识点解析:此题考查的是运算符重载。本题中,选项A重载运算符"*"使用的形参是两个double,而系统中的"*"运算原本就能计算两个double,所以这样违反了重载函数的原则,当执行a*b这样的表达式时,系统不能识别是否执行运算符重载函数。故答案是A选项。12、已知函数fun的原型为intfun(int,int,int);下列重载函数原型中错误的是()。A、charfun(int,int);B、doublefun(int,int,double);C、intfun(int.char*);D、floatfun(int,int,int);标准答案:D知识点解析:重载函数至少要在参数个数或参数类型上不同。而选项D中的函数与原函数只是函数类型不同,而其他完全相同(参数个数及类型),则不能作为重载函数来使用。13、下列关于函数重载的叙述中,错误的是()。A、重载函数的参数个数可以不同B、重载函数的参数类型可以不向C、重载函数的返回值类型必须不同D、重载函数的参数个数或参数类型必须有所不同标准答案:C知识点解析:两个或两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数进行最佳匹配,自动确定调用哪个函数,这就是函数的重载。14、下列选项中,正确的C++标识符是()。A、6_groupB、group~6C、age+3D、_group_6标准答案:D知识点解析:C++中标识符的命名遵循如下规则:不能是C++关键字,第一个字母必须是字母或下划线,中间不能有空格,变量名中不能包括“.”、“;”、“,”、“’”、“"”+-之类的特殊符号。总之标识符中除了能使用26个英文大小写字母和数字外,只能使用下划线“”。15、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assSamp1e{friendlongfun(Samp1es);public:Samp1e(longa){x=a;}private:longx;);longfun(Samp1es){if(s.x<2)return1:returns.x*fun(Samp1e(s.x—1)):}intmain(){intsum=0;for(int1=0;1<6;1++){sum+=fun(Samp1e(i));}cout<<sum,returnO;}运行时输出的结果是()。A、120B、16C、154D、34标准答案:C知识点解析:此题考查的是友元函数和递归函数。因为fun函数是Samp1e类的友元函数,所以fun函数可以直接访问Samp1e类对象的私有成员x。主函数调用fun函数,构造参数为0~5。当n小于2时,fun函数返回1,其余返回值为n*fun(n—l)。n取0—5的值时fun(n)依次为1,1,2,6,24,120,累加结果为154。16、有如下程序:#include<iostream>usingnamespacestd;classBASE{public:~BASE(){cout<<’’BASE’’;}};classDERiVED:publicBASE{public:~DERIVED(){tout<<’’DERiVED’’;}};intmain(){DERIVEDx;return0;}执行后的输出结果是()。A、BASEB、DERIVEDC、BASEDERlJVEDD、DERIVEDBASE标准答案:D知识点解析:此题考查的是派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。17、以下关键字不能用来声明类的访问权限的是()。A、publicB、staticC、protectedD、private标准答案:B知识点解析:此题考查的是类的访问权限。在C++语言中,类的访问权限有公有、保护和私有三种。故本题选B。18、有如下程序:#include<iostream>usingnamespacestd;classA{public:A(){cout<<"A";}~A(){cout<<"~A";}};classB:publicA{A*p;public:B(){cout<<"B";p=newA();}~B(){cout<<"~B";deletep;}};intmain(){Bobj;return0;}执行这个程序的输出结果是()。A、BAA~B~AB、ABA~B~A~AC、BAA~B~A~AD、ABA~A~B~A标准答案:B知识点解析:此题考查的是派生类对象的构造与析构。建立派生类对象时,构造函数的执行顺序如下:执行基类的构造函数,一调用顺序按照各个基类被定义时声明的顺序(自左向右)->执行成员对象的构造函数;调用顺序按照各个成员对象在类中声明的顺序->执行派生类的构造函数。所以本题在建立派生类B的对象obj是会先调用基类A的构造函数,然后调用自身的构造函数。注意:B类中定义的成员p是A类的指针而不是一个对象,故在调用自身构造函数前不需要构造。而在B类构造函数中使用new操作符动态地构造了一个A类的对象,所以整个构造结果是输出:ABA。派生类对象的析构与构造严格相反,即先析构自身,然后析构自身所包含的成员对象,最后调用基类的析构函数。故本题中当main()函数返回时,析构B类的对象obj:首先调用~B(),接着再调用~A()因为在~B()函数中释放了动态创建的A类对象,故整个析构所输出的结果是~B~A~A。所以这个程序输出结果为ABA~B~A~A。19、有如下程序:#include<iostream>usingnamespacestd;classBase{public:Base(intx=0):valB(x){cout<<valB;}~Base(){cout<<valB;}private:intvalB;};classDerived:publicBase{public:Derived(intx=0,inty=0):Base(x),valD(y){cout<<valD;}~Derived(){cout<<valD;}private:intvalD;};in.tmain(){Derivedobj12(2,3);return0;}运行时的输出结果是()。A、2332B、2323C、3232D、3223标准答案:A知识点解析:在主函数中创建类Derived对象obj12(2,3)时,因为类Derived是从基类Base派生而来,所以首先调用基类的构造函数;输出2,再调用派生类构造函数,输出3。当主函数运算结果时,首先调用派生类的析构函数,输出3,再调用基类的析构函数输出2。所以输出结果为2332。20、有如下程序:#includeusingnamespacestd;classBoat;classCar{public:Car(inti):weight(i){)friendintTotal(constCar&c,constBoat&b);//①private:intweight;};classBoat{public:Boat(inti):weight(i){)friendintTotal(constCar&c,constBoat&b);private:intweight;};intTotal(constCar&c,constBoat&b){//②returnc.weight+b.weight;}intmain(){Carc(10);Boatb(8);cout<<"Thetotalweightis"<A、程序编译正确B、程序编译时语句①出错C、程序编译时语句②出错D、程序编译时语句③出错标准答案:A知识点解析:程序中定义了类car和类Boat,在两个类中分别定义他们的构造函数和友元函数衔end。程序在vC6.0中编译通过。21、下列关于运算符重载的叙述中,正确的是()。A、通过运算符重载,可以定义新的运算符B、有的运算符只能作为成员函数重载C、若重载运算符+,则相应的运算符函数名是+D、重载一个二元运算符时,必须声明两个形参标准答案:B知识点解析:此题考查的是运算符重载。C++中,“=”、“[]”、“()”、“->”以及所有的类型转换符只能作为成员函数重载,故B选项正确;运算符重载只是赋予已有的运算符多重含义,并不是定义新的运算符;运算符函数的函数名就是在运算符前加上关键字operator。22、下列控制对齐方式的操作符中,错误的是()。A、internalB、centerC、leftD、right标准答案:B知识点解析:对齐方式的控制操作符left的含义是在设定的宽度内左对齐输出,右端填己设定的填充字符;right(此为默认设置)在设定的宽度内右对齐输出:internal在设定的宽度内右对齐输出,但若有符号(一或+),符号置于最左端。23、在语句“cout<<’A’:”中,cout是()。A、类名B、对象名C、函数名D、C++的关键字标准答案:B知识点解析:C++有四个预定义的流对象:cin标准输,cout标准输出,cerr标准出错信息输出,clog带缓冲的标准出错信息输出。24、有如下程序:#include#includeusingnamespacestd;intmain(){cout<A、##OK123B、##OK#123C、OK##123D、OK##123#标准答案:A知识点解析:setfill是设置填充字符,setw设置输出的宽度,它们的作用表现在紧接着输出的字符串上。这个宽度是填充后的宽度。所以cout<国家二级C++机试(选择题)模拟试卷第4套一、选择题(本题共21题,每题1.0分,共21分。)1、数据的存储结构是指()。A、存储在外存中的数据B、数据所占的存储空间量C、数据在计算机中的顺序存储方式D、数据的逻辑结构在计算机中的表示标准答案:D知识点解析:在对数据进行处理时,各数据元素在计算机中的存储关系,即为数据的存储结构。2、下列关于二叉树的叙述中,正确的是()。A、叶子结点总是比度为2的结点少一个B、叶子结点总是比度为2的结点多一个C、叶子结点数是度为2的结点数的两倍D、度为2的结点数是度为1的结点数的两倍标准答案:B知识点解析:由二叉树的性质可以知道在二叉树中叶子结点总是比度为2的结点多一个。3、有如下程序:#includeusingnamespacestd;intmain(){inti,s=0;for(i=l;s<20;i+=2)s+=i*i;cout<<i<<endl;return0:)运行这个程序的输出结果是()。A、3B、5C、7D、9标准答案:C知识点解析:在这段程序中for循环共执行3次,每次循环变量i的值增2,在执行第二次循环语句时,变量s的值等于25,大于20而退出循环,此时再执行循环变量i加2运算,所以最后变量i的值等于7。4、已知数组aft的定义如下:intarr[5]={1,2,3,4,5);下列语句中输出结果不是2的是()。A、cout<<*arr+1<B、cout<<*(art+1)<C、cout<D、cout<<*art<标准答案:D知识点解析:因为一维数组arr[5]的首地址是第一数组元素的地址,所以选项D中,输出*arr的值就是数组arr[5]中第一数组元素1。其他选项都输出数组arr[5]的第二元素2。5、T列数据结构中,能用二分法进行查找的是A、顺序存储的有序线性表B、线性链表C、二叉链表D、有序线性链表标准答案:A知识点解析:二分法查找只适应于顺序存储的有序表。有序表是指线性表中的元素按值非递减排序(即从小到大,但允许相邻元素值相等)的表。6、有如下类的定义,横线处的语句是()。classTestClass{_______intx,y;public:TestClass(inta=0,intb=0){x=a:y=b;}staticvoidchange(){y-=10;y-=10;}};A、publicB、privateC、staticD、protected标准答案:C知识点解析:因为staticvoidchange()为静态函数,静态函数主要访问静态数据,不访问非静态数据。所以函数中访问了数据y,所以下划线的数据类型应对应为static。7、软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于()。A、定义阶段B、开发阶段C、维护阶段D、上述三个阶段标准答案:B知识点解析:本题考查软件生命周期的相关概念.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。还可以将软件生命周期分为软件定义、软件开发及软件运行维护三个阶段。8、下列关于构造函数的描述中,错误的是()。A、构造函数可以设置默认的参数B、构造函数在定义类对象时自动执行C、构造函数可以是内联函数D、构造函数不可以重载标准答案:D知识点解析:在一个类中可以定义多个构造函数,以便对类对象提供不同的初始化的方法,供用户选用。这些构造函数具有相同的名字,而参数的个数或参数的类型不相同。9、在黑盒测试方法中,设计测试用例的主要根据是()。A、程序内部逻辑B、程序外部功能C、程序数据结构D、程序流程图标准答案:B知识点解析:黑盒测试法指的是根据程序的外部功能,把程序本身看成一个黑盒子,设计测试用例来验证程序外部功能的正确性。10、有如下程序:#include<iostream>usingnamespacestd;inti=1;classFun{public:staticinti;intvalue(){returni-1;}intvalue()const{returni+1;}};intFun::i=2;intmain(){inti=3;Funfun1;constFunfun2;______________return0;}若程序的输出结果是:123则程序中横线处的语句是()。A、cout<<fun1.value()<<Fun::i<<fun2.value();B、cout<<Fun::i<<fun1.value()<<fun2.value();C、cout<<fun1.value0<<fun2.value()<<Fun::i;D、cout<<fun2.Value()<<Fun::i<<fun1.value();标准答案:A知识点解析:此题因为定义的变量i是static类型的(main()函数内部的i只是一个局部变量),所以,选项A)中fun1.value()的返回值是1,.Fun::i引用的是外部变量会输出2;fun2.value();会调用常成员函数intvalue()const{retuni+1;}使得外部静态变量i的值增加为3,故输出3。11、下列描述中错误的是()。A、在数据库系统中,数据的物理结构必须与逻辑结构一致B、数据库技术的根本目标是要解决数据的共享问题C、数据库设计是指在已有数据库管理系统的基础上建立数据库D、数据库系统需要操作系统的支持标准答案:A知识点解析:在数据库系统中,物理独立性是指数据的物理结构(包括存储结构、存取方式等)的改变,如存储设备的更换、物理存储的更换、存取方式改变等都不影响数据库的逻辑结构,从而不致引起应用程序的变化。12、在满足实体完整性约束的条件下()。A、一个关系中应该有一个或多个候选关键字B、一个关系中只能有一个候选关键字C、一个关系中必须有多个候选关键字D、一个关系中可以没有候选关键字标准答案:A知识点解析:在关系数据库中,实体完整性的概念是主属性不能为空。在满足实体完整性的前提下,必须在关系中存在主属性,也就是在关系中应该有候选关键字。一个关系中可以有一个或者多个候选关键字。13、有如下类定义:classMyClass{intvalue;public:MyClass(intn):value(n){}intgetValue()const{returnvalue;}};则类MyClass的构造函数的个数是()。A、1个B、2个C、3个D、4个标准答案:B知识点解析:本题考查类的默认构造函数和自定义的构造函数。本题中MyClass(intn):value(n){}为自定义的构造函数,加上默认构造函数,一共有2个构造函数。14、下列字符串中,正确的C++标识符是()。A、foo-1B、2bC、newD、256标准答案:D知识点解析:此题考查的是C++语言中标识符的定义。标识符由字母、数字或下划线构成,但第一个字符必须是字母或下划线;标识符中大小写字母是不同的;用户定义标识符时,不允许采用系统的关键字。15、字符串“a+b=12\n\t”的长度为()。A、12B、10C、8D、6标准答案:C知识点解析:题目给出的字符串含有7个字符,再加字符串的结束字符,所以共8个字符。16、由关系R1和R2得到关系R3的操作是A、等值连接B、并C、笛卡尔积D、交标准答案:A知识点解析:等值连接是关系运算.连接运算的一种常用的连接方式。是条件连接(或称0连接)在连接运算符为“=”号时,即θ=0时的一个特例。17、有如下程序:#includeusingnamespacestd;voidf1(int&x,int&y){intz=x;x=y;y=z;}voidf2(intx,inty){intz=x;x=y;y=z;}intmain(){intx=10,y=26;f1(x,y);f2(x,y);cout<A、10B、16C、26D、36标准答案:A知识点解析:子函数f1中的形参是引用变量,所以执行子函数实现了变量x,y值的交换,变量x的值等于26,而变量y的值等于10。而子函数f2中的形参是普通变量,因为C++的函数之间的参数传递是传值,所以执行函数f2不能实现变量x,y值的交换。18、若有如下类声明classMyClass{public:MyClass(){cout<<1;}};执行下列语句MyClassa,b[2],*p[2]:以后,程序的输出结果是()。A、11B、111C、1111D、11111标准答案:B知识点解析:此题考查的是对象的构造。本题共声明了一个MyClass对象a,一个包含2个MyClass对象的数组b和一个包含2个MyClass对象指针的数组p,所以一共创建了3个MyClass类的对象,即调用了3次构造函数。19、有如下两个类定义classxx{private:dOublex1;protected:doublex2;public:doublex3;};classYY:protectedXX{private:doubley1;potected:doubley2;public:doubley3;};在类YY中保护成员变量的个数是()。A、1B、2C、3D、4标准答案:C知识点解析:在C++中派生类从基类保护继承时,基类的公有成员在派生类中改变为保护成员,基类的保护成员在派生类中仍为保护成员。所以对于本题来说,YY类保护继承自类XX,那么类XX中的公有成员x3和保护成员x2在派生类中都成为保护成员,再加上类YY。中的保护成员y2,因此在派生类YY中保护成员的个数为3。20、下列关于类成员对象构造函数调用顺序的叙述中,正确的是()。A、与它们在初始化列表中的顺序相同B、与它们在类中声明的顺序相同C、与析构函数的调用顺序相同D、顺序不确定标准答案:B知识点解析:类成员对象构造函数的调用是按照在类中定义的顺序进行的,而不是按照构造函数说明后的冒号顺序进行构造的。21、在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是()。A、()B、[]C、<>D、{)标准答案:C知识点解析:声明一个类模板的格式是:template<<模板形参声明>><类声明>。国家二级C++机试(选择题)模拟试卷第5套一、选择题(本题共20题,每题1.0分,共20分。)1、一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。A、12345ABCDEB、EDCBA54321C、ABCDE12345D、54321EDCBA标准答案:B知识点解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是EDCBA54321。2、有如下程序段:运行时的输出结果是()。A、44B、41C、88D、81标准答案:C知识点解析:这个程序定义了全局整型对象i和j,其值分别等于4和1。而在主函数中定义了局部整型对象i和j,i值赋予8,再把i值赋给j,接着输出i和j的值,所以其结果为88。这个题目要注意的一点是,全局整型对象i和j和主函数中定义了局部整型对象i和j,在计算机内存中表示的是不同的存储单元。它们的值是独自存放的,互相不同。3、设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=15,reaF15,则循环队列中的元素个数为()。A、15B、16C、20D、0或35标准答案:D知识点解析:循环队列的队头指针和尾指针都等于15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针都是第一次到达15,此时元素个数为O:第二种情况是队头指针第一次到达l5,而尾指针第二次到达15,此时元素个数为35。4、某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。A、10B、8C、6D、4标准答案:C知识点解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。5、有如下程序:#include<iostream>usingnamespacestd;classTestClass{protected:TestClass(){cout<<’x’;}TestClass(charc){cout<<c;}};classTestClass1:publicTestClass{public:TestClass1(charc){cout<<c;}};intmain(){TestClass1d1(’y’);return0:}执行这个程序,屏幕上将显示输出()。A、yB、yxC、xyD、yy标准答案:C知识点解析:程序中的类TestClass为基类,TestClass1为TestClass的派生类。由:main主函数入手,定义TestClass1类型的对象d1,参数值为’y’。TestClass1类继承TestClass,所以主函数中“TestClass1d1(’y’);”语句首先调用调用基类中的“TestClass(){cout<<’x’;}”输出x,然后调用“TestClass1(charc){cout<<c;}”输出y,即答案为“xy”。6、下列有关内联函数的叙述中,正确的是()。A、内联函数在调用时发生控制转移B、内联函数必须通过关键字inline来定义C、内联函数是通过编译器来实现的D、内联函数函数体的最后一条语句必须是return语句标准答案:C知识点解析:此题考查的是内联函数的概念。在调用时,内联函数会像宏函数一样的展开,将调用表达式用内联函数体来替换所以它没有一般函数的参数压栈和和退栈操作,所以选项A错误;即使没有使用。inline说明,编译器也会将在类的说明部分定义的函数认定为内联函数,所以选项B错误;内联函数只是比普通函数有更高的执行效率,所以选项D错误。7、若PAT是一个类,则程序运行时,语句“PAT{*ad)[3];”调用PAT的构造函数的次数是()。A、0B、1C、2D、3标准答案:A知识点解析:语句“PAT(*ad)[3]”定义了含有3个元素的指向类PP/T类型的指针数组ad。8、有如下程序:#ncludeusingnamespacestd;classVAC{public;intf()const{return3;}intf(){return5;)};Intmain(){VACvl;constVACv2;cout<A、53B、35C、55D、33标准答案:A知识点解析:此题考查的是常成员函数的应用。VAC类中说明了两个函数,一个是常成员函数,一个是普通函数:在主函数中说明了两个对象,通过普通对象vl调用的是普通函数,输出5;通过常对象V2调用的是常成员函数,输出3。9、下列符号中不属于C++关键字的是()。A、friendB、namespaceC、continueD、byte标准答案:D知识点解析:此题考查的是C++语言的关键字。Friend是声明友元函数或友元类时用到的关键字;namespace是定义或使用名字空间时用到的关键字;continue是终止本次循环直接开始下一次循环所用到的关键字;byte是字节的意思,它不是C++语言中的关键字。10、若x和y是程序中的两个整型变量,则下列if语句中正确的是()。A、if(x==0)y=1;elsey=2;B、if(x==0)theny=1elsey=2;C、if(x==0)y=1elsey=2;D、if(x==0)y=1;elsey=2;标准答案:A知识点解析:ifelse语句的形式为:if(<条件>)<语句1>else<语句2>所以符合以上形式的ifelse语句为选

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论