版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家二级C++机试(选择题)模拟试卷9(共9套)(共207题)国家二级C++机试(选择题)模拟试卷第1套一、选择题(本题共15题,每题1.0分,共15分。)1、有如下类声明:classSAMPLE{intn;public:SAMPLE(inti=0):n(i){}voidsetValue(intn0);};下列关于getValue成员函数的定义中,正确的是()。A、SAMPLE::setValue(intn0){n=no;}B、voidSAMPLE::setValue(intn0){n=n0;}C、voidsetValue(intn0){n=n0;}D、setValue(intn0){n=n0;}标准答案:B知识点解析:本题考查在类外定义类的成员函数,需要使用作用域限定符“::”,属于基础知识,本题答案为B。2、两个或两个以上模块之间关联的紧密程度称为()。A、耦合度B、内聚度C、复杂度D、数据传输特性标准答案:A知识点解析:模块的独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系较少且接口简单。衡量软件的模块独立性使用:内聚性和耦合性两个定性度量标准。内聚性是对一个模块内部各个元素彼此结合的紧密程度的度量:耦合性是对模块间互相连接的紧密程度的度量。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。3、关系表中的每一行记录称为一个()。A、字段B、元组C、属性D、关键码标准答案:B知识点解析:在关系表中,每一列称为一个属性,对应表中的一个字段:每一行称为一个元组,对应表中的一条记录。4、下面描述中不属于数据库系统特点的是()。A、数据共享B、数据完整性C、数据冗余度高D、数据独立性高标准答案:C知识点解析:数据系统的基本特点有数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据统一管理与控制。5、设R是一个2元关系,有3个元组,S是一个3元关系,有3个元组。如T=R×S,则T的元组的个数为()。A、6B、8C、9D、12标准答案:C知识点解析:R为n元关系,有p个元组S为m元关系,有q个元组。两个关系笛卡儿积是一个n+m元的关系,元组个数是q×p。所以T的元组的个数为9个。6、有如下定义:inta[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值5的是()。A、a[2]B、a[3]C、*(p+2)D、*p+4标准答案:B知识点解析:此题考查的是指针引用数组元素。B选项中,a[3]是数组的第四个元素,即7;其它选项的引用均可得到5。7、有如下程序段:inti=0,j=1;int&r=i;//①r=j//②int*p=&i;//③*p=&r;//④其中会产生编译错误的语句是()。A、④B、③C、②D、①标准答案:A知识点解析:此题考查的是指针和引用。本题中,语句①是一条合法的引用声明语句,使得变量i被r引用;语句②通过引用r将变量j的值赋给变量i;语句③声明了指针变量p,并初始化指向变量i;语句④中*p代表了变量i的值,要将&r赋给*p,这会使编译器产生类型不符的错误提示。8、有如下程序:#includeusingnamespacestd;voidfunction2(intn);voidfunction1(intn){if(n<=0)return;function2(n-2);}voidfunction2(intn){if(n<=0)return;function1(n-1);}intmain(){function1(5);return0:}下列关于程序运行情况的描述中,正确的是()。A、function1运行1次,function2运行2次B、function1运行2次,function2运行1次C、function1运行2次,function2运行3次D、function1运行2次,function2运行2次标准答案:D知识点解析:在主函数中执行.function1(5)时,会调用function2(3),function2(3)又会调用functionl(2),functionl(2)又会调用function2(0),到此相互调用结束。所以functionl()和function2()各执行了2次。9、已知函数f的原型是“voidf(int*x,int&y);”,变量v1、v2的定义是“intv1,v2;”,下列调用语句中,正确的是()。A、f(v1,v2);B、f(v1,&V2);C、f(&v1,v2);D、f(&v1,&v2);标准答案:C知识点解析:在函数f的形参表达式中第一个形参为整型指针变量,第二个为整型引用变量,所以用实参v1的指针初始化第一个形参,用实参v2初始化第二形参。10、关于在调用模板函数时模板实参的使用,下列表述正确的是()。A、对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B、对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C、对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D、对于常规参数所对应的模板实参,任何情况下都不能省略标准答案:D知识点解析:此题考查的是模板实参的省略。模板实参在以下集中情况中不能省略:从模板函数实参表获得的信息有矛盾;需要获得特定类型的返回值,而不管参数的类型如何;虚拟类型参数没有出现在模板函数的形参表中;函数模板含有常规形参。11、有如下类定义:c1assMyClass{Intvalue,public;MyClass(intn):value(n){}intgerValue()const{returnvalue;}};则类MyClass的构造函数的个数是()。A、1个B、2个C、3个D、4个标准答案:A知识点解析:此题考查的是构造函数的概念。构造函数的名字必须与类名相同;构造函数不指定返回值类型;构造函数可以重载:在创建对象时,系统会自动调用构造函数。12、建立一个有成员对象的派生类对象时,各构造函数体的执行次序为()。A、派生类、成员对象类、基类B、成员对象类、基类、派生类C、基类、成员对象类、派生类D、基类、派生类、成员对象类标准答案:C知识点解析:建立派生类对象的时候,构造函数的执行顺序如下:执行基类的构造函数,调用的顺序按照基类被继承时候的顺序(自左向右)。然后是执行成员对象的构造函数,调用顺序按照各个成员对象在类中的声明顺序(自上而下),最后是执行派生类的构造函数。13、下列有关继承和派生的叙述中,正确的是()。A、派生类不能访问基类的保护成员B、作为虚基类的类不能被实例化C、派生类应当向基类的构造函数传递参数D、虚函,数必须在派生类中重新实现标准答案:C知识点解析:此题考查的是继承和派生。无论使用哪种继承方式,派生类中的成员都不能访问基类中的私有成员,而可以访问基类中的公有成员和保护成员,所以选项A错误:C++中只有抽象类不能被实例化,而虚基类不一定非得是抽象类,所以选项B错误;在派生类中可以重新定义从基类继承下来的虚函数,也可以不重新定义,故选项D错误。14、若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为()。A、aB、AA.aC、a{}D、AA::a{}标准答案:A知识点解析:类AA的成员函数直接引用类AA的非静态数据成员。15、要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是()。A、ifstreamfin=ifstream.open("file.dat");B、ifstream*fin=newifstream("file.dat");C、ifstreamfin;fin.open("file.dat");D、ifstream*fin=newifstream();fin->open("file.dat");标准答案:A知识点解析:在选项A中,在赋值号的庄侧表示建立一个输入流对象fun,而在赋值号的右侧的表达式不正确,因为文件输入流类ifstrearn不能直接调用其成员函数open。国家二级C++机试(选择题)模拟试卷第2套一、选择题(本题共24题,每题1.0分,共24分。)1、下列关于C++函数的叙述中,正确的是()。A、每个函数至少要具有一个参数B、每个函数都必须返回一个值C、函数在被调用之前必须先声明D、函数不能自己调用自己标准答案:C知识点解析:此题考查的是函数的性质。当调用无参函数时主函数并不将数据传送给被调函数,且可以带回或不带回函数值。函数的递归调用就是直接或间接的调用自己。2、下面叙述中正确的是()。A、线性表是线性结构B、栈与队列是非线性结构C、线性链表是非线性结构D、二叉树是线性结构标准答案:A知识点解析:线性表是最简单的、最常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是一种简单的非线性结构,二叉树是树的一种。3、有如下程序输入字符+时,程序的运行结果是()。A、***B、###C、***###D、无输出标准答案:A知识点解析:本题的考点是双分支选择语句的执行流程,答题的关键点在于选择条件的判定。双分支选择语句的执行流程是首先计算if后表达式的值,如果表达式的值为非零,则执行if后面的分支,否则执行与其匹配的else后面的分支。本题执行时虽然输入变量a的值为‘+’,但是在执行if后括号内表达式(a=’*’)的时,由于此表达式为赋值表达式,因此表达式的值为赋值号右边的值’*’,其ASCII码的值非零,执行if后面的输出语句“***”后回车。4、类MyClass的定义如下,若要对value赋值,则下面语句正确的是()。classMyClass{public:MyClass(){}MyClass(inti){value=newint(i);}int*value;};A、MyClassmy;my.value=10;B、MyClassmy;*my.value=10;C、MyClassmy;my.*value=10;D、MyClassmy(10);标准答案:D知识点解析:因题目中定义的指针value是指向变量i的,所以直接利用语句MyClass(inti){value=newint(i);}对value进行赋值即可。5、假设函数fun已经定义,其原型为“voidfun(inta,intb=7,char*p="*");”下列函数调用中错误的是()。A、fun(5)B、fun(5,8)C、fan(6,"##")D、fun(0,0,"==")标准答案:C知识点解析:根据函数fun()的定义,其前两个形参为整型变量,第三个形参为字符型变量。所以在调用时,必须符合形参的数据类型,而选项C的第二个实参的数据类型为字符串,不符合第二个形参的数据类型。6、关于静态成员的描述中,错误的是()。A、静态成员可分为静态数据成员和静态成员函数B、静态数据成员定义后必须在类体内进行初始化C、静态数据成员初始化不使用其构造函数D、静态数据成员函数中不能直接引用非静态成员标准答案:C知识点解析:可以在类的构造函数中对静态数据成员进行初始化。7、以下()不属于对象的基本特征。A、继承性B、封装性C、分类性D、多态性标准答案:A知识点解析:对象具有如下特征:.标识惟一性。指对象是可区分的。.分类性。指可以将具有相同属性和操作的对象抽象成类。.多态性。指同一个操作可以是不同对象的行为。.封装性。从外面看只能看到对象的外部特征,而不知道也无需知道数据的具体结构以及实现操作的算法。.模块独立性好。对象是面向对象的软件的基本模块,对象内部各种元素彼此结合得很紧密,内聚性强。8、某类中有一个无参且无返回值的常成员函数Show,则正确的Show函数原型是()。A、constvoidShow();B、voidconstShow();C、voidShow()const;D、voidShow(const);标准答案:C知识点解析:常成员函数的说明格式如下:<返回类型><成员函数名>(<参数表>)conat;所以对于本题来说无参且无返回值的常成员函数show,其正确的函数原型是选项C。9、数据库DB、数据库系统DBS、数据库管理系统DBMS之间的关系是()。A、DB包含DBS和DBMSB、DBMS包含DB和DBSC、DBS包含DB和DBMSD、没有任何关系标准答案:C知识点解析:数据库系统(DatabaseSystem简称DBS)由下列几个部分组成:数据库(DB)、数据库管理系统(DBMS)、数据库管理员(人员)、系统平台之一——硬件平台(硬件)、系统平台之二——软件平台(软件)。这五个部分构成了一个以数据库为核心的完整的运行实体,称为数据库系统。其中DB(DataBase)即数据库,是统一管理的相关数据的集合;DBMS(DatabaseManagementSystem)即数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法。10、数据库设计过程不包括()。A、概念设计B、逻辑设计C、物理设计D、算法设计标准答案:D知识点解析:数据库设计的四个阶段是:需求分析、概念设计、逻设计和物理设计。11、下列选项可以做C++标识符的是()。A、_256B、fat/pigC、deleteD、Schar标准答案:A知识点解析:标识符的命名规则:①所有标识符必须由一个字母(a~Z或A~Z)或下划线()开头;②标识符的其他部分可以用字母、下划线或数字(0~9)组成;③大小写字母表示不同意义,即代表不同的标识符,如cout和Cout。12、数据库设计中反映用户对数据要求的模式是A、内模式B、概念模式C、外模式D、设计模式标准答案:C知识点解析:概念模式,是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库管理系统提供的数据模式描述语言(DataDescriptionLanguage,DDL)来描述、定义的,体现、反映了数据库系统的整体观。外模式,对应于用户级,它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,也称为子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它反映了用户对数据的要求。包含模式中允许特定用户使用的那部分数据,用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(DataManipulationLanguage,DML)对这些数据记录进行描述。内模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义,它是数据库的存储观。13、有如下程序:#include<iostream>usingnamespacestd;intmain(){intsum;for(inti=0;i<6;i+=3){sum=1;for(intj=i;j<6;j++)sum+=j;}cout<<sum<<endl;return0;}运行时的输出结果是()。A、3B、10C、12D、15标准答案:D知识点解析:由题干可以知道,外层循环会进行两次,且第一次的结果我们可以不去理会和计算,读者仔细观察能发现,在第一次的循环以后sum和j都会被重新赋值,所以外层第二次循环如下:此时i=3,sum=3内层循环开始如下:j=3,j<6,sum=6;i=4,j<6,sum=10,j=5,j<6,sum=15,j=6退出内层循环。得到sum=15。14、有如下程序:#includeusingnamespacestd;classA{public:staticinta;voidinit(){a=1;}A(inta=2){int();a++;}};intA::a=0:Aobj;intmain(){cout<A、0B、1C、2D、3标准答案:B知识点解析:此题实际考查的是变量作用域的屏蔽效应。在C++中,当标识符的作用域发生重叠时,在一个函数中声明的标识符可以屏蔽函数外声明的标识符或全局标识符。声明类A的全局对象时,构造函数首先调用int函数,但由于静态成员变量a被构造函数内部的形参a所屏蔽所以a++改变的是形参a的值,对静态成员变量a没有影响。15、有如下程序#inc1ude<iostream>usingnamespacestd;inti=1;classFun{public:staticinti:intvalue(){returni一1;}intvalue()const{returni+1;}};intFun::i=2;intmain(){inti=3;Funfunl;constFunfun2;return0;}若程序的输出结果是:123则程序中下划线处遗漏的语句是()。A、cout<<fun1.value()<<Fun::i<<fun2.value();B、cout<<Fun::i<<fun1.value()<<fun2.value();C、cout<<fun1.value()<<fun2.value()<<Fun::i;D、cout<<fun2.value()<<Fun::i<<fun1,value();标准答案:A知识点解析:此题考查的是常成员函数。Const关键字可以用于参与重载函数的区分,此时常对象调用常成员函数,一般对象调用一般成员函数,当类中只有一个常成员函数时,一般对象也可以调用该常成员函数。本题中,通过funl调用value()函数时,是调用前一个,而通过fun2调用value()函数是调用后一个;另外,value()函数中访问的i是类中定义的数据成员i,全局变量i在类中被“屏蔽”。funl.value0输出1一1=2一1=1;fun2.value()调用后…个value()函数输出i+1=2+1=3;Fun::i是通过类名直接访问类的静态数据成员i的值,即2;所以正确的输出顺序是A选项。16、有如下类定义:classAA{inta;public:intgetRef()const{return.&a,)//①intgetValue()const{returna;)//②voidset(intn)const{a=n;)//③friend一voidshow(AAaa)const{cout<<a,}//④};其中的四个函数定义中正确的是()。A、①B、②C、③D、④标准答案:B知识点解析:此题考查了常成员函数和友元函数的概念。选项A中,getRef()函数的返回值和函数函数类型不符,故错误;C选项中set()常成员函数改变了数据成员的值,这是不允许的;D选项中show()函数被同时定义成友元函数和常成员函数是错误的。17、对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是()。A、公有或私有B、私有C、保护或私有D、公有或保护标准答案:D知识点解析:通过公有继承定义的派生类,其成员函数可以访问基类的公有成员和保护成员,但不能访问基类的私有成员。18、下列关于虚函数的说明中,正确的是()。A、从虚基类继承的函数都是虚函数B、虚函数不得是静态成员函数C、只能通过指针或引用调用虚函数D、抽象类中的成员函数都是虚函数标准答案:B知识点解析:此题考查的是虚函数的概念。在成员函数的声明前面加上virual关键字,即可把函数声明为虚函数。虚函数可以是另一个函数的友元函数而不能是静态成员函数。19、已知将运算符“+”和“*”作为类Comp1ex的成员函数重载,设c1和c2是类Comp1ex的对象,则表达式c1+c2*c1等价于()。A、c1.operator*(c2.operator+(c1))B、c1.operator+(c2.operator*(c1))C、c1.operator*(c1.operator+(c2))D、c2.operator+(c1.operator*(c1))标准答案:B知识点解析:表达式c1+c2*c1的含义是c1加上c2与c1的积。20、下列函数模版中的定义中,合法的是()。A、templateTabs(Tx){returnx<0?-x:x;}B、templateclassTabs(Tx){returnx<0?-x:x;}C、templateTabs(Tx){returnx<0?-x:x;}D、templateTabs(Tx){returnx<0?-x:x;}标准答案:A知识点解析:此题考查的是函数模板。声明一个函数模板的格式是:template<模板形参表声明>函数声明,其中的<模板形参表声明>是由一个或多个“模板形参”组成的,每个“模板形参”可具有以下几种形式:typename参数名;class参数名:类型修饰参数名。21、C++系统预定了4个用于标准数据流的对象,下列选项中不属于此类对象的是()。A、coutB、cinC、cerrD、cset标准答案:D知识点解析:c++流有4个预定义的流对象,它们分别是:cin标准输入;cout标准输出;cerr标准出错信息输出:clog带缓冲的标准出错信息输出。22、有如下程序#includeusingnamespacestd;classA{public:virtualvoidfuncl(){cout<<"A1";}voidfunc2(){cout<<"A2";}};classB:publicA{public:voidfuncl(){cout<<"B1";}voidfunc2(){cout<<"B2";}};intmain(){A*p=newB;p->func1();p->func2();return0;}运行此程序,屏幕上将显示输出()。A、B1B2B、A1A2C、B1A2D、AlB2标准答案:C知识点解析:此题考查的是虚函数的概念。此题中,func1是虚函数,func2是一般成员函数,而且在派生类与基类中都存在两个这样的函数。在主函数中,语句A*p=newB:定义了一个基类的指针p,并让它指向一个派生类对象。所以通过该指针。调用func1时,运行的是派生类的版本,而通过该指针调用func2运行的是基类的版木。所以程序运行的最后输出是:B1A2。23、有如下程序#include<iostream>#include<iomanip>usingnamespacestd;intmain(){cout<<setprecision(3)<<fixed<<setfill(’*’)<<setw(8);cout<<12.345<<_______<<34.567;return0:}若程序的输出是:**12.345**34.567则程序中下划线处遗漏的操作符是()。A、setprecision(3)B、fixedC、setfill(’*’)D、setw(8)标准答案:D知识点解析:此题考查的是输出函数的格式控制。此题中,操作符setprecision的作用是设置浮点数的精度;fixed的作用是让浮点数按定点格式输出;setfill的作用是设置填充字符;setw的作用是设置输入输出的宽度,一次有效的设置。下划线处应填一个让34.567的输出宽度为8的操作符,即setw(8)。24、下列控制格式输入输出的操作符中,能够设置浮点数精度的是()。A、setprecisionB、setwC、setfillD、showpoint标准答案:A知识点解析:setprecision(intn):设置浮点数的精度(有效位数或小数位数),等价函数调用:ioprecision(n)。国家二级C++机试(选择题)模拟试卷第3套一、选择题(本题共24题,每题1.0分,共24分。)1、下列描述中正确的是()。A、数据的逻辑结构与存储结构必定是一一对应的B、由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C、程序设计语言中的数据一般是顺序存储结构,因此,利用数组只能处理线性结构D、以上三种说法都不对标准答案:D知识点解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。2、当循环队列非空且队尾指针等于队头指针时,说明循环队列己满,不能进行入队运算。这种隋况称为()。A、下溢B、上溢C、异常D、溢出标准答案:B知识点解析:由于头尾指针不断前移,超出向量空间。这时整个向量空间及队列是满的却产生了“上溢”现象。3、一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为A、219B、229C、230D、231标准答案:B知识点解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个,故总结点数=叶子节点数+度为2的节点数+度为1的节点数=80+79+70=229。4、有如下程序:#include<iostream>usingnamespacestd;classTest{public:Test(){n+=2;}-TestO{n-=3;}staticintgetNum(){returnn;}private:staticintn:};intTest::n=1;intmain(){Test*p=newTest;deletep;cout<<’’n=’’<<Test::getNum()<<end1;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、virtual可以用来声明虚函数B、含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类C、即使基类的构造函数没有参数,派生类也必须建立构造函数D、静态数据成员可以通过成员初始化列表来初始化标准答案:A知识点解析:在基类中用virtual声明成员函数为虚函数,所以A是正确的。纯虚函数是在声明虚函数时被“初始化”为0的虚函数。纯虚函数是一种特殊的虚两数,它没有具体的实现。静态数据成员函数只能在类外进行初始化。6、下列说法中错误的是()。A、公有继承时基类中的public成员在派生类中仍是public的B、公有继承时基类中的private成员在派生类中仍是private的C、私有继承时基类中的public成员在派生类中是private的D、保护继承时基类中的public成员在派生类中是protected的标准答案:B知识点解析:此题考查的是继承时基类成员属性改变。选项B)中,公有继承时基类中的private成员在派生类中不是private的,而是不可访问的。所以选项B)错误;其他选项叙述均正确。7、已知Value是一个类,value是Value的一个对象。下列以非成员函数形式重载的运算符函数原型中,正确的是()。A、Valueoperator+(Valuev,inti);B、Valueoperator+(Valuev=value,inti);C、Valueoperator+(Valuev,inti=0);D、Valueoperator+(Valuev=value,inti=0);标准答案:A知识点解析:本题考查运算符重载,其中重载运算符的函数不能有默认的参数,所以本题答案为A。8、有如下程序:#include<iostream>usingnamespacestd;classTestClass1{public:virtualvoidfun(){cout<<’’1’’;}};classTestClass2:publicTestClass1{public:TestClass2(){cout<<’’2’’;}};classTestClass3:publicTestClass2{public:virtualvoidfun(){TestClass2::fun();cout<<’’3’’;}};intmain(){TestClass1aa,*p;TestClass2bb;TestClass3cc;p=&cc:p一>fun();return0;}执行上面程序的输出是()。A、1122B、2112C、2213D、2223标准答案:C知识点解析:主函数中定义TestClass1的对象aa,*p对象指针,TestClass2的对象bb以及TestClass3的对象cc。p指向cc,TestClass3为TestClass2的派生类,构造函数输出2。TestClass3中fun函数中为TestClass2中的fun,调用TestClass2的构造函数,输出2。“p->fun();”,TestClass2继承于TestClassl中的fun,所以输出1。然后输出TestClass3中的“cout<<’’3’’”,即输出3。9、有三个关系R、S和T如下:则由关系R和S得到关系T的操作是A、自然连接B、交C、除D、并标准答案:C知识点解析:从关系R、s和T的结构可以得出关系T是由关系R、S经过除运算后得到的。10、下列有一维数组a的定义中,语法正确的是()。A、inta(10);B、intn=7,a[n];C、intn;cin>>n;inta[n];D、constintsize=10;inta[size];标准答案:D知识点解析:定义一维数组的一般格式为:类型标识符数组名[常量表达式];常量表达式的值表示元素的个数,即数组长度。常量表达式中可以包括常量、常变量和符号常量,但不能包含变量。也就是说,C++不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。11、若有下面的函数调用:fun(a+b,3,max(n-1,b))则fun的实参个数是()。A、3B、4C、5D、6标准答案:A知识点解析:此题考查的是函数的调用。C++中函数调用的一般形式为:函数名(实参表),其中实参表是用逗号分隔的一系列表达式。因此,本题中fun()函数的实参表由a+b、3和max(n-1,b)组成。12、下列关于类和对象的叙述中,错误的是()。A、一个类只能有一个对象B、对象是类的具体实例C、类是对某一类对象的抽象D、类和对象的关系是一种数据类型与变量的关系标准答案:A知识点解析:此题考查的是类和对象的概念。类是用户定义的一种数据类型,可以使用这个类型来说明一个或多个变量,即对象。13、若有如下类声明classMyClass{public:MyClass(){cout<<1;}};执行下列语句MyClassa,b[2],*p1[]2:以后,程序的输出结果是()。A、11B、111C、1111D、11111标准答案:B知识点解析:此题考查的是对象的构造。本题共声明了一个MyClass对象a,一个包含2个MyClass对象的数组b和一个包含2个MyClass对象指针的数组p,所以一共创建了3个MyClass类的对象,即调用了3次构造函数。14、下列有关类成员的叙述中,正确的是()。A、友元函数是类的成员函数B、类成员的默认访问权限是私有的C、类成员函数必须声明为公有的D、类的静态数据成员不能是常成员标准答案:B知识点解析:此题考查的是类成员的有关概念。类的友元函数可以直接访问该类的所有成员,但它不是类的成员函数,故选项A错误;类成员函数的访问权限可以声明为公有、保护、私有,故选项C错误;静态数据成员的声明是使用关键字static.它可以是常成员,故选项D错误。15、有如下两个类定义:c1assAA{};c1assBB{AAv1,*v2;BBv3;int*v4;};其中有一个成员变量的定义是错误的,这个变量是()。A、v1B、v2C、v3D、v4标准答案:C知识点解析:在定义类的数据成员时,类中的数据成员可以是任意类型,包括整型、浮点型、字符符型、数组、指针和引用等,也可以是对象。但是要注意,只有另外一个类的对象,才可以作为该类的成员,即作为类的成员对象存在。自身类的对象是不可以作为自身类的成员存在,但自身类的指针可以。对于本题,在定义类BB时,不能包括其对象v3。16、下列关于this指针的叙述中,正确的是()。A、任何与类相关的函数都有this指针B、类的成员函数都有this指针C、类的友元函数都有this指针D、类的非静态成员函数才有this指针标准答案:D知识点解析:此题考查的是this指针的使用。类的每一个成员函数都有_个隐含的常量指针,即this指针。类的静态成员函数不能含有this指针,因为this指针是一个指向本对象的指针。17、有如下程序:#include<iostream>usingnamespacestd;classSample{friendlong>>fun(Samples);public:Sample(longa){x==a;}private:};longfun(Samples){if(s.x<2)return1:returns.X*fun(Sample(s.x-1)):}intmain(){intsum=0;for(inti=0;i<6;i++){sum+=fun(Sample(i));}return0;}运行时输出的结果是()。A、120B、16C、154D、34标准答案:C知识点解析:此题考查的是友元函数和递归函数。因为fun函数是Sample类的友元函数,所以fun函数可以直接访问Sample类对象的私有成员x。主函数调用fun函数,构造参数为0~5。当n小于2时,fun函数返回1,其余返回值为n*fun(n-1)。n取0~5的值时fun(n)依次为1,1,2,6,24,120,累加结果为154。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、已知函数fun的原型为imfun(int,int,int);下列重载函数原型中错误的是()。A、charfun(int,int);B、doublefun(int,int,double);C、imfun(int,char*);D、floatfun(int,int,int);标准答案:D知识点解析:重载函数至少要在参数个数或参数类型上不同。而选项D中的函数与原函数只是函数类型不同,而其他完全相同(参数个数及类型),则不能作为重载函数来使用。20、有如下程序#inc1ude<iostream>usingnamespacestd;classBase{protected:Base(){cout<<’A’;}Base(charc){cout<<c;}};classDerived:publicBase{public:Derived(charc){cout<<c,}};intmain(){Derivedd1(’B’);return0;}执行这个程序屏幕上将显示输出()。A、BB、BAC、ABD、BB标准答案:C知识点解析:此题考查的是派生类对象的构造。建立派生类对象时,构造函数的执行顺序是:执行基类的构造函数,调用顺序按照各个基类被被继承时声明的顺序;执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序;执行派生类的构造函数。此题中,在建立派生类Derived的对象dl时会先调用基类Base的构造,调用的是默认构造函数,输出字符‘A’;然后调用自身的构造函数,输出‘B’:故程序的输出结果是:AB。21、有如下程序;#includeusingnamespacestd;classB{public:virtualvoidshow(){cout<<"B";)};classD:publicB{public:voidshow(){cout<<"D";}};voidfun1(B*ptr){ptr->show();}voidfun2(B&ref){ref.show();}voidfun3(Bb){b.show();}intmain(){Bb,*p=newD;Dd;fun1(p);fun2(b);fun3(d);return0;}程序的输出结果是()。A、BBBB、BBDC、DBBD、DBD标准答案:C知识点解析:此题考查的是虚函数与多态性。在成员函数的声明前面加上virual关键字,即可把函数声明为虚函数;在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。此题中,fun1()和fun2()的形参分别是基类的指针和引用,给fun1()传入的实参是指向派生类对象的指针p,fun1()将调用D类中的show()输出字符‘D’;给fun2()出入的实参是基类对象,fun2()调用类B中的show()输出字符‘B’;fun3()由于形参是基类对象,调用的始终都是基类的show(),输出字符‘B’。故最终输出结果是DBB。22、有如下程序;#inc1ude<iostream>usingnamespacestd;c1assBase{public:voidoutput0{cout<<1;}virtualvoidPrint0{cout<<’B’;}};c1assDerived:publicBase{public:voidoutput(){cout<<2;}voidPrint(){cout<<’D’;}};intmain(){Base*ptr=newDerived;ptr—>output();ptr—>Print();deleteptr;retum0;}程序的输出结果是()。A、1BB、1DC、2BD、2D标准答案:B知识点解析:此题考查的是虚函数与多态性。在成员函数的声明前面加上virual关键字,即可把函数声明为虚函数;在C++中,一个基类指针可以用于指向它的派生类对象,而且通过这样的指针调用虚函数时,被调用的是该指针实际所指向的对象类的那个重定义版本。本题中,从基类的定义可以看出:output()函数是普通成员函数,而Print()函数是虚函数。所以,通过ptr指针调用的output()是基类中的output(),而通过它调用的Print()则是派生类中的Print()。23、有如下程序#include<iostream>usingnamespacestd;classA{public:virtualvoidfunc1(){cout<<’’A1’’;}voidfunc2(){cout<<’’A2’’;}};classB:publicA{public:voidfunc1(){cout<<’’B1’’;}voidfunc2(){cout<<’’B2’’;}};intmain(){A*p=newB;p->func1();p->func2();return0;}运行此程序,屏幕上将显示输出()。A、B182B、A1A2C、B1A2D、A182标准答案:C知识点解析:此题考查的是虚函数的概念。此题中,func1是虚函数,func2是一般成员函数,而且在派生类与基类中都存在两个这样的函数。在主函数中,语句A*p=newB;定义了一个基类的指针p,并让它指向一个派生类对象。所以通过该指针调用func1时,运行的是派生类的版本,而通过该指针调用func2运行的是基类的版本。所以程序运行的最后输出是:B1A2。24、下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“<A、cout<B、cout<C、cout<D、.cout<标准答案:B知识点解析:此题考查的是C++流。setfill()作用是设置填充字符;left是使输出数据在指定宽度内左对齐:setw()的作用是设置输入输出宽度,且只对当前一次有效。国家二级C++机试(选择题)模拟试卷第4套一、选择题(本题共21题,每题1.0分,共21分。)1、下面叙述中正确的是A、线性表是线性结构B、栈与队列是非线性结构C、线性链表是非线性结构D、二叉树是线性结构标准答案:A知识点解析:线性表是最简单的、最常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是一种简单的非线性结构,二叉树是树的一种。2、以下程序的执行结果是()。#include<iostream.h>intfun(intb[],intn){inti,r=1;for(i=0;i<n;i++)r=r*b[i];returnr:}voidmain(){intx,a[]={1,2,3,4,5,6,7,8};x=fun(a,3);cout<<x<<endl;}A、5B、6C、7D、8标准答案:B知识点解析:由程序的main函数入手,调用fun函数,其中参数为数组a和3。fun函数的功能是for循环中由第一个数组元素开始到第三个元素进行累积。3、对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。A、快速排序B、冒泡排序C、直接插入排序D、堆排序标准答案:D知识点解析:各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序O(n1.5)、简单选择排序n(n-1),2、堆排序O(nlog2n)。4、定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。A、-369B、369C、0.369D、整数集合{1,2,3,4,5}标准答案:B知识点解析:UInt表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项A和选项C,选项D是整数集合,所以也排除。5、下列关于软件工程的描述中正确的是()。A、软件工程只是解决软件项目的管理问题B、软件工程主要解决软件产品的生产率问题C、软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D、软件工程只是解决软件开发中的技术问题标准答案:C知识点解析:软件工程是建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。软件工程主要思想是强调在软件开发过程中需要应用工程化原则。6、下面不属于需求分析阶段任务的是()。A、确定软件系统的功能需求B、确定软件系统的性能需求C、需求规格说明书评审D、制定软件集成测试计划标准答案:D知识点解析:需求分析阶段的工作可分为4个阶段:需求获取、需求分析、编写需求规格说明书、需求评审。7、软件设计中模块划分应遵循的准则是A、低内聚低耦合B、高内聚低耦合C、低内聚高耦合D、高内聚高耦合标准答案:B知识点解析:耦合性与内聚性是模块独立性的两个定性标准。一般一个较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。8、一个工作人员可使用多台计算机,而一台计算机被多个人使用,则实体工作人员与实体计算机之间的联系是()。A、一对一B、一对多C、多对多D、多对一标准答案:C知识点解析:如果一个工作人员只能使用一台计算机且一台计算机只能被一个工作人员使用,则关系为一对一;如果一个工作人员可以使用多台计算机,但是一台计算机只能被一个工作人员使用,则关系为一对多;如果一个工作人员可以使用多台计算机,一台计算机也可以被多个工作人员使用,则关系为多对多。9、公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是()。A、1:1联系B、m:1联系C、1:m联系D、m:n联系标准答案:C知识点解析:一个部门可以有多名员工,所以实体部门和职员间的联系是1:m联系。10、在一个派生类的成员函数中,试图调用其基类的成员函数“voidf();”,但无法通过编译。这说明()。A、f()是基类的私有成员B、f()是基类的保护成员C、派生类的继承方式为私有D、派生类的继承方式为保护标准答案:A知识点解析:在派生类对基类的三种继承形式中,都无法对基类的私有成员访问A正确。在B中,三种继承方式都能访问基类的保护成员,故B不正确。C选项的情况在f()是基类私有成员情况下是对的,但是还有别的可能,并不一定正确。同样D也不一定正确。11、字面常量42、4.2、42L的数据类型分别是()。A、long,double,intB、long,float,intC、int,double,longD、int,float,long标准答案:C知识点解析:此题考查的知识点是字面常量。对于整型字面常量,只要没有超过C++中整数所能表示的范围,C++将自动按整数来存储此数,也可以通过在整型字面常量后添加u或l来指定无符号整数或长整数来存储;对于实型字面常量,C++将自动按照双精度数来存储,也可以通过在实型字面常量后添加f来指定按单精度数存储。12、有如下程序:intx=3;do{x一=2;cout<<x,}while(!(一x));执行这个程序的输出结果是()。A、1B、30C、1一2D、死循环标准答案:C知识点解析:此题考查的是do一while循环语句。do一while循环首先执行do语句中的循环体,再判断是否需要继续执行循环。题目中do语句“x一=2”,while语句中“一一x”即x为0,取反为非0,循环继续执行;执行“x一=2”和“一一x”取反后,循环结束程序退出。13、有如下程序:#include<iostream>usingnamespacestd;intmain(){inti,s=0;for(i=1;s<20;i+=2)s+=i*i;cout<i<<end1;return0;}运行这个程序的输出结果是()。A、3B、5C、7D、9标准答案:C知识点解析:在这段程序中for循环共执行3次,每次循环变量i的值增2,在执行第三次循环语句时,变量s的值等于25,大于20而退出循环,此时再执行循环变量i加2运算,所以最后变量i的值等于7。14、)下列控制格式输入输出的操作符中,能够设置浮点数精度的是()。A、setprecisionB、setwC、setfillD、showpoint标准答案:A知识点解析:setprecision(intn):设置浮点数的精度(有效位数或小数位数),等价函数调用:io.precision(n)。15、下列语句中,错误的是()。A、constintbuffer=256;B、constdouble*point;C、intconstbuffer=256;D、double*constpoint;标准答案:D知识点解析:此题考查的是常指针和指针常量的概念。常指针是指向一个常量的指针变量,指针自身的内容可以改变但指针指向的内容不可以改变:指针常量是一个常量,即不能修改指针自身的内容,但可以通过指针修改其所指向的内容。D选项中指针常量point没有初始化,编译无法通过。16、若有如下类定义:classB{voidfun1(){}protected:doublevarl;public:voidfun2(){}};classD:publicB{protected:voidfun3(){}};己知obi是类D的对象,下列句中不违反类成员访问控制权限的是()。A、obj.fun1();B、obj.varl;C、obj.fun2();D、obj.fun3();标准答案:C知识点解析:此题考查的是基类成员在派生类中的访问属性。派生类中的成员不能访问基类中的私有成员,可以访问基类中的公有成员和保护成员。派生类从基类公有继承时,基类的公有成员和保护成员在派生类中仍然是公有成员和保护成员;派生类从基类私有继承时,基类的公有成员和保护成员在派生类中都变成私有成员;派生类从基类保护继承时,基类的公有成员在派生类中变成保护成员,基类的保护成员在派生类中仍然是保护成员。根据以上分析可知,本题中只有从B类继承的fun2()为公有属性,故选C选项。17、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assBase{public:voidfunl(){cout<<"Base\n";}virtualvoidfun2(){cout<<"Base\n";}};c1assDerived:publicBase{public:voidfun1(){cout<<"Derived\n";}voidfun2(){cout<<"Derived\n";}};voidf(Base&b){b.funl();b.fun2();}intmain(){Derivedobj;f(obj);return0;}执行这个程序的输出结果是()。A、BaseBaseB、BaseDerivedC、DerivedBaseD、DerivedDerived标准答案:B知识点解析:此题考查的是虚函数的概念。在C++语言中,一个派生类的对象可以被它的任何一个基类的指针所指向,若基类和派生类中存在一模一样的成员函数。那么通过该基类指针调用这样的成员函数时,若这个成员函数被定义成虚函数,那么就调用派生类中的;否则就调用基类中的。本题中,在f0函数中,形参b是一个基类的引用,它引用的是主函数中定义的派生类对象obj,所以在调用fun10时,运行的是基类的版本,而fun20运行的是派生类的版本。18、已知Value是一个类,Value是Value的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是()。A、Valueoperator+(Valuev,inti);B、Valueoperator+(Valuev=value,inti);C、Valueoperator+(Valuevinti=0);D、Valueoperator+(Valuev=value,inti=0);标准答案:B知识点解析:此题考查的是重载加法运算符“+”。“+”是二元运算符,其第一操作数是对象本身,i为第二操作数,由此可知选项B正确。19、有如下程序:#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。20、若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列MyTemp<double>p2;MyTemp<long>p3[2];编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是()。A、1B、2C、3D、0标准答案:C知识点解析:p2是一个double型的MyTemp,p3[2]是一个long型MyTemp数组,其中包括两个元素。所以共有3个MyTemp的实例。21、下列关于C++流的描述中,错误的是()。A、cout>>’A’表达式可输出字符AB、eof()函数可以检测是否到达文件尾C、对磁盘文件进行流操作时,必须包含头文件fstreamD、以iosbase::out模式打开的文件不存在时,将自动建立一个新文件标准答案:A知识点解析:cout是一个标准输出流对象。>>称之为提取运算符,它的功能是从输入流中提取数据赋值给一个变量。<<为插入运算符,其功能是把表达式的值插入到输出流中。当系统执行cout<<x操作时,首先根据x值的类型调用相应的插入运算符重载器函数,把x的值传送给对应的形参,接着执行函数体,把x的值输出到显示器屏幕上,在当前屏幕光标位置处显示出来,然后返回ostream流,以便继续使用插入运算符输出下一个表达式的值。对于本题来说,要输出字符‘A’的值应该写成cout<<’A’。因而选项A)是错误的。国家二级C++机试(选择题)模拟试卷第5套一、选择题(本题共25题,每题1.0分,共25分。)1、下列叙述中正确的是()。A、栈是“先进先出”的线性表B、队列是“先进后出”的线性表C、循环队列是非线性结构D、有序线性表既可以采用顺序存储结构,也可以采用链式存储结构标准答案:D知识点解析:本题主要考查了栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。2、下列选项中,正确的C++表达式是()。A、counter++3B、element3+C、a+=bD、’a’=b标准答案:C知识点解析:在C++中由一个或多个操作数与操作符连接而成的有效运算式称为表达式。选项C是C++的合法表达式。3、下列语句中,与语句“n=(a>b?(b>c?1:0):0);”的功能等价的是()。A、if(a<=b)n=0;B、if((a>b)If(b>c))n=l;elsen=0;C、if(a>b)if(b>c)n=l;elsen=0;elsen=0;D、if(a>b)n=1;elseif(b<=c)n=l;elseif(b>c)n=l;elsen=0;标准答案:C知识点解析:条件表达式(a>b?(b>c?l:0):0)的含义是,如果a>b成立,则此表达式的值等于条件表达式(b>c?1:0)的值,否则其值等于0。而条件表达式(b>c?1:0)的含义是,如果b>c成立,其值等于l,否则其值等fO。4、某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)()。A、3B、6C、8D、12标准答案:D知识点解析:根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,故该=叉树为12层,每层只有一个结点。5、在软件设计中不使用的工具是()。A、系统结构图B、PAD图C、数据流图(DFD图)D、程序流程图标准答案:C知识点解析:在软件开发的各个阶段经常会使用到一些图形工具,如在需求分析阶段使用数据流图(DFD图),在要设计阶段使用系统结构图,在详细设计阶段使用程序流程图、N-S图或者PAD图等。6、已知类IMS中两个成员函数的声明为“voidlisten()const;”与“voidspeak();”,另有两个对象的定义为“IMSobj1;”与“constIMSobj2;”,则下列语句中,产生编译错误的是()。A、obj1.1isten();B、obj1.speak();C、obj2.1isten();D、obj2.speak();标准答案:D知识点解析:函数listen()作为类IMS的常成员函数,一般对象obj1和常对象obi2都可以调用它,而函数speak()作为IMS的一般成员函数,则只有一般对象obj1可以调用,而常对象obj2调用会产生编译错误。7、下列关于数据库设计的叙述中,正确的是A、在需求分析阶段建立数据字典B、在概念设计阶段建立数据字典C、在逻辑设计阶段建立数据字典D、在物理设计阶段建立数据字典标准答案:A知识点解析:数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。8、层次型、网状型和关系型数据库划分原则是()。A、记录长度B、文件的大小C、联系的复杂程度D、数据之间的联系方式标准答案:D知识点解析:根据数据之间的联系方式,可以把数据库分为层次型、网状型和关系型数据库,它们是根据数据之间的联系方式来划分的。9、定义如下枚举类型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。10、在下列关键字中,不能用来表示继承方式的是()。A、privateB、staticC、publicD、protected标准答案:B知识点解析:此题考查的是继承方式。继承方式有私有(研vate)、保护(protected)、公有(public)三种。11、有如下程序:#includeusingnamespacestd;classB{public:B(intxx):x(xx){++count;x+=10;}virtualvoidshow()const{cout<show();deleteptr;retumO:}运行时的输出结果是()。A、1_120B、2_120C、1_20D、2_20标准答案:B知识点解析:在主函数中定义了一个基类B的指针变量ptr,并调用类D的构造函数创建了类D的实例对象,因为变量count是全局变量所以在调用基类B的构造函数给其值加1,在调用D的构造函数时给其值加1,因而输出其值等于2,在类D的构造函数中给成员变量v的值加100,所以其等于120并输出。12、下列叙述中正确的是A、数据库系统减少了数据冗余B、经规范化后的数据库系统避免了一切冗余C、数据库系统比文件系统能管理更多的数据D、数据库系统中数据的一致性是指数据类型一致标准答案:A知识点解析:数据库主要特点:实现数据共享、减少数据的冗余度、数据的独立性、数据实现集中控制、数据一致性和可维护性,以确保数据的安全性和可靠性和故障恢复。所谓数据一致性,就是当多个用户试图同时访问一个数据库,它们的事务同时使用相同的数据时,可能会发生以下四种情况:丢失更新、未确定的相关性、不一致的分析和幻想读。13、有如下两个类定义:classAA{};classBB{AAv1,*v2;BBv3;int*v4;}其中有一个成员变量的定义是错误的,这个变量是()。A、v1B、v2C、v3D、v4标准答案:C知识点解析:在定义类的数据成员时,类中的数据成员可以是任意类型,包括整型、浮点型、字符符型、数组、指针和引用等,也可以是对象。但是要注意,只有另外一个类的对象,才可以作为该类的成员,即作为类的成员对象存在。自身类的对象是不可以作为自身类的成员存在,但自身类的指针可以。对于本题,在定义类BB时,不能包括其对象v3。14、在下列函数原型中,可以作为类AA构造函数的是()。A、voidAA(int);B、intAA();C、AA(int)const;D、AA(int);标准答案:D知识点解析:此题考查的是构造函数的概念。构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值。选项A、B不符合要求。选项C中函数AA,会更新对象的数据成员。15、有如下程序段:inti=1;while(1){i++;if(i==10)break;if(i%2==0)cout<<’*’;}执行这个程序段输出字符*的个数是()。A、10B、3C、4D、5标准答案:C知识点解析:这段程序代码的功能是计算在1~10(包括10)之间偶数i的个数,如果整数i为偶数,则输出一个’*’,共有4个偶数,所以共输出4个’*’。16、对于语句cout<A、“cout”是一个输出流对象B、“endl”的作用是输出回车换行C、“x”是一个变量D、“<<”称作提取运算符标准答案:D知识点解析:此题考查的是C++语言的输出流。符号“<<”是预定义插入符,提取运算符是“>>”。17、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assA{public:A(inti):rl(i){}voidprint0{cout<<’E’<<r1<<’—’;)voidprint()const{cout<<’Ck<r1*rl<<’—’;)private:intr1,};intmain(){Aa1(2);constAa2(4);al.print();a2.print();return0;}运行时的输出结果是()。A、运行时出错B、E2—C16—C、C4—C16—D、E2—E4—标准答案:B知识点解析:类A包括一个整型数据成员r1,一个一般成员函数print(),一个常成员函数print()const。在主函数中定义了对象a1,并对r1的值赋2和常对象a2,并对r1的值赋4,在C++中,常对象不能被更新,所以常对象只能调用类的常成员函数,而不能调用一般成员函数。而一般的对象,既可以调用一般成员函数也可以调用常成员函数。所以在本题中,当执行al.print()时,输出为E2—,执行a2.print0时,输出为C16—。18、有如下程序:#include<iostrcam>usingnamespacestd;classMusic{public:voidsetTitle(char*str){strcpy(title,str);}protected:Chartype[10];private:chartitle[20];};
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物标志物在药物临床试验中的转化医学策略-1
- 生物制品稳定性试验常见问题与解决方案
- 生物制剂在自身免疫性疾病中的疗效评估
- 生物制剂临床试验中中期分析统计学调整
- 生活质量数据在慢性病药物药物警戒中的价值
- 深度解析(2026)《GBT 19867.6-2016激光-电弧复合焊接工艺规程》(2026年)深度解析
- 营销数据分析师职业资格认证考试题含答案
- 深度解析(2026)《GBT 19374-2003夏洛来种牛》
- 翻译职业应聘全攻略及答案参考
- 室内灯具项目可行性分析报告范文
- 甲状腺腺瘤术后出血个案护理
- 2024-2025学年广东省广州市海珠区九年级(上)期末化学试题及答案
- 2025年山东省纪委遴选笔试试题及答案
- 建筑材料大一讲解
- SMT物料基础培训
- DB32∕T 3761.52-2022 新型冠状病毒肺炎疫情防控技术规范 第52部分:方舱医院
- AGV小车安全培训会课件
- 纺织业账务知识培训课件
- 1688采购合同范本
- 购买铁精粉居间合同范本
- GB/T 29730-2025冷热水用分集水器
评论
0/150
提交评论