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

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

1、国家二级( C+)笔试模拟试卷 69及答案与解析 1 以下各项排序技术中属于交换类排序法的是 ( )。 ( A)冒泡排序 ( B)希尔排序 ( C)堆排序 ( D)简单选择排序 2 以下特点中不属于线性表的顺序存储结构的是 ( )。 ( A)线性表中所有元素所占的存储空间是连续的 ( B)线性表的数据元素在存储空间中是按逻辑顺序依次存放的 ( C)线性表中所有元素所占的存储空间是连续的 ( D)前后件两个元素在存储空间是紧邻的 3 一个向量第 1个元素的存储地址是 100,每个元素的长度为 2, 则第 5个元素的地址是 ( )。 ( A) 110 ( B) 108 ( C) 100 ( D)

2、120 4 堆栈 s进行下列操作: push(1); push(2); pop(); pop();后,此时的栈顶元素为( )。 ( A) 1 ( B) 2 ( C) 0 ( D)不确定 5 在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送 ( )。 ( A)调用语句 ( B)命令 ( C)口令 ( D)消息 6 下面内容不属于使用软件开发工具好处的是 ( )。 ( A)减少编程工作量 ( B) 保证软件开发的质量和进度 ( C)节约软件开发人员的时间和精力 ( D)使软件开发人员将时间和精力花费在程序的编制和调试上 7 数据流图用于描述一个软件的逻辑模型,数据流图由一些特定的图符

3、构成。下列图符名称标识的图符不属于数据流图合法图符的是 ( )。 ( A)控制流 ( B)加工 ( C)贮存文件 ( D)源和潭 8 程序流程图中的箭头代表的是 ( )。 ( A)数据流 ( B)控制流 ( C)调用关系 ( D)组成关系 9 关系数据库的数据及更新操作必须遵循的完整性规则是 ( )。 ( A)实体完整性和参照完整性 ( B)参照完整性和用户定义的完整性 ( C)实体完整性和用户定义的完整性 ( D)实体完整性、参照完整性和用户定义的完整性 10 在待排序的元素序列基本有序的前提下,效率最高的排序方法是 ( )。 ( A)插入排序 ( B)选择排序 ( C)快速排序 ( D)堆

4、排序 11 下面的程序段中,有 ( )处错误和警告。 #include stdio h int main() int x; cin x cout x; ( A) 1 ( B) 2 ( C) 3 ( D) 4 12 关于类型转换的说法中,错误的是 ( )。 ( A)如果 a为血型变量, b为 char型变量,则 a+b的值为血型 ( B)如果 a为 float型变量, b为 int型变量,则 a-b的值为 float型 ( C)如果 a为 double型变量, b为 float型变量,则 a*b的值为 double型 ( D)如果 a为血型变量, b为血型变量,则 a (double)b的值为

