【计算机类职业资格】二级C++-83及答案解析.doc

上传人:fatcommittee260 文档编号:1324155 上传时间:2019-10-17 格式:DOC 页数:16 大小:59.50KB
下载 相关 举报
【计算机类职业资格】二级C++-83及答案解析.doc_第1页
第1页 / 共16页
【计算机类职业资格】二级C++-83及答案解析.doc_第2页
第2页 / 共16页
【计算机类职业资格】二级C++-83及答案解析.doc_第3页
第3页 / 共16页
【计算机类职业资格】二级C++-83及答案解析.doc_第4页
第4页 / 共16页
【计算机类职业资格】二级C++-83及答案解析.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、二级 C+-83 及答案解析(总分:71.00,做题时间:90 分钟)一、选择题(总题数:20,分数:37.00)1.下选项中不属于 c+的类型的是 _。(分数:2.00)A.signed Short intB.unsigned long intC.unsigned intD.long short2.设有关键码序列(16,9,4,25,15,2,13,18,17,5,8,24),要按关键码值递增的次序排序,采用初始增量为4 的希尔排序法,一趟扫描后的结果为 _ 。(分数:2.00)A.(15,2,4,18,16,5,8,24,17,9,13,25)B.(2,9,4,25,15,16,13,18

2、,17,5,8,14)C.(9,4,16,15,2,13,18,17,5,8,24,15)D.(9,16,4,25,2,15,13,18,5,17,8,24)3.下列程序的输出结果是 main() int x1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; cout“a“a“b“bendl; (分数:2.00)A.a2,b=1B.a=1,b1C.a1,b=0D.a=2,b=24.有如下类声明: class Foo int bar; ; 则 Foo 类的成员 bar 是(分数:2.00)A.公有数据成员B.公有成员函数C.私有

3、数据成员D.私有成员函数5.对下列程序段的描述正确的是( #include iostream.h int Fun(int,int) void main() cout Fun(5,50)endl; int Fun(int x,int y) return x*x+y*y; (分数:2.00)A.该函数定义正确,但函数调用方式错误B.该函数调用方式正确,但函数定义错误C.该函数定义和调用方式都正确D.该函数定义和调用方式都错误6.通过公有派生类的对象,只能访问基类成员中的 _ 。(分数:2.00)A.公有成员B.私有成员C.保护成员D.公有成员和保护成员7.C语言类体系中,不能被派生类继承的有(分数

4、:2.00)A.转换函数B.构造函数C.虚函数D.静态成员函数8.下面程序的输出结果为 _ 。 #includeiostream.h class TestClass public: TestClass ()val+; static int val; ; int TestClass:val=0; void main() TestClass cs1; coutcs1.val“; TestClass cs2; TestClass cs3,cs4; coutcs2.valendl; (分数:2.00)A.03B.13C.14D.249.在下列程序画线处填入的正确语句是 _ 。 #include ios

5、tream using namespace std; class Base public: void fun() cout“Base:fun“,end1; ; class Derived:public Base void fun() _ /显式调用基类的函数 fun() cout“Derived:fun“ end1; ;(分数:1.00)A.fun();B.Base.fun();C.Base:fun();D.Base-fun();10.有如下类定义: class Point private: static int how_many; ; _how_many=0; 要初始化 Point 类的静态

6、成员 how_many,下画线处应填入的内容是_。(分数:1.00)A.intB.static intC.int Point:D.static int Point:11.在软件测试设计中,软件测试的主要目的是 _ 。(分数:2.00)A.实验性运行软件B.证明软件正确C.演示软件的正确功能D.发现软件错误而执行程序12.决定 C语言中函数的返回值类型的是(分数:2.00)A.return 语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型13.进行文件操作需包含的头文件是 _ 。(分数:1.00)A.fstream.hB.os

7、tream.hC.stdio.hD.stdiB.h14.有如下程序: #include iostream.h using namespace std; class Demo public: Demo() cout“defautt constmctor/n“; Demo(const Demo ; Demo userCode (Demo b)Demo c(b);return c; int main() Demo a,d; cout“calling userCode()/n“; d=userCode(a); return 0; 执行上面程序的过程中,构造函数 Demo()和 Demo(const D

8、emo classT219.以下非法的赋值语句是(分数:2.00)A.n=(i=2,+i);B.j+;C.+(i+1);D.x=j0;20.下列关于线性链表的描述中正确的是 _ 。(分数:2.00)A.存储空间不一定连续,且各元素的存储顺序是任意的B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且各前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的二、填空题(总题数:17,分数:34.00)21.头文件 1 中包含了处理用户控制的文件操作所需的信息。 (分数:2.00)22.程序的测试方法分为静态分析和动态分析。使用测试用例在计算机

