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

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

1、国家二级( C+)笔试模拟试卷 134及答案与解析 1 下列叙述中正确的是 ( A)程序设计就是编制程序 ( B)程序的测试必须由程序员自己去完成 ( C)程序经调试改错后还应进行再测试 ( D)程序经调试改错后不必进行再测试 2 下列关于队列的叙述中正确的是 ( A)在队列中只能插入数据 ( B)在队列中只能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性表 3 对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 ( A)冒泡排序为 n/2 ( B)冒 泡排序为 n ( C)快速排序为 n ( D)快速排序为 n(n1)/2 4 下列叙述中正确

2、的是 ( A)线性链表中的各元素在存储空间中的位置必须是连续的 ( B)线性链表中的表头元素一定存储在其他元素的前面 ( C)线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面 ( D)线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 5 下面对对象概念描述错误的是 ( A)任何对象都必须有继承性 ( B)对象是属性和方法的封装体 ( C)对象间 的通讯靠消息传递 ( D)操作是对象的动态属性 6 在结构化方法中,用数据流程图 (DFD) 作为描述工具的软件开发阶段是 ( A)可行性分析 ( B)需求分析 ( C)详细设计 (

3、 D)程序编码 7 软件需求分析阶段的工作,可以分为四个方面:需求获取,需求分析,编写需求规格说明书,以及 ( A)阶段性报告 ( B)需求评审 ( C)总结 ( D)都不正确 8 数据库系统的核心是 ( A)数据模型 ( B)数据库管理系统 ( C)软件工具 ( D)数据库 9 下列关系运算中,能使经运算后得到的 新关系中属性个数多于原来关系中属性个数的是 ( A)选择 ( B)连接 ( C)投影 ( D)并 10 将 E-R图转换到关系模式时,实体与联系都可以表示成 ( A)属性 ( B)关系 ( C)键 ( D)域 11 若有以下定义: int a = 1,2,3,4,5,6,7; ch

4、ar c1 = b,c2 = 2; 则数值不为 2的表达式是 ( A) a1 ( B) d-c1 ( C) a3-c2 ( D) c2-0 12 面向对象程序设计思想的主要特征中不 包括 ( A)继承性 ( B)功能分解,逐步求精 ( C)封装性和信息隐藏 ( D)多态性 13 下面关于虚函数的描述中正确的是 ( A)虚函数是一个静态成员函数 ( B)虚函数是一个非成员函数 ( C)虚函数既可以在函数说明时定义,也可以在函数实现时定义 ( D)派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 14 以下程序的输出结果是 #include iostream.h void main ()

5、 int a=0, i; for (i=1; i 5; i+) switch (i) case 0 : case 3 : a+=2; case 1 : case 2 : a+=3; default : a+=5; cout a endl; return; ( A) 31 ( B) 13 ( C) 10 ( D) 20 15 有以下程序: #include iostream using namespace std; int main () int x=15; while (x 10 if (x/3) x+; break; cout x endl; return 0; 执行后的输出结果是 ( A)

6、 15 ( B) 16 ( C) 17 ( D) 18 16 已知: int m=10;在下列定义引用的语句中,正确的是 ( A) int ,下列表述中错误的是 ( A)用 *data可访问到数组的首元素 ( B)用 data9可访问到数组的末元素 ( C)用 data10访问数组元素会超出数组边界 ( D) data共有 10个元素,其首元素是 data1 19 若有以下程序: #include iostream using namespace std; int f() static int i = 0; int s = 1; s+=i; i+; return s; int main() i

