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

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

1、二级 C+笔试-419 及答案解析(总分:85.00,做题时间:90 分钟)一、选择题(总题数:35,分数:61.00)1.下列有关继承和派生的叙述中,正确的是A) 派生类不能访问基类的保护成员B) 作为虚基类的类不能被实例化C) 派生类应当向基类的构造函数传递参数D) 虚函数必须在派生类中重新实现(分数:2.00)A.B.C.D.2.是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。A) 模板 B) 类 C) 对象 D) 函数(分数:2.00)A.B.C.D.3.将 E-R图转换到关系模式时,实体与联系都可以表示成A) 属性 B) 关系 C) 键 D) 域(分数:2

2、.00)A.B.C.D.4.对长度为 n的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。A) 125 B) n/2 C) n D) n+1(分数:2.00)A.B.C.D.5.字面常量 42、4.2、42L 的数据类型分别是 A) long、double、int B) long、float、int C) int、double、long D) int、float、long(分数:2.00)A.B.C.D.6.下列成对的表达式中,运算符“/”的意义相同的一对是( )。A) 8/3和 8.0/3.0 B) 8/3.0和 8/3C) 8.0/3和 8/3 D) 8.0/3.0和 8.0/3(

3、分数:2.00)A.B.C.D.7.关系表中的每一横行称为一个A) 元组 B) 字段 C) 属性 D) 码(分数:1.00)A.B.C.D.8.下列运算符中不能在 C中重载的是A) ?: B) +C) - D) =(分数:1.00)A.B.C.D.9.下面的描述中,正确的是( )。A) virtual可以用来声明虚函数B) 含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类 C) 即使基类的构造函数没有参数,派生类也必须建立构造函数D) 静态数据成员可以通过成员初始化列表宋初始化(分数:1.00)A.B.C.D.10.下面对静态数据成员的描述中,正确的是( )。A) 静态数据成员可以在类体

4、内进行初始化B) 静态数据成员不可以通过类的对象调用C) 静态数据成员不能受 private(私有)控制符的作用D) 静态数据成员可以直接通过类名调用(分数:1.00)A.B.C.D.11.下列叙述中正确的是A)线性表是线性结构 B)栈与队列是非线性结构C)线性链表是非线性结构 D)二叉树是线性结构(分数:1.00)A.B.C.D.12.下列叙述中正确的是( )。A) 在面向对象的程序设计中,各个对象之间具有密切的联系B) 在面向对象的程序设计中,各个对象都是公用的C) 在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D) 上述三种说法都不对(分数:2.00)A.B.C.D.13.类

5、的析构函数的作用是A) 一般成员函数的初始化 B) 类的初始化C) 对象的初始化 D) 删除类创建的对象(分数:2.00)A.B.C.D.14.在最坏情况下,冒泡排序所需要的比较次数为A) n/2 B) (n+1)/2 C) n(n-1)/2 D) n(n+1)/2(分数:2.00)A.B.C.D.15.在 C语言中,不合法的实型数据是A) 0.123 B) 123e3 C) 2.1e3.5 D) 123.0(分数:2.00)A.B.C.D.16.下列关于运算符重载的描述中, _ 是正确的。A) 运算符重载可以改变操作数的个数B) 运算符重载可以改变优先级C) 运算符重载可以改变结合性D) 运

6、算符重载不可以改变语法结构(分数:2.00)A.B.C.D.17.下列叙述中正确的是A) 软件交付使用后还需要进行维护B) 软件一旦交付使用就不需要再进行维护C) 软件交付使用后其生命周期就结束D) 软件维护是指修复程序中被破坏的指令(分数:2.00)A.B.C.D.18.定义如下一维数组:int a5,*p;,则下列描述错误的是( )。A) 表达式 p=p+l是合法的B) 表达式 a=a+l是合法的C) 表达式 p-a是合法的 D) 表达式 a+2是合法的(分数:1.00)A.B.C.D.19.首先访问该结点,然后访问结点的左子树,最后访问结点的右子树,这种遍历方式称为( )。A) 前序遍历