5、int型 13 下列叙述中,正确的是 ( )。 ( A) while语句构成 的循环不能用其他语句构成的循环来代替 ( B) do-while语句构成的循环只能用 break语句退出 ( C)用 while语句构成的循环,只有在 while后的表达式为非 0时才执行循环 ( D) do-while语句构成的循环,只有在 while后的表达式为 0时才结束循环 14 若有定义 “int k, *q; ”,则下列各选项中,赋值表达式正确的是 ( )。 ( A) q=( int Fun(int, int); int main() cout Fun(5, 50) end1; return 0; int

6、 Fun(int x, int y) return x*x+y*y; ( A)该函数定义正确,但函数调用方式错误 ( B)该函数调用方式正确,但函数定义错误 ( C)该函数的定义和调用方式都是正确的 ( D)该函数的 定义和调用方式都是错误的 16 以下各项说法中,正确的是 ( )。 ( A)当通过引用传递参数时,函数创建一个变量以存储参数的值 ( B)当通过引用传递参数时,函数无法访问参数的值 ( C)当通过引用传递参数时,调用程序创建一个临时变量以容纳参数的值 ( D)当通过引用传递参数时,函数访问调用程序中参数的原始值 17 下面对静态数据成员的描述中,正确的是 ( )。 ( A)静态数

7、据成员可以在类体内进行初始化 ( B)静态数据成员不可以通过类的对象调用 ( C)静态数据成员不能受 private(私有 )控制符的作用 ( D)静态数据成员可以直接通过类名调用 18 一个类的友元函数或友元类可以通过成员操作符访问该类的 ( )。 ( A)私有成员 ( B)保护成员 ( C)公有成员 ( D)所有成员 19 下列对派生类的描述中,错误的是 ( )。 ( A)一个派生类可以作为另一个派生类的基类 ( B)派生类至少有一个基类 ( C)派生类的默认继承方式是私有派生 ( D)派生类只继承了基类的公有成员和保护成员 20 下列描述中, ( )是抽象类的特性。 ( A)可以说明虚函

8、数 ( B)可以进行构造函数重载 ( C)可以定义友元函数 ( D)不能说明其对象 21 有以下程序: #include iostream using namespace std; int f1(int x, int y) return x y ? x:y; int f2(int x, int y) return x y? y:x; int main ( ) int a = 4,b = 3,c = 5,d,e,f; d = f1(a,b) ; d = f1(d,c) ; e = f2 (a,b) ; e = f2(e,c) ; f = a+b+c-d-e; cout d “, “ e “, “

9、 f end1; return 0; 执行后的输出结果是 ( )。 ( A) 3,4,5 ( B) 5,3,4 ( C) 5,4,3 ( D) 3,5,4 22 有以下程序: #include iostream using namespace std; int main ( ) char s110,s210; char *p=s1,*q=s2; cin s1 s2; while (*p ! = 0 ) p+; while (*q!=0) *p+=*q+; *p=0; cout s1end1; return 0; ( A) abcd0ghij ( B) abcd0ghij0 ( C) abcd

10、( D) abcdghij 23 有如下程序: #include iostream using namespace std; int getSum(int num); int main () int i; for (i=1; i 4; i+) cout getSum(i); return 0; int getSum(int hum) static int sum=O; sum+=num; return sum; 上述程序执行后的输出结果是 ( )。 ( A) 136 ( B) 248 ( C) 123 ( D) 135 24 有如下程序: #include iostream using nam

11、espace std; class sample private: int x, y; public: sample(int i,int j) x=i; y=j; void disp() cout “displ“ end1; void disp() const cout “disp2“ end1; ; int main () const sample a(i,2); a.disp (); return 0; 该程序运行后的输出结果是 ( )。 ( A) disp1 ( B) disp2 ( C) disp1 disp2 ( D)程序编译时出错 25 若有以下程序: void g(int *q)

12、 (*q) +; (*q) +; void main() int line 5; int *p=line; for (i=0; i 5; i+) *p=i; g( for (i=0; i 5; i+) cout linei; cout end1; 该程序运行后的输出结果为 ( )。 ( A) 12345 ( B) 1234 ( C) 11111 ( D) 55555 26 有以下程序: #include iostream using namespace std; class A private: int x,y; public: void set (int i,int j) x=i; y=j;

13、 int get_y() return y; ; class box private: int length,width; A label; public: void set(int 1,int w, int s,int p) length=1; width=w; label.set(s,p); int get_area() return length*width; ; int main() box small; small.set(2,4,1,35); cout small.get_area() end1; return 0; 运行后的输出结果是 ( )。 ( A) 8 ( B) 4 ( C

14、) 35 ( D) 70 27 以下程序执行后的输出结果是 ( )。 #include iostream.h class Basel public: void fun() cout “Basel“ end1; ; class Base2 public: void fun() cout “Base2“ end1; class Derived : public Basel,public Base2 ; void main() Derived Obj; Obj.fun(); ( A) Basel ( B) Base2 ( C) BaselBase2 ( D)程序产生二义性 28 若有以下程序 #in

15、clude iostream using namespace std; class A public: A(int i,int j) a=i; b=j; void move(int x, int y) a+=x; b+=y; void show() cout a “ , “ b end1; private: int a,b; ; class B : private A public: B(int i,int j) :A(i,j) void fun ( ) move (3, 5); void f1 ( ) A:show(); ; int main ( ) B d(3,4); d. fun ( )

16、; d.f1(); return 0; 程序执行后的输出结果是 ( )。 ( A) 3,4 ( B) 6,8 ( C) 6,9 ( D) 4,3 29 以下程序执行结果是 ( )。 #include iostream.h class Base public virtual void fun() cout “B“; ; class Derived public: Derived() cout “D“; virtual void fun() Base:fun(); cout “C“; int main () Base *ptr; Derived obj; ptr= p- fun ( ); retu

17、rn 0; ( A) DBC ( B) DCB ( C) BDC ( D) CBD 30 执行语句序列 ofstream outfile(“data.dat“); if(.) cout “ok“;else cout“fail“; 后,如果文件打开成功,显示 “ok”,否则显示 “fail”。由此可知,上面 if语句 “.”处的表达是 ( )。 ( A) outfile.fail() 或 outfile ( B) outfile.good()或 !outfile ( C) outfile.good()或 outfile ( D) outfile.fail()或 !outfile 31 算法的复杂

18、度主要包括【 】复杂度和空间复杂度。 32 数据的逻辑结构在计算机存储空间中的存放形式称为数据的【 】。 33 若按功能划分,软件测试的方法通常分为白盒测试方法和【 】测试方法。 34 如果一个工人可以管理多个设备,而一个设备只被一个工人管理,则实体 “工人 ”与实体 “设备 ”之间存在【 】的联系。 35 关系数据库管理系统能实现的专门关系运算包括选择、连接和【 】。 36 内联函数是通过【 】来实现的,因此内联函数是真正的函数。 37 以下程序的输出结果是【 】。 #include iostream h void main() int a=0; a+ =(a=8) ; cout a; 38

19、 以下程序的执行结果为【 】。 #include iostream using namespace std; class base public: virtual void who() cout “base class“ endl; ; class derivel: public base public: void who() cout “derivel class“ endl; ; class derive2: public base public: void who() cout “derive2 class“ endl; ; void main() base obj1, *p; deri

20、vel obj2; derive2 obj3; p= public: MyClass(int a) : MyClass(); ; MyClass:MyClass(int a) 【 】 ; MyClass: MyClass() 【 】 ; 国家二级( C+)笔试模拟试卷 69答案与解析 1 【正确答案】 A 【试题解析】 所谓交换类排序法是指借助元素之间的相互交换进行排序的一种方法。它包括冒泡排序法和快速排序法。 2 【正确答案】 C 【试题解析】 线性表的顺序 存储结构要求:线性表中所有元素所占的存储空间是连续的并且线性表的数据元素在存储空间中是按逻辑顷序依次存放的。因此,选项 A、 B是正确

21、的。在线性表的顺序存储结构中,前后件两个元素在存储空间中是紧邻的,因此,选项 D也是正确的。 3 【正确答案】 B 【试题解析】 数据元素的存储位置均取决于第 1个数据元素的存储位置,即: LOC(ai) = LOC(a1)+(i-1)C 基地址 一个数据元素所占字节数 所以第 5个元素的地址 =100+2*(5-1)=108。 4 【正确答 案】 D 【试题解析】 对栈 s进行两次 push操作后,又进行了两次 pop操作,即刚才压入的数已经弹出,此时的栈顶元素为不确定。 5 【正确答案】 D 【试题解析】 面向对象是通过对象与对象间彼此的相互合作来推动的,对象间的相互合作需要传递消息,消息

22、的使用类似于函数调用,接受消息的实例执行消息中指定的操作。 6 【正确答案】 D 【试题解析】 软件开发工具的好处在于减少编程工作量、保证了软件开发的质量和进度、节约软件开发人员花在程序编制和调试上的时间和精力,可以花更多的时间考虑软件的 需求和设计。 7 【正确答案】 A 【试题解析】 本题考查考生对数据流图的图形元素的掌握,其中加工、贮存文件、源和潭都是数据流图的合法图符。 8 【正确答案】 B 【试题解析】 程序流程图的基本图符有箭头、矩形和菱形,其中箭头表示控制流,矩形表示加工步骤,菱形表示逻辑条件。 9 【正确答案】 A 【试题解析】 本题考核数据的完整性。关系模型允许定义 3类数据

23、的约束,他们是实体完整性约束、参照完整性约束以及用户自定义完整性约束。其中实体完整性和参照完整性是关系数据库的数据及更新操作 必须遵循的完整性规则,在任何一个关系数据库管理系统中均由系统自动支持。 10 【正确答案】 A 【试题解析】 插入排序通过数据元素的交换来逐步消除线性表中的逆序,所以关键词比较的次数与记录的初始排列次序有关,在待排序的元素序列基本有序的前提下,效率最高。而选择排序和堆排序的关键词比较的次数与记录的初始排列次序无关。快速排序虽然与记录的初始排列次序有关,但在待排序的元素序列基本有序的前提下,效率低于插入排序。 11 【正确答案】 D 【试题解析】 本题考核 C+程序的基本

24、结构。 第 1处错误:头文件 stdio h应改为 iostream h。因为在 C+语言中,输入输出流的流类库是在 iostream h头文件中定义的。 第 2处错误:主函数缺少左大括号 “”。 第 3处错误:语句 cin x后面缺少 “; ”。 第 4处错误:由于已设定主函数的返回类型是血型,因此,在程序结束后,必须给出返回值或者将主函数的返回类型更改为 void型。 12 【正确答案】 D 【试题解析】 C+中数据类型转换有两类,即隐式类型转换和显式类型转换。 隐式类型转换是由编译 器自动完成的类型转换。当编译器遇到不同类型的数据参与同一运算时,会自动将它们转换为相同类型后再进行运算。赋

25、值时,会把所赋值的类型转换为与被赋值变量类型一样。隐式类型转换按从低到高的顺序进行。 显式类型转换是由程序员显式指出的类型转换,使用显式类型转换的好处是,编译器不必自动进行两次转换,而由程序员负责类型转换的正确性。 由此可知选项 D中 a (double)b的值应为 double型。 13 【正确答案】 C 【试题解析】 本题考核对 do-while语句、 while语句基本语法的掌握。 选项 A中, while语句构成的循环体可由其他语句构成的循环体代替,所以选项 A不正确。选项 B中, do-while语句构成的循环,当 while的条件表达式的值为 0时,也可结束循环,所以选项 B也不正

26、确。选项 C是正确的。选项 D可参照选项 B,当使用 break语句时,也可退出循环。故选项 D也不正确。 14 【正确答案】 B 【试题解析】 本题考核指针的赋值操作。先来了解 C+语言中指针的有关说明: 本题的定义语句中,在 q前面有一个 *说明符,表示 q是一个指针变量, C+语言规定在指针变量中只能存放存储 单元 (即变量 )的地址。 因为在定义中, q的基类型为 int,所以 q中只能存放 int类型变量的地址。 在 C+程序中 &是求地址符,表达式 &k的值是变量 k在内存中的地址,而 *的作用是求地址中存放的值。 选项 A中, &k表示变量 k在内存中的地址,而后面的 1是整型常

27、量,所以此选项不正确:选项 C中,把整型变量的值直接赋给指针变量 q,由于赋值没有兼容性,所以这是错误的;选项 D中,企图把 k在内存中的地址赋给一个整型变量 (*q在此代表一整型变量 ),这也是不允许的,地址值不能直接转换为一个整数。 15 【正 确答案】 C 【试题解析】 函数定义时要给出函数类型、函数名、函数参数表和函数体。本程序的 Fun()都做到了,所以此函数的定义也是正确的。该函数的定义和调用方式都是正确的。 16 【正确答案】 D 【试题解析】 本题考核函数参数传递中的引用传递。先来理解引用的概念: “引用 ”实际上是给一个已知变量起个别名,对引用的操作也就是对被它引用的变量的操

28、作。 C+中的变量名对应着内存的存储位置,可以使用一个特定的内存地址访问到它,引用则引入变量的另一个名字,它和这个变量具有同一内存地 址。 当通过引用传递参数时,只是把请求调用的程序中实参的引用传递给函数 (实际上是实参的内存地址被传递了 )。 17 【正确答案】 D 【试题解析】 对于选项 A, C+规定对静态数据成员的初始化应该在类体外进行初始化。所以选项 A是错误的。 对于 B选项, C+规定静态数据成员可由任意访问权限许可的函数或对象访问,所以选项 B是错误的。 对于选项 C,在 C+中,静态数据成员也可以定义为私有的静态数据成员,所以选项 C的描述是错误的。 对于选项 D,在 C+中

29、,静态数据成员是类的所有对象 共享的成员,即可以通过类名访问,也可以通过对象访问。但通过类名访问更方便、更高效。所以选项 D的描述是正确的。 18 【正确答案】 D 【试题解析】 在 C+中,如果想让类中的成员数据可以被其他函数访问,可以通过友元函数声明来分享类中的资源。除了友元函数外,还有友元类。类的友元函数对类的属性和方法的访问能力等同于类的成员函数。 19 【正确答案】 D 【试题解析】 对于选项 A,在 C+中,一个派生类可以作为另一派生类的基类,所以选项 A是正确的。 对于选项 B,在 C+语言中,可以从一 个类派生出另一个类。派生其他类的类称为基类,被派生的类称为派生类。一个派生类

30、可以从一个基类派生,也可以从多个基类派生。所以派生类应至少有一个基类。 对于选项 C,在 C+中,当派生类时,如果没有特别指定派生的类型, C+编译器会自动指定其为私有派生。所以选项 C也是正确的。 对于选项 D,在 C+中,派生类中包含了基类的所有成员,但基类的私有成员在派生类中是隐蔽的,不能被访问。所以选项 D是错误的。 20 【正确答案】 D 【试题解析】 本题考核抽象类的特性。 抽象类是指至少有一个纯 虚函数的类。它往往表示一些抽象的概念,它的成员函数没有什么意义。 抽象类是一种特殊的类,它是为了抽象和设计的目的而建立的,它处于继承层次结构的上层。抽象类的主要作用是将有关的类组织在一个

31、继承层次结构中,由它来为它们提供一个公共的根,相关的子类是从这个根派生出来的。 对于抽象类的使用有几点规定:抽象类只能用作其他类的基类,不能建立抽象类对象;抽象类不能用作参数类型、函数返回类型或显式转换的类型;可以说明指向抽象类的指针和引用,此指针可以指向它的派生类,进而实现多态性。 由此可知,抽象类区 别于其他类的最根本的特征是不能定义对象。因此也一般将抽象类的构造函数说明为保护的访问控制。 21 【正确答案】 B 【试题解析】 本题考核函数的调用和条件运算符 (?)。解此题前,先来复习一下条件运算符的运算规则。 对于表达式:表达式 1 ?表达式 2:表达式 3,它的运算方式为:先计算表达式

32、 1的值,如果其值为真 (true),则表达式 2的值就是整个表达式的最终结果,否则表达式 3的值就是整个表达式的值。 在了解条件运算符的运算规则后,来看函数 f1()和 f2()。根据条件运算符的运算规 则,可得到函数 f1()的功能是返回两数中的较大值,函数 f2()的功能足返回两数中的较小值。再分析主函数,由于 a=4, b=3, d经过第 1次赋值后得到值为 4,即 d=4。 d的 第 2次赋值表达式为 “d=f1(d, C) ”,由于此时 d=4、 c=5,故经过两次赋值后得到 d=5。同样 e经过两次赋值后可得 e=3。再把 a=4、 b=3、 c=5、 d=5、 e=3代入表达式

33、 f=a+b+c-d-e,最后得到 f=4。 22 【正确答案】 D 【试题解析】 程序定义两个字符串指针 p和 q,并使指针分别指向字符串数组 s1和 s2。数组 s1和 s2通过输入的字符串赋初值。程序中第 1个 while语句,用来计算 s1的长度,并把指针 p移到数组 s1的最后一个元素。第 2个 while语句,是将数组 s2中的字符串合并到数组 s1的后面。语句 “*p0; ”,是合并后的字符串 s1的结束标志。所以最后 s1中的字符串为 abcdghij。 23 【正确答案】 A 【试题解析】 在函数 getSum()中,局部变量 sum被声明为 static,并且初始化为0。该

34、程序使用 getSum()函数计算并报告当前计算所得结果。由于 sum是 static变量,因此 它在函数调用过程中始终保持其值,即使函数调用结束,其空间也不会被释放,下次再调用时,上次运行结果仍然保留。 24 【正确答案】 B 【试题解析】 C+中,在定义常对象时必须进行初始化,而且不能被更新。如果将一个对象说明为常对象,则通过该对象只能调用它的常成员函数。题中,对象 a被定义成类 sample的常对象,所以通过对象 a只能调用其常成员函数 disp()。所以程序最后输出 disp2。 25 【正确答案】 A 【试题解析】 本题考核指针的运用。主函数的 for循环中向函数 g()传入实参&p

35、, 则在函数 g()中执行 “(*q)+; ”相当于执行 “(*(&p)+”,即 (*p)+,其结果就是对相应的数组元素值加 1。函数 g()中执行 “(*q)+; ”相当于执行“(*(&p)+”,即 p+。其结果为指针 p指向下一个数组元素。这样通过 for循环给数组元素分别赋值 1、 2、 3、 4、 5。 26 【正确答案】 A 【试题解析】 本题考核成员对象的应用。类 box的成员函数 set()为设置对象的坐标值和对象的长、宽值。成员函数 set area返回该对象的面积。程序最后输出为8。 27 【正确答案】 D 【试题解析】 本题考核继承中可能出现的二义性问题;题中当派生类 De

36、rived的对象 obj访问函数 fun()时,由于无法确定访问的是基类 Basel中的 fun()函数还是基类 Base2中 fun()函数,从而对函数 fun()的访问产生二义性。 28 【正确答案】 C 【试题解析】 本题考核派生类的应用。本题中,类 B是类 A的私有派生类,在类 B的成员函数 fun()中调用基类 A的成员函数 move(),并传入实参 3和 5。在类B的成员函数 f1()中调用基类 A的成员函数 show(),来显 示基类数据成员 a和 b的值。主函数中,定义了派生类 B的对象 d,并赋初值 3和 4。然后调用对象 d的成员函数 fun()和 f1(),通过上述对函数

37、 fun()和 f1()的功能的描述可知,程序最后输出 6和 9。 29 【正确答案】 A 【试题解析】 本题考核虚函数的应用。主函数中创建派生类 Derived的对象。obj时,调用其构造函数首先输出字符 D。然后调用 fun()函数,由于派生 Derived已对基类的虚函数 fun()进行了重定义,所以语句 “p- fun(); ”调用的是派生类中的函数 fun(),即输出 BC。 所以答案为 A选项。 30 【正确答案】 C 【试题解析】 文件流对象中的成员函数 good()用于判定刚进行的操作是否成功。成功时返回 true,否则返回 false。成员函数 fail()用于判定刚进行的操

38、作是否失败,失败时返回 true,否则返回 false。 31 【正确答案】 时间 【试题解析】 算法的评价一般包括时间与空间复杂度。 32 【正确答案】 存储结构或者物理结构或者物理存储结构 【试题解析】 存放数据存储结构。 33 【正确答案】 黑盒或者黑箱 【试题解析】 软件测试的方法。 34 【正确答案】 一对多或者 1对多或者 1:M或者 1:N 【试题解析】 多个设备对一个工人。 35 【正确答案】 投影 【试题解析】 关系运算的具体内容。 36 【正确答案】 编译器 【试题解析】 内联函数是通过编译器,只是在调用的时候,像宏 样展开。注意:内联函数比普通函数的效率更高。 37 【正

39、确答案】 16 【试题解析】 赋值表达式的值就是所赋值变量的值,本题中 a+=8相当于a=a+8,对表达式逐步进行求解: a+=(a=8)此时, a的值 由于赋值为 8,而不是 0 a+=8 a=a+8 a=16 注意: 要掌握 “+=”等相关运算符的用法。 38 【正确答案】 base class derivel class derive2 class 【试题解析】 类 base含有虚函数 who(),该类派生出 derivel类和 derive2类,两个派生类中都有虚函数 who()的定义。在 main()函数中定义了一个指向 base类的指针,它也被允许指向其派生类。在执行过程中,不断改

40、变它所指的对象,当 p- who()时就能调 用不同的版本。这是因为使用了虚函数,因而进行动态联编。注意:应掌握静态联编的使用方法。 39 【正确答案】 内联 【试题解析】 C+中的成员函数如果它的实现写在了类中,那么该函数就是一个内联函数。注意: C+中内联函数的相关概念。 40 【正确答案】 二义性 【试题解析】 C+中产生虚基类的作用就是为了解决继承中的二义性问题,通过虚基类继承可以把父基类中相同的函数只编译一次。 41 【正确答案】 public 【试题解析】 C+中不论用成员函数还是友元函数重载运算符都必须 用关键字operator,都必须将函数声明为公有的。注意: operator是关键字。 42 【正确答案】 有格式 【试题解析】 C+中运算符 “ ”和 “ ”都是属于有格式的输入输出。注意:使用 cin, cout进行输入输出时应包括头文件 “iostream h。 43 【正确答案】 x=newint(a) deletex 【试题解析】 本题考核 new和 delete的使用。由题可知,在类 MyClass的构造函数中,是申请内存空间,并让指针 x指向构造函数的行参 a。所以构造函数的函数体应该为 “x=new int(a) ; ”。在类 MyClass的析构函数中,是释放类的私有成员,即指针变量 x,所以析构函数的函数体应该为 “deletex; ”。

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

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

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