7、nt i,a = 0; for(i = 0;i 5;i+) a+=f(); cout a endl; return 0; 程序运行后,输出的结果是 ( A) 20 ( B) 24 ( C) 25 ( D) 15 20 下列函数中对调用它的函数没有起到任何作用的是 ( A) void f1(double ( B) double f1(double x)return x-1.5; ( C) void f3(double x)-x; ( D) double f4(double *x)-*x; return*x; 21 有如下程序: #include iostream void fun(intx=y;

8、y=t; int main () int a2=23,42; fun(a1,a0); std:cout a0 “,“a1 std:endl; return 0; 执行后的输出结果是 ( A) 42, 42 ( B) 23, 23 ( C) 23, 42 ( D) 42, 23 22 下列类的定义中,有 ( )处语法错误。 class Base public: Base() Base(int i) data=i; private: int data; ; class Derive : public Base public: Derive() : Base(0) Derive (int x) d=

9、x; void setvalue(int i) data=i; private: d; ; ( A) 1 ( B) 2 ( C) 3 ( D) 4 23 若类 A和类 B的定义如下: class A int i,j; public: int geti () return i; ; class B : public A int k; public: void make () k=i*j; ; 则上述定义中非法的语句是 ( A) k=i*j; ( B) int k; ( C) return i; ( D) void make() 24 下面的函数模板定义中错误的是 ( A) template cl

10、ass Q q F(Q x) return Q+x; ( B) template class Q Q F(Q x)return x+x; ( C) template class T T F(Tx)return x*x; ( D) template class T bool F(Tx)return x 1; 25 下列打开文件的表达式中,错误的是 ( A) ofstream ofile;ofile.open(“C:vcabc.txt“,ios:binary); ( B) fstream iofile;iofile.open(“abc.txt“,ios:ate); ( C) ifstream if

11、ile(“C:vcXXabc.txt“); ( D) cout.open(“C:vcabc.txt“,ios:binary); 26 有如下的程序: #include cstring.h #include iostream.h using namespace std; class MyString public: MyString(const char*s); MyString () delete data; protected: unsigned len; char*data; ; MyString:MyString(const char *s) len=strlen (s); data=n

12、ew charlen+1; strcpy (data,s); int main () MyString a(“C+ Programing“); MyString b(a); return 0; 在运行上面的程序时出错,出错的原因是 ( A)构造函数的实参不允许是本类的对象 ( B)没有定义实现深层复制 (深拷贝 )的复制构造函数 ( C)构造对象 a时实参与形参类型不符 ( D)系统不能生成默认的复制构造函数 27 一个类可以同时继承多个类,称为多继承。下列关于多个继承和虚基类的表述中,错误的是 ( A)每个派生类的构造函数都要为虚基类构造函数提供实参 ( B)多继承时有可能出现对基类成员访问

13、的二义性问题 ( C)使用虚基类可以解决二义性问题并实现运行时的多态性 ( D)建立最派生类对象时,虚基类的构造函数会首先被调用 28 下列关于 this指针的叙述中,正确的是 ( A)任何与类相关的函数都有 this指针 ( B)类的成员函数都有 this指针 ( C)类的友元函数都有 this指针 ( D)类的非静态成员函数才有 this指针 29 有如下程序: #include iostream.h using namespace std; class Base public: Base() cout “BB“; f(); voidf()cout “Bf“; ; class Derive

14、d: public Base public: Derived ()cout “DD“; void f()cout“Df“; ; int main()Derived d; return 0; 执行上面的程序将输出 ( A) BBBfDD ( B) BBDfDDDf ( C) DD ( D) DDBBBf 30 下列说法中错误的是 ( A)公有继承时基类中的 public成员在派生类中仍是 public成员 ( B)私有继承时基类中的 protected成员在派生类中仍是 protected成员 ( C)私有继承时基类中的 public成员在派生类中仍是 private成员 ( D)保护继承时基类

15、中的 public成员在派生类中仍是 protected成员 31 有以下程序: #include iostream using namespace std; class A private: int a; public: A (int i) a=i; void disp() cout a “,“; ; class B private: int b; public: B(int j) b=j; void disp() cout b “,“; ; class C : public B,public A private: int c; public: C(int k) :A(k-2),B(k+2)

16、 c=k; void disp () A:disp (); B:disp (); cout c endl; ; int main () C obi (10); obj.disp (); return 0; 程序执行后的输出结果是 ( A) 10,10,10 ( B) 10,12,14 ( C) 8,10,12 ( D) 8,12,10 32 有如下程序: #include iostream using namespace std; class BASE public: BASE()cout “BASE“; ; class DERIVED:public BASE public: DERIVED(

17、)cout “DERIVED“; ; int main()DERIVED x;return 0; 执行后的输出结果是 ( A) BASE ( B) DERIVED ( C) BASEDERIVED ( D) DERIVEDBASE 33 关于类模板,下列表述不正确的是 ( A)用类模板定义一个对象时,不能省略实参 ( B)类模板只能有虚拟类型参数 ( C)类模板本身在编 译中不会生成任何代码 ( D)类模板的成员函数都是模板函数 34 有如下程序: #include iostream.h #include iomanip.h using namespace std; class CSum in