7、 B) 中序遍历 C) 后序遍历 D) 顺序遍历(分数:2.00)A.B.C.D.20.下列说法正确的是A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C)类的内联函数必须在类体内定义D)类的内联函数必须在类体外通过加关键字 inline定义(分数:1.00)A.B.C.D.21.若有一个 MyClass类,则执行语句 MyClass a,b(2),*p;后,自动调用该类的构造函数 ( )次。A) 2 B) 3C) 4 D) 5(分数:1.00)A.B.C.D.22.数据库设计包括两个方面的设计内容,它们是( )。

8、A) 概念设计和逻辑设计 B) 模式设计和内模式设计C) 内模式设计和物理设计 D) 结构特性设计和行为特性设计(分数:2.00)A.B.C.D.23.以下叙述中正确的是_。A) 预处理命令行必须位于 C源程序的起始位置B) 在 C语言中,预处理命令行都以“#”开头C) 每个 C程序必须在开头包含预处理命令行:#includeD) C语言的预处理不能实现宏定义和条件编译的功能(分数:2.00)A.B.C.D.24.某类中有一个无参且无返回值的常成员函数 Show,则正确的 Show函数原型是A) const void Show( );B) void const Show( );C) void

9、Show( )const;D) void Show(const);(分数:2.00)A.B.C.D.25.关于 this指针的说法不正确的是( )。A) 不能在程序中修改 this指针B) this指针可以给其他指针赋值,但不能修改 this指针C) 静态成员函数中没有 this指针D) this指针可以被赋值(分数:2.00)A.B.C.D.26.执行语句序列ofstream outfile(“data.dat“);if(.)cout“ok“;else cout“fail“;后,如果文件打开成功,显示“ok”,否则显示“fail”。由此可知,上面 if语句的“.”处的表达式是( )。A) o

10、utfile.fail()或 outffle B) outfile.good()或!outfileC) outfile.good()或 outfile D) outfile.fail()或!outfile(分数:2.00)A.B.C.D.27.下列工具中为需求分析常用工具的是( )。A) PAD B) PFD C) NS D) DFD(分数:2.00)A.B.C.D.28.下面程序的运行结果为( )。#include iostreamusing namespace std;void main( ) for(int a =0,x =0; !x a + );cout a endl;A) 0 B)

11、1 C) 10 D) 11(分数:2.00)A.B.C.D.29.下列程序的输出结果为( )。#includeiostream.h)class TestClasspublic:TestClass()val+;static,int val;int TestClass:val0;void main()TestClass cs1;coutcsl.val“;TestClass cs2;TestClass cs3,cs4;coutcs2.valend1;A) 03 B) 13 C) 14 D) 24(分数:2.00)A.B.C.D.30.下列语句段输出字符*的个数为( )。int i=100;while

12、(1)i-;if(i=0) break;cout*;A) 101个 B) 100 个 C) 99 个 D) 98 个(分数:2.00)A.B.C.D.31.有如下类定义: class Foo public: Foo(int v):value(v) / Foo() / private: Foo( ) / int value=0; / ; 其中存在语法错误的行是 A) B) C) D) (分数:2.00)A.B.C.D.32.有如下程序:#include iostream#include iomanipusing namespace std;int main()cout.fill(*);coutl

13、eftsetw(4)123 “OK“end1;return 0;执行这个程序的输出结果是( )。A) 123*OK B) 123*OK* C) *123OK D) *123*OK(分数:2.00)A.B.C.D.33.编译时的多态性可以通过使用( )获得。A) 虚函数和指针 B) 重载函数 C) 虚函数和对象 D) 虚函数和引用(分数:2.00)A.B.C.D.34.完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是A) 黑箱测试法 B) 白箱测试法 C) 错误推测法 D) 安装测试法(分数:1.00)A.B.C.D.35.关于数据库系统三级模式的说法,下列( )是

