[计算机类试卷]国家二级(C++)笔试模拟试卷181及答案与解析.doc

上传人:priceawful190 文档编号:502640 上传时间:2018-11-29 格式:DOC 页数:25 大小:64.50KB
下载 相关 举报
[计算机类试卷]国家二级(C++)笔试模拟试卷181及答案与解析.doc_第1页
第1页 / 共25页
[计算机类试卷]国家二级(C++)笔试模拟试卷181及答案与解析.doc_第2页
第2页 / 共25页
[计算机类试卷]国家二级(C++)笔试模拟试卷181及答案与解析.doc_第3页
第3页 / 共25页
[计算机类试卷]国家二级(C++)笔试模拟试卷181及答案与解析.doc_第4页
第4页 / 共25页
[计算机类试卷]国家二级(C++)笔试模拟试卷181及答案与解析.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、国家二级( C+)笔试模拟试卷 181及答案与解析 1 下列数据结构中,属于非线性结构的是 ( A)循环队列 ( B)循环队列 ( C)二叉树 ( D)带链栈 2 下列数据结构中,能够按照 “先进后出 ”原则存取数据的是 ( A)循环队列 ( B)栈 ( C)队列 ( D)二叉树 3 对于循环队列,下列叙述中正确的是 ( A)队头指针是固定不变的 ( B)队头指针一定大于队尾指针 ( C)队头指针一定小于队尾指针 ( D)队头指针可以大于队尾指针,也可以小于队尾指针 4 算法的空间复杂度是 指 ( A)算法在执行过程中所需要的计算机存储空间 ( B)算法所处理的数据量 ( C)算法程序中的语句

2、或命令条数 ( D)算法在执行过程中所需要的临时工作单元数 5 软件设计中划分模块的一个准则是 ( A)低内聚低耦合 ( B)高内聚低耦合 ( C)高内聚低耦合 ( D)高内聚高耦合 6 下列选项中不属于结构化程序设计原则的是 ( A)可封装 ( B)自顶向下 ( C)模块化 ( D)逐步求精 7 数据库管理系统是 ( A)操作系统的一部分 ( B)在操作系统支持下的系统软件 ( C)一种 编译系统 ( D)一种操作系统 8 在 E-R图中,用来表示实体联系的图形是 ( A)椭圆形 ( B)矩形 ( C)矩形 ( D)三角形 9 E-R图中用矩形表示实体 (等同于表 ),用椭圆形表示实体的属性

3、 (等同于表中的字段 ),用菱形表示实体关系 (等同于外键 )。 ( A) FA必须定义在 FB之前 ( B) FB必须定义在 FA之前 ( C)若 FA定义在 FB之后,则 FA的原型必须出现在 FB的定义之前 ( D)若 FA定义在 FB之后,则 FA的原型必须出现在 FB的定义之前 10 有如下两个类的定义: class AA; class BB AA vl, *v2; BB v3: int*v4: ; 其中有一个成员变量的定义是错误的,这个变量是 ( A) v1 ( B) v2 ( C) v3 ( D) v4 11 有如下类定义: class XX int xdata: public:

4、 xx(int n=0):xdata(n) class YY: public XX int ydata; public: YY(int m=0, int n=0): xx(m),ydata(n) ; YY类的对象包含的数据成员的个数是 ( A) 1 ( B) 2 ( C) 3 ( D) 4 12 下列关于运算符函数的叙述中,错误的是 ( A)运算符函数的名称总是以 operator为前缀 ( B)运算符函数的参数可以是对象 ( C)运算符函数的参数可以是对象 ( D)在表达式中使用重载的运算符相当于调用运算符重载函数 13 下列关于模板形参的描述中,错误的是 ( A)模板形参表必须在关键字 t

5、emplate之后 ( B)模板形参表必须在关键字 template之后 ( C)可以用 class修饰模板形参 ( D)可以用 typename修饰模板形参 14 在下列枚举符号中,用来表示 “相对于当前位置 ”文件定位方式的是 ( A) ios_base:CHr ( B) ios_base:beg ( C) ios_base:out ( D) ios_base:end 15 下列字符串中可以用作 C+标识符的是 ( A) 2009var ( B) goto ( C) test-2009 ( D) -123 16 在下列枚举类型的定义中,包含枚举值 3的是 ( A) entire test(

6、RED, YELLOW, BLUE, BLACK); ( B) entire test(RED, YELLOW, BLUE, BLACK); ( C) enum test(RED=-1, YELLOW, BLUE, BLACK); ( D) enum test(RED, YELLOW=6, BLUE, BLACK); 17 有如下程序段: int i=1; while(1) i+; if(i=10)break; if(i%2=0)eout $; 执行这个程序段输出字符 *的个数为 ( A) 10 ( B) 3 ( C) 4 ( D) 5 18 已知数组 arr的定义如下: int arr5=1

