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

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

1、国家二级( C+)笔试模拟试卷 142及答案与解析 1 下列选项中,不是算法的基本特征的是 ( )。 ( A)完整性 ( B)可行性 ( C)有穷性 ( D)拥有足够的情报 2 结构化分析方法是面向 ( )的自顶向下、逐步求精进行需求分析的方法。 ( A)对象 ( B)数据结构 ( C)数据流 ( D)目标 3 下列工具中为需求分析常用工具的是 ( )。 ( A) PAD ( B) PFD ( C) N-S ( D) DFD 4 线性表进行二分法检索,其前提条件是 ( )。 ( A)线 性表以顺序方式存储,并按关键码值排好序 ( B)线性表以顺序方式存储,并按关键码的检索频率排好序 ( C)线

2、性表以链式方式存储,并按关键码值排好序 ( D)线性表以链式方式存储,并按关键码的检索频率排好序 5 下列选项中不属于结构化程序设计方法的是 ( )。 ( A)自顶向下 ( B)逐步求精 ( C)模块化 ( D)可复用 6 下列关于结构化程序设计原则和方法的描述中,错误的是 ( )。 ( A)选用的结构只准许有一个入口和一个出口 ( B)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实 现 ( C)不允许使用 GOTO语句 ( D)语言中所没有的控制结构,应该采用前后一致的方法来模拟 7 软件需求分析阶段的工作,可以分为 4个方面:需求获取、需求分析、编写需求规格说明书以及 ( )。 ( A)

3、阶段性报告 ( B)需求评审 ( C)总结 ( D)都不正确 8 下列关于软件测试的描述中正确的是 ( )。 ( A)软件测试的目的是证明程序是否正确 ( B)软件测试的目的是使程序运行结果正确 ( C)软件测试的目的是尽可能多地发现程序中的错误 ( D)软件测试的目的是使程序符合结构化原 则 9 用链表表示线性表的优点是 ( )。 ( A)便于随机存取 ( B)花费的存储空间较顺序存储少 ( C)便于插入和删除操作 ( D)数据元素的物理顺序和逻辑顺序相同 10 在数据库设计中,将 E-R图转换为关系模式的过程属于 ( )。 ( A)需求分析阶段 ( B)逻辑设计阶段 ( C)概念设计阶段

4、( D)物理设计阶段 11 下列符号中可以用作 C+标识符的是 ( )。 ( A) _radius ( B) foo bar ( C) else ( D) 3room 12 下列关于 C+流的说明中,正确的是 ( )。 ( A)与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现 ( B)从流中获取数据的操作称为插入操作, 向流中添加数据的操作称为提取操作 ( C) cin是一个预定义的输出流类 ( D)输出流有一个名为 open的成员函数,其作用是生成一个新的流对象 13 若执行语句: cout setfill(*) setw(10) 123 “OK“ endl后将输出 ( )。 ( A

5、) * 1230K ( B) 123*OK ( C) *123*OK ( D) 123*OK* 14 类模板的使用实际上是将类模板实例化成一个具体的 ( )。 ( A)类 ( B)对象 ( C)函数 ( D)模板类 15 有如下函数模板定义: template class T T func(T x,T y)return x*x+y*y; 在下列对 func的调用中,错误的是 ( )。 ( A) func(3,5); ( B) func(3.0,5.5); ( C) func(3,5.5); ( D) func int (3,5.5); 16 假定要对类 AB定义加号操作符重载成员函数,实现两个

