1、二级 C+笔试-122 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.在 C+中,cin 是一个( )。(分数:2.00)A.类B.对象C.模板D.函数2.算法的时间复杂度是指( )。(分数:2.00)A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的基本运算次数3.数据库管理系统中负责数据模式定义的语言是( )。(分数:2.00)A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言4.下列代码段声明了 3 个类:class Person;class Student:public
2、Person;class Undergraduate:Student;下列关于这些类之间关系的描述中,错误的是( )。(分数:2.00)A.类 Person 是类 Undergraduate 的基类B.类 Undergraduate 从类 Student 公有继承C.类 Student 是类 Person 的派生类D.类 Undergraduate 是类 Person 的派生类5.数据库设计中,用 E-R 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的( )。(分数:2.00)A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理没计阶段6.打开文件时可单独或组合使用下列文
3、件打开模式:ios_base:aopios_base:binaryios_base:ios_base:out若要以二进制读方式打开一个文件,需使用的文件打开模式为( )。(分数:2.00)A.B.C.D.7.在下列字符中,不允许作为 C+标识符的是( )。(分数:2.00)A.bB.BC._D.28.软件(程序)调试的任务是( )。(分数:2.00)A.诊断和改正程序中的错误B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质9.下列关于类模板的描述中,错误的是( )。(分数:2.00)A.类模板的成员函数都是模板函数B.可以为类模板参数设置默认值C.类模板描述
4、了一组类D.类模板中只允许有一个类型参数10.将运算符“+”重载为非成员函数,下列原型声明中,错误的是( )。(分数:2.00)A.MyClock operator+(MyClock,long);B.MyClock operator+(MyClock,MyClock);C.MyClock operator+(long,long);D.MyClock operator+(long,MyClock);11.在学生管理的关系数据库中,存取一个学生信息的数据单位是( )。(分数:2.00)A.文件B.数据库C.字段D.记录12.若 x 和 y 是程序中的两个整型变量,则下列 if 语句中正确的是( )
5、。(分数:2.00)A.if(x=0)y=1;else y=2;B.if(x=0)then y=1 else y=2C.if(x=0)y=1 else y=2;D.if x=0 y=1 else y=2;13.有如下程序:#includeiostreamusing namespace std;class Bpublic:B(int xx):x(xx)+count;x+=10;virtual void show()constcoutcount_xend1;protected:static mt count;private:int x;class D:public Bpublic:D(int xx
6、,int yy):B(xx),y(yy)+count;y+=100;virtual void show()constcoutcount_yend1;private:int y;int B:count=0;int main()B *ptr=new D(10,20);ptrshow();delete ptr;return 0;运行时的输出结果是( )。(分数:2.00)A.1_120B.2_120C.1_20D.2_2014.下面是类 Shape 的定义:class Shapepublic:virtual void Draw()=0;下列关于 Shape 类的描述中,正确的是( )。(分数:2.0
7、0)A.类 Shape 是虚基类B.类 Shape 是抽象类C.类 Shape 中的 Draw 函数声明有误D.语句“Shape s;”能够建立 Shape 的一个对象 s15.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于( )。(分数:2.00)A.定义阶段B.开发阶段C.维护阶段D.上述 3 个阶段16.有如下两个类定义:class XXprivate:double x1;protected:double x2;public:double x3;clase YY:protected XXprivate:double y1;protected:double y2;public
8、:double y3;在类 YY 中保护成员变量的个数是( )。(分数:2.00)A.1B.2C.3D.417.有如下程序:#includeiostreamUsing namespace std;class Basepublic:Base(int x=0):valB(x)coutvalB;Base()toutvalB;Private:int valB;class Derived:public Basepublic:Derived(int x=0,int y=0):Base(x),valD(y)coutvalD;Derived()coutvalD;private:int valD;int mai
9、n()Derived obj12(2,3);return 0;运行时的输出结果是( )。(分数:2.00)A.2332B.2323C.3232D.322318.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是( )。(分数:2.00)A.编辑软件B.操作系统C.教务管理系统D.浏览器19.下列叙述中,错误的是( )。(分数:2.00)A.false 是一个逻辑型常量B.“b“是一个字符型常量C.365 是一个 int 常量D.3.1415926 是一个 double 常量20.将前缀运算符“-”重载为非成员函数,下列原型中,能正确用于类中说明的是( )。(分数
10、:2.00)A.Decr operator-int;B.Decr operator-(Decr,int);C.friend Decrcperator-(Decr);D.friend Decr operacor-(Deer,int);21.若 MyTemp 是一个具有虚拟类型参数的类模板,且有如下语句序列:MyTempdoublep2;MyTemplongp32;编译系统在处理上面的语句序列时,所生成的模板 MyTemp 的实例的个数是( )。(分数:2.00)A.1B.2C.3D.422.要定义一个引用变量 p,使之引用类 MyClass 的一个对象,正确的定义语句是( )。(分数:2.00)
11、A.MyClass p=MyClass;B.MyClass p=new MyClass;C.MyClass p=new MyClassD.MyClass a,p=a;23.下列叙述中正确的是( )。(分数:2.00)A.对长度为 n 的有序链表进行查找,最坏情况下需要的比较次数为 nB.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(log 2n)D.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog 2n)24.有如下程序:#includeiostreamusing nam
12、espace std;class Apublic:A(int i=0):r1(i)void print()(coutEr1-;void print()constcoutCr1*r1-;void print(int x)coutPr1*r1*r1-;private:int r1;int main()A a1;eonst A a2(4);a1.print(2);a2.print();return 0;运行时的输出结果是( )。(分数:2.00)A.P8-E4B.P8-C16-C.P0-E4-D.P0-C16-25.数据流程图(DFD 图)是( )。(分数:2.00)A.软件概要设计的工具B.软件详
13、细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具26.下列关于运算符重载的描述中,错误的是( )。(分数:2.00)A.可以通过运算符重载在 C+中创建新的运算符B.赋值运算符只能重载为成员函数C.运算符函数重载为类的成员函数时,第一操作参数就是该类对象D.重载类型转换运算符时不需要声明返回类型27.下列控制格式输入输出的操作符中,能够设置浮点数精度的是( )。(分数:2.00)A.setprecisionB.setwC.setfillD.sbowpoint28.下列程序段中包含 4 个函数,其中具有隐含 this 指针的是( )。int fun1();class Tes
14、tpublic:int fun2();friend int fun3();static int fun4();(分数:2.00)A.fun1B.fun2C.fun3D.fun429.下列关于函数的描述中,错误的是( )。(分数:2.00)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板30.下列关于继承方式的描述中,错误的是( )。(分数:2.00)A.如果不显式地指定继承方式,默认的继承方式是私有(private)B.采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C.采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D.采用
15、私有继承方式时,基类中的私有成员在派生类中仍然是私有成员31.若 MyClass 是一个类名,其有如下语句序列:MyClass c1,*c2;MyClass *c3=new MyClass;MyClass c4=c1:上面的语句序列所定义的类对象的个数是( )。(分数:2.00)A.1B.2C.3D.432.要定义整型数组 X,使之包括初值为 0 的 3 个元素,下列语句中错误的是( )。(分数:2.00)A.int x3=0,0,0;B.int x=0;C.static int x3=0;D.int x=0,0,0;33.关于函数中的返回类型,下列表述中错误的是( )。(分数:2.00)A.
16、返回类型中有可能包含关键字 intB.返回类型中有可能包含自定义标识符C.返回类型中有可能包含字符*D.返回类型中可能包含口34.有如下程序:#includeiostreamusing namespace std;class Testpublic:Test()Test(const Testt)(cout1;Test fun(Test u)(Test t=u;return t;int main()Test x,y;x=fun(y);return 0;运行这个程序的输出结果是( )。(分数:2.00)A.无输出B.1C.11D.11135.有两个关系 R 和 T 如下所示:(分数:2.00)A.B
17、.C.D.二、填空题(总题数:14,分数:28.00)36.一个队列的初始状态为空。现将元素 A,B,C,D,E,F,5,4,3,2,1 依次人队,然后再依次退队,则元素退队的顺序为 1。(分数:2.00)填空项 1:_37.设某循环队列的容量为 50,如果头指针 front=45(指向队头元素的前一位置),尾指针 rear=10(指向队尾元素),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_38.设二叉树如右图所示。对该二叉树进行后序遍历的结果为_。(分数:2.00)填空项 1:_39.软件是 1、数据和文档的集合。(分数:2.00)填空项 1:_40.有一个学生选课的关系
18、,其中学生的关系模式为:学生(学号、姓名、班级、年龄),课程的关系模式为课程(课号、课程名、学时),其中两个关系模式的键分别是学号和课号,则关系模式选课可定义为选课(学号、 1、成绩)。(分数:2.00)填空项 1:_41.若 x 和 y 是两个整型变量,在执行了语句序列:x=5;y=6;y+=x-;后,x+y 的值为_。(分数:2.00)填空项 1:_42.在执行语句序列:int i=0;do i+;while(i*i10);时,do 后面的循环体语句 i+被执行的次数为_。(分数:2.00)填空项 1:_43.有如下的函数定义:int Xfun(int *a,int n)int x *a;
19、for(int *pa=a+1;paa+n;pa+)if(*pax)x=*pa;return x;若在执行了语句:int x5=23,46,78,55,16;后,通过表达式 Xfun(x,5)调用该函数,则得到的返回值为_。(分数:2.00)填空项 1:_44.有如下的函数定义:int Xfun(int x)int y=x;int x=10;y+=x;return x+y;通过表达式 Xfun(5)调用该函数,则得到的返回值为_。(分数:2.00)填空项 1:_45.假定 Xcs 是一个类,该类中一个成员函数的原型为“Xcs* abc;”,则在类外定义时对应的函数头为 1。(分数:2.00)填
20、空项 1:_46.请将下面的类 Date 的定义补充完整,使得由语句:Date FirstDay;定义的对象 FirstDay 的值为 2010 年 1 月 1 日。class Datepublic:Date(_):year(y),month(n),day(d)private:int year,month,day;/依次表示年、月、日;(分数:2.00)填空项 1:_47.请将下面的程序补充完整,使得程序输出“飘是张娜的书”。#includeiostreamusing namespace stdclaSS Bookpublic:Book(char*str)| strcpy(title,str)
21、;void Printlnfo()couttitleend1;protected:char title50;class MyBook:public Bookpublic:MyBook(char*s1,char*s2=“张娜“);_(strcpy(owner,s2);virtual void Printlnfo()couttitle“是“owner“的书“end1;private:char owner10;int main()Book *ptr=new MyBook(“飘“);ptrPrintInfo();return 0;(分数:2.00)填空项 1:_48.在有理数类 Rational 中重
22、载插入运算符,以便按 a/q 形式输出。请将运算符函数的定义补充完整。class Rationalpublic:Rational(int aa,int qq):a(aa),q(qq)friend_operator(ostreamout,Rationalx)return(outx.a/x.q);private:int a,q;(分数:2.00)填空项 1:_49.下面的函数定义是某函数模板能够生成的函数实例int square(int n)return n*n;double square(double n)return n*n;由此可知,该函数模板的定义是_。(分数:2.00)_二级 C+笔试-
23、122 答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.在 C+中,cin 是一个( )。(分数:2.00)A.类B.对象 C.模板D.函数解析:解析 C+提供了一套输入输出流类的对象,它们是 cin、cout 和 cerr,对应 C 语言中的 3 个文件指针 stdin、stdout、stderr,分别指向终端输入、终端输出和标准出错输出(也从终端输出)。cin 与一起完成输入操作,eout、cerr 与一起完成输出与标准错误输出。2.算法的时间复杂度是指( )。(分数:2.00)A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或
24、指令条数D.算法在执行过程中所需要的基本运算次数 解析:解析 算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模 n 的函数 f(n),算法的时间复杂度也因此记做 T(n)=O(f(n),因此,问题的规模 n 越大,算法执行的时间增长率与 f(n)的增长率正相关,称做渐进时间复杂度(Asymptotic Time Complexity)。简单来说就是算法在执行过程中所需要的基本运算次数。3.数据库管理系统中负责数据模式定义的语言是( )。(分数:2.00)A.数据定义语言 B.数据管理语言C.数据操纵语言D.数据控制语言解析:解析 数据模式是由数据定义语言(Data D
25、efinition Language,DDL)来描述、定义的,体现、反映了数据库系统的整体观。4.下列代码段声明了 3 个类:class Person;class Student:public Person;class Undergraduate:Student;下列关于这些类之间关系的描述中,错误的是( )。(分数:2.00)A.类 Person 是类 Undergraduate 的基类B.类 Undergraduate 从类 Student 公有继承 C.类 Student 是类 Person 的派生类D.类 Undergraduate 是类 Person 的派生类解析:解析 类 Unde
26、rgraduate 从类 Student 私有继承,继承方式缺省则默认是 private。5.数据库设计中,用 E-R 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的( )。(分数:2.00)A.需求分析阶段B.逻辑设计阶段C.概念设计阶段 D.物理没计阶段解析:解析 E-R 图为实体一联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。6.打开文件时可单独或组合使用下列文件打开模式:ios_base:aopios_base:binaryios_base:ios_base:out若要以二进制读方式打开一个文件,需使用的文件打开模式为( )。(分数:2.00
27、)A.B.C.D. 解析:解析 ios_base:binary 是作为二进制文件打开,ios_base:out 是为输出而打开;故因选D。7.在下列字符中,不允许作为 C+标识符的是( )。(分数:2.00)A.bB.BC._D.2 解析:解析 在 C+中,标识符只能以字母、数字和下画线组成,并且首字母不能为数字。所以 D 选项错误。8.软件(程序)调试的任务是( )。(分数:2.00)A.诊断和改正程序中的错误 B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质解析:解析 调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。调试是测试之后的活
28、动。9.下列关于类模板的描述中,错误的是( )。(分数:2.00)A.类模板的成员函数都是模板函数B.可以为类模板参数设置默认值C.类模板描述了一组类D.类模板中只允许有一个类型参数 解析:解析 类模板是一系列相关类的模板,类成员组成相同,成员函数的源代码形式相同,所不同的是所针对的类型。类模板的成员函数都是模板函数,在用类模板定义对象时,由于没有像函数实参表这样的额外信息渠道,因此无法按函数模板的方式省略模板实参。但可以为类模板的参数设置默认值。由此可知应选 D。10.将运算符“+”重载为非成员函数,下列原型声明中,错误的是( )。(分数:2.00)A.MyClock operator+(M
29、yClock,long);B.MyClock operator+(MyClock,MyClock);C.MyClock operator+(long,long); D.MyClock operator+(long,MyClock);解析:解析 非成员函数一般都是友元函数,相比成员函数第一个操作数是对象本身以 this 指针的形式隐含在参数列表中,非成员函数调用必须显式的列出参数;选项 C 中没有 MyClock 类型,故选 C。11.在学生管理的关系数据库中,存取一个学生信息的数据单位是( )。(分数:2.00)A.文件B.数据库C.字段D.记录 解析:解析 一个数据库由一个文件或文件集合组成
30、。这些文件中的信息可分解成一个个记录。12.若 x 和 y 是程序中的两个整型变量,则下列 if 语句中正确的是( )。(分数:2.00)A.if(x=0)y=1;else y=2; B.if(x=0)then y=1 else y=2C.if(x=0)y=1 else y=2;D.if x=0 y=1 else y=2;解析:解析 ifelse 语句的格式“if(条件)语句 1else语句 2”注意语句结束要以分号结尾,对照题中选项可知 A 正确。13.有如下程序:#includeiostreamusing namespace std;class Bpublic:B(int xx):x(xx
31、)+count;x+=10;virtual void show()constcoutcount_xend1;protected:static mt count;private:int x;class D:public Bpublic:D(int xx,int yy):B(xx),y(yy)+count;y+=100;virtual void show()constcoutcount_yend1;private:int y;int B:count=0;int main()B *ptr=new D(10,20);ptrshow();delete ptr;return 0;运行时的输出结果是( )。
32、(分数:2.00)A.1_120B.2_120 C.1_20D.2_20解析:解析 本题考查了类的继承。继承有 3 种方式,public 公有、private 私有和 protected 保护,本题都涉及到了。本题中类 D 公有继承类 B。在类 B 中又定义了虚函数,并且有保护类静态类型 count 及私有变量 x。主函数中调用类 D,类 D 又继承了类 B,经过系统及调用,本题最终结果为 2_120。14.下面是类 Shape 的定义:class Shapepublic:virtual void Draw()=0;下列关于 Shape 类的描述中,正确的是( )。(分数:2.00)A.类 S
33、hape 是虚基类B.类 Shape 是抽象类 C.类 Shape 中的 Draw 函数声明有误D.语句“Shape s;”能够建立 Shape 的一个对象 s解析:解析 抽象类是类中至少有一个纯虚函数,抽象类是用来被继承的,即是用来生成派生类,它本身不能生成实例。15.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于( )。(分数:2.00)A.定义阶段B.开发阶段 C.维护阶段D.上述 3 个阶段解析:解析 开发阶段在开发初期分为需求分析、总体设计、详细设计 3 个阶段,在开发后期分为编码、测试两个子阶段。16.有如下两个类定义:class XXprivate:double x
34、1;protected:double x2;public:double x3;clase YY:protected XXprivate:double y1;protected:double y2;public:double y3;在类 YY 中保护成员变量的个数是( )。(分数:2.00)A.1B.2C.3 D.4解析:解析 派生类从基类保护继承 class YY:protected XX 时,基类的公有成员在派生类中变为保护成员,基类的保护成员在派生类中仍然是保护成员;本题中 YY 本身有一个保护成员 y2,再加上基类 Xx的 x2 和 x3,故选 C。17.有如下程序:#includeio
35、streamUsing namespace std;class Basepublic:Base(int x=0):valB(x)coutvalB;Base()toutvalB;Private:int valB;class Derived:public Basepublic:Derived(int x=0,int y=0):Base(x),valD(y)coutvalD;Derived()coutvalD;private:int valD;int main()Derived obj12(2,3);return 0;运行时的输出结果是( )。(分数:2.00)A.2332 B.2323C.3232
36、D.3223解析:解析 本题使用析构函数。18.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是( )。(分数:2.00)A.编辑软件B.操作系统 C.教务管理系统D.浏览器解析:解析 编辑软件和浏览器属于工具软件,教务系统是应用软件。19.下列叙述中,错误的是( )。(分数:2.00)A.false 是一个逻辑型常量B.“b“是一个字符型常量C.365 是一个 int 常量D.3.1415926 是一个 double 常量 解析:解析 double 型数据一般占 8 个字节,D 选项超出了范围。20.将前缀运算符“-”重载为非成员函数,下列原型中,能正确用于
37、类中说明的是( )。(分数:2.00)A.Decr operator-int;B.Decr operator-(Decr,int);C.friend Decrcperator-(Decr); D.friend Decr operacor-(Deer,int);解析:解析 把“-”运算符重载为非成员(友元)函数格式:“friend返回类型operator-()”是前缀的格式;friend返回类型operator-(int)是后缀的格式。当然也可以有参数如题中 C 选项所示。21.若 MyTemp 是一个具有虚拟类型参数的类模板,且有如下语句序列:MyTempdoublep2;MyTemplong
38、p32;编译系统在处理上面的语句序列时,所生成的模板 MyTemp 的实例的个数是( )。(分数:2.00)A.1B.2 C.3D.4解析:解析 类模板是一系列相关类的模板或样板,成员函数的源代码形式相同,不同的是所针对的类型不一样,如题中的一个 double 类型,一个 long 类型;类模板中数据类型本身是它的参数,它是类的生成器。22.要定义一个引用变量 p,使之引用类 MyClass 的一个对象,正确的定义语句是( )。(分数:2.00)A.MyClass p=MyClass;B.MyClass p=new MyClass;C.MyClass p=new MyClassD.MyClas
39、s a,p=a; 解析:解析 选项 A 错误不存在这样的定义方式;选项 B 定义了一个 MyClass 类的对象 p;选项 C 是Java 里的定义方式。23.下列叙述中正确的是( )。(分数:2.00)A.对长度为 n 的有序链表进行查找,最坏情况下需要的比较次数为 nB.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(log 2n) D.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog 2n)解析:解析 二分法查找只适用于顺序存储的有序表,对于长度为 n 的有序线性表,
40、最坏情况只需比较log2n 次。24.有如下程序:#includeiostreamusing namespace std;class Apublic:A(int i=0):r1(i)void print()(coutEr1-;void print()constcoutCr1*r1-;void print(int x)coutPr1*r1*r1-;private:int r1;int main()A a1;eonst A a2(4);a1.print(2);a2.print();return 0;运行时的输出结果是( )。(分数:2.00)A.P8-E4B.P8-C16-C.P0-E4-D.P0
41、-C16- 解析:25.数据流程图(DFD 图)是( )。(分数:2.00)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具 D.面向对象方法的需求分析工具解析:解析 数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。26.下列关于运算符重载的描述中,错误的是( )。(分数:2.00)A.可以通过运算符重载在 C+中创建新的运算符 B.赋值运算符只能重载为成员函数C.运算符函数重载为类的成员函数时,第一操作参数就是该类对象D.重载类型转换运算符时不需要声明返回类型解析:解析 运算符的重载是针对 C+中原有运算符进行的,不能通过重载创造新的运算符。27.下
42、列控制格式输入输出的操作符中,能够设置浮点数精度的是( )。(分数:2.00)A.setprecision B.setwC.setfillD.sbowpoint解析:解析 setprecision(int)是设置浮点数的精度,setw(int n)是设置输入输出宽度,setfill(char c)设置填充字符,showpoint 即使小数部分为 0,也输出以及其后的无效数据 0。28.下列程序段中包含 4 个函数,其中具有隐含 this 指针的是( )。int fun1();class Testpublic:int fun2();friend int fun3();static int fun
43、4();(分数:2.00)A.fun1B.fun2 C.fun3D.fun4解析:解析 this 指针是成员函数所属对象的指针,是指向类对象的地址,是一个隐含的指针,隐含于每个类的非静态成员函数中。fun1 是外部函数,fun3 是友元函数,fun4 是静态成员函数,故选 B。29.下列关于函数的描述中,错误的是( )。(分数:2.00)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板 解析:解析 函数可以被定义为模板:“template模板形参表返回值类型函数名模板函数形参表/函数定义体,”其中模板形参表是由一个或多个模板形参组成,每个模板形参可以
44、有这几种形式:typename参数名,class参数名,类型修饰参数名;前两种是等价的 typename 和 class 可以互换,它们的参数为虚拟类型参数;最后一种的参数是常规参数。30.下列关于继承方式的描述中,错误的是( )。(分数:2.00)A.如果不显式地指定继承方式,默认的继承方式是私有(private)B.采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C.采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D.采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员 解析:解析 采用私有继承方式时,基类中私有成员在派生类中是不可访问的成员。31.若 My
45、Class 是一个类名,其有如下语句序列:MyClass c1,*c2;MyClass *c3=new MyClass;MyClass c4=c1:上面的语句序列所定义的类对象的个数是( )。(分数:2.00)A.1B.2 C.3D.4解析:解析 首先定义对象的格式:(存储类型)类名对象名 1(对象名 2,对象名n);第一句定义了对象 c1 和指针对象 c2,而 MyC1ass *c3=new MyClass 是 Java 里的定义方式,MyClassc4=c1 这种定义方式也是不对的。32.要定义整型数组 X,使之包括初值为 0 的 3 个元素,下列语句中错误的是( )。(分数:2.00)A
46、.int x3=0,0,0;B.int x=0;C.static int x3=0;D.int x=0,0,0; 解析:解析 选项 D 中整型数组 x 的第一个元素是 NULL 不是 0,故选 D。33.关于函数中的返回类型,下列表述中错误的是( )。(分数:2.00)A.返回类型中有可能包含关键字 intB.返回类型中有可能包含自定义标识符 C.返回类型中有可能包含字符*D.返回类型中可能包含口解析:解析 返回类型又称函数类型,表示一个函数所计算(或运行)的结果值类型,这里的类型可以是预定义类型(如 int)、复合类型(如 double*)、用户定义类型(如枚举类),若返回值只做更新(或设置
47、)等操作,则该函数返回类型为 void 类型,函数类型和内置数组不能作为返回类型,但类类型和容器类型可以被直接返回。34.有如下程序:#includeiostreamusing namespace std;class Testpublic:Test()Test(const Testt)(cout1;Test fun(Test u)(Test t=u;return t;int main()Test x,y;x=fun(y);return 0;运行这个程序的输出结果是( )。(分数:2.00)A.无输出B.1C.11 D.111解析:解析 本题调用了 fun 函数。35.有两个关系 R 和 T 如下所示:(分数:2.00)A. B.C.D.解析:解析 选择是建立一个