14、正确的。A) 外模式、概念模式、内模式都只有一个B) 外模式有多个,概念模式和内模式只有一个C) 外模式只有一个,概念模式和内模式有多个D) 3个模式中,只有概念模式才是真正存在的(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:24.00)36.假定动态分配一个类型为 Worker的具有 n个元素的数组,并由 P指向这个动态数组,如果要释放这个数组,则使用的语句为 1。(分数:2.00)填空项 1:_37.有如下定义语句:MyClass*p10;当类对象数组指针 p离开它的作用域时,系统自动调用析构函数_次。(分数:1.00)填空项 1:_38.语句 int *i;i=new

15、 int10;,释放指针 i的语句是 1。(分数:2.00)填空项 1:_39.如果一个模板声明时有类型形参表,则多个参数之间必须使用 1 隔开,每个参数都必须重复使用关键字 2。(分数:1.00)填空项 1:_40.软件工程包括三个要素,分别为方法、工具和 1。(分数:2.00)填空项 1:_41.在 C+语言中,一个函数的定义前加上关键字 1 时,该函数就声明为内联函数。(分数:2.00)填空项 1:_42.重载的流运算符函数经常定义为类的 1 函数。(分数:2.00)填空项 1:_43.重载的流运算符函数经常定义为类的 1 函数。(分数:2.00)填空项 1:_44.下面程序的输出结果是

16、_。#includeiostream.hvoid main()inta61,2,3,4,5,6;for(int i0;i5;i+)coutai“;coutendl;(分数:2.00)填空项 1:_45.C+本身没有定义 I/O操作,但 I/0操作包含在 C+实现中。C+标准库 iostream提供了基本的 I/O类。I/O操作分别由类 istream和工 1 提供。(分数:2.00)填空项 1:_46.有以下程序:#include iostreamusing namespace std;class Baseprivate:int a,b;public:Base(int x, int y)a=x

17、;b=y;void Show()couta , bend1;class Derived : public Baseprivate:int c;public:Derived(int x, int y, int z) : Base(x,y),c(z) void Show()coutcend1;int main()Base b(50,50),*pb;Derived d(10,20,30);pb=pb-Show();return 0;运行后的打印结果为_(分数:1.00)填空项 1:_47.如果表达式-x 中的“-”是重载的类运算符,采用运算符函数调用格式,及表达式还可以表示为 1。(分数:1.00)

18、填空项 1:_48.在下面程序的横线处填上适当的内容,使程序执行后的输出结果果为 1/2005。#includeiostmamusing namespace std;class Datepublic:Date(int m=1,int y=0):month(m),year(y)void Print()coutmonth“/“yearendl;operator+(const Dateprivate:int month,year;operator+(const Dateyear=d1.year+d2.year;month=d1.month+d2.month;year+=(month-1)/12;mo

19、nth=(month-1)%12+1;return Date(month,year);void main()Date d1(3,2004),d2,d3(10);d2=d3+d1;d2.Print();(分数:1.00)填空项 1:_49.下列程序的输出结果为_。#includeiostream.hvoid Func(char ch)switch(ch)case A:case a:cout“优秀“endl;case B:case b:cout“良好“endl;break;case C:case c:cout“及格“endl;break;default:cout“不及格“endl;void mai

20、n( )char ch1=bFunc(ch1);Func(A);(分数:2.00)填空项 1:_50.耦会和内聚是评价模块独立性的两个主要标准,其中 1 反映了模块内各成分之间的联系。(分数:1.00)填空项 1:_二级 C+笔试-419 答案解析(总分:85.00,做题时间:90 分钟)一、选择题(总题数:35,分数:61.00)1.下列有关继承和派生的叙述中,正确的是A) 派生类不能访问基类的保护成员B) 作为虚基类的类不能被实例化C) 派生类应当向基类的构造函数传递参数D) 虚函数必须在派生类中重新实现(分数:2.00)A.B.C. D.解析:解析 本题考查的知识点是:继承和派生。无论使