18、t x,y; public: CSum (int x0,int y0):x(x0),y(y0) friend ostream return os; ; int main () CSum y(3,5); cout setfill (*) 8; cout y; return 0; 执行上面程序的输出是 ( A) 88 ( B) *88 ( C) *8*8 ( D) 8*8 35 有以下程序 #include iostream #include string using namespace std; class base private: char baseName10; public: base

19、() strcpy(baseName,“Base“); virtual char *myName() return baseName; char *className() return baseName; ; class Derived : public base private: char derivedName10; public: Derived() strcpy(derivedName,“Derived“); char *myName() return derivedName; char *className() return derivedName; ; void showPtr(b

20、ase int main () base bb; Derived dd; showPtr(dd); return 0; 运行后的输出结果为 ( A) Derived Base ( B) Base Base ( C) Derived Derived ( D) Base Derived 36 算法的复杂度主要包括时间复杂度和 _复杂度。 37 按照逻辑结构分类,结构可以分为线性结构和非线性结构,栈属于 _。 38 树中度为零的结点称为 _。 39 在面向对象方法中,类之间共享属性和方法的机制称为 _。 40 软件是程序、数据和 _的集合。 41 纯虚函数的声明总是以 _结束。 42 下列程序的输出

21、结果为 Objectid=O Obiectid=1 请将程序补充完整。 #include iostream using namespace std; class Point public: Point(int xx=0,int yy=0)X=xx;Y=yy;countP+; Point()countP-; int GetX()return X; int GetY()return Y; static void GetC()cout “Object id=“ countP end1; private: int X,Y; static int countP; ; _/静态数据成员的初始化 int m

22、ain() Point:GetC(); Point A(4,5); A.GetC(); return 0; 43 下列程序的输出结果是 _。 #include iostream using namespace std; Class Test public: Test()cnt+; Test()cnt-; static int Count()return cnt; private: static int cnt; ; int Test:cnt=0; int main() cout Test:Count() “; Test t1,t2; Test*pT3=new Test; Test*pT4=ne

23、w Test; cout Test:Count() “; delete pT4; delete pT3; cout Test:Count() end1; return 0; 44 执行这个程序的输出结果是 ( ); #include iostream using namespace std; class TestClass1 public: void fun1()cout “TestClass1n“; virtual void fun2()cout “TestClass1n“; ; class TestClass2:public TestClass1 public: void fun1()co

24、ut “TestClass2n“; void fun2()cout “TestClass2n“; ; void f(TestClass1b.fun2(); int main() TestClass2 obj; f(obj); return 0; 45 表达式 c3=c1.operator+(c2)或 c3=operator+(c1,c2)还可以表示为 _。 46 插入排序算法的主要思想:每次从未排序序列中取出一个数据,插入到己排序序列中的正确位置。 Insert类的成员函数 sort()实现了插入排序算法,请填空。 class Insert public: Insert(int *b0,int

25、 n0):b(b0),n(n0);/参数 b0是某数组首地址, n是数组元素个数 void sort() /此函数假设已排序序列初始化状态只包含 b0,未排序序列初始为 b1.bn-1 for(int i=1;i n;+i) int t=bi; int j; for(_;j 0;-j) if(t bj-1) break; bj=bj-1; bj=t; 47 程序中有如下语句: for(int i=0;i 5;i+)cout *(p+i) “, “; 能够依次输出 int型一维数组 DATA的前 5个元素。由此可知,变量 p的定义及初始化语句是 _。 48 已知递归函数 f的定义如下: int

26、f(int n) if(n 1)return 1; /递归结束情况 else return n*f(n-2);/递归 ) 则函数调用语句 f(5)的返回值是 _。 49 有如下定义: class MA int value; public: MA(int n=0):value(n) ; MA*ta,tb; 其中 MA类的对象名标识符是 _。 50 有如下程序: #include iostream using namespace std; class A public: A()cout “A“; A()cout “A“; ; class B A a; public: B()cout “B“; B(

27、)cout “B“; ; int main() B b; return 0; 程序的输出结果是 _。 国家二级( C+)笔试模拟试卷 134答案与解析 1 【正确答案】 C 【试题解析】 软件测试仍然是保证软件可靠性 的主要手段,测试的目的是要尽量发现程序中的错误,调试主要是推断错误的原因,从而进一步改正错误。测试和调试是软件测试阶段的两个密切相关的过程,通常是交替进行的。选项 C正确。 2 【正确答案】 C 【试题解析】 队列是指允许在一端进行插入、而在另一端进行删除的线性表,选项 A和选项 B错误。允许插入的一端称为队尾,允许删除的一端称为队头。在队列中,最先插入的元素将最先能够被删除,反

