全国计算机二级C++考题真题及答案_第1页
全国计算机二级C++考题真题及答案_第2页
全国计算机二级C++考题真题及答案_第3页
全国计算机二级C++考题真题及答案_第4页
已阅读5页,还剩142页未读, 继续免费阅读

下载本文档

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

文档简介

2010年3月考试真题(第31次).数据流程图(DFD图)是。A、软件概要设计的工具 B、软件详细设计的工具C,结构化方法的需求分析工具D、面向对象方法的需求分析工具常见的需求分析方法有:结构化分析方法和面向对象的分析方法.结构化分析就是使用数据流图(DFD)、数据字典(DD)、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。 故本题答案为C。.软件(程序)调试的任务是.A,诊断和改正程序中的错误 B、尽可能多地发现程序中的错误C、发现并改正程序中的所有错误D、确定程序中错误的性质程序调试的任务是诊断和改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去执行找出软件错误的具体位置。软件测试贯穿整个软件生命期,调试主要在开发阶段。 故本题答案为A。.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是.A、编辑软件B、操作系统 C、教务管理系统D、浏览器软件按功能可以分为:应用软件、系统软件、支撑软件(或工具软件)。应用软件是为解决特定领域的应用而开发的软件。例如,事务处理软件,工程与科学计算软件,实时处理软件,嵌入式软件,人工智能软件等应用性质不同的各种软件。系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件.如操作系统,编译程序,汇编程序,网络软件,数据库管理系统等,所以选项B属于系统软件. 故本题答案为B。.软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于.A、定义阶段B、开发阶段C、维护阶段D、上述三个阶段软件生命周期可分为软件定义、软件开发及软件运行维护三个阶段。软件开发阶段包括概要设计、详细设计、实现和测试四个活动阶段。 故本题答案为B。.下列叙述中正确的是.A,对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为D、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为Slog211)对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较bg2n次,而顺序查找需要比较n次。二分法查找只适用于顺序存储的有序表,如果采用链式存储结构,也只能用顺序查找,所以选项A是正确的。故本题答案为A。.有两个关系R和T如下:R TABABCa12b22c32d32ABCc32d32则由关系R得到关系T的操作是。A,选择B、投影C、交D、并从关系中找出满足给定条件的元组的操作称为选择。选择是从行的角度进行的运算,即从水平方向抽取记录。由图可知关系R通过运算得到关系T,繇T与关系R相比,属性的个数没有发生变化,记录的条数发生了变化。因此所使用的运算应该是选择。 故本题答案为A。.算法的时间复杂度是指.A、算法的执行时间 B、算法所处理的数据量C、算法程序中的语句或指令条数D,算法在执行过程中所需要的基本运算次数所谓算法的时间复杂度,是指执行算法所需要的计算工作量。为了能够比较客观地反映出一个算法的效率,在度量一个算法的工作量时,不仅应该与所使用的计算机、程序设计语言以及程序编制者无关,而且还应该与算法实现过程中的许多细节无关。为此,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。 故本题答案为D。.数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属了数据库设计的 。A、需求分析阶段B、逻辑设计阶段 C、概念设计阶段D、物理设计阶段E-R图是E-R模型的一种非常直观的图的形式表示,它描述信息结构但不涉及信息在计算机中的表示,它是数据库概念设计阶段的工具。 故本题答案为C。.在学生管理的关系数据库中,存取一个学生信息的数据单位是 。A、文件 B、数据库C、字段D、记录实体是概念世界中的基本单位,属性附属了实体,它本身并不构成独立单位。属性有属性域,每个实体可取属性域内的值。-个实体的所有属性取值组成了一个值集叫元组(或称记录)。在概念世界中,可以用元组表示实体,也可用它区别不同的实体。所以在学生管理的关系数据库中,存取一个学生信息的数据单位是元组(或记录)。 故本题答案为D。.数据库管理系统中负责数据模式定义的语言是.A、数据定义语言B、数据管理语言C、数据操纵语言D、数据控制语言数据定义语言(DDL):该语言负责数据的模式定义与数据的物理存取构建。数据操纵语言(DML):该语言负责数据的操纵,包括查询及增、册人改等操作。数据控制语言(DCL):该语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。故本题答案为A。.有如下两个类定义classXX{private:doublexl;protected:doublex2;public:doublex3;1;classYY:protectedXX{private:doubley1;protected:doubley2;public:doubley3;]:在类YY中保护成员变量的个数是.A,1B、2C、3D、4本题主要考查了类的继承与派生.类的继承方式有三种:公有(public)继承、保护(protected)继承和私有(private)继承。当派生类从基类保护继承时,基类的公有成员和保护成员在派生类中都为保护成员。木题派生类YY从基类XX保护继承,因此基类XX的公有成员x3和保护成员x2都成为派生类YY的保护成员,再加上派生类YY自身的保护成员y2,因此类YY中有3个保护成员。 故本题答案为C。.在C++中,cin是一个.A、类B、对象C、模板D、函数本题主要考查了I/O流。在C++中,数据的输入与输出是通过I/O流来实现,cin和cout是预定义的流类对象。故本题答案为B。.若x和y是程序中的两个整型变量,则下列if语句中正确的是.A,if(x==0)y=l;elsey=2; B、if(x==0)theny=lelsey=2;C、if(x==0)y=lelsey=2; D^ifx==0y=l;elsey=2;本题主要考查了if语句。if语句的语法形式为:if(表达式)语句1else语句2在C++中,if语句中没有then,语句最后必须有一个分号,因此选项A正确,选项B和选项C错误:在选项D中,表达式x==0应该用圆括号括起来,因此选项D错误。 故本题答案为A。.将运算符重载为非成员函数,下列原型声明中,错误的是。A、MyClockoperator+(MyClock,long);B、MyClockoperator+(MyClock,MyClock);C、MyClockoperator+(long,long);D,MyClockoperator+(long,MyClock);本题主要考杳了运算符的重载。运算符的重载是针对新类型数据的实际需要,对原有运算符进行适当的改造。一般来讲,重载的功能应当与原有功能类似,不能改变原运算符的操作对象个数,同时至少要有一个操作对象是自定义类型。选项A、选项B和选项D的两个参数中至少有一个参数是自定义类型,因此选项A、选项B和选项D正确。选项C中两个参数都是基本数据类型,没有自定义类型,因此选项C错误。故本题答案是C..耍定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是 」A、intx[3]={0,0,0};B、intx[]={0};C、staticintx[3]={0};D、intx[]={0,0,0);本题主要考查了一维数组的定义与初始化。一维数组的定义形式为:数据类型数组名[数组元素个数];数组的初始化就是在声明数组时给部分或全部元素赋初值。选项A定义了有三个元素的整型数组x,并初始化三个元素的值为0,因此选项AiE确;当声明数组时没有给出数组元素个数,但是有初始化列表,数组元素个数由列表中元素个数来确定,因此选项D正确;选项B没有给出数组元素个数,并且在初始化列表中只给一个元素值,因此选项B定义了只有一个元素的整型数组,故选项B错误:对了数值类型数组,如果给定的数值不够,则没有指定数值的元素将初始化为0,因此选项C正确。 故本题答案为B。.下列控制格式输入输出的操作符中,能够设置浮点数精度的是。A、setprecisionB、setwC、setfillD、showpoint本题主要考杳了输出流的格式控制。setprecision(intn)用于控制输出流显示浮点数的精度,整数n代表显示的浮点数数字的个数。因此选项A正确。setw(intn)用于预设输入输出宽度。setfill(charc)用丁一预设填充字符。showpoint用于给浮点数显示小数点和尾部的0.因此选项B、选项C和选项D不正确。 故本题答案为A。.若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列MyTemp〈double〉p2;MyTerap<long>p3[2];编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是一 。A、1B、2C、3D、0本题主要考核类模板。类模板声明的语法形式为:template〈模板参数表)class类名{类成员声明}使用类模板来建立对象时,应按如卜.形式声明:类名<模板实参表》对象名1,…,对象名n;在定义对象的过程中,编译系统会自动地根据需要生成相应的类定义,这种依据类模板生成类定义的过程称为类模板的实例化。类模板实例化所生成的每•个类定义就是相应类模板的•个实例,因此类模板的实例个数由类型参数的种类决定。本题使用类模板MyTemp定义对象时指定了两种类型参数:double和long,因此所生成的实例个数是2。 故本题答案为B。.下列代码段声明了3个类classPerson{};classStudent:publicPerson();classUndergraduate:Student{);下列关于这些类之间关系的描述中,错误的是.0A、类Person是类Undergraduate的基类 B、类Undergraduate从类Student公有继承C、类Student是类Person的派生类 D、类Undergraduate是类Person的派生类本题主要考杳了类的继承与派生。在C++中,定义派生类的一般语法形式为:class派生类名:继承方式基类名1,继承方式基类名2,…,继承方式基类名n(派生类成员声明;};类的继承方式有三种:公有(public)继承、保护(protected)继承和私有(private)继承。如果不显式地给出继承方式,缺省的类继承方式是私有(private)继承。在声明派生类Undergraduate时缺省继承方式,因此类Undergraduate从类Student私有继承,故选项B错误。 故本题答案为B。.将前缀运算符重载为非成员函数,下列原型中,能正确用于类中说明的是oA、Decr&operator-(int);B、Deeroperator―(Decr&,int);C、friendDecr&operator―(Decr&);D、friendDeeroperator—(Decr&,int);本题主要考杳了运算符的重载。运算符一既可以是前缀运算符(前减D,又可以是后缀运算符(后减1)。为了区分这两种情况,重载这两个运算符时必须在格式上有所区别:重载后缀一时必须多一个虚拟参数:int。如果将前缀一和后缀一作为非成员函数重载,那个唯一的操作数必须作为第一参数提供。又因为要修改第一操作数,对应的参数必须声明为引用。前缀一作为非成员函数重载的一般形式为:friendDecr&operator—(Decrft);后缀一作为非成员函数重载的一般形式为:friendDeeroperator—(Decr&,int);当运算符重载为类的成员函数时,函数的参数个数比原来的参数个数少一个。前缀一作为成员函数重载的•般形式为:Decrftoperator-();后缀一作为成员函数重载的•般形式为:Deeroperator-(int);因此选项C正确,选项D是后缀一作为非成员函数重载的形式。故本题答案为C。.有如下程序:#include<iostream>usingnamespacestd;classBase{public:Base(intx=0):valB(x){cout«valB;}'BaseO(cout«valB;}private:intvalB;);classDerived:publicBase{public:Derived(intx=0,inty=0):Base(x),valD(y){cout«valD;}^Derived(){cout«valD;}private:intvalD;):intmain(){Derivedobjl2(2,3);return0;)运行时的输出结果是oA、2332B、2323C、3232D、3223本题主要考杳了派生类的构造函数与析构函数。构造函数在对象被创建的时候由系统自动调用,建立派生类对象时,构造函数的执行顺序如下:(1)执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);(2)执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下):(3)执行派生类的构造函数。析构函数用来完成对象被删除前的一些清理工作,在对象的生存期即将结束的时刻被系统自动调用。派生类的析构函数在执行过程中也要对基类和成员对象进行操作,但它的执行过程与构造函数严格相反,即:(1)对派生类新增普通成员进行清理。(2)调用成员对象析构函数,对派生类新增的成员对象进行清理。(3)调用基类析构函数,对基类进行清理。main。函数中,第,条语句Derivedobjl2(2,3);创建派生类对象objl2时,先以第•个实参2初始化基类Base成员valB,执行基类Base的构造函数,输出valB的值2;然后以第二个实参值3初始化派生类Derivecl成员valD,执行派生类Derived的构造函数,输出valD的值3;在对象objl2的生存期即将结束时,先调用派生类Derived的析构函数,输出valD的值3,然后调用基类析构函数,输出valB的值2。因此本程序运行时的输出结果是2332。 故本题答案为A。.有如下程序4include<iostream>usingnamespacestd;classA{public:A(inti=0):rl(i){}voidprint(){cout«,E*<<rl«*~,;}voidprint()const{cout«*C*«rl*rl<<>;}voidprint(intx){cout«*P*<<rl*rl*rl<<,->;}private:intrl;};intmainO{Aal;constAa2(4);al.print(2);a2.print();return0;)运行时的输出结果是.OA、P8-E4B、P8-C16-C、P0-E4-D、P0-C16-本题主要考杳了函数的重载、常对象和常成员函数。使用const关键字修饰的对象称为常对象,使用const关键字说明的成员函数称为常成员函数,通过常对象只能调用它的常成员函数,而不能调用丈他成员函数。两个以上的函数,具有相同的函数名,但是形参的个数或类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是函数的重载。const关键字可以用于对重载函数的区分。在main。函数中,第一条语句定义类A的对象al,系统自动调用类A的构造函数,以默认形参值。初始化对象al的数据成员rl;第二条语句定义常对象a2,系统自动调用类A的构造函数,以实参值4初始化对象a2的数据成员rl:第三条语句通过对象al调用带一个整型形参的没用const修饰的print。函数,表达式rl*rl*门二0*0*0=0,因此输出P0-,第四条语句常对象a2调用的是用const修饰的常成员函数print。,表达式rl*rl的值为:4*4=16,因此输出C16-。故程序运行时的输出结果是P0-C16- 故本题答案为D。.若MyClass是•个类名,且有如下语句序列MyClasscl,*c2;MyClass*c3=newMyClass;MyClass&c4=cl;上面的语句序列所定义的类对象的个数是 .A,1 B、2C、3D、4本题主耍考查了对象的定义。第1条语句定义了MyClass类的对象cl和MyClass类的对象指针变量c2。因为定义对象指针只是得到了用于存储对象地址的指针变量,不会创建对象,因此第1条语句只定义了一个类对象cl;第2条语句定义了对象指针变量c3。并初始化c3指向用new运算符动态创建的对象,因此第2条语句用new运算符动态定义了一个对象;第3条语句声明了对象引用c4,并将其初始化为对象cl的一个别名。因为创建对象引用只是为已有对象创建别名,不会创建对象,因此第3条语句没有创建类对象.因此这3条语句所定义的类对象的个数是2。故本题答案为B。.下列关于类模板的描述中,错误的是.A、类模板的成员函数都是模板函数 B、可以为类模板参数设置默认值C、类模板描述了一组类D、类模板中只允许有一个类型参数本题主要考查了类模板。使用类模板可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值能取任意类型。因此选项C正确:类模板声明的语法形式为:template〈模板参数表》class类名{类成员声明}其中"模板参数表”由用逗号分隔的若干类型标识符或常量表达式构成,因此选项D错误:可以为类模板中的类型参数和非类型参数提供默认值,如果某个类模板参数有默认值,该列表中的所有后续参数也都必须指定默认值。因此选项8正确。类模板的成员函数都是模板函数,因此选项A正确。 故本题答案为D。.有如下程序^include<iostream>usingnamespacestd;classTest{public:TestO()Test(constTest&t){cout«l;});Testfun(Test&u){Testt=u;returnt;}intmainO(Testx,y;x=fun(y);return0;)运行这个程序的输出结果是。A、无输出B、1C、11D、111本题主要考杳了拷贝构造函数。拷贝构造函数是一种特殊的构造函数,具有一般构造函数的所有特性,其形参是本类的对象的引用.作用是使用一个已知的对象初始化一个正在创建的同类对象。拷贝构造函数在以K三种情况卜都会被调用:1)当用类的一个对象初始化该类的另一个对象时;2)如果函数的形参是类的对象,调用函数时,进行形参和实参结合时:3)如果函数的返回值是类的对象,函数执行完成返回调用者时。函数fun的形参为类Test的对象的引用,main。函数中,第:条语句x=fun(y);调用函数fun()。使引用u为实参y的别名,然后执行函数fun()的第•条语句Testt=u;,RI用Test类的对象u去初始化该类的另个对象3系统将自动调用拷贝构造函数,输出1,然后执行函数fun()的第二条语句returnt;,函数fun()的返回值为Test类的对象t,函数执行完成返回调用者时,系统将第二次自动调用拷贝构造函数,输出1,程序执行结束。故运行这个程序的输出结果是11。 故本题答案为C。.要定义一个引用变最p,使用引用类MyClass的一个对•象,正确的定义语句是.A、MyClassp=MyClass;B,MyClassp=newMyClass;C、MyClass&p=newMyClass;D、MyClassa,&p=a;本题主耍考查了引用的声明。引用的声明形式:类型标识符&引用名=目标变量名;说明:(1)&在此不是求地址运算,而是起标识作用.(2)类型标识符是指目标变量的类型.(3)声明引用时,必须同时对其进行初始化。(5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。选项A和选项B在变量p的左边没有标识&,不符合引用声明形式,因此选项A和选项B错误;选项C中,赋值号右边不是已存在的变量名,不符合引用声明的语法形式,因此选项C错误;选项D先声名对象a,然后声明引用为己声明变最名a的别名,符合引用声明形式,因此选项D正确。 故本题答案为D..下列关于函数的描述中,错误的是.A、函数可以没有返回值 B、函数可以没有参数 C、函数可以是一个类的成员D、函数不能被定义为模板本题主要考查了函数。函数定义的语法形式:类型标识符函数名(形式参数列表)语句序列}无返回值的函数其类型标识符为void。故选项AiE确:函数可以没有参数,当函数定义时没有形参,则函数调用时,<实参表)亦为空,故选项B正确;函数可以是类的成员,故选项C正确;模板是C++支持参数化多态性的工具,函数模板实现了类型参数化,将函数处理的数据类型作为参数,提高了代码的可重用性,故选项D错误。 故本题答案为D。.下列程序段中包含4个函数,其中具有隐含this指针的是ointfunl0;classTest{public:intfun2();friendintfun3();staticintfun4(););A、funlB、fun2C、fun3D、fun4本题主要考查了this指针。this指针是一个隐含于每一个非静态成员函数中的特殊指针。它是一个指向正在被该成员函数操作的对象,也就是要操作该成员函数的对象。因此类Test的非静态成员函数fun2中具有隐含this指针,故选项B1E确。函数funl和函数fun3均不是成员函数,因此不具有隐含this指针,故选项A和选项C不正确;静态成员不属于类的任何一个对象,而是属于整个类,因此静态成员没有this指针,故静态成员函数fun4中没有this指针,故选项D错误。 故本题答案为B。.卜面是类Shape的定义:classShape{public:virtualvoidDraw()=0;);下列关于Shape类的描述中,正确的是。A、类Shape是虚基类 B、类Shape是抽象类C、类Shape中的Draw函数声明有误 D、语句"Shapes;"能够建立Shape的一个对象s本题主要考杳了纯虚函数和抽象类。声明纯虚函数的语法形式为:virtual函数类型函数名(参数表)=0;所以函数Draw。是纯虚函数。带有纯虚函数的类是抽象类,所以类Shape是抽象类,因此选项B1E确;抽象类不能实例化,即不能定义一个抽象类的对象,因此选项D错误。 故本题答案是B。.关于函数中的〈返回类型),下列表述中错误的是 。A、〈返回类型》中有可能包含关键字intB、〈返回类型〉中有可能包含自定义标识符C、〈返回类型》中有可能包含字符*D、〈返回类型〉中有可能包含口本题主要考杳了函数的返叵1类型。函数的定义形式为:返回类型函数名(形参列表){函数体}返回类型又称函数类型,表示一个函数所计算(或运行)的结果值的类型.因为函数的结果值可以为整型,因此返回类型可能包含关键字int,选项A正确;函数的返回类型可以为类,因此返回类型可能包含自定义标识符,选项B正确:函数的返回类型可以为指针,因此返回类型可能包含字符*,选项C正确:但返回类型不能为数组,因此返回类型中不可能包含口,因此选项D错误。故本题答案为D。.打开文件时可单独或组合使用下列文件打开模式®ios_base::app ®ios_base::binary®ios_base::in @ios_base::out若要以二进制读方式打开一个文件,需使用的文件打开模式为OA、①@B、①@C、D、②④本题主要考杳了I/O流。打开一个与输出流关联的文件时,通常要指定文件模式。iosbase::app模式的功能:以写方式打开文件,若文件不存在则创建文件,若文件已存在则向文件尾添加数据;ios_base::binary模式:以二进制模式打开文件(缺省为文本模式);ios_base::in模式:以读方式打开文件;iosbase::out模式:以写方式打开文件,若文件不存在则创建,若文件已存在则清空原内容(ofstream默认的打开方式)。因此若要以二进制读方式打开一个文件,需使用的文件打开模式为:ios_base::binaryIiosbase::in.故本题答案为C。.下列关于继承方式的描述中,错误的是.A、如果不显式地指定继承方式,缺省的继承方式是私有(private)B、采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C、采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D,采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员本题主要考查了类的继承与派生。类的继承方式有一:种:公有(public)继承、保护(protected)继承和私有(private)继承。如果不显式地给出继承方式,缺省的类继承方式是私有(private)继承。因此选项A正确:当派生类从基类公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,仍作为派生类的公有成员和保护成员,因此选项B正确;当派生类从基类保护继承时,基类的公有成员和保护成员在派生类中都为保护成员,因此选项C正确:当派生类从基类私有继承时,基类的公有成员和保护成员在派生类中都改变为私有成员;无论哪种继承方式,派生类中的成员都不能访问基类中的私有成员,因此选项D错误。故本题答案为D。.下列关于运算符重载的描述中,错误的是.A,可以通过运算符重载在C++中创建新的运算符 B、赋值运算符只能重载为成员函数C、运算符函数重载为类的成员函数时,第操作数是该类对象D、重载类型转换运算符时不需要声明返回类型本题主要考杳了运算符重载。”运算符重载”是针对C++中原有运算符进行的,不可能通过重载创造出新的运算符,因此选项A错误;在C++中,运算符的重载方式有两种:(1)重载为成员函数;(2)重载为友元函数。"="、"口"、"0"、以及所有的类型转换运算符只能重载为成员函数,因此选项B正确:运算符重载为成员函数时,第-•操作数就是对象本身,并不显式地出现在参数表中,因此选项CiE确:建载类型转换运算符的格式为:operator类型名0,其中"类型名"就代表了返I同类型,因此重载类型转换运算符时不需要声明返回类型,因此选项D正确。故本题答案为A。.有以下程序:ttinclude<iostream>usingnamespacestd;classB{public:B(intxx):x(xx){++count;x+=10;}virtualvoidshow()const{cout«count<<,_*«x«endl;}protected:staticintcount;private:intx;):classD:publicB{public:D(intxx,intyy):B(xx),y(yy){++count;y+=100;)virtualvoidshow()const{cout«count«*«y«endl;}private:inty;};intB::count=0;intmain0{B*ptr=newD(10,20);ptr->show();deleteptr:return0;)运行时的输出结果是一OA、l_120B、2_120C、l_20D、2_20本题主要考查了派生类的构造函数、静态成员函数以及虚函数。建立派生类对象时,构造函数的执行顺序如卜.:(1)执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);(2)执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下);(3)执行派生类的构造函数。用static关键字声明的数据成员为静态数据成员,静态成员在每个类只有一个拷贝,由该类的所有对象共同维护和使用。在成员函数声明的前面加上virtual修饰,即把该函数声明为虚函数。在C++中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。本题中,函数show在基类B和派生类D中都声明为虚函数。在基类B中把保护成员定义为静态成员count,派生类D以公有继承方式从基类B继承了保护成员count。它被某类B和派生类D的所有对象所共享,但它不属于类的任何一个对象。在main。函数中,第•条语句通过new运算符创建派生类D的对象,并把对象的首地址赋给基类指针ptr,即基类指针ptr指向派生类对象。在创建派生类对象时,先执行基类B的构造函数,count的值为1,然后执行派生类D的构造函数,count的值为2,y的值为120;main。函数的第二条语句通过基类指针ptr调用虚函数show。,被调用的是该指针实际所指向的派生类对象类的重定义版本,即输出2」20。故本题答案为B。.下列叙述中,错误的是oA、false是一个逻辑型常量 B、"b"是一个字符型常量C、365是一个int常量 D、3.1415926是一个double常量本题主要考杳了常量。在C++中,逻辑型常量有两个:false(假)和true(真),因此选项A正确;字符型常量是单引号括起来的一个字符,字符串常量是双引号括起来的字符序列,因此"b"是字符中,不是字符,故选项B错误;整型常量默认为int型,因此选项C正确:实型常量默认为double型,因此选项D正确。故本题答案为B.在下列字符中,不允许作为C++标识符的是 。A、bB、BC、_D、2本题主要考查了C++中的标识符命名规则。标识符的组成要符合一定的规则:(1)标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串;(2)标识符不能与任意一个关键字同名;(3)标识符中的字母区分大小写;(4)标识符不宜过长。在选项D中,标识符的第一个字符是数字,因此不是合法的标识符,不允许作为C++标识符。故本题答案为D。.软件是、数据和文档的集合。标准答案为:程序考生答案为:函数计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。.有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为:选课(学号,,成绩)。标准答案为:课号考生答案为:课号码也称为关键字,是表中若干属性的属性组,其值惟一标识表中的一个元组。在关系模式选课中能惟一标识一个元组的是学号,课号。.设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针rear=10(指向队尾元素),则该循环队列中共有个元素。标准答案为:15或十五或15 考生答案为:35在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直至队尾指针rear指向的位置之间所有的元素均为队列中的元素。本题中队列的容量为50,头指针为45,那么从头指针到50之间有46、47、48、49、50,共5个元素,尾指针为10,那么从1到10之间有10个元素,所以共有15个元素。.设二叉树如下:对该二叉树进行后序遍历的结果为 …标准答案为:EDBGHFCA或E、D、B、G、H、F、C、A或E,D,B,G,H,F,C,A或E,D,B,G,H,F,C,A考生答案为:EDGHFCA后序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历布子树,最后访问根结点。.一个队列的初始状态为空。现将元素人,8,&“£1,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为 .标准答案为:A,B,C,D,E,F,5,4,3,2,1或A,B,C,D,E,F,5,4,3,2,1或A、B,C、D、E、F、5、4、3、2、1或ABCDEF54321或A,B,C,D,E,F,5,4,3,2,1或A,B,C,D,E,F,5,4,3,2,1或A,B,C,D,E,F,5,4,3,2,1或A,B,C,D,E,F,5,4,3,2,1考生答案为:A,B,C,D,E,F,5,4,3,2,1队列是指允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾,允许删除的一端称为队头。在队列这种数据结构中,最先插入的元素将最先能够被删除,反之,最后插入的元素将最后才能被删除。因此,队列又称为"先进先出"或"后进后出”的线性表。.若x和y是两个整型变量,在执行了语句序列x=5;y=6;y+=x-;后,x+y的值为标准答案为:15或15 考生答案为:15本题主要考查了后置减1运算符。后置减1运算符是先使用变量,然后变量再自减。因此语句y+=x--;的功能相当于y=y+x;x=x-l;两条语句,因此执行语句序列x=5;y=6;y+=x一;后x的值为4,y的值为11,故x+y的值为15。.有如下的函数定义:intXfun(intx){inty=x;{intx=10:y+=x;}returnx+y;1通过表达式Xfun(5)调用该函数,则得到的返回值为1.标准答案为:20或20考生答案为:20本题主要考杳了标识符的作用域与可见性。作用域是一个标识符在程序正文中有效的区域。程序运行到某一点,能够引用到的标识符,就是该处可见的标识符,如果在两个或多个具有包含关系的作用域中声明了同名标识符,则外层标识符在内层不可见。函数调用表达式Xfun(5)把实参5传递给函数Xfun的形式参数x,形参x的作用域为整个函数体。Xfun函数体的第一条语句定义变量y并初始化y的值为5,第二个复合语句中的第一条语句定义同名变量x,并初始化x的值为10,在复合语句中外层变量x不可见,因此执行复合语句的第二条语句y+=x;后y的值为15,内层变量x的作用域结束。然后执行语句returnx+y;得到函数的返回值5+15=20。.卜面的函数定义是某函数模板能够生成的函数实例intsquare(intn){returnn*n;}doublesquare(doublen){returnn*n;}由此可知,该函数模板的定义是.标准答案为:template<typenameT>Tsquare(Tn){returnn*n;}或template<classT>Tsquare(Tn){returnn*n;)考生答案为:template<typenameT>Tsquare(Tn){returnn*n;}本题主要考查了函数模板。函数模板是一系列相关函数的模型或样板,这些函数的源代码形式相同,只是所针对的数据类型不同。对于函数模板,数据类型本身成了它的参数,因而是一种参数化类型的函数。声明一个函数模板的格式是:template<模板形参表声明〉函数声明其中的模板形参表声明是由一个或多个模板形参组成(如果是多个,需要用逗号隔开)。每个模板形参具有下面几种形式:typename参数名(2)class参数名(3)类型修饰参数名这里的参数名可以是任意的标识符。在这三种形式中,前两种是等价的:在声明模板参数时,关键字typename与class可以互换。因此该题函数模板定义是template〈typenameT>Tsquare(Tn){returnn*n;}或templateVclassT>Tsquare(Tn){returnn*n;}<,.在执行语句序列inti=0;doi++;while(i*i<10);时,do后面的循环体语句i++被执行的次数为 。标准答案为:4或4或四 考生答案为:4本题主要考查了do-while循环语句。第一次执行循环体后i的值为1,i*i<10成立,继续执行循环体,第二次执行循环体后i的值为2,i*i<10成立,继续执行循环体,第三次执行循环体后i的值为3,i*i<10成立,继续执行循环体,第四次执行循环体后i的值为4,i*i〈10不成立,结束循环。故循环语句被执行次数为4。.假设Xcs是一个类,该类中一个成员函数的原型为"Xcs*abc();”,则在类外定义时对应的函数头为。标准答案为:Xcs*Xcs::abc()考生答案为:Xcs*Xcs::abc()本题主要考杳了成员函数的类外定义。在类外定义成员函数的语法形式为:返I可值类型类名::成员函数名(参数表)(函数体}因此在类Xcs之外定义原型为"Xcs*abc();"的成员函数对应的函数头为Xcs*Xcs::abc()..请将下面的程序补充完整,使得程序输出”飘是张娜的书:ttinclude<iostream>usingnamespacestd;classBook{public:Book(char*str)(strcpy(title,str);}voidPrintlnfoO{cout<<title«endl;}protected:chartitle[50];};classMyBook:pub1icBook{public:MyBook(char*sl,char*s2="张娜”):{strcpy(owner,s2);}virtualvoidPrintlnfoO{cout<〈ti是"<<owner«"的|5"<<endl;}private:charowner[10J;);intmain(){Book*ptr=newMyBook("飘”);ptr->PrintInfo();return0;)标准答案为:virtual与Book(si) 考生答案为:virtual与Book(str)本题主要考查了构造函数、虚函数。在成员函数声明的前面加上virtual修饰,即把该函数声明为虚函数。在派生类中可以重新定义从基类继承下来的虚函数,从而提供该函数的适用于派生类的专门版本。本题在派生类MyBook中重定义了虚函数Printinfo,因此第1个空应填virtual。派生类的构造函数必须要以合适的初值作为参数,隐含调用基类和新增成员对象的构造函数,用以初始化它们各自的数据成员,然后再对新增的其他数据成员进行初始化。派生类构造函数的一般格式如下:〈派生类名)::〈派生类名)《总参数表>):<基类名1>(参数表1),……〈基类名n>(〈参数表n>),〈成员对象名1》(〈参数表n+l>),……,〈成员对象名m>(〈参数表n+m>>(〈派生类构造函数体>}因此第二个空应填Book(si),调用基类的构造函数以初始化其数据成员。.有如下的函数定义:intXfun(int*a,intn){intx=*a;for(int*pa=a+l;pa<a+n:pa++)if(*pa>x)x=*pa;returnx;1若在执行了语句intx[5]={23,46,78,55,16}:后,通过表达式Xfun(x,5)调用该函数,则得到的返回值为.标准答案为:78或78 考生答案为:本题主要考杳了数组、指针和求最大值算法。函数Xfun的功能是求首地址为a的n个数据的最大数,并把所求的最大数作为函数的返回值。函数调用表达式Xfun(x,5)把数组x的首地址传递给函数Xfun的第一个形式参数指针变量a”散5传递给函数Xfun的第二个形式参数n,因此函数调用表达式Xfun(x,5)的返回值是数组x的5个元素的最大数78。.请将卜面的类Date的定义补充完整,使得由语句DateFirstDay;定义的对象FirslDay的值为2010年1月1日。classDate{public:Date():year(y),month(m),day(d){)private:intyear,month,day;〃依次表示年、月、日);标准答案为:inty=2010,intm=l,intd=l 考生答案为:inty,intm,intd本题主要考杳了构造函数。构造函数的作用是在对象被创建时利用特定的值构造对象,将对象初始化为一种特定的状态,无参数的构造函数称为默认形式的构造函数,如果类中定义构造函数,编译系统将不会再为其生成默认构造函数。构造函数在对象被创建的时候由系统自动调用。类Date中定义了一个构造函数,由类Date的构造函数的初始化列表可知构造函数的形参应是三个整型变量y,m和d,编译系统将不会为类Dale建立无参数的默认构造函数。建立类Dale的对象FirstDay时没有给出初始值,若要正确调用有形参的构造函数,使对象FirstDay的值为2010年1月1日,则构造函数应是带默认形参值,且默认形参值为2010、1和1。故该题应填inty=2010,intm=l,intd=lo.在有理数类Rational中重载插入运算符以便按a/q形式输出。请将<〈运算符函数的定义补充完整。classRational(public:Rational(intaa,intqq):a(aa),q(qq){}friendoperator«(ostream&out,Rational&x)(return(out«x.a<<‘/*<<x.q);1private:inta,q;};标准答案为:ostreamfc 考生答案为:ostream&本题主要考杳了插入运算符的重载。插入运算符只能重载为非类成员函数,一般重载为友元函数。声明重载插入运算符为友元函数的函数原型为:friendostreamftoperator«(ostreainft,类名);因此该题应填ostream&。2009年9月考试真题(第30次).下列数据结构中,属于非线性结构的是一。A、循环队列 B、带链队列 C、二叉树D、带链栈.对于循环队列,下列叙述中正确的是 。A、队头指针是固定不变的 B、队头指针一定大于队尾指针C、队头指针一定小于队尾指针 D、队头指针可以大于队尾指针,也可以小于队尾指针.数据库管理系统是.A、操作系统的一部分 B、在操作系统支持下的系统软件C,一种编译系统D、一种操作系统.下列选项中不属于结构化程序设计原则的是.A,可封装B、自顶向下C、模块化D、逐步求精.有三个关系R,S和T如下:A、选择B、投影C、交D、并.在E-R图中,用来表示实体联系的图形是。A、椭圆形B、矩形C、菱形D、三角形.算法的空间复杂度是指.A、算法在执行过程中所需要的计算机存储空间 B、算法所处理的数据量C,算法程序中的语句或指令条数 D、算法在执行过程中所需要的临时工作单元数.软件详细设计产生的图如下:该图是 .A,N-S图B、PAD图 C、程序流程图 D、E-R图.软件设计中划分模块的一个准则是。高内聚高耦合A、低内聚低耦合 B、高内聚低耦合C、低内聚高耦合D高内聚高耦合.下列数据结构中,能够按照"先进后出”原则存取数据的是A、循环队列 B、栈C、队列D、二叉树.有如下程序:#include<iostream>usingnamespacestd;classA{public:A(inti):rl(i){}voidprint(){cout«'E'<<rl«',;}voidprint()const{cout<<*C«rl*rl«,;}private:intrl;);intmainO{Aal(2);constAa2(4);al.print();a2.print();return0;)运行时的输出结果是-。A、运行时出错B、E2-C16-C、C4-C16-D、E2-E4-.有如下类定义:classXX{intxdata;public:XX(intn=0):xdata(n){}};classYY:publicXX(intydata;public:YY(intm=0,intn=0):XX(m),ydata(n){}};YY类的对象包含的数据成员的个数是。A、1B、2C、3D、4.有如F程序段:inti=l;while(l){i++;if(i—10)break;if(i%2==0)cout«)**:)执行这个程序段输出字符*的个数是。A、10B、3C、4D、5.有如下程序:#include<iostream>usingnamespacestd;classCl{public:~C1(){cout«l;});classC2:publicCl{public:"C2(){cout«2;});intmain(){C2cb2;Cl*cbl;return0;)运行时的输出结果是。A、121B、21C、211D、1215.有如下程序:#include<iostream>usingnamespacestd;classToy{public:Toy(char*_n){strcpy(name,_n);count++;}Toy(){count—;}char*GetName(){returnname;}staticintgetCount(){returncount;}private:charname[10];staticintcount;):intToy::count=0;intmainO{Toy11("Snoopy"),t2("Mickey"),t3("Barbie");cout«tl.getCount()«endl;return0;)运行时的输出结果是oA、1B、2C、3D、运行时出错.已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则oA、FA必须定义在FB之前B、FB必须定义在FA之前C、若FA定义在FB之后,则FA的原型必须出现在FB的定义之前D、若FB定义在FA之后,则FB的原型必须H1现在FA的定义之前.在下列枚举符号中,用来表示”相对于当前位置“文件定位方式的是 oA、ios_base::curB、ios_base::begC、ios_base::outD、ios_base::end.将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是一 oA、不合法的运算符 B、一元运算符C、无操作数的运算符 D、二元运算符.有如下程序:#include<iostream>usingnamespacestd;classAA{public:AA(){cout«*T;}};classBB:publicAA{intk;public:BB():k(0){cout<<,2';}BB(intn):k(n){cout<<'3';});intmainO{BBb(4),c;return0;)运行时的输出结果是.OA、1312B、132C、32D、1412.下列关于C++流的描述中,错误的是oA,cout»'A'表达式可输出字符A B、eof()函数可以检测是否到达文件尾C、对■磁盘文件进行流操作时,必须包含头文件fstreamD、以ios_base::out模式打开的文件不存在时,将自动建立一个新文件.下列关于虚基类的描述中,错误的是.A、使用虚基类可以消除由多继承产生的二义性 B、构造派生类对象时,虚基类的构造函数只被调用一次C、声明"classB:virtualpublicA”说明类B为虚基类D、建立派生类对象时,首先调用虚基类的构造函数22.下列关于运算符函数的描述中,错误的是A、运算符函数的名称总是以。perator为前缀 B、运算符函数的参数可以是对象C、运算符函数只能定义为类的成员函数D、在表达式中使用重载的运算符相当于调用运算符重载函数23.有如下程序:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){ints[]=(123,234);cout«right«setfill(,**)«setw(6);for(inti=0;i<2;i++){cout«s[i]«endl;}return0;)运行时的输出结果是.。A、123234***123234***123***234***123234***.有如下模板声明:template<typenameTl,typenameT2>classA;下列声明中,与上述声明不等价的是OA^template<classTl,classT2>classA;B、template<classTl,typenameT2>classA;C、template<typenameTl,classT2>classA;D、template<typenameTl,T2>classA;.已知数组arr的定义如下:intarr[5]={l,2,3,4,5};下列语句中输出结果不是2的是oA、cout«*arr+K<endl; cout«*(arr+1)«endl;C、cout«arr[l]<<endl;D、cout«*arr<<endl;.有如下程序:#include<iostream>usingnamespacestd;classPublication{〃出版物类charname[30];public:Publication(char*name="未知名称"){strcpy(this->name,name);}constchar*getNameOconst{returnname;)virtualconstchar*getType()const{return”未知类型";});classBook:pub1icPublication{〃书类public:Book(char*name):Publication(name){}virtualconstchar*getType()const{return"书";}};voidshowPub1ication(Pub1ication&p){cout«p.getType0<<":"<<p.getName0«endl;)intmain(){Bookbook("精彩人生”);showPublication(book);return0;)运行时的输出结果是.OA、未知类型:未知名称 B、未知类型:精彩人生C、书:未知名称 D,书:精彩人生.下列字符串中可以用作C++标识符的是.A、2009varB、gotoC、test-2009D、123.计算斐波那契数列第n项的函数定义如F:intfib(intn){if(n==0)return1;elseif(n=l)return2;else return fib(n-l)+fib(n-2);)若执行函数调用表达式fib(2),函数fib被调用的次数是^oA、1B、2C、3D、4.下列枚举类型的定义中,包含枚举值3的是0A、enumtest{RED,YELLOW,BLUE,BLACK};B、enumtest{RED,YELL0W=4,BLUE,BLACK);C、enumtest{RED=-1,YELLOW,BLUE,BLACK};D、enumtest{RED,YELLOWS,BLUE,BLACK};.下列关于运算符重载的描述中,错误的是oA、::运算符不能重裁B、类型转换运算只能作为成员函数重载C,将运算符作为非成员函数重载时必须定义为友元 D、重载口运算符应完成"下标访问"操作.有如下程序:#include<iostream>usingnamespacestd;className(charname[20];public:Name(){strcpy(name,;cout«*?';)Name(char*fname){strcpy(name,fname);cout«,?’;});intmain(){Name恒0105[3]={岫1110("张三"),岫眦("李四”)};return0;)运行此程序输出符号?的个数是 。A、0B、1C、2D、3.下列关于模板形参的描述中,错误的是 .A、模板形参表必须在关键字template之后 B、模板形参表必须用括弧()括起来C、可以用class修饰模板形参 D,可以用typename修饰模板形参.有如下类定义:classA{char*a;public:A():a(0){)A(char*aa){〃把aa所指字符串拷贝到a所指向的存储空间strcpy(a,aa);}~A(){delete[]a;});横线处应填写的表达式是oA、newchar[strlen(aa)+l]B、char[strlen(aa)+l] C、char[strlen(aa)] D、newchar[sizeof(aa)-l].有如下两个类定义:classAA{};classBB{AAvl,*v2;BBv3;int*v4;};其中有一个成员变量的定义是错误的,这个变量是。A、vlB、v2C、v3D、v4Sample是一个类,执行下面语句后,调用Sample类的构造函数的次数是^。Samplea[2],*p=newSample;A、0B、1C、2D、3.某二叉树有5个度为2的结点以及3个度为1的结点,则该二叉树中共有个结点。.软件开发过程主要分为需求分析、设计、编码与测试四个阶段,其中阶段产生”软件需求规格说明书”。.程序流程图中的菱形框表示的是 o.人员基本信息一般包括:身份证号,姓名,性别,年龄等。其中可以作为主关键字的是。.在数据库技术中,实体集之间的联系可以是一对一或一对多或多对多的,那么"学生"和"可选课程"的联系为o.卜面是一个递归函数,其功能是使数组中的元素反序排列。请将函数补充完整。voidreverse(int*a,intsize){if(size<2)return;intk=a[0];a[0]=a[size-1];a[size-l]=k;reverse(a+1,);.利用表达式a[i]可以访问int型数组a中卜.标为i的元素。在执行了语句ini*p二a;后,利用指针p也可访问该元素,相应的表达式是O.类Sample的构造函数将形参dala赋值给数据成员data。请将类定义补充完整。classSample{public:Sample(intdata=O);private:intdata;];Sample::Sample(intdata)(.若表达式(x+(y-z)*(m/n))+3中的变量均为double型,则表达式值的类型为o.如下程序定义了"单词"类Word,类中重载了<运算符,用于比较"单词”的大小,返回相应的逻辑值。程序的输出结果为:AfterSorting:HappyWelcome,请将程序补充完整。#include<iostream>#include<string>usingnamespacestd;classWord{public:Word(strings):str(s){}stringgetstrO{returnstr;}const{return(str<w.str);)friendostream&operator<<(ostream&output,constWord&w){output<<w.str;returnoutput;}private:stringstr;);intmain(){Wordwl("Happy"),w2("Welcome");cout«*Aftersorting:if(wl<w2)cout<<wl«**«w2;elsecout«w2<<,'<<wl;return0;)."图形"类Shape中定义了纯虚函数CalAreaO 三角形"类Triangle继承了类Shape,请将Triangle类中的CalArea函数补充完整。classShape{public:virtualintCalArea0=0;};classTriangle:publicShape{public:Triangle(ints,inth):side(s),height(h){}{returnside*height/2;}private:intside;intheight;};.有如下类定义:classSample{public:Sample();〜Sample。;private:staticintdata;};将静态数据成员data初始化为0的语句是o.请将下列模板类Data补充完整。template<typenameT>classData{public:voidput(Tv){val=v;}getO〃返回数据成员val的值,返回类型不加转换{returnval;}private:Tval;);.有如下循环语句:for(inti=50;i>20;i-=2)cout<<i«,,*;运行时循环体的执行次数是次。.有如下程序:#include<iostream>usingnamespacestd;classGrandChiId{public:Grandchild(){strcpy(name,“Unknown");}constchar*getName0const{returnname;}virtualchar*getAddress()const=0;private:charname[20];);classGrandSon:publicGrandChiId{public:GrandSon(char*name){)char*getAddress()const{return"Shanghai”;}};

intmainO{GrandChild*gs=newGrandSon("Feifei");cout«gs->getName()<<"住在"<<gs->getAddress()«endl;deletegs;return0;)运行时的输出结果是O2009年3月考试真题(第29次)i.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 。A、提高耦合性降低内聚性有利于提高模块的独立性B、降低耦合性提高内聚性有利于提高模块的独立性C、耦合性是指一个模块内部各个元素间彼此结合的紧密程度D、内聚性是指模块间互相连接的紧密程度2..数据库应用系统中的核心问题是.A、数据库设计B、数据库系统设计C、数据库维护 D、数据库管理员培训.下列叙述中正确的是.A、栈是"先进先出"的线性表B、队列是"先进后出”的线性表C、循环队列是非线性结构 D、有序线性表既可以采用顺序存储结构,也可以采用链式存储结构.有两个关系R,S如下:R SFT]rnFT]rn□士1□FT]rv]□□a由关系R通过运算得到关系S,则所使用的运算为A、选择B、投影C、插入D、连接TOC\o"1-5"\h\z.将E-R图转换为关系模式时,实体和联系都可以表示为 。A、属性B、键C、关系D、域.支持子程序调用的数据结构是 。A、栈B、树C、队列D、二叉树.下列排序方法中,最坏情况下比较次数最少的是 。A、冒泡排序B、简单选择排序C、直接插入排序D、堆排序.下面叙述中错误的是。A、软件测试的H的是发现错误并改正错误B、对被调试的程序进行"错误定位”是程序调试的必要步骤C、程序调试通常也称为DebugD、软件测试应严格执行测试计划,排除测试的随意性.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是。A、10B,8C、6D、4.件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是.A、编译程序 B、操作系统C、教务管理系统 D、汇编程序.有如卜.类定义和变量定义classA{public:A(){data=O;}~A(){)intGetDataOconst{returndata;}voidSetData(intn){data=n;}private:intdata;};constAa;Ab;卜列函数调用中错误的是OA、a.GetDataO;B、a.SetData(lO);C、b.GetDataO;D、b.SetData(lO);.运算符重我时不需要保持的性质是oA、操作数个数 B、操作数类型C、优先级D、结合性.已知有数组定义chara[3][4];下列表达式中错误的是。A、a[2]=*WIN*B、strcpy(a[2],"WIN")C、a[2][3]=D、a[0][l]=a[0][1].在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是。A、()B、[]C、<>D、{}.要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是。A、ifstreamfin=ifstream.open(*file.dat,z);B、ifstream*fin=newifstreamC^file.dat^);C、ifstreamfin;fin.open(z/file.dal"");D、ifstream*fin=newifstream();fin->open(//file.dat/z);16.有如下类定义和变量定义:classParents{public:intpublicData;private:intprivateData;);classChildA:publicParents{/*类体略*/};classChiIdB:privateParents{/*类体略*/};ChildAa;ChildBb;下列语句中正确的是oA、cout«a.publicData«endl;B、cout«a.privateData<<endl;C、cout<<b.publicData<<endl;D、cout«b.privateData«endl;.有如下类定义:classXX{intxx;public:XX0:xx(0){cout«*A';}XX(intn):xx(n){cout«*B*;}};classYY:publicXX{intyy;public:YY():yy(0){cout<<yy;}YY(intn):XX(n+l),yy(n){

温馨提示

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

评论

0/150

提交评论