9、上运行程序,使程序在运行过程中暴露错误,这种方法称为 _ 1_ 。 (分数:2.00)23.在一个容量为 25 的循环队列中,若头指针 front=16,尾指针 rear=9,则该循环队列中共有 1 个元素。(分数:2.00)24.下列程序的输出结果是 1。 #includestdio.h #define N 5 int fun(int *s,int a,int n) int j; *s=a;j=n; while(a!=sj)j-; return j; void main() int sN+1;int k; for(k=1;k=N;k+)sk=k+1; printf(“%6d/n“,fun(s

10、,4,N); (分数:2.00)25.下列程序的输出结果是 _ 1_ 。 #includeiostream. h void main() double d=3.2; int x,y; x=1.2; y=(x+ 3.8)/5.0; couty*dend1; (分数:2.00)26.定义一个函数时,若只允许函数体访问形参的值而不允许修改它的值,则应把该形参声明为 _ 1_ 类型。 (分数:2.00)27.设有以下程序: #includeiostream using namespace std; int main() int a,b,k:4,m=6,*p1=) ; class Derived: pu

11、blic Base public: void func(double d)cout“class Derived:“dendl; ; void main( ) Base a,*p=a; Derived b; p= (*p).func(3.3); (分数:2.00)31.下面程序的输出结果为 _ 1_ 。 #include iostream using namespace std; void initialize(int printNo,int state=0); void initialize(int printNo=1,int state); int main() initialize();

12、return 0; void initialize(int printNo, int state) coutprintNo“,“stateend1; (分数:2.00)有如下两个类声明 class AA public: int m; ; class BB: protected AA int n; ; 在类 BB 中,数据成员 m 的访问属性是 1,数据成员 n 的访问属性是 2。(分数:4.00)填空项 1:_填空项 1:_33.在 C+语言中,一个 short 型数据在内存中占用 2 个字节,则 unsigned short 型数据的取值范围为 _ 1_ 。 (分数:2.00)34.在面向对

13、象方法中,信息隐蔽是通过对象的 _ 1_ 来实现的。 (分数:1.00)35.诊断和改正程序中错误的工作通常称为 1。 (分数:2.00)36.设置虚基类的目的是 1,通过 2 表示虚基类。 (分数:2.00)37.在下面横线上填上适当的语句,完成程序。 #includeiostream using namespace std; class Base int x; public: Base(int i)xi; Base() ); class Derived:public Base public: 1/完成类 Derive 构造函数的定义 ; iht main() Derived obj; re

14、turn 0; 在横线处应填入的语句是 2。 (分数:2.00)二级 C+-83 答案解析(总分:71.00,做题时间:90 分钟)一、选择题(总题数:20,分数:37.00)1.下选项中不属于 c+的类型的是 _。(分数:2.00)A.signed Short intB.unsigned long intC.unsigned intD.long short 解析:2.设有关键码序列(16,9,4,25,15,2,13,18,17,5,8,24),要按关键码值递增的次序排序,采用初始增量为4 的希尔排序法,一趟扫描后的结果为 _ 。(分数:2.00)A.(15,2,4,18,16,5,8,24

15、,17,9,13,25) B.(2,9,4,25,15,16,13,18,17,5,8,14)C.(9,4,16,15,2,13,18,17,5,8,24,15)D.(9,16,4,25,2,15,13,18,5,17,8,24)解析:3.下列程序的输出结果是 main() int x1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; cout“a“a“b“bendl; (分数:2.00)A.a2,b=1 B.a=1,b1C.a1,b=0D.a=2,b=2解析:解析 本题主要考查 switch 语句中,break 语句的作用。

