1、二级 C+-213 及答案解析(总分:75.50,做题时间:90 分钟)一、选择题(总题数:40,分数:75.50)1.关于静态数据成员的描述中正确的是(分数:2.00)A.类的静态数据成员不是类的所有对象共享的数据B.类的静态数据成员不能被类的成员函数调用C.类的静态数据成员不能被类的构造函数调用D.类的静态数据成员必须进行初始化2.使用 ifstream 流类定义流对象并打开磁盘文件时,文件的隐含打开方式为_。(分数:1.00)A.ios:inB.ios:outC.ios:inlios:outD.没有默认3.C+语言中,表示一条语句结束的标号是_。(分数:2.50)A.#B.;C./D.4
2、.以下非法的赋值表达式是(分数:2.00)A.n(i2,+i);B.j+;C.+(i+1);D.xj0;5.数据库设计中,用 E-R 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的 _ 。(分数:2.00)A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段6.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是(分数:2.00)A.友元函数B.虚函数C.构造函数D.析构函数7.有函数模板声明和一些变量定义如下: templateclass T1,class T2,class T3T1 sum(T2,T3); double
3、d1,d2; 则下列调用中,错误的是_。(分数:3.00)A.sumdouble,double,double(d1,d2);B.sumdouble,double(d1,d2);C.sumdouble(d1,d2);D.sum(d1,d2);8.有如下定义: int a51,3,5,7,9, * p=a; 下列表达式中不能得到数值 5 的是(分数:2.00)A.a2B.a3C.*(p+2)D.*p+49.有类定义如下: class Type public: Type(int i=0); Type operator-(int); friend Type operator+(Type,Type);
4、private: int val: 若有对象定义“Type c1;”,则下列语句序列中,错误的是_。(分数:2.00)A.Type(3)+c1;B.c1+Type(3);C.3-c1;D.c1-3;10.有如下类声明: class XA int x; public: XA(int n)x=n; ; class XB:public XA int y; public: XB(int a,int b); ; 在构造函数 XB 的下列定义中,正确的是_。(分数:1.00)A.XB:XB(int a,int b):x(a),y(b)B.XB:XB(int a,int b):XA(a),y(b)C.XB:
5、XB(int a,int b):x(a),XB(b)D.XB:XB(int a,int b):XA(a),XB(b)11.有如下程序段: int i=2; do i*=i; cout“#“; if(i1000)break; while(1); 运行时,输出字符“#“个数是_。(分数:2.00)A.3B.4C.5D.612.下列函数原型声明中,错误的是_。(分数:2.00)A.int function(int m,int n);B.int function(int,int);C.int function(int m=3,int n);D.int function(int13.有如下函数模板定义:
6、 templatetypename T1,typename T2 T1 FUN(T2 n)return n*5,0; 若要求以 int 型数据 9 作为函数实参调用该模板,并返回一个 double 型数据,则该调用应表示为_。(分数:2.50)A.FUN(9)B.FUN9C.FUNdouble(9)D.FUN9(double)14.当使用 ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:1.00)A.ios_base:inB.ios_base:in | ios_base:outC.ios_base:outD.ios_base:in TestClass
7、() m+; TestClass (int n) m=n; static void test() m+; ; int TestClass:m=0; void main() TestClass A; TestClass B(3); A.test(); TestClass:test(); cout“m=“B.mendl; (分数:2.50)A.m=3B.m=4C.m=5D.m=616.下列关于二叉树的叙述中,正确的是_。(分数:1.00)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数
8、的两倍17.己知类 X 是类 Y 的友元,类 Y 是类 Z 的友元,则 _。(分数:2.00)A.类 X 一定是类 Z 的友元B.类 Z 一定是类 X 的友元C.类 Z 的成员函数可以访问类 Y 的对象的任何成员D.类 K 的成员函数可以访问类 Y 的对象的任何成员18.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下列属于应用软件的是_。(分数:2.50)A.编译程序B.操作系统C.教务管理系统D.汇编程序19.算法指的是 _。(分数:2.00)A.计算机程序B.解决问题的计算方法C.解决问题的有限运算序列D.排序算法20.对于语句 const int x=10;的描述正确的
9、是 _ 。(分数:1.00)A.该语句不允许定义为 int const x=10;B.在程序中可以重新对 X 赋值C.变量 X 不能使用+ +运算符D.const 关键字只能用来修饰常量21.有如下程序: #includeiostream #includecmath using std:cout; class Point public: friend double distance(const Point /p 距原点的距离 Point(int xx=0,int yy=0):x(xx),y(yy) / private: int x,y; ; double distance(const Poin
10、t int main() Point p1(3,4); coutdistance(p1); / return 0; 下列叙述中正确的是_。(分数:2.00)A.程序编译正确B.程序编译时语句出错C.程序编译时语句出错D.程序编译时语句出错22.下列关于析构函数的描述中,错误的是_。(分数:2.00)A.析构函数可以重载B.析构函数由系统自动调用C.每个对象的析构函数只被调用一次D.每个类都有析构函数23.下列程序的运行结果为_。 #includeiostream.h templateclass TT class FF TT a1,a2,a3; public: FF(TT b1,TT b2,TT
11、 b3)a1=b1;a2=b2;a3=b3; TT Sum()return a1+a2+a3; void main() FFintx(int(1.1),2,3),y(int(4.2),5,6);coutx.Sum()“y.Sum()endl;)(分数:1.00)A.6.1 15.2B.6 15C.6 15.2D.6.1 1524.有如下程序: #includeiostream using namespace std; void f1(int void f2(int x)+x; int main() int x=10,y=12; f1(x); f2(y); coutx+yendl; return
12、 0; 运行这个程序的输出结果是_。(分数:2.00)A.22B.23C.24D.2525.假定 MyClass 为一个类,那么下列的函数说明中, _ 为该类的析构函数。(分数:2.50)A.voidMyClass();B.MyClass(int n);C.MyClass();D.MyClass();26.下列情况中,不会调用拷贝构造函数的是_。(分数:2.50)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋值给该类的另一个对象时C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时27.Sample 是一个类,执行下面语句后,调
13、用 Sample 类的构造函数的次数是_。 Sample a2.*p=new Sample;(分数:2.50)A.0B.1C.2D.328.有如下头文件: int f1(); static int f2(); class MA public: int f3(); static int f4(); ; 在所描述的函数中,具有隐含的 this 指针的是_。(分数:1.00)Af1Bf2Cf3Df429.通常的拷贝初始化构造函数的参数是 _ 。(分数:1.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名30.有如下函数模板声明: templatetypename,T
14、T Max(T a,T b)return(ab)?a:b; 下列对函数模板 Max()的调用中错误的是_。(分数:1.00)A.Max(3.5,4.5)B.Max(3.5,4)C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)31.从工程管理角度,软件设计一般分为两步完成,它们是_。(分数:2.50)A.概要设计与详纲设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计32.关于类模板,下列表述中不正确的是_。(分数:3.00)A.类模板中声明的类称为模板类B.类模板只能有虚拟类型参数C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是
15、模板函数33.将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是 _ 。(分数:2.00)A.不合法的运算符B.一元运算符C.无操作数的运算符D.二元运算符34.有下列二叉树,对此二叉树前序遍历的结果为 _ 。 (分数:2.00)A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI35.下列数据结构中,能用二分法进行查找的是_。(分数:2.50)A.无序线性表B.线性链表C.二叉链表D.顺序存储的有序表36.对关系 S 和 R 进行集合运算,产生的元组属于 S 中的元组,但不属于 R 中的元组,这种集合运算称为 _ 。(分数:2.00)A.并运算
16、B.交运算C.差运算D.积运算37.有如下说明: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是_。(分数:1.00)A.*p+9B.*(p+8)C.*p+=9D.p+838.有如下程序: #includeiostream using namespace std; class Base public: Base(int x=0)coutx; ; class Derived:public Base public: Derived(int x=0)coutx; private: Base val; ; int main() Derived d(1);
17、 return 0; 程序执行后的输出结果是 _ 。(分数:2.00)A.100B.000C.010D.00139.一个函数带有参数说明时,则参数的默认值应该在 _ 中给出。(分数:2.00)A.函数定义B.函数声明C.函数定义或声明D.函数调用40.单个用户使用的数据视图的描述称为(分数:1.00)A.外模式B.概念模式C.内模式D.存储模式二级 C+-213 答案解析(总分:75.50,做题时间:90 分钟)一、选择题(总题数:40,分数:75.50)1.关于静态数据成员的描述中正确的是(分数:2.00)A.类的静态数据成员不是类的所有对象共享的数据B.类的静态数据成员不能被类的成员函数调
18、用C.类的静态数据成员不能被类的构造函数调用D.类的静态数据成员必须进行初始化 解析:解析 C类中的静态成员变量是该类中所有对象所共有的,它能够被类中的任何函数调用,所以选项 A) 、选项 B) 、选项 C) 是错误的。而类的静态数据成员是必须要进行初始化才能使用的。2.使用 ifstream 流类定义流对象并打开磁盘文件时,文件的隐含打开方式为_。(分数:1.00)A.ios:inB.ios:outC.ios:inlios:outD.没有默认 解析:解析 使用 ifstream 流类定义流对象并打开磁盘文件时,文件没有默认的打开方式。其中ios:in 是为输入而打开;iso:out 是为输出
19、而打开。3.C+语言中,表示一条语句结束的标号是_。(分数:2.50)A.#B.; C./D.解析:解析 C+语言中语句的结束符是分号。4.以下非法的赋值表达式是(分数:2.00)A.n(i2,+i);B.j+;C.+(i+1); D.xj0;解析:解析 对于任何一种赋值运算,其赋值号或复合赋值号左边必须是一个左值。左值是指具有对应的可由用户访问的存储单元,并且能够由用户改变其值的量。而在 C 选项中赋值号对应的是表达式“i+1”,不是一个左值,因此是非法的赋值表达式。5.数据库设计中,用 E-R 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的 _ 。(分数:2.00)A.需
20、求分析阶段B.逻辑设计阶段C.概念设计阶段 D.物理设计阶段解析:解析 实体联系图 Entity-Relationsh 中 E-R 图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。6.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是(分数:2.00)A.友元函数B.虚函数C.构造函数 D.析构函数解析:解析 构造函数在创建对象时系统自动调用,其功能是使用给定的值将对象初始化。7.有函数模板声明和一些变量定义如下: templateclass T1,class T2,class T3T1 sum(T2,T3); dou
21、ble d1,d2; 则下列调用中,错误的是_。(分数:3.00)A.sumdouble,double,double(d1,d2);B.sumdouble,double(d1,d2);C.sumdouble(d1,d2);D.sum(d1,d2); 解析:解析 虚拟类型参数 T1 没有出现在模板函数的形参表中,因此在调用时不可能从模板函数的实参表中获得相应的信息,因此 T1 无法省略。而在选项 D 中省略了。8.有如下定义: int a51,3,5,7,9, * p=a; 下列表达式中不能得到数值 5 的是(分数:2.00)A.a2B.a3 C.*(p+2)D.*p+4解析:9.有类定义如下:
22、 class Type public: Type(int i=0); Type operator-(int); friend Type operator+(Type,Type); private: int val: 若有对象定义“Type c1;”,则下列语句序列中,错误的是_。(分数:2.00)A.Type(3)+c1;B.c1+Type(3);C.3-c1; D.c1-3;解析:10.有如下类声明: class XA int x; public: XA(int n)x=n; ; class XB:public XA int y; public: XB(int a,int b); ; 在构造
23、函数 XB 的下列定义中,正确的是_。(分数:1.00)A.XB:XB(int a,int b):x(a),y(b)B.XB:XB(int a,int b):XA(a),y(b) C.XB:XB(int a,int b):x(a),XB(b)D.XB:XB(int a,int b):XA(a),XB(b)解析:解析 本题考查派生类中构造函数的定义。派生类的构造首先要调用基类的构造函数,对基类成员初始化,然后对派生类中的新增成员初始化。格式为:派生类名(构造函数形参表)基类构造函数(形参表)。11.有如下程序段: int i=2; do i*=i; cout“#“; if(i1000)break
24、; while(1); 运行时,输出字符“#“个数是_。(分数:2.00)A.3B.4 C.5D.6解析:12.下列函数原型声明中,错误的是_。(分数:2.00)A.int function(int m,int n);B.int function(int,int);C.int function(int m=3,int n); D.int function(int解析:解析 在 C+中,函数在使用之前要预先声明。这种声明在标准 C+中称为函数原型,函数原型给出了函数名、返回类型以及在调用函数时必须提供的参数个数和类型。其语法为:返回类型函数名(形参列表);使用函数原型说明有两种形式:直接使用函数
25、定义的头部,并在后面加上一个分号;在函数原型说明中省略参数列表中的形参变量名,仅给出函数名、函数类型、参数个数及次序。在选项C 中,给出了形参变量 m 的初值。13.有如下函数模板定义: templatetypename T1,typename T2 T1 FUN(T2 n)return n*5,0; 若要求以 int 型数据 9 作为函数实参调用该模板,并返回一个 double 型数据,则该调用应表示为_。(分数:2.50)A.FUN(9)B.FUN9C.FUNdouble(9) D.FUN9(double)解析:解析 函数返回类型是 double 型,则 T1 为 double 型,T2
26、为 int 型才符合函数模板的定义。14.当使用 ifstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:1.00)A.ios_base:in B.ios_base:in | ios_base:outC.ios_base:outD.ios_base:in TestClass () m+; TestClass (int n) m=n; static void test() m+; ; int TestClass:m=0; void main() TestClass A; TestClass B(3); A.test(); TestClass:test(); co
27、ut“m=“B.mendl; (分数:2.50)A.m=3B.m=4C.m=5 D.m=6解析:解析 由主函数 main 入手,首先定义 TestClass 对象 A,B;对象 B 构造函数值为 3,构造函数中m+,所以这时 m=4。主函数中调用 A.test(),因为“static int m;”,m 被定义为类 TestClass 静态成员变量,当它的值改变后,则在各对象中这个数据成员的值都同时改变了。所以这里执行“A.test();”中的 m 为前面进行加 1 操作后的 4,即 m 现在的值为 5。16.下列关于二叉树的叙述中,正确的是_。(分数:1.00)A.叶子结点总是比度为 2 的
28、结点少一个B.叶子结点总是比度为 2 的结点多一个 C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍解析:解析 根据二叉树的基本性质 3:在任意一棵二叉树中,度为 0 的叶子结点总是比度为 2 的结点多一个。所以选择 B。17.己知类 X 是类 Y 的友元,类 Y 是类 Z 的友元,则 _。(分数:2.00)A.类 X 一定是类 Z 的友元B.类 Z 一定是类 X 的友元C.类 Z 的成员函数可以访问类 Y 的对象的任何成员D.类 K 的成员函数可以访问类 Y 的对象的任何成员 解析:18.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下
29、列属于应用软件的是_。(分数:2.50)A.编译程序B.操作系统C.教务管理系统 D.汇编程序解析:解析 编译程序和汇编程序属于开发工具;操作系统属于系统软件;教务管理系统属于应用软件。19.算法指的是 _。(分数:2.00)A.计算机程序B.解决问题的计算方法C.解决问题的有限运算序列 D.排序算法解析:20.对于语句 const int x=10;的描述正确的是 _ 。(分数:1.00)A.该语句不允许定义为 int const x=10;B.在程序中可以重新对 X 赋值C.变量 X 不能使用+ +运算符 D.const 关键字只能用来修饰常量解析:21.有如下程序: #includeio
30、stream #includecmath using std:cout; class Point public: friend double distance(const Point /p 距原点的距离 Point(int xx=0,int yy=0):x(xx),y(yy) / private: int x,y; ; double distance(const Point int main() Point p1(3,4); coutdistance(p1); / return 0; 下列叙述中正确的是_。(分数:2.00)A.程序编译正确 B.程序编译时语句出错C.程序编译时语句出错D.程序
31、编译时语句出错解析:解析 这段程序是正确的,计算 p 距离原点的距离。语句是类 Point 的构造函数,在构造函数中给变量 xx 和 yy 赋初值 0。语句是计算点 p 距原点的距离的函数 digtance。语句是计算点 p1 距离原点的距离并输出。22.下列关于析构函数的描述中,错误的是_。(分数:2.00)A.析构函数可以重载 B.析构函数由系统自动调用C.每个对象的析构函数只被调用一次D.每个类都有析构函数解析:解析 一般情况下,析构函数在对象的生存周期即将结束的时候由系统自动调用。在调用完成之后,对象也就消失了,相应的内存空间也被释放。析构函数没有参数,因此析构函数不能重载,一个类中只
32、能定义一个析构函数。23.下列程序的运行结果为_。 #includeiostream.h templateclass TT class FF TT a1,a2,a3; public: FF(TT b1,TT b2,TT b3)a1=b1;a2=b2;a3=b3; TT Sum()return a1+a2+a3; void main() FFintx(int(1.1),2,3),y(int(4.2),5,6);coutx.Sum()“y.Sum()endl;)(分数:1.00)A.6.1 15.2B.6 15 C.6 15.2D.6.1 15解析:解析 本题考查模板函数的应用,表达式 int(1
33、.1)和 int(4.2)用于将 1.1 和 4.2 强制转换为整型。24.有如下程序: #includeiostream using namespace std; void f1(int void f2(int x)+x; int main() int x=10,y=12; f1(x); f2(y); coutx+yendl; return 0; 运行这个程序的输出结果是_。(分数:2.00)A.22B.23 C.24D.25解析:25.假定 MyClass 为一个类,那么下列的函数说明中, _ 为该类的析构函数。(分数:2.50)A.voidMyClass();B.MyClass(int
34、n);C.MyClass();D.MyClass(); 解析:解析 C+语言中析构函数为符号”加类名,且析构函数没有返回值和参数,故前不加 void关键字。所以正确的形式应该是MyClass()。26.下列情况中,不会调用拷贝构造函数的是_。(分数:2.50)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋值给该类的另一个对象时 C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时解析:解析 此题考查的是复制构造函数的概念。用一个已知的对象初始化一个正在创建的同类对象时,就会发生复制构造函数。因此,选项 A、C、D 均会调用复制构
35、造函数,而只有选项 B 没有创建的动作,不调用复制构造函数。27.Sample 是一个类,执行下面语句后,调用 Sample 类的构造函数的次数是_。 Sample a2.*p=new Sample;(分数:2.50)A.0B.1C.2D.3 解析:28.有如下头文件: int f1(); static int f2(); class MA public: int f3(); static int f4(); ; 在所描述的函数中,具有隐含的 this 指针的是_。(分数:1.00)Af1Bf2Cf3 Df4解析:解析 只有类的非静态成员函数才隐含 this 指针,其作用域是类内部,当类的非静
36、态成员函数中访问类的非静态成员时,编译器会自动将对象本身的地址作为一个隐含参数传递给函数,而不必一定写上this。所以本题答案为 C。29.通常的拷贝初始化构造函数的参数是 _ 。(分数:1.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名 D.某个对象的指针名解析:30.有如下函数模板声明: templatetypename,T T Max(T a,T b)return(ab)?a:b; 下列对函数模板 Max()的调用中错误的是_。(分数:1.00)A.Max(3.5,4.5)B.Max(3.5,4) C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)
37、解析:解析 本题考查函数模板的引用。引用模板函数和引用一般函数在语法形式上基本相同。需要注意的是,说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否调用函数模板中的对应形参。本题选项 B 中,编译系统从第一个参数“3.5”获得信息“double 型数据”和从第二个参数获得信息“inL 型数据”,两者矛盾。31.从工程管理角度,软件设计一般分为两步完成,它们是_。(分数:2.50)A.概要设计与详纲设计 B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计解析:解析 从软件工程角度看,软件设计分为概要设计和详细设计。概要设计就是结构设计,其主
38、要目标是给出软件的模块结构;详细设计的首要任务是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库。32.关于类模板,下列表述中不正确的是_。(分数:3.00)A.类模板中声明的类称为模板类B.类模板只能有虚拟类型参数 C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数解析:33.将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是 _ 。(分数:2.00)A.不合法的运算符B.一元运算符 C.无操作数的运算符D.二元运算符解析:解析 一元或二元运算符函数作为成员函数时,第一操作数就是对象本身,并不出现在参数表中,即第一操作数仅以 this 指针的形式隐含
39、于参数表中,因此对于一元运算符参数表是空的;而对于二元运算符参数表中只有一个参数,它代表第二操作数。34.有下列二叉树,对此二叉树前序遍历的结果为 _ 。 (分数:2.00)A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHI D.ABCDEFHGI解析:解析 对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且在访问左、右子树时,先访问根结点,再依次访问其左、右子树。35.下列数据结构中,能用二分法进行查找的是_。(分数:2.50)A.无序线性表B.线性链表C.二叉链表D.顺序存储的有序表 解析:解析 二分法查找只适用于顺序存储的有序表,表中的元素按值从小
40、到大排列。36.对关系 S 和 R 进行集合运算,产生的元组属于 S 中的元组,但不属于 R 中的元组,这种集合运算称为 _ 。(分数:2.00)A.并运算B.交运算C.差运算 D.积运算解析:37.有如下说明: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是_。(分数:1.00)A.*p+9B.*(p+8) C.*p+=9D.p+8解析:解析 本题考查指向数组的指针,本题中指针变量 p 指向数组 a,那么*p 的值就是 1,即表示数组的第一个元素,那么数值为 9 的表达式就是将指针向后移动 8 个地址,即 p+8 指向的是数组元素值为9,所以数
41、值为 9 的表达式是*(p+8)。38.有如下程序: #includeiostream using namespace std; class Base public: Base(int x=0)coutx; ; class Derived:public Base public: Derived(int x=0)coutx; private: Base val; ; int main() Derived d(1); return 0; 程序执行后的输出结果是 _ 。(分数:2.00)A.100B.000C.010D.001 解析:解析 本题考查的知识点是类的构造。建立一个类的对象时,构造函数的执
42、行顺序如下:执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下);执行自身的构造函数。本题 Derived 类继承于 Base 类,所以首先会构造基类 Base,但 Derived 类的构造函数没有初始化列表,所以将调用 Base 类的默认构造函数,输出一个 0。接下来由于它的成员中还定义了一个 Base 类的对象,而构造函数也没有显示初始化这个对象,所以再次调用 Base 类的默认构造函数输出一个 0。最后构造自身,因为主函数中传入了构造参数 1,所以构造自身时输出了一个 1。故最终输出结果为 001。39.一个函数带有参数说明时,则参数的默认值应该在 _ 中给出。(分数:2.00)A.函数定义B.函数声明C.函数定义或声明 D.函数调用解析:40.单个用户使用的数据视图的描述称为(分数:1.00)A.外模式 B.概念模式C.内模式D.存储模式解析:解析 选项 A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项 B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项 C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项 D)不正确,存储模式即为内模式。