21、用哪种继承方式,派生类中的成员都不能访问基类中的私有成员,而可以访问基类中的公有成员和保护成员,因此选项 A) 不正确。在 C+中,只有抽象类不能被实例化,而虚基类不一定非得是抽象类,所以选项 B) 不正确。在派生类中可以重新定义从基类继承下来的虚函数,也可以不重新定义,因此选项 D) 不正确。故本题应该选择 C。2.是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。A) 模板 B) 类 C) 对象 D) 函数(分数:2.00)A. B.C.D.解析:3.将 E-R图转换到关系模式时,实体与联系都可以表示成A) 属性 B) 关系 C) 键 D) 域(分数:2.00)A

22、.B. C.D.解析:解析 数据库逻辑设计的主要工作是将 E-R图转换成指定 RDBMS中的关系模式。首先,从 E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R 图中的属性也可以转换成关系的属性。实体集也可以转换成关系。4.对长度为 n的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。A) 125 B) n/2 C) n D) n+1(分数:2.00)A.B.C. D.解析:解析 对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,

23、这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为 n。5.字面常量 42、4.2、42L 的数据类型分别是 A) long、double、int B) long、float、int C) int、double、long D) int、float、long(分数:2.00)A.B.C.D. 解析:解析 根据题干可知,分别为整型、浮点型和长整型。6.下列成对的表达式中,运算符“/”的意义相同的一对是( )。A) 8/3和 8.0/3.0 B) 8/3.0和 8/3C) 8.0/3和 8/3 D) 8.0/3.0和 8.0/3(分数:2.00)A.B.C.D. 解析:7.关系表中的

24、每一横行称为一个A) 元组 B) 字段 C) 属性 D) 码(分数:1.00)A. B.C.D.解析:解析 关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为表中的一个属性,对应表中的一个字段;在二维表中凡能惟一标识元组的最小属性集称为该表的键或码。8.下列运算符中不能在 C中重载的是A) ?: B) +C) - D) =(分数:1.00)A. B.C.D.解析:解析 本题考核运算符的重载。C+中,“:、*、.、?:”这 4个运算符不能重载。9.下面的描述中,正确的是( )。A) virtual可以用来声明虚函数B) 含有纯虚函数的类是不可以用来创建对象的,因为它是虚基类 C) 即使

25、基类的构造函数没有参数,派生类也必须建立构造函数D) 静态数据成员可以通过成员初始化列表宋初始化(分数:1.00)A. B.C.D.解析:10.下面对静态数据成员的描述中,正确的是( )。A) 静态数据成员可以在类体内进行初始化B) 静态数据成员不可以通过类的对象调用C) 静态数据成员不能受 private(私有)控制符的作用D) 静态数据成员可以直接通过类名调用(分数:1.00)A.B.C.D. 解析:解析 对于选项 A,C+规定对静态数据成员的初始化应该在类体外进行初始化。所以选项 A是错误的。对于 B选项,C+规定静态数据成员可由任意访问权限许可的函数或对象访问,所以选项 B是错误的。对

26、于选项 C,在 C+中,静态数据成员也可以定义为私有的静态数据成员,所以选项 C的描述是错误的。对于选项 D,在 C+中,静态数据成员是类的所有对象共享的成员,即可以通过类名访问,也可以通过对象访问。但通过类名访问更方便、更高效。所以选项 D的描述是正确的。11.下列叙述中正确的是A)线性表是线性结构 B)栈与队列是非线性结构C)线性链表是非线性结构 D)二叉树是线性结构(分数:1.00)A. B.C.D.解析:解析 线性表是一种线性结构,数据元素在线性表中的位置只取决于它们自己的序号,即数据元素之间的相对位置是线性的;栈、队列、线性链表实际上也是线性表,故也是线性结构;树是一种简单的非线性结

27、构。12.下列叙述中正确的是( )。A) 在面向对象的程序设计中,各个对象之间具有密切的联系B) 在面向对象的程序设计中,各个对象都是公用的C) 在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D) 上述三种说法都不对(分数:2.00)A.B.C. D.解析:13.类的析构函数的作用是A) 一般成员函数的初始化 B) 类的初始化C) 对象的初始化 D) 删除类创建的对象(分数:2.00)A.B.C.D. 解析:解析 析构函数就是用来释放对象的,它的调用完成之后,对象也就消失了,相应的内存空间也被释放了。14.在最坏情况下,冒泡排序所需要的比较次数为A) n/2 B) (n+1)/2