16、每个 case 语句后面如果没有 break 语句,则程序的执行流程将发生变化,即顺序执行各个 case 语句。这种情况一般不符合程序员的设计思路,但也可以用这种特性完成特殊控制。4.有如下类声明: class Foo int bar; ; 则 Foo 类的成员 bar 是(分数:2.00)A.公有数据成员B.公有成员函数C.私有数据成员 D.私有成员函数解析:解析 本题考核类的定义。在定义类的成员变量时,一般都会加上关键字来修饰其访问权限,其缺省值为私有。5.对下列程序段的描述正确的是( #include iostream.h int Fun(int,int) void main() cou

17、t Fun(5,50)endl; int Fun(int x,int y) return x*x+y*y; (分数:2.00)A.该函数定义正确,但函数调用方式错误B.该函数调用方式正确,但函数定义错误C.该函数定义和调用方式都正确 D.该函数定义和调用方式都错误解析:6.通过公有派生类的对象,只能访问基类成员中的 _ 。(分数:2.00)A.公有成员 B.私有成员C.保护成员D.公有成员和保护成员解析:7.C语言类体系中,不能被派生类继承的有(分数:2.00)A.转换函数B.构造函数 C.虚函数D.静态成员函数解析:解析 派生类对象的数据结构是由基类中说明的数据成员和派生类中说明的数据成员共

18、同构成,所以不能继承基类的构造函数,必须重新定义。8.下面程序的输出结果为 _ 。 #includeiostream.h class TestClass public: TestClass ()val+; static int val; ; int TestClass:val=0; void main() TestClass cs1; coutcs1.val“; TestClass cs2; TestClass cs3,cs4; coutcs2.valendl; (分数:2.00)A.03B.13C.14 D.24解析:解析 由主函数 main 入手,定义 TestClass 类的对象 cs1

19、,执行 cs1.val,其中 val 为静态变量,根据“int TestClass:val=0;”初始化,TestClass 中的 TestClass ()val+;构造函数执行后,val值为 1。主函数中接着定义对象 cs2,cs3,cs4。执行“coutcs2.valendl;”中的 val 值为 4。9.在下列程序画线处填入的正确语句是 _ 。 #include iostream using namespace std; class Base public: void fun() cout“Base:fun“,end1; ; class Derived:public Base void

20、fun() _ /显式调用基类的函数 fun() cout“Derived:fun“ end1; ;(分数:1.00)A.fun();B.Base.fun();C.Base:fun(); D.Base-fun();解析:解析 本题主要考核作用域分辨符的使用。作用域分辨符“:”可以用来限定要访问的成员所在类的名称。10.有如下类定义: class Point private: static int how_many; ; _how_many=0; 要初始化 Point 类的静态成员 how_many,下画线处应填入的内容是_。(分数:1.00)A.intB.static intC.int Poi

21、nt: D.static int Point:解析:解析 本题考查静态数据成员,静态数据成员可以初始化,但只能在类体外进行初始化,其一般形式为:数据类型类名:静态数据成员名=初值。所以本题答案为 C。11.在软件测试设计中,软件测试的主要目的是 _ 。(分数:2.00)A.实验性运行软件B.证明软件正确C.演示软件的正确功能D.发现软件错误而执行程序 解析:解析 使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。12.决定 C语言中函

22、数的返回值类型的是(分数:2.00)A.return 语句中的表达式类型B.调用该函数时系统随机产生的类型C.调用该函数时的主调用函数类型D.在定义该函数时所指定的数据类型 解析:解析 C语言中,在定义该函数时所指定的数据类型决定函数的返回值类型。13.进行文件操作需包含的头文件是 _ 。(分数:1.00)A.fstream.h B.ostream.hC.stdio.hD.stdiB.h解析:14.有如下程序: #include iostream.h using namespace std; class Demo public: Demo() cout“defautt constmctor/n

23、“; Demo(const Demo ; Demo userCode (Demo b)Demo c(b);return c; int main() Demo a,d; cout“calling userCode()/n“; d=userCode(a); return 0; 执行上面程序的过程中,构造函数 Demo()和 Demo(const Demo classT2解析:19.以下非法的赋值语句是(分数:2.00)A.n=(i=2,+i);B.j+;C.+(i+1); D.x=j0;解析:解析 本题其实是考查各级运算符的优先级的。选项 A 赋值符号右侧为逗号表达式,其取值为最后一项表达式的值;

24、选项 B 隐含表示为 j=j+1,这是很常用的一种赋值表达式。选项 D 赋值符号右侧为逻辑表达式,其值为 1 或 0,可以赋值给变量 x。将选项 C 展开为 i+1=i+1+1,这是错误的。20.下列关于线性链表的描述中正确的是 _ 。(分数:2.00)A.存储空间不一定连续,且各元素的存储顺序是任意的 B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且各前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的解析:解析 线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。二、填空题(总题数:1

25、7,分数:34.00)21.头文件 1 中包含了处理用户控制的文件操作所需的信息。 (分数:2.00)解析:fstream.h22.程序的测试方法分为静态分析和动态分析。使用测试用例在计算机上运行程序,使程序在运行过程中暴露错误,这种方法称为 _ 1_ 。 (分数:2.00)解析:动态分析解析 程序的测试方法分为静态分析和动态分析。使用测试用例在计算机上运行程序,使程序在运行过程中暴露错误,这种方法称为动态分析。23.在一个容量为 25 的循环队列中,若头指针 front=16,尾指针 rear=9,则该循环队列中共有 1 个元素。(分数:2.00)解析:18 解析 设循环队列的容量为 n。

26、若 rearfront,则循环队列中的元素个数为 rear-front; 若 rearfront,则循环队列中的元素个数为 n+(rear-front)。 题中,front=16,rear=9,即 rearfront,所以,循环队列中的元素个数为 n+(rear-front)=25+(9-16)=18。24.下列程序的输出结果是 1。 #includestdio.h #define N 5 int fun(int *s,int a,int n) int j; *s=a;j=n; while(a!=sj)j-; return j; void main() int sN+1;int k; for(

27、k=1;k=N;k+)sk=k+1; printf(“%6d/n“,fun(s,4,N); (分数:2.00)解析:3解析 本题考查函数的调用及其相关应用,首先在 for 循环中将数组 s6初始化为0,2,3,4,5,6。调用函数 fun(s,4,5),第一条语句将 a0置为 4,j 置为 5,while 循环从 a5开始向前,直到 s3与 a 相等,跳出循环,故函数值为 3。25.下列程序的输出结果是 _ 1_ 。 #includeiostream. h void main() double d=3.2; int x,y; x=1.2; y=(x+ 3.8)/5.0; couty*dend1

28、; (分数:2.00)解析:026.定义一个函数时,若只允许函数体访问形参的值而不允许修改它的值,则应把该形参声明为 _ 1_ 类型。 (分数:2.00)解析:const解析 用 const 修饰的参数为常类型参数。27.设有以下程序: #includeiostream using namespace std; int main() int a,b,k:4,m=6,*p1=) ; class Derived: public Base public: void func(double d)cout“class Derived:“dendl; ; void main( ) Base a,*p=a;

29、 Derived b; p= (*p).func(3.3); (分数:2.00)解析:class Base:3解析 题中基类和派生类中有同名函数,但是参数不同。派生关系中,只有在函数类型、函数名和参数个数、参数类型完全相同时,才表现多态性。本题中参数不同,编译器便认为是两个完全不同的函数。通过基类的指针指向派生类对象时,该指针只能访问到派生类中具有多态性的成员函数,而与基类无关的函数是无法通过基类指针来访问的。故调用的是 base 类的 func 函数,系统将 3.3 强制转化为整型数 3。如果将派生类中的 func 的形参改为 int 型,则执行的就会是派生类的 func 函数,此时表现为多

30、态。31.下面程序的输出结果为 _ 1_ 。 #include iostream using namespace std; void initialize(int printNo,int state=0); void initialize(int printNo=1,int state); int main() initialize(); return 0; void initialize(int printNo, int state) coutprintNo“,“stateend1; (分数:2.00)解析:1,0解析 本题考核带有缺省值的函数,本题中函数 initialize()进行了两次

31、函数原型的说明,使本来不带默认值的形参带上默认值。由于主函数中调用 initialize()时没有给定实参,所以函数自动调用其参数缺省值。输出 1 和 0。有如下两个类声明 class AA public: int m; ; class BB: protected AA int n; ; 在类 BB 中,数据成员 m 的访问属性是 1,数据成员 n 的访问属性是 2。(分数:4.00)填空项 1:_ (正确答案:*unknown)填空项 1:_ (正确答案:*unknown)解析:私有成员解析 在派生类 BB 中,数据成员 m 是从基类 AA 保护继承而来,所以其属性为保护成员。在类的定义中,

32、没有显式定义的数据成员其属性为私有成员。33.在 C+语言中,一个 short 型数据在内存中占用 2 个字节,则 unsigned short 型数据的取值范围为 _ 1_ 。 (分数:2.00)解析:02 16 -1 解析 unsigned short 是无符号整型,最小值为 0,最大值为 2(上标)16-1。34.在面向对象方法中,信息隐蔽是通过对象的 _ 1_ 来实现的。 (分数:1.00)解析:封装性解析 封装性是指从外面只能看到对象的外部特性,即只需知道数据的取值范围和可以对该数据施加的操作,根本无须知道数据的具体结构以及实现操作的算法。对象的内部,即处理能力的实现和内部状态,对外

33、是不可见的。因此,可以看出信息隐蔽是通过对象的封装性实现的。35.诊断和改正程序中错误的工作通常称为 1。 (分数:2.00)解析:调试或者程序调试或者软件调试或者 Debug 或者调试程序或者调试软件解析 调试的相关内容。36.设置虚基类的目的是 1,通过 2 表示虚基类。 (分数:2.00)解析:解决二义性问题 用关键字 virtual37.在下面横线上填上适当的语句,完成程序。 #includeiostream using namespace std; class Base int x; public: Base(int i)xi; Base() ); class Derived:public Base public: 1/完成类 Derive 构造函数的定义 ; iht main() Derived obj; return 0; 在横线处应填入的语句是 2。 (分数:2.00)解析:Derived(int i;Base(i)。解析 程序中,类 Derived 是基类 Base 的公有派生。在类 Derived的构造函数应该包括调用基类构造函数使基类的数据成员得以初始化,

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

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

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