28、之,最后插入的元素将最后才能被删除。所以,队列又称为 “先进先出 ”或 “后进后出 ”的线性表,它体现了 “先来先服务 ”的原则,选项 C正 确,选项 D错误。 3 【正确答案】 D 【试题解析】 假设线性表的长度为 n,在最坏情况下,冒泡排序和快速排序需要的比较次数为 n(n-1)/2。由此可见,选项 D正确。 4 【正确答案】 D 【试题解析】 在线性表的链式存储结构中,各数据结点的存储序号不连续,且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的。所以,选项 D正确。 5 【正确答案】 A 【试题解析】 继承是面向对象的方

29、法的一个主要特征。继承是使用已有的 类定义做为基础建立新类的定义技术。 已有的类可当做基类来引用,则新类相应地可当做派生类来引用。但并不是所有的对象都必须有继承性。因此,选项 A中的说法是错误的,应为所选。 6 【正确答案】 B 【试题解析】 结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。而结构化分析就是使用数据流图 (DFD) 、数据字典 (DD) 、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。所以数据流程图是在需求分析阶段使用的。 7 【正确答案】 B 【试题解析】 需求 分析阶段的工作,可以概括为以下 4个方面:需求获取、需求分析、编写需

30、求规格说明书和需求评审。本题的正确答案为 B。 8 【正确答案】 B 【试题解析】 数据库管理系统是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,因此数据库管理系统是数据库系统的核心。 9 【正确答案】 B 【试题解析】 连接运算是对两个关系进行的运算,其意义是从两个关系的笛卡尔积中选出满足给定属性间一定条件的那些元组。而两个关系的笛卡尔积中的属性个数是两个原关系中的属性个数之和。即两个关 系经连接运算后得到的新关系中属性个数多于原来关系中属性个数。正确答案是 B。 10 【正确答案】 B 【试题解析】 把概念模型转换成关系数据模型就是把 E-R图转换成一组

31、关系模式,每一个实体型转换为一个关系模式,每个联系分别转换为关系模式。本题的正确答案是 B。 11 【正确答案】 D 【试题解析】 本题考查数组的定义、初始化及其引用,以及对字符 ASCII码值的熟悉程度。解本题的关键在于熟悉字符的 ASCII码值。字符在进行数学运算时取其 ASCII码值,其中 b的 ASCII码值为 98, d的 ASCII码值为 100,字符 2的 ASCII码值为 50。根据以上知识,可知 D)选项中表达式 c2-0的值为 50。 12 【正确答案】 B 【试题解析】 C+是一种面向对象的程序设计语言,它充分支持面向对象思想中的 3个主要特征:封装性,继承性、多态性。

32、B选项所描述是结构化程序设计的思想。 13 【正确答案】 D 【试题解析】 本题考核虚函数的概念。虚函数是非静态的成员函数,它不能是友元函数,但可以在另一个类中被声明为友元函数。所以 A选项不正确;虚函数必须是类的成员函数,所以 B选项是错误 的;虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的地方,所以 C选项是不正确的;一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。故 D选项的说法是正确的。 14 【正确答案】 A 【试题解析】 本题考核

33、 for语句和 switch语句的综合运用。 switch语句的执行过程是:在 switch后面的表达式的值和 case后面常量表达式的值吻合时,就执行后面的语 句。如果在该语句的后面没有 break语句,则继续执行下一个 case,直到遇到 break语句或 switch多分支的结束。在 switch语句中, break语句的作用是使流程跳出 switch结构,终止 switch语句的执行。因为每个 case语句后面都没有break语句,所以,第 1次循环 (i=1)执行后, a的值为 8。第 2次循环 (i=2)执行过后, a的值变为 16。第 3次循环 (i=3)执行过后, a的值变为