6、 AB类对象的加法,并返回相加结果,则该成员函数的声明语句为 ( )。 ( A) AB operator+(AB class TestClass public: virtual void fun1() cout “fun1TestClass“; virtual void fun2() cout “fun2TestClass“; ; class TestClass1:public TestClass void fun() cout “fun1TestClass1“; void fun2(int x) cout“fun2TestClass1“; ; int main() TestClass obj

7、1,*p; TestClass1 obj2; p= p- fun1(); p- fun2(); return 0; 该程序执行后的输出结果是( )。 ( A) fun1TestClass1 fun2TestClass ( B) fun1TestClass1 fun2TestClass1 ( C) fun1TestClass fun2TestClass ( D) fun1TestClass fun2TestClass1 20 有如下程序: #include iostream using namespace std; class A public: virtual void func1()cout

8、 “A1“; void func2()cout “A2“; ; class B:public A public: void func1()cout “B1“; void func2()cout “B2“; ; int main() A *p=new B; p- func1(); p- func2(); return 0; 执行该程序,屏幕上将显示输出 ( )。 ( A) B1B2 ( B) A1A2 ( C) B1A2 ( D) A1B2 21 有如下类声明: class TestClass int i; private:int j; protected:int k; public:int m

9、,n; 其中,私有成 员的数量为 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) 3 22 有如下程序: #include iostream using namespace std; class TestClass private; char c; public; TestClass (char n):c(n) TestClass () cout c; ; class TestClass1:public TestClass Private: char c; public: TestClass1(char n):TestClass (n+1),c(n) TestClass1() c

10、out c; ; int main() TestClass1 obj(x); return 0; 执行上面的程序输出 ( )。 ( A) xy ( B) yx ( C) x ( D) y 23 阅读下面程 序: #include iostream.h void main() int i,j,row=0,column=0,min; static int a33=100,28,72,-30,2,-100; min=a00; for(i=0;i 3;i+) for(j=0;j 3;j+) if(aijl min) min=aij; row=i; column=j; cout min “,“ row