7、, 2, 3, 4, 5; 下列语句中,输出结果不是 2的是 ( A) cout *arr+1 endl; ( B) tout *(arr+1) endl; ( C) cout arr1 endl; ( D) eout %arr endl; 19 计算斐波那契数列第 n项的函数定义如下: int fib(int n) if(n=0)return 1; else if(n=1)return 2; else return fib(n-1)+fib(n-2); 若执行函数调用表达式fih(2),函数 fih被调用的次数是 ( A) 1 ( B) 2 ( C) 3 ( D) 4 20 Sample是一

8、个类,执行下列语句后,调用 Sample类的构造函数的次数是Sample a2, *P=Flew Sample; ( A) 0 ( B) 1 ( C) 2 ( D) 3 21 下列关于虚基类的叙述中,错误的是 ( A)使用虚基类可以消除由多继承产生的二义性 ( B)构造派生类对象时,虚基类的构造函数只被调用一次 ( C)声明 “class B:virtual public A”说明类 B为虚基类 ( D)建立派生类对象时,首先调用虚基类的函数 22 将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是 ( A)不合法的运算符 ( B)一元运算符 ( C)无操作数的运算符 ( D)二元

9、运算符 23 有如下模板声明: template typename T1, typename T2 class A; 下列声明中,与上述声明不等价的是 ( A) template class T1, class T2 class A; ( B) template class T1, typename T2 class A; ( C) template typename T1, class T2 class A; ( D) template typename T1, T2 class A; 24 下列关于 C+流的叙 述中,错误的是 ( A) cout A表达式可以输出字符 A ( B) eof

10、( )函数可以检测是否到达文件尾 ( C)对磁盘文件进行流操作时,必须包含头文件 fstream ( D)以 ios_base:out模式打开的文件不存在时,将自动建立一个新文件 25 有如下程序: #include iostream using namespace std; class Toy public: Toy(char*_n)strcpy(name, _n); count+; Toy()count-; char*GetName( )return name; static int getCount( )return count; private: char name10; static

11、 int count; ; int Toy:count=0: int main( ) Toy tl(“Snoopy“), t2(“Mickey“), t3(“Barbie“); cout t1 getCount( ) endl; return 0; 程序的输出结果是 ( A) 1 ( B) 2 ( C) 3 ( D)运行时出错 26 有如下程序: #include iostream using namespaee std; class A public: A(int i): rl(i) void print( )cout E rl -; void print( )constcout C rl*

12、rl -; private: int rl; ; int main( ) A al(2); eonst A a2(4); a1 print( ); a2 print( ); return 0; 程序的输出结果是 ( A)运行时出错 ( B) E2-C16- ( C) C4-C16- ( D) E2-E4- 27 有如下程序: #include iostream using namespace std; class Name char name20; public: Name( )strepy(name, “ “); tout ?; Name(char*fname)strcpy(name, fn

13、ame); cout ?; ; int main( ) Name name3=Name(“张三 “), Name(“李四 “); return 0; 运行此程序输出符号“?”的个数是 ( A) 0 ( B) 1 ( C) 2 ( D) 3 28 有如下程序: #include iostreanl using namespaee std; class AA public: AA( )cout 1; ; class BB: public AA int k; public: BB( ): k(0)eout 2; BB(int n): k(n)cout 3; ; int main( ) BB, b(4

14、), c; return 0; 程序的输出结果是 ( A) 1312 ( B) 132 ( C) 32 ( D) 1412 29 有如下程序: #include iostream using namespace std; class C1 public: Cl( )cout 1; ; class C2: public C1 public: C2( )cout 2; ; int main( ) C2 cb2; C1*cb1: return 0; 程序的输出结果是 ( A) 121 ( B) 21 ( C) 211 ( D) 12 30 下列叙述中正确的是 ( A)栈是 “先进先出 ”的线性表 (