34、26。第 4次循环执行过后, a的值变为 31。然后执行 i+,这时循环条件为假,结束循环。所以最后 a的值为 31。 15 【正确答案】 C 【试题解析】 本题考核选择语句与循环语句的嵌套。由程序可知,当 x=16时,满足 if条件表达式,进入 if分支,执行 “x+;break;“,所以最后程序输出 x的值为 17。 16 【正确答案】 A 【试题解析】 本题考核引用的定义。 C+的引用是一种赋值、发送和返回复杂数据结构的方法,应用这种方法,系统不需要负担额外的开销,节省内存空间。建立引用的格式为:类型 。说明了流对象后,可使用函数 open()打开文件。文件的打开即是在流与文件之间建立一

35、个连接。 open()的函数原型 为:void open(const char *filename,int mode,int port=filebuf:openprot);其中,filename是文件名字,它可包含路径说明。 mode说明文件的打开模式。除了open()成员函数外, ifstream、 ofstream以及 fstream三类流的构造函数也可以打开文件,其参数同 open()函数。例如: ifstream ifile(“c:vcabc.txt“);。打开的文件使用完毕后,必须使用 close()函数将其关闭。 close()函数也 是流类的成员函数,它没有参数与返回值,其作用是

36、将缓冲区的内容刷新并撤销流与文件之间的连接。当流对象的生存周期后,相应的析构函数也会将文件关闭。由此可知, A、 B和 C选项的表达式都是正确的。对于 D选项,由于 open函数并不是 cout对象中的成员函数,所以对 open的调用是非法的。 26 【正确答案】 B 【试题解析】 本题考核类的构造函数。 c+语言中当一个新对象被另一个已存在的同类型对象初始化时要调用复制构造函数,语句 “MyString b(a);“符合此条件将调用类 MyString的复制构造函数, 但是类 MyString没有定义此复制构造函数,所以会出错。 27 【正确答案】 C 【试题解析】 本题考核虚基类。 C+中

37、,通过虚拟基类所派生的类,在所产生的对象中,只包含了一个和其他类共享的基础对象,也就是说,从同一个基类中以虚拟方式派生的所有类,在它们所产生的对象里,不会有一份基础对象,而只是在内存里保留一份基础对象,而派生类中只保留指向此基础对象的指针,这样就不会同时有两份基类对象的情形发生。用虚基类可以解决二义性问题。但是实现运行时的多态性是虚函数。 28 【正确答案】 D 【试 题解析】 本题考核 this指针的使用。类的每一个成员函数都有一个隐含定义的常量指针,称为 this指针。它是成员函数所属对象的指针,它指向类对象的地址。成员函数可以通过这个指针知道自己属于哪一个对象。但是在使用 this指针时

38、需要注意的是: this指针只能在类的成员函数中使用,它指向该成员函数被调用的对象。 this指针一般用于返回当前对象自身;静态成员函数没有 this指针。因为类只有一个静态成员函数实例,所以使用 this指针没有什么意义。在静态成员函数中使用 this指针会引起编译错误。 29 【正确答案】 A 【试题解析】 本题考核类的继承与派生知识。派生类构造函数执行的一般次序如下:首先调用基类构造函数,调用顺序按照它们被继承时说明的顺序。然后调用子对象的构造函数,调用顺序按照它们在类中的说明顺序。最后是派生类构造函数中的内容。题中定义派生类对象 d时,先调用基类 Base的构造函数输出BBBf(注意:

39、基类 Base构造函数中调用的函数 f()是基类中的实现,而不是派生类中的实现 ),然后调用派生类 Derived的构造函数输出 DD。 30 【正确答案】 B 【试题解析】 本题考核派生类中的访问权限问题 。继承方式包括: public(公有派生 ), protected(保护派生 )和 private(私有派生 )。不同的继承方式会导致原来具有不同访问属性的基类成员在派生类中的访问属性也有所不同。这里的访问主要来自两个方面:一是派生类中的新增成员对从基类继承来的成员的访问;二是派生类外部通过派生类对象对从基类继承来的成员的访问。私有继承时基类中的protected成员在派生类中变成了 pr