11、“,“ column endl; 该程序的执行结果为 ( )。 ( A) -100,2,3 ( B) -100,1,2 ( C) 100,1,1 ( D) 100,0,0 24 重载输入流运算符必须使用的原型为 ( )。 ( A) istream ( B) istream ( C) istream operator (istream,类名 ( D)类名 operator (istream 25 关于在调用模板函数时模板实参的使用,下列表述中正确的是 ( )。 ( A)对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略 ( B)对于虚拟类型参数所对应的模板实参

12、,如果它们是参数表中的最后的若干个参数,则都可以省略 ( C)对于虚拟类型参数所对应的模板实参,若能够省略则必须省略 ( D)对于常规参数所对应的模板实参,任何情况下都不能省略 26 在进行了任何 C+流的操作后 ,都可以用 C+流的有关成员函数检测流的状态,其中只能用于检测刚进行的操作是否失败的函数名是 ( )。 ( A) fail ( B) eof ( C) bad ( D) good 27 已知 n是一个 int型变量,下列语句中错误的是 ( )。 ( A) long*p=new longn; ( B) long pn; ( C) long*p=new long(n); ( D) lon

13、g p10; 28 有如下程序: #include iostream.h using namespace std; class Base protected: int i; public: int j; ; class Derived:public Base int m; public: int n; ; int main() Derived d; d.i=0; /1 d.j=0; /2 d.m=0; /3 d.n=0; /4 return 0; 其中主函数中有两个赋值语句有错,这两个错误的赋值语句是 ( )。 ( A) 1和 2 ( B) 1和 3 ( C) 2和 3 ( D) 2和 4 2

14、9 有如下语句序列: int k=0: dok+=5;cout ; while(k 19); while(k- 0)cout *; 执行上面的语句序列输出字符 “ ”和 “*”的个数分别是 ( )。 ( A) 4和 20 ( B) 5和 20 ( C) 4和 21 ( D) 5和 21 30 下列关于虚函数的描述中,正确的是 ( )。 ( A)虚函数是一个 static类型的成员函数 ( B)虚函数是一个非成员函数 ( C)基类中采用 virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual说明 ( D)派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或

15、类型 31 有如下程序: #include iostream.h using namespace std; class Base public: Base()cout “BB“; f(); void f()cout “Bf“; ; class Derived: public Base public: Derived()cout “DD“; void f()cout“Df“; ; int main()Dcrivcd d; return 0; 执行上面的程序将输出 ( )。 ( A) BBBfDD ( B) BBDfDDDf ( C) DD ( D) DDBBBf 32 有如下程序: #inclu

16、de iostream.h using namespace std; class Stack public: Stack(unsigned n=10):size(n)rep_=new int size; top=0; Stack(Stack for (int i=0;i size;i+) rep_i=s.rep_i; top=s.top; Stack()deleterep_; void push(int a)rep_top=a; top+; int pop()-top; return rep_top; bool isEmpty() const return top =0; private: i

17、nt*rep_; unsigned size, top; ; int main() Stack s1; for(int i=1;i 5;i+) sl.push(i); Stack s2(s1); for (int i=1;i3;i+) cout s2.pop() ,; s2.push(6); s1.push(7); while(!s2.isEmpty() cout s2.pop() ,; return 0; 执行上面程序将输出 ( )。 ( A) 4,3,2,1, ( B) 4,3,6,7,2,1, ( C) 4,3,6,2,1, ( D) 1,2,3,4, 33 已知枚举类型定义语句为: e

18、num TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10; 则下列叙述中错误的是( )。 ( A)枚举常量 NAME的值为 1 ( B)枚举常量 NUMBER的值为 1 ( C)枚举常量 MINUS的值为 6 ( D)枚举常量 PRINT的值为 10 34 要定义一个具有 5个元素的一维数组 vect,并使其各元素的初值依次是 30,50, -88, 0和 0,则下列定义语句中错误的是 ( )。 ( A) int vect5=30,50,-88; ( B) int vect=30,50,-88,0,0; ( C) int vect5=30,50,-88; ( D)

19、int vect5=30,50,-88,0,0; 35 有如下程序: #include iostream using namespace std; class Test public: Test() n+=2; Test() n-=3; static int getNum() return n; private: static int n; ; int Test:n=1; int main() Test* p=new Test; delete p; cout “n=“ Test:getNum() endl; return 0; 执行该程序的输出结果是 ( )。 ( A) n=0 ( B) n=

20、1 ( C) n=2 ( D) n=3 36 在长度为 n的线性表中查找一个表中不存在的元素,需要的比较次数为【 】。 37 在面向对象的程序设计中,用来请求对 象执行某一处理或回答某些信息的要求称为【 】。 38 源程序文档化要求程序应加注释。注释一般分为序言性注释和【 】。 39 数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于【 】。 40 在关系运算中,【 】运算是在给定关系的某些域上进行的运算。 41 设有定义语句: double x=2.5, y=4.7; int a=7;那么表达式 x+a%3*(int)(x+ y)%2/4的值为【 】。 42 函数 swap(arr

21、,n)可完成对 arr数组从第 1个元素到第 n个元素两两交换。在运行调用函数中的语句后, a0和 a1的值分别为【 】。 a0=1; a1=2; swap(a, 2); 43 下列程序的输出结果是【 】 #include iostream using namespace std; int main() int num=500; int Base() ; class Derived : public Base public: 【 】 /完成类 Derive构造函数的定义 ; int main () Derived Obj; return 0; 46 已知: double A(double A)

22、 return+a; 和 int A(in A) return+a; 是一个函数模板的两个实例,则该函数模板定义为【 】 47 有以下程序: #include iostream.h class A int x; public: A(int a) x=a; friend class B; class B public: void print(A a) a. x-; cout a.x end1; ; void main() A a(10); B b; b.print(a) ; 程序执行后的输出结果是【 】。 48 下面程序的输出结果是【 】。 #include iostream using nam

23、espace std; class base protected: int a; public: base()cout “0“: ; class basel: virtual public base public: base1() cout “1“; ; class base2 : virtual public base public: base2()cout “2“; ; class derived : public base1,public base2 public: derived () cout “3“; int main () derived obj; cout end1; retu

24、rn 0; 国家二级( C+)笔试模拟试卷 142答案与解析 1 【正确答案】 A 【试题解析】 作为一个算法,一般应该具有下列 4个特征: 可行性,即考虑到实际的条件能够达到一个满意的结果; 确定性,算法中的第一个步骤都必须是有明确定义的; 有穷性,一个算法必须在有限的时间内做完; 拥有足够的情报。 2 【正确答案】 C 【试题解析】 结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐步求 精,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。 3 【正确答案】 D 【试题解析】 需求分析常用的工具有数据流图 (DFD)、数据字典 (DD)、判定树和判定表。

25、 PAD(问题分析图 )、 PFD(程序流程图 )、 N-S(盒式图 )都是详细设计的常用工具,不是需求分析的工具。 4 【正确答案】 A 【试题解析】 对线性表进行二分法检索,要求线性表是按顺序方式存储,并按关键码值的大小排好序,而不是按关键码的检索频率排序。 5 【正确答案】 D 【试题解析】 结构化 程序设计的主要原则概括为自顶向下,逐步求精,限制使用GOTO语句。 6 【正确答案】 C 【试题解析】 限制使用 GOTO语句是结构化程序设计的原则和方法之一,但不是绝对不允许使用 GOTO语句。选项 A)、 B)、 D)为结构化程序设计的原则。 7 【正确答案】 B 【试题解析】 需求分析

26、是软件定义时期的最后一个阶段。可以概括为 4个方面: 需求获取: 需求分析; 编写需求规格说明书; 需求评审。 8 【正确答案】 C 【试题解析】 软件测试是为了尽可能多地发现程序中的错误,尤其是至今尚 未发现的错误。 9 【正确答案】 C 【试题解析】 在链表中因为除了存放数据元素之外,还要存放指针,所以链表花费的存储空间比顺序表还要多。在插入和删除数据元素时,只需要移动相应的记录指针即可。在链表中,数据的物理结构与逻辑结构不一定相同,因为是靠指针来实现对数据的指定,所以不能进行随机存取。 10 【正确答案】 B 【试题解析】 数据库设计阶段主要包括需求分析、概念设计、逻辑设计和物理设计。其

27、中逻辑设计的主要工作是将 E-R图转换为关系模式。 11 【正确答案】 A 【试题解析】 此题考查的是标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过 31个字符:标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。符合这些要求的只有选项 A)。 12 【正确答案】 A 【试题解析】 选项 B)中,从流中获取数据的操作称为提取操作,向流中添加数据的操作称为插入操作;选项 C)中, cin是一个预定义的输入流对象;选项 D)中, open的成员函数只能打开文件:故只有选项 A)的叙述是正确