15、 B)队列是 “先进后出 ”的线性表 ( C)循环队列是非线性结构 ( D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 31 支持子程序调用的数据结构是 ( A)栈 ( B)树 ( C)队列 ( D)二叉树 32 某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是 ( A) 10 ( B) 8 ( C) 6 ( D) 4 33 下列排序方 法中,最坏情况下比较次数最少的是 ( A)冒泡排序 ( B)简单选择排序 ( C)直接插入排序 ( D)堆排序 34 软件按功能可分为应用软件、系统软件和支撑软件。下面属于应用软件的是 ( A)编译程序 ( B)操作系统 ( C)教务管

16、理系统 ( D)汇编程序 35 下面叙述中错误的是 ( A)软件测试的目的是发现错误并改正错误 ( B)对被调试的程序进行 “错误定位 ”是程序调试的必要步骤 ( C)程序调试通常也称为 Debug ( D)软件测试应严格执行测试计划,排除测试的随意性 36 耦合 性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 ( A)提高耦合性、降低内聚性有利于提高模块的独立性 ( B)降低耦合性、提高内聚性有利于提高模块的独立性 ( C)耦合性是指一个模块内部各个元索问彼此结合的紧密程度 ( D)内聚性是指模块间互相连接的紧密程度 37 数据库应用系统中的核心问题是 ( A)数据库设计 ( B

17、)数据库系统设计 ( C)数据库维护 ( D)数据库管理员培训 38 将 E-R图转换为关系模式时,实体和联系都可以表示为 ( A)属性 ( B) 键 ( C)关系 ( D)域 39 对 C+编译器区分重载函数无任何意义的信息是 ( A)参数类型 ( B)参数个数 ( C)返回值类型 ( D)常成员函数关键字 const 40 有如下类定义和变量定义: class A public: A( )data=0; A( ) int GetData( )constreturn data; void SetData(int n)data=n; private: int data; ; const A a

18、; A b; 下列函数调用中错误的是 ( A) a GetData( ); ( B) a SetData(10); ( C) b GetData( ); ( D) b SetData(10); 41 有如下类定义和变量定义: class Parents public: int publicData: private: int privateData; ; class ChildA: public Parents/类体 略 */; class ChildB:private Parents/类体略 */; ChildA a; ChildB b; 下列语句中正确的是 ( A) cout a publ

19、icData endl; ( B) cout a privateData endl; ( C) cout b publieData endl; ( D) eout b privateData endl; 42 要建立文件流并打开当前目录下的文件 file.dat用于输入,下列语句中错误的是 ( A) ifstream fin=ifstream open(“file dat”); ( B) ifstream*fir=new ifstream(“file dat”); ( C) ifstream fin; fin open(“file dat”); ( D) ifstream*fin=new if

20、stream( ); fin- open(“file dat”); 43 如下程序段运行时的输出结果是 int i=4; int J=1; int main( ) inti=8,j=i; cout i j endl; ( A) 44 ( B) 41 ( C) 88 ( D) 81 44 如下程序的输出结果是 #include lostream #include cstring using namespace std; class XCD char*a; int b; public: XCD(char*aa, int bB) a=new charstrlen(aA) +1; strcpy(a,

21、aA) ; b=bb; char*Geta( )return a; int Getb( )return b; ; int main( ) char*pl=“abcd“, *p2=“weirong“: int dl, 6, d2=8; XCD x(pl, d1), y(p2, d2); coutstrlen(x Geta( )+y Getb( ) endl; return 0; ( A) 12 ( B) 16 ( C) 14 ( D) 11 45 有如下程序: #include iostream using namespaee std; class Pair int m; int n; publ

22、ic: Pair(int i, int j): m(i), n(j) boot operator (pair P)const; /需在类体外给出定义 ; int main( ) Pair pl(3, 4), p2(4, 3),p3(4, 5); cout (pl p2) (p2 p1) (p2 p3) (p3 p2); retum 0; 运算符函数 operator的功能是比较两个 Pair对象的大小,当左边对象大时,返回 true,否则返回 false。比较规则是首先比较两对象的 m成员, m大者为大;当 m相等时比较 n, n大者为大。程序输出 0101,下列对运算符重载函数的正确定义是

23、( A) bool Pair:operator (Pair P)eonst ( B) bool Pair:operator (Pair P) if(m!=P.m)return m p In; return n p n; if(m!=P.m)return m p m; return n p n; ( C) bool Pair:operator (Pair P)eonst ( D) bool Pair:operator (Pair P) if(m p.m)return true; return n p.n; if(Ul p.m)return true; return n p.n; 46 数据的逻辑

24、结构在计算机存储空间中的存放形式称为数据的 _。 47 如果一个班主任可管理多个班级 ,而一个班级只被一个班主任管理 ,则实体 “班主任 ”与实体 “班级 ”之间存在 _联系。 48 若按功能划分 ,软件测试的方法可以分为白盒测试方法和 _测试方法。 49 关系模型的完整性规则是对关系的某种约束条件 ,包括实体完整性、 _和自定义完整性。 50 在关系数据库中 ,每一个二维表称为 _。 51 含有纯虚函数的类称为 _。 52 假定 q所指对象的值为 25,q+1所指对象的值为 46,则执行 “(*q)+;“语句后 ,q所指对象的值为 _。 53 类继承中 ,缺省的继承方式是 _。 54 有如下

25、程序 : #include iostream using namespace std; class TestClass int k; public: TestClass(int x=1):k(x) TestClass Ocout k; ; int main() TestClass a=TestClass(3),TestClass(3),TestClass(3); TestClass *p=new TestClass2; delete p; return (): 这个程序的输出结果是 _。 55 执行下列程序后的输出结果是 _。 #include iostream using namespace

26、 std; int main() int x=3; int y+; cout x end1; return 0; 56 定义字符指针 char *str=“hello“,已知 sizeof(str)=4,则 strlen(str)=_。 57 有如下程序 : #include iostream using namespace std; class Base public: Base ()cout “Base“; ; class Derived:public Base public: Derived()cout “Derived“; ; intmain() Derived derived; Ba

27、se *p; P= return 0; 执行上面程序的输出是 _。 58 在 TestClass类的定义中 ,对赋值运算符 =进行重载。请将画线处缺失的部分补充完整。 _TestClass:operator=(const TestClass value=rhs.value; return *this; 59 若需要把一个函数 “void fun():“定义为一个类 TestClass的友元函数 ,则应在类Testclass的定义中加入一条语句 :_。 60 已知递归函数 fun的定义如下 : int fun(int n) if(n =1) return 1;/递归结束情况 else retur

28、n n *fun(n-2);/递归 则函数调用语句 fun(5) 的返回值是 _。 国家二级( C+)笔试模拟试卷 181答案与解析 1 【正确答案】 C 【试题解析】 根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。线性结构表示数据元素之间为一对一的关系,非线性结构表示数据元素之间为一对多或者多对一的关系。根据各种结构的定义可知,二叉树是一种非线性结构。 2 【正确答案】 B 【试题解析】 栈是限定只在一端进行插入与删除的线性表。通常称插入、删除的这一端为栈顶,另一端为栈底。栈顶元素总是最后被插入的元素,也是最先被删除的元素;栈底元素总是最先

29、被插入的元素,也是最后才能被删除的元素。栈是按照 “先进后出 ”或 “后进先出 ”的原则组织数据的。 3 【正确答案】 D 【试题解析】 循环队列是将顺序队列首尾相连形成的,随着插入元素或删除元素的进行,其队头指针及队尾指针是在不断变化的,有时可能会出现队头指针大于队尾指针的情况,也可能是队尾指针大于队头指针,故答 案为 D。 4 【正确答案】 A 【试题解析】 算法在执行过程中所需要的临时工作单元数 5 【正确答案】 B 【试题解析】 模块划分应考虑的因素包括模块之间的耦合和内聚。一般来说,要求模块之间的耦合尽可能低,即模块尽可能独立;要求模块的内聚程度尽可能高,即遵循高内聚、低耦合的原则。

30、 6 【正确答案】 A 【试题解析】 模块化、自顶向下和逐步求精都是结构化程序设计的原则;可封装是面向对象程序设计原则。 7 【正确答案】 B 【试题解析】 数据库管理系统是指位于用户与操 作系统之间的数据管理软件。数据库管理系统是为数据库建立、使用和维护而配置的软件。 8 【正确答案】 C 【试题解析】 E-R图中用矩形表示实体 (等同于表 ),用椭圆形表示实体的属性 (等同于表中的字段 ),用菱形表示实体关系 (等同于外键 )。 9 【正确答案】 D 【试题解析】 一个函数 A要调用另外一个函数 B,则 B的函数原型声明一定要在 A之前,但定义在前或者后都没有关系。 10 【正确答案】 C

31、 【试题解析】 在本类的数据成员定义中,不能定义本类的对象,否则就出现了递归定义,这是不 允许的。 11 【正确答案】 B 【试题解析】 派生类继承基类,继承了基类的数据成员和成员函数,加上派生类自己新定义的数据成员,所以该类应该有 2个数据成员。 12 【正确答案】 C 【试题解析】 运算符函数可以重载为成员函数,也可以重载为非成员函数,如重载为友元函数。 13 【正确答案】 B 【试题解析】 对函数模板,模板的一般格式为: template tyname类型参数函数类型函数名 (形参 )函数体 对类模板,一般格式为: template class类型参数 class类名 ,类型参数是用一对

32、括起来。 14 【正确答案】 A 【试题解析】 ios_base:cur表示相对当前位置需要计算的文件字节数偏移量,ios_base:beg表示从文件头位置开始计算的文件字节数偏移量, ios_base:end表示从文件末尾位置开始计算的文件字节数偏移量。 15 【正确答案】 D 【试题解析】 在 C+中,变量标识符必须以大小写字母或下画线开始,是由数字或者字母下画线等组成的一个字符串,其中 C+关键字不能作为标识符, 不能包含 -、 +、 *、 /等运算符号。 C+变量区分大小写。 16 【正确答案】 A 【试题解析】 枚举变量中的枚举元素系统是按照常量来处理的,如果没有进行元素赋值操作,那

33、么元素将会被系统自动从 0开始自动递增地进行赋值操作,但是,如果一旦定义了某一个元素,那么系统将对下一个元素进行前一个元素的值加 1操作。 17 【正确答案】 C 【试题解析】 相当于统计 1 10之间的偶数个数,遇到偶数打印 “*”,故打印 *的个数为 4。 18 【正确答案】 D 19 【正确答案】 C 20 【 正确答案】 D 21 【正确答案】 C 【试题解析】 使用虚基类的目的就是为了解决多继承路径下对基类成员的访问的二义性问题。一旦继承虚基类,那么在构造派生类对象时,虚基类构造函数就只调用一次。派生类对象调用构造函数和普通类对象一样,都是先调用基类构造函数,然后调用派生类构造函数。

34、 22 【正确答案】 B 【试题解析】 当运算符重载为成员函数时,如果函数参数表中没有参数,则表明该重载为单目运算符,操作数就为该对象本身;如果函数参数表中有一个参数,则表示该重载为双目运算符,另外一个操作数为该 对象本身。 23 【正确答案】 D 【试题解析】 在模板定义中,一般情况下, class和 typename可以互换。在选项D中, T2没有类型参数限制定义,所以和题干给出的定义不同。 24 【正确答案】 A 【试题解析】 COHt流对象后面跟的应该是插入运算符 “ ”而不是提取运算符“ ”,故选项 A错。 25 【正确答案】 C 【试题解析】 静态数据成员是同一个类的不同对象之间的

35、数据共享,无论创建多少个类,均只有一个静态数据成员,通过对静态数据成员的调用,实现了数据共享。本题 创建了 3个 Toy对象,所以调用 3次构造函数, count被增加 3次,故sount=3。 26 【正确答案】 B 【试题解析】 在类中重载函数的情况下,常对象调用类的常成员函数,非常对象调用类的非常成员函数,故答案为 B。 27 【正确答案】 D 【试题解析】 Name name3定义了一个 name对象数组,有 3个元素,前 2个调用 Name(char *fname)构造函数,第三个元素调用 Name( )构造函数,故打印 3个“?”。 28 【正确答案】 A 【试题解析】 创建派生类

36、 对象时,先调用基类构造函数,然后调用派生类构造函数, b(4)先调用基类构造函数,然后调用 BB的带参数构造函数,打印 1和 3; c调用基类 AA的构造函数,然后调用 BB的构造函数,打印 1和 2。故答案为 A。 29 【正确答案】 B 【试题解析】 对象的派生撤销时,先调用派生类析构函数,然后调用基类析构函数,故答案为 B。 30 【正确答案】 D 【试题解析】 栈是 “先进后出 ”的线性表;队列是 “先进先出 ”的线性表;循环队列是队列的一种顺序存储结构,因此是线性结构;有序线性表既可以采用顺序存储结构, 又可以采用链式存储结构。 31 【正确答案】 A 【试题解析】 栈支持子程序调

37、用。栈是一种只能在一端进行插入或删除操作的线性表。在主程序调用子程序时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此答案为 A。 32 【正确答案】 C 【试题解析】 对于任何一棵二叉树,其终端结点 (叶子结点 )数为度为 2的结点数+1。所以该二叉树的叶子结点数等于 5+1=6。 33 【正确答案】 D 34 【正确答案】 C 35 【正确答案】 A 【试题解析】 软件测试的目的是暴露错误,评价程序的可靠性。软件调试的目的是发现错误的位置并改正错误。软件测试和软件调试不是同一个概念。 36 【正确

38、答案】 B 【试题解析】 耦合性是模块问互相连接的紧密程度的度量,内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量。良好的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,这样有利于提高模块的独立性。 37 【正确答案】 A 38 【正确答案】 C 【试题解析】 数据库逻辑设计的主要工作是将 ER图转换成指定 RDBMS中的关系模式。从 E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系, E-R图中属性也可以转换成关系的属性。实体集也可以转换成关系。 39 【正确答案】 C 【试题解析】 若重载函数名相同,则通过参数个数和参数类型的不同来区分该

39、调用哪个重载函数。调用重载函数时,函数返回值类型不在参数匹配检查之列。因此,若两个函数的参数个数和类型都相同,而只有返回值类型不同,则不允许重载。 40 【正确答案】 B 41 【正确答案】 A 【试题解析】 派生类公有继承基类时,可以访问基类中的公有成员和保护成员;派生类私有继承基类时,不能访问基类中的任何成员。 42 【正确答案】 A 【试题解析】 ifstream文件输入流类,进行文件打开的一般格式为:文件流对象, open(文件名,打开方式 )也可以用文件流指针代替对象,即 文件流指针 - 0pen(文件名,打开方式 ) 43 【正确答案】 C 【试题解析】 在函数体外部定义的变量是全

40、局变量。在主函数内部定义的变量是局部变量。当全局变量和局部变量 同名时候,在函数体内,局部变量对全局变量起屏蔽作用,即全局变量在函数体内不起作用。 44 【正确答案】 A 【试题解析】 构造对象 x,所以 x.a=“abcd“, x.b=6,构造对象 y,y.a=“weirong“, y.b=8,所以 strlen(x geta( )+y getb( )=12。 45 【正确答案】 C 46 【正确答案】 模式或逻辑模式或概念模式 47 【正确答案】 一对多 【试题解析】 实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。 曲个实体间的联系可以归结为 j种类型:一对一联系表现为某一

41、实体与另一实体一一对应相关联;一对多联系表现为某一实体与相关多个实体相关联;多对多联系表现为多个实体与相关多个实体相联系。所以实体 “班主任 ”与实体 “班级 ”之间存在一对多联系。 48 【正确答案】 黑盒 49 【正确答案】 参照完整性 50 【正确答案】 关系 51 【正确答案】 抽象类 52 【正确答案】 26 53 【正确答案】 私有继承 54 【正确答案】 11333 【试题解析】 定义 TestClass型数组 a时 ,将导致 TestClass的构造函数被执行三次,每次执行时,其传入参数为 3,定义 TestClass指针 p时,将执行两次默认构造函数,其参数为 1,执行 “d

42、elete p“时,将执行 TestClass的构造函数,输出p0.k,p1.k(两者均为 1) ,在程序运行结束后,将释放局部变量,从而导致数组 a中的三个元素被析构,输出 a0,a1,a2中的值 (均为 3) 。 55 【正确答案】 4 56 【正确答案】 5 57 【正确答案】 BaseDerived 【试题解析】 创建 Derived类型的对象将导致 Derived的构造函数被执行,而执行 Derived构造函数时,首先要执行其父类的构造函数,所以先输出 “Base“,然后输出 “Derived“; p是一个指向 Base类型的指针,对其赋值不会引起构造函数的执行,所以本题输出为 “BaseDerived“。 58 【正确答案】 TestClass& 【试题解析】 如果要重载一个类的运算符 =,通常需要定义自己特有的拷贝构造函数。在类体中可以增加: (const & operator lestClass & rhs);然后在 TestClass的类体外给出它的完整定义: TestClass& TestClass:operator=(const TestClass& rhs) 所以在 TestClass类的定义中缺少了 TestClass&语句。 59 【正确答案】 friend void fun(); 60 【正确答案】 15

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1