28、C) n(n-1)/2 D) n(n+1)/2(分数:2.00)A.B.C. D.解析:解析 只能死记公式。15.在 C语言中,不合法的实型数据是A) 0.123 B) 123e3 C) 2.1e3.5 D) 123.0(分数:2.00)A.B.C. D.解析:解析 在 C语言中,实数有两种形式表示,即十进制数形式和指数形式,在指数形式中, e3、2.1e3.5、.e3、e 等都是不合法的指数形式。再如 123e3 或 123E3都代表 123乘以 10的 3次方。注意,字母 e的前面必须有数字,且 e的后面必须是整数。16.下列关于运算符重载的描述中, _ 是正确的。A) 运算符重载可以改变

29、操作数的个数B) 运算符重载可以改变优先级C) 运算符重载可以改变结合性D) 运算符重载不可以改变语法结构(分数:2.00)A.B.C.D. 解析:17.下列叙述中正确的是A) 软件交付使用后还需要进行维护B) 软件一旦交付使用就不需要再进行维护C) 软件交付使用后其生命周期就结束D) 软件维护是指修复程序中被破坏的指令(分数:2.00)A. B.C.D.解析:解析 维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段。软件工程学的目的就在于提高软件的可维护性,同时也要设法降低维护的代价。软件维护通常有以下四类;为纠正使用中出现的错误而进行的改正性维护;为适应环境变化而进行的

30、适应性维护;为改进原有软件而进行的完善性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。由此可知,本题中选项 B、C、D 中的说法都是错误的。18.定义如下一维数组:int a5,*p;,则下列描述错误的是( )。A) 表达式 p=p+l是合法的B) 表达式 a=a+l是合法的C) 表达式 p-a是合法的 D) 表达式 a+2是合法的(分数:1.00)A.B. C.D.解析:19.首先访问该结点,然后访问结点的左子树,最后访

31、问结点的右子树,这种遍历方式称为( )。A) 前序遍历 B) 中序遍历 C) 后序遍历 D) 顺序遍历(分数:2.00)A. B.C.D.解析:解析 前序遍历序列的顺序是先根、再左子树、最后右子树;中序遍历序列的顺序是先左子树、再根、最后右子树;后序遍历序列的顺序是先左子树、再右子树、最后根。20.下列说法正确的是A)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C)类的内联函数必须在类体内定义D)类的内联函数必须在类体外通过加关键字 inline定义(分数:1.00)A.B. C.D.解析:解析:本题考查的是内联函

32、数的定义,引入内联函数是为了解决程序中函数调用的效率问题,是以目标代码的增加为代价换取时间的节省;一般函数在运行时被调用,而调用的内联函数在编译时就被替代了,如果不加 inline关键字,则编译器会将在类说明部分定义的任何函数都被认定为内联函数。21.若有一个 MyClass类,则执行语句 MyClass a,b(2),*p;后,自动调用该类的构造函数 ( )次。A) 2 B) 3C) 4 D) 5(分数:1.00)A. B.C.D.解析:解析 本题考核构造函数的调用。C在创建一个对象时,会自动调用类的构造函数,在构造函数中可以执行初始化成员变量的操作。语句 MyClass a,b(2),*p

33、;创建了两个对象 a、b 和一个对象指针。在创建 a和 b对象时系统会调用类的构造函数。但在创建对象指针 p时,不调用类的构造函数,因为指针p本身不定义类对象,而是定义了 p可以指向一个 MyClass的对象。22.数据库设计包括两个方面的设计内容,它们是( )。A) 概念设计和逻辑设计 B) 模式设计和内模式设计C) 内模式设计和物理设计 D) 结构特性设计和行为特性设计(分数:2.00)A. B.C.D.解析:解析 数据库设计包括数据库概念设计和数据库逻辑设计两个方面的内容。23.以下叙述中正确的是_。A) 预处理命令行必须位于 C源程序的起始位置B) 在 C语言中,预处理命令行都以“#”