28、的。 13 【正确答案】 A 【试题解析】 cout.fill()用于设置或返回输出的填充字符,默认是空格, fill()函数的设置一直有效,直到下一个 fill()函数改变该值为止。 setw (int n)作用是设置输入输出的宽度,此设置只对一次输入或输出有效,在完成一次数据的输入或输出后,宽度设置自动恢复为 0。需要注意的是,默认为输出数据在指定宽度内右对齐。 14 【正确答案】 A 【试题解析】 类模板就是把类中的数据分离出来,作为一个类的描述。 C+编译器根据类模板和特定的数据类型来产生一个 类,类模板就是一个抽象的类。 15 【正确答案】 C 【试题解析】 选项 C)中两个实参的实

29、际类型不同而未进行转换,会出现错误。 16 【正确答案】 B 【试题解析】 因为题目的要求是对类 AB定义加号操作符重载成员函数,所以首先应该对范围加以限定,参数是对类对象的引用。 17 【正确答案】 D 【试题解析】 运算符重载为成员函数的形式为:函数类型 operator运算符 (形参表 )函数体 ;;运算符重载为友元函数的形式为: friend函数类型 operator运算符(形参表 )函数体 ;)。一般来讲,单目运算符最好重载为成员函数,双目运算符最好重载为友元函数。 =、 、 ()、 -以及所有的类型转换运算符只能作为成员函数重载。 18 【正确答案】 B 【试题解析】 纯虚函数是在

30、声明虚函数时被 “初始化 ”为。的虚函数。纯虚函数没有函数体,所以选项 A)、 C)不正确。纯虚函数的作用是在基类中为其派生类保留一个函数名字。所以选项 D)错误。 19 【正确答案】 A 【试题解析】 TestClass为基类, Testclass1是 TestClass的派生类。基类中的fun1和 fun2被 定义为虚函数, C+规定,当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数,所以派生类中的 fun1和 tim2也是虚函数。本题从 main主函数入手,首先定义了 TestClass类型的对象 obj1和指针 p,然后又定义了 TestClass1的对象 obi2