40、ivate成员,所以 B选项的描述是错误的。 31 【正确答案】 D 【试题解析】 本题考核派生类构造函数的使用。本题中,派生 类 C具有多重继承关系,所以在派生类 C的构造函数中应该包含基类 A和 B的成员初始化列表。 32 【正确答案】 D 【试题解析】 本题考核派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。所以当 main函数结束时,派生类 DERIVED的对象 x将被删除,那么派生类 DERIVED的

41、析构函数先被调用,输出 DERIVED,然后调用 基类的析构函数输出 BASE。 33 【正确答案】 B 【试题解析】 本题考核类模板的概念。类模板就是一系列相关类的模型或样板,这些类的成员组成相同,成员函数的源代码形式相同,所不同的只是所针对的类型 (成员的类型以及成员函数的参数和返回值的类型 )。 C+中可以为类模板的参数设置默认值,所以 B) 选项是不正确的,其他选项的表述都是正确的。 34 【正确答案】 D 【试题解析】 本题考核知识点包括:类与对象、运算重载、 I/O的格式化输出。语句 “cout setfill(*) 8;“输 出 8。语句 “cout y;“将调用运算符重载输出*

42、8,因为前面语句中设置的填充符号现在还有效,而数据 “8“的宽度不够 5,所以剩下 4个字符的宽度用填充符号 “*“填充。 35 【正确答案】 A 【试题解析】 本题考核虚函数的应用。类 Derived是从基类 Base公有派生而来的。因此, Derived是基类 Base的子类型。 main()函数中定义了一个基类对象 bb和一个派生类对象 dd。从程序,中可看出派生类 Derived的对象 dd交给了处理基类 Base的对象的函数 showPtr进行处理。由于在基类 中函数 myName被定义成虚函数。所以在函数 showPtr中调用的 myName函数为派生类的成员函数 myName,从

43、而输出 Derived。然后输出 className,即基类名称 Base。 36 【正确答案】 空间 【试题解析】 衡量一个算法的复杂度有两个指标:时间复杂度和空间复杂度。前者用来衡量执行算法时所需要的计算工作量,而后者用来衡量执行算法所需要的存储空间。 37 【正确答案】 线性结构 【试题解析】 数据的逻辑结构是指数据元素之间的逻辑关系,分为线性结构和非线性结构。常见的线 性结构有线性表、栈和队列等,常见的非线性结构有树、二叉树等。 38 【正确答案】 叶子结点 【试题解析】 树中度为零的结点,也就是没有后件的结点,称为叶子结点。 39 【正确答案】 继承 【试题解析】 在面向对象的程序设

44、计方法中,某些属性和方法是可以共享的,由子类从父类中继承而来,这样提高了软件的可重用性。 40 【正确答案】 相关文档 【试题解析】 计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。 41 【正确答案】 =0 【 试题解析】 纯虚函数是在声明虚函数时被 “初始化 ”为 0的函数。定义的一般形式: Virtual函数类型函数名 (参数列表 )=0。所以答案为 “=0”。 42 【正确答案】 int Point:countP=0; 【试题解析】 此题考查的是类中静态数据成员的初始化,静态数据成员初始化的一股格式,数据类型类名 :静态数据成员名 =初始值,且初

45、始化时前面不加关键字static。分析题目,首先调用构造函数,然后输出 countP的值,所以 countP的初始值应设置为 0,即横线处填入 int Point:countP=0;。 43 【正确答案】 042 【试题解析】 此题考查的是类的构造函数与析构函数的调用。语句 coutTest:Count() “;;输出 “0”,因为 static型变量 cnt的默认值是 0; “T Test ti,t2;Test*pT3=new Test;Tcst*pT4=new Test;”调用 4次类的构造函数,使得 cnt的值增加到 4,并输出 4;然后 delete pT4; delete pT3;调用两次析构函数, cnt的值变为 2,并输出 2。 44 【正确答案】 TestClass1 TcstClass2 【试题解析】 主函数中首先定义 TestClass2对象 obj,然后执行 “f(obj);”。 “void f(TestClass1b.fun2();”语句中 fun中参数为 TestClass1类型的对象b,其中调用 fun1()和 fun2()。基类 TestClass1中的 fun2()为虚函数,所以派生类中的 fun2也是虚函数,所以输出为调用 TestClass1中的 fun1, TestClass2中的fun

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

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

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