34、开头C) 每个 C程序必须在开头包含预处理命令行:#includeD) C语言的预处理不能实现宏定义和条件编译的功能(分数:2.00)A.B. C.D.解析:24.某类中有一个无参且无返回值的常成员函数 Show,则正确的 Show函数原型是A) const void Show( );B) void const Show( );C) void Show( )const;D) void Show(const);(分数:2.00)A.B.C. D.解析:25.关于 this指针的说法不正确的是( )。A) 不能在程序中修改 this指针B) this指针可以给其他指针赋值,但不能修改 this指针

35、C) 静态成员函数中没有 this指针D) this指针可以被赋值(分数:2.00)A.B.C.D. 解析:解析 this 指针不能在程序中修改,不能被幅值;静态成员没有 this指针,因为类中只有一个静态成员函数实例,使用 this指针无意义。26.执行语句序列ofstream outfile(“data.dat“);if(.)cout“ok“;else cout“fail“;后,如果文件打开成功,显示“ok”,否则显示“fail”。由此可知,上面 if语句的“.”处的表达式是( )。A) outfile.fail()或 outffle B) outfile.good()或!outfileC

36、) outfile.good()或 outfile D) outfile.fail()或!outfile(分数:2.00)A.B.C. D.解析:27.下列工具中为需求分析常用工具的是( )。A) PAD B) PFD C) NS D) DFD(分数:2.00)A.B.C.D. 解析:解析 需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、NS(盒式图)都是详细设计的常用工具,不是需求分析的工具。28.下面程序的运行结果为( )。#include iostreamusing namespace std;void main( )

37、 for(int a =0,x =0; !x a + );cout a endl;A) 0 B) 1 C) 10 D) 11(分数:2.00)A.B.C.D. 解析:解析 当 i=11时,循环结束。29.下列程序的输出结果为( )。#includeiostream.h)class TestClasspublic:TestClass()val+;static,int val;int TestClass:val0;void main()TestClass cs1;coutcsl.val“;TestClass cs2;TestClass cs3,cs4;coutcs2.valend1;A) 03 B

38、) 13 C) 14 D) 24(分数:2.00)A.B.C. D.解析:解析 由主函数 main入手,定义 TestClass类的对象 cs1,执行 es1.va1,其中 va1为静态变量,根据“tnt TestClass:val=0:”初始化,TestClass 中的 TestClass()val+;构造函数执行后,val值为 1。主函数中接着定义对象 cs2,cs3,cs4。执行“coutcs2.va1end1”中的 val值为4,所以输出为 14。30.下列语句段输出字符*的个数为( )。int i=100;while(1)i-;if(i=0) break;cout*;A) 101个

39、B) 100 个 C) 99 个 D) 98 个(分数:2.00)A.B.C. D.解析:解析 本题中 while中的条件表达式永远为真,进入循环后先执行语句“i-;”,然后再执行后面的语句。由于当 i的值变为 0时,执行跳转语句 break,即跳出 while循环体。所以 i的取值为199,即循环 99次,输出 99个“*”。31.有如下类定义: class Foo public: Foo(int v):value(v) / Foo() / private: Foo( ) / int value=0; / ; 其中存在语法错误的行是 A) B) C) D) (分数:2.00)A.B.C.D.

40、 解析:解析 类的数据成员只能被定义类型,而不能对其设置默认值。如果要设置默认值需要在构造函数的参数中进行设置。32.有如下程序:#include iostream#include iomanipusing namespace std;int main()cout.fill(*);coutleftsetw(4)123 “OK“end1;return 0;执行这个程序的输出结果是( )。A) 123*OK B) 123*OK* C) *123OK D) *123*OK(分数:2.00)A. B.C.D.解析:33.编译时的多态性可以通过使用( )获得。A) 虚函数和指针 B) 重载函数 C) 虚

41、函数和对象 D) 虚函数和引用(分数:2.00)A.B.C. D.解析:解析 采用一般类型的标示对象操作虚函数时,将采用静态联编方式调用虚函数。34.完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是A) 黑箱测试法 B) 白箱测试法 C) 错误推测法 D) 安装测试法(分数:1.00)A. B.C.D.解析:解析 让考生熟练掌握常用的测试方法及其概念。解题要点 黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据功能导出测试用例。错解分析 白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,白箱测试也称为逻辑覆盖测试,故选项 B 不正确;错误推测法只是黑箱