31、。指针指向对象 obi2,然后调用其成员函数 fun1(),即输出 “fun1TcstClass1”。多态性是在程序运行过程中才动态地确定操作指针指向的对象, “p- fun2();”语句中没有任何参数,并不是调用派生类中的fun2(int x),而 是调用其基类中的 fun2(),所以输出 “fun2TestClass”。 20 【正确答案】 C 【试题解析】 程序中 B为 A的派生类,由主函数入手,主函数中定义了类 A的指针 p指向类 B。根据基类中的 “virtual void func1()”知道 A中的 func1为虚函数,执行 “p- func1(); ”语句,通过指针变量调用此虚

32、函数,此时调用的就是指针变量指向的同名函数,即派生类的 func1函数,输出 B1。而 fun2不是虚函数,所以执行 “p- func2();”输出为 A2。 21 【正确答案】 C 【试题解析】 首先声明为 pfivate的 “private:int j;”中 j为私有成员。然后在类中没有指定,系统默认为私有。即 “int i;”中的 i也是私有成员。所以本题中的私有成员数量为 2。 22 【正确答案】 A 【试题解析】 题目中程序 TestClass为基类, TestClass1为派生类。在主函数中定义 TestClass1对象 obj(x), “TestClass1(char n):Te

33、stClass (n+1),c(n)”,所以先输出 x,然后调用基类构造函数, x+1=y,所以输出 y,即答案为 xy。 23 【正确答案】 B 【试题解析】 该程序是找到数组 a中的最小值,然后输出其数值及行、列。首先将 min的值赋值为 a中的第一行第一列的数值。然后在 for两层循环中利用 if语句进行大小比较,求出数组最小值,即 -100。它的位置为第二行;第三列。标识由0开始计数,所以是 1, 2。 24 【正确答案】 A 【试题解析】 C+流的输入运算符 “ ”和输出运算符 “ ”只能作为非成员函数重载。重载输入流运算符 “ ”须使用以下原型: istream 。 25 【正确答

34、案】 D 【试题解析】 以下情况模板实参不能省略:从模板函数实参表获得的信息有矛盾;需要获得特定类型的返回值,而不管返回值类型如何;虚拟类型的参数没有出现在模板形参表中;函数模板含有常规形参。 26 【正确答案】 A 【试题解析】 可以用文件流对象的成员函数来判别文件流当前的状态: fail,刚进行的操作失败是返回 true,否则返回 false; eof,进行输入操作时,若文件到达文件尾返回 true,否则返回 false; bad,如果进行 了非法操作返回 true,否则返回false; good,刚进行的操作成功时返回 true,否则返回 false。 27 【正确答案】 B 【试题解析

35、】 此题考查的是数组、指针及关键字 new。说明一维数组的一般形式是:数组类型 数组名 数组长度 ;其中数组长度必须是整型常量或常量表达式。选项 B)中, n是一个变量,不能做数组的长度,故选项 B)错误;其他选项均正确。 28 【正确答案】 B 【试题解析】 此题考查的是类和派生类的访问权限。类 Derived公有继承类Base,所以 d对基类 Base成员 的访问权限不变。因数据成员 i为保护,故不能通过对象访问;派生类 Derived中 m变量为私有,同样不能通过对象访问,所以1、 3错误。 29 【正确答案】 A 【试题解析】 此题首先执行语句 dok+=5;cout ; while(

36、k 19);,循环执行 4次,输出 4个 “ ”, k的值变为 20;然后执行语句 while(k- 0)cout*;,因为其中的 k是后缀自减,所以会输出 20个 “*”。 30 【正确答案】 C 【试题解析】 虚函数是允许在派生类中重新定义与基类同 名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。在基类用 virtual声明成员函数为虚函数,在派生类中重新定义此函数,要求函数名、函数类型、函数参数个数和类型全部与基类的虚函数相同。 31 【正确答案】 A 【试题解析】 此题考查的是类的继承和派生。派生类执行构造函数的一般次序为:首先调用基类构造函数;然后调用成员对象的构