42、测试所使用的一种具体的方法,故选项 C 不正确;安装测试是测试层次中的种,它属于高级测试,故选项 D 不正确。考点链接 常用的黑箱测试方法及其定义,白箱测试用例的准则。35.关于数据库系统三级模式的说法,下列( )是正确的。A) 外模式、概念模式、内模式都只有一个B) 外模式有多个,概念模式和内模式只有一个C) 外模式只有一个,概念模式和内模式有多个D) 3个模式中,只有概念模式才是真正存在的(分数:2.00)A.B. C.D.解析:二、填空题(总题数:15,分数:24.00)36.假定动态分配一个类型为 Worker的具有 n个元素的数组,并由 P指向这个动态数组,如果要释放这个数组,则使用

43、的语句为 1。(分数:2.00)填空项 1:_ (正确答案:delete p;)解析:解析 语句为 deletep;。37.有如下定义语句:MyClass*p10;当类对象数组指针 p离开它的作用域时,系统自动调用析构函数_次。(分数:1.00)填空项 1:_ (正确答案:0)解析:解析 类对象数组指针 p本身不定义类对象,而是定义了数组指针 p可以指向一个 MyClass的对象。38.语句 int *i;i=new int10;,释放指针 i的语句是 1。(分数:2.00)填空项 1:_ (正确答案:deletei;)解析:解析 本题考查 new和 delete的用法。申请内存空间时用 ne

44、w,释放内存空间用 delete。39.如果一个模板声明时有类型形参表,则多个参数之间必须使用 1 隔开,每个参数都必须重复使用关键字 2。(分数:1.00)填空项 1:_ (正确答案:, class)解析:40.软件工程包括三个要素,分别为方法、工具和 1。(分数:2.00)填空项 1:_ (正确答案:过程)解析:41.在 C+语言中,一个函数的定义前加上关键字 1 时,该函数就声明为内联函数。(分数:2.00)填空项 1:_ (正确答案:inline)解析:解析 内联函数的声明方法。42.重载的流运算符函数经常定义为类的 1 函数。(分数:2.00)填空项 1:_ (正确答案:友元)解析:

45、43.重载的流运算符函数经常定义为类的 1 函数。(分数:2.00)填空项 1:_ (正确答案:友元)解析:解析 参见友元函数的定义。44.下面程序的输出结果是_。#includeiostream.hvoid main()inta61,2,3,4,5,6;for(int i0;i5;i+)coutai“;coutendl;(分数:2.00)填空项 1:_ (正确答案:1 2 3 4 5。)解析:解析 本题考查的是考生使用简单循环输出数组元素的能力,因为结束条件是 i5,而 i初始值为 0,所以只会输出前 5个元素。45.C+本身没有定义 I/O操作,但 I/0操作包含在 C+实现中。C+标准库

46、 iostream提供了基本的 I/O类。I/O操作分别由类 istream和工 1 提供。(分数:2.00)填空项 1:_ (正确答案:ostream)解析:46.有以下程序:#include iostreamusing namespace std;class Baseprivate:int a,b;public:Base(int x, int y)a=x;b=y;void Show()couta , bend1;class Derived : public Baseprivate:int c;public:Derived(int x, int y, int z) : Base(x,y),c(z) void Show()coutcend1;int main()Base b(50,50),*pb;Derived d(10,20,30);pb=pb-Show();return 0;运行后的打印结果为_(分数:1.00)填空项 1:_ (正确答案:10,20)解析:解析 本题考核基类指针的使用。本题首先定义了一个基类 Base和一个由 Base派生出来的派生类 Derive。在主函数中,定义了一个基类 Base指针 pb和基类对象 b,还定义了派生类 Derive的对象d。然后将派生类对象 d的地址赋值给指向基类 Base的指针 pb。由于

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

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

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