37、造函数;最后是派生类构造函数中的内容。题目中定义派生类对象 d时,先调用基类 Base的构造函数,输出BBBf,然后调用派生类 Derived的构造函数,输出 DD。 32 【正确答案】 C 【试题解析】 此题综合考查了类与对象、循环语句、指针等知识点。在主函数main中,先定义了类 Stack的对象 s1,通过循环将 1、 2、 3、 4压入堆栈内;然后定义对象 s2,并用对象 s1来初始化,所以 s2的大小也是 10。第二个循环将 4、 3弹出并输出,然后将 6压入 s2的堆栈,然后将 s2中剩下的值全部弹出,即 6、2、 1。 33 【正确答案】 A 【试题解析】 此题考查的是 C+语言

38、的数据类型。第一个枚举常量的值为 0;允许程序显示的定义中指定部分或全部枚举常量的值,枚举常量 默认时,在前一枚举常量值的基础上以此增 1。 34 【正确答案】 A 【试题解析】 此题考查的是一维数组定义时的初始化。当数组声明时没有给出数组的大小但是有初始化列表时,数组的大小就由列表中元素的个数来确定。所以选项 A)中数组只定义 3个元素,不符合题目。 35 【正确答案】 A 【试题解析】 此题考查的是静态数据成员和静态成员函数。静态数据成员是类中所有对象共享的成员,而不是某个对象的成员。题目中的静态数据成员 n的运算具有叠加性,执行 “n+=2”和 “n-=3”后 n的值为 0。 36 【正

39、 确答案】 n 【试题解析】 在长度为 n的线性表中查找一个表中不存在的元素,需要的比较次数为 n。 37 【正确答案】 消息 【试题解析】 消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。 38 【正确答案】 功能性注释 【试题解析】 注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,它给出程序的整体说明;功能性注释的位置一般嵌在源程序体之中,主要描述其后的语句或程序做什么。 39 【正确答案】 格式化模型 【试题解析】 层次模型与网状模型属于格式化模型。 40 【正确答案】 投影 【试题解析】 在关系运算

40、中,投影运算是在给定关系的某些域上进行的运算。 41 【正确答案】 2.5 【试题解析】 本题考核运算符的使用 (包括类型、优先级、结合性 )。强制类型转换符 ()将表达式 x+y的值转换为 int型,那么表达式 “a%3*(int) (x+y)%2/4”结果将为整型,计算: 7%3*7%2/4的结果为 0,而 x为 double型,所以最后的结果为2.5 42 【正确答案】 2, 1 【试题解析】 本题考核函数参数的传递。数组名作为函数参数传递的是数组的首地址,即实参数组名把实参数组的首地址传给了形参数组名,形参数组名就指向了相应的实参数组,就是说形参数组和实参数其实就是同一个数组,对形参数

41、组元素的修改也同样影响到对应的实参数组元素。 43 【正确答案】 600 【试题解析】 考核引用的使用。题中整型变量 ref定义为 num的引用,所以对ref的作用等同于对 num的作用,所以 ref加上 100后, num的值也就变成了600。 44 【正确答案】 类 【试题解析】 本 题考核类模板的使用,使用类模板时是将其定义实例化为一个真正的类。 45 【正确答案】 Derived (int i): Base(i) 【试题解析】 本题考核派生类中构造函数的的定义。程序中,类 Derived是基类Base的公有派生。在类 Derived的构造函数应该包括调用基类构造函数使基类的数据成员得以

42、初始化。 46 【正确答案】 template typename T TA(TA) return a+,) 【试题解析】 本题考核函数模板的定义。通过两个实例知道该例中只有 一种数据类型,所以在定义模板时只需定义一个模板参数 T。 47 【正确答案】 9 【试题解析】 本题考核友元类的应用。在程序中,类 B是类 A的友元类,因此,在类 B的所有成员函数中均可访问类 A的任何成员。在 main()中,先定义类A的一个对象 a(10)和类 B的一个对象 b。然后通过对象 b调用其成员函数 print输出对象 a的私有成员 x的值减 1即 9。 48 【正确答案】 0123 【试题解析】 本题考核含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次 调用虚基类的构造函数,最有调用派生类自己的构造函数题中先调用 base的构造函数,然后调用base1、 base2的构造函数,最后调用 derived的构造函数。

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

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

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