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

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

1、二级 C+-211 及答案解析(总分:79.50,做题时间:90 分钟)一、选择题(总题数:35,分数:55.00)1.对于模板定义关键字 class 和 typename 说法不正确的是 _ 。(分数:2.00)A.程序中的 class 并不能都替换为 typenameB.class 和 typename 都可互相替换C.程序中的 typename 都能替换为 classD.程序中的部分 class 可以替换为 typename2.下列有关构造函数的描述错误的是 _ 。(分数:2.00)A.构造函数在说明类变量时自动执行B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数可以对静态数

2、据成员进行初始化3.下列关于 C+预定义流对象的叙述中,正确的是_。(分数:1.00)A.cin 是 C+预定义的标准输入流对象B.cin 是 C+预定义的标准输入流类C.cout 是 C+预定义的标准输入流对象D.cout 是 C+预定义的标准输入流类4.实现运行时的多态性要使用 _ 。(分数:2.00)A.虚函数B.重载函数C.析构函数D.构造函数5.下面程序的运行结果是 #includeiostreamh class base protected: int a; public: base()cout “0“; ; class basel:virtual base public: base

3、l () cout “1“; ; class base2:virtual base public: base2()cout “2“; ; class derived:public basel,public base2 public: derived()cout “3“; ; void main() derived obj; cout end1; (分数:1.00)A.0123B.3120C.0312D.30126.在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是_。(分数:1.00)A.ios_base:curB.ios_base:begC.ios_base:outD.ios_ba

4、se:end7.最简单的交换排序方法是_。(分数:1.00)A.快速排序B.选择排序C.堆排序D.冒泡排序8.将前缀运算符“- -”重载为非成员函数,下列原型中能正确用于类中说明的是_。(分数:1.00)A.DecrB.Decr operator -(DecrC.friend DecrD.friend Decr operator -(Decr9.如果表达式-x/y 中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为_。(分数:2.50)A.operator/(x.operator-(),y);B.operator/(operator-(x),y);C.o

5、pcraior-().operator/(y);D.opcrator/(operator-(x);10.有如下函数定义: void func(int a,intb+; 若执行代码段: int x=0,y=1; func(x,y); 则变量 x 和 y 的值分别是_。(分数:1.00)A.0 和 1B.1 和 1C.0 和 2D.1 和 211.执行下列语句段后,输出字符“*”的个数是_。 for(int i=50; i1; -i) cout “*“;(分数:1.00)A.48B.49C.50D.5112.C+语言类体系中,不能被派生类继承的有(分数:1.00)A.转换函数B.构造函数C.虚函数

6、D.静态成员函数13._ 给出了数据库物理存储结构与物理存取方法(分数:2.00)A.概念模式B.外模式C.子模式D.物理模式14.下列关于队列的叙述中正确的是_。(分数:1.00)A.在队列中只能插人数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表15.数据库管理系统 DBMS 中用来定义模式、内模式和外模式的语言为(分数:1.00)ACB.BasicC.DDLD.DML16.算法的空间复杂度是指(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行过程中所需要的存储空间17.下列符号中不属于 C+关键字的是_。(分数:

7、2.00)A.friendB.namespaceC.continueD.byte18.若有函数原型声明为“void fun(int*x,int ”,下列叙述中,错误的是_。(分数:2.00)A.调用函数 fun 时必须给出 3 个实参B.函数 fun 中有 1 个指针形参C.函数 fun 中有 1 个形参有默认值D.函数 fun 中有 1 个引用形参19.算法的有穷性是指_。(分数:1.00)A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用20.索引属于_。(分数:2.50)A.模式B.内模式C.外模式D.概念模式21.有如

8、下程序: #includeiostream using namespace std; void function2(int n); void function1(int n) if(n=0)return; function2(n-2); void function2(int n) if(n=0)return; function1(n-1); int main() function1(5); return 0; 下列关于程序运行情况的描述中,正确的是_。(分数:2.00)A.function1 运行 1 次,function2 运行 2 次B.function1 运行 2 次,function2

9、 运行 1 次C.function1 运行 2 次,function2 运行 3 次D.function1 运行 2 次,function2 运行 2 次22.以下关键字不能用来声明类的访问权限的是_。(分数:1.00)A.publicB.staticC.protectedD.private23.下列叙述中正确的是_。(分数:1.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对24.下列叙述中正确的是(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库技术的根本目的是解决数据的共享问题C

10、.数据库管理系统就是数据库系统D.以上 3 种说法都不对25.有关析构函数的说法中错误的是(分数:2.00)A.析构函数有且只有一个B.析构函数无任何函数类型C.析构函数和构造函数一样可以有形参D.析构函数的作用是在对象被撤销时做清理工作26.函数定义为 Fun(int i),变量定义 n=100,则下面调用正确的是_。(分数:1.00)A.Fun(20);B.Fun(20+n);C.Fun(n);D.Fun(n);27.下列关于运算符重载不正确的是(分数:1.00)A.运算符重载不能改变运算符的操作数个数B.运算符重载不能改变运算符的优先级C.运算符重载不能改变运算符的结合性D.运算符重载能

11、改变对预定义类型数据的操作方式28.设有 int x11;,则表达式(x+*2/3)的值是 _ 。(分数:2.00)A.7B.8C.11D.1229.将前缀运算符“-”重载为非成员函数,下列原型中能正确用于类中说明的是_。(分数:1.00)A.DecrB.Decr operator-(DecrC.friend DecrD.friend Decr operator-(Decr30.下列关于 C+函数的说明中,正确的是_。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会

12、根据函数的返回值类型和参数表来区分函数的不同重载形式31.下面关于虚函数的描述,错误的是(分数:1.00)A.在成员函数声明的前面加上 virtual 修饰,就可把该函数声明为虚函数B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数C.虚函数可以是另一个类的友元函数,但不能是静态成员函数D.基类中说明的纯虚函数在其任何派生类中都必须实现32.数据库关系模型中可以有三类完整性约束,下列选项中不属于三类完整性约束的是 _ 。(分数:2.00)A.实体完整性规则B.参照完整性规则C.对象完整性规则D.用户自定义完整性规则33.下列关于模板形参的描述中,错误的是_。(分数:2.50)A.模

13、板形参表必须在关键字 template 之后B.模板形参表必须用括弧()括起来C.可以用 class 修饰模板形参D.可以用 typename 修饰模板形参34.下列关于类和对象的叙述中,错误的是 _ 。(分数:2.00)A.一个类只能有一个对象B.对象是类的具体实例C.类是对某一类对象的抽象D.类和对象的关系是一种数据类型与变量的关系35.下面的函数调用为: fun(x+y,3,min(n-1,y)则 fun 的实参个数是_。(分数:2.50)A.3B.4C.5D.6二、填空题(总题数:15,分数:24.50)36.下面程序的输出结果是 1。 #include iostream.h usin

14、g namespace std; int n 3=10,20,30,40,50,60; int main () int (*p) 3; p=n; cout p0 0 “,“ *(p0+1) “,“ (*p)2endl; return 0; (分数:2.50)37.有以下程序 #include iostream using namespace std; class Base int a; public: Base(int x) a=x; void show() couta; class Derived: public Base int b; public: Defived(int i):Base

15、(i+ 1 ),b(i) void show() coutb; ; int main() Base b(5),*pb; Derived d(1); pb= pb-show(); return 0; 运行后的打印结果是 1。 (分数:2.00)38.数据流图的类型有 1 和事务型。 (分数:2.00)39.数据结构分为逻辑结构和存储结构,循环队列属于 1 结构。 (分数:2.00)40.C+语言支持的两种多态性分别是编译时的多态性和 _ 1_ 的多态性。 (分数:1.00)41.下列函数的功能是判断字符串 str 是否对称,对称则返回 true,否则返回 false。请在画线处填上适当内容,实现

16、该函数。 bool fun(char*str) int i:0,j=0; while(strj) _ 1_ ; for(J-;ij 1 ; (分数:2.00)47.若要在程序文件中进行标准输入输出操作,则必须在开始的# include 命令中使用头文件 _ 1_ 。 (分数:2.00)48.一个类中有 1 个析构函数。 (分数:1.00)49.下列程序编译错误,是由于划线处缺少某个语句,该语句是 1。 #includeiostream.h class A private: int numl; public: A( ):numl(0) A(int i):numl(i) ; class B pri

17、vate: int num2; public: B( ):num2(0) B(int i):num2(i) int my_math(A obj1, B obj2); ; int B:my_math(A obj1,B obj2) return(obj1.numl+obj2.num2); void main(void) A objl(4); B obj,obj2(5); cout“obj1+obj2:“obj.my_math(obj1,obj2); (分数:2.00)50.以下程序的执行结果是 1。 #includeiostream.h class Sample int n; public: Sa

18、mple() Sample(int m)n+m;) intB.Decr operator -(DecrC.friend DecrD.friend Decr operator -(Decr 解析:解析 非成员函数重载用友元函数的形式实现,“- -”运算符重载分为前置和后置两种重载方式。用友元函数来实现“- -”运算符的重载时,前置“- -”运算符的重载的一般格式为:friendtypeoperator- -(ClassNameB.operator/(operator-(x),y); C.opcraior-().operator/(y);D.opcrator/(operator-(x);解析:解析

19、 本题考查运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且 c1、c2都是该类的对象,则 c1.opcrator+(c2)与 c1+c2 含义相同。如果十作为该类的非成员函数重载,则operator+(c1,c2)与 c1+c2 含义相同。同理,运算符“/”作为友元函数重载,则(-x)/y 与表达式operator/(-x),y)相同。前缀运算符“-”作为友元函数重载,则-x 与 operator-(x)相同,所以组合起来是 operator/(operator-(x),y);,即 B 选项。10.有如下函数定义: void func(int a,intb+; 若执行代码段:

20、int x=0,y=1; func(x,y); 则变量 x 和 y 的值分别是_。(分数:1.00)A.0 和 1B.1 和 1C.0 和 2 D.1 和 2解析:解析 函数参数的 3 种传递方式:将变量名作为形参和实参,即传值方式;传递变量指针;引用形参。本题中实参 x 为传值方式,所以 x 的值不会改变;y 为引用形参,所以会改变。故本题答案为 C。11.执行下列语句段后,输出字符“*”的个数是_。 for(int i=50; i1; -i) cout “*“;(分数:1.00)A.48B.49 C.50D.51解析:解析 本题考查 for 循环语句,- -i 表示用之前先减 1,那么这个

21、 for 循环语句只有 50 到 2 时才会输出“*”,所以总共输出 49 次。12.C+语言类体系中,不能被派生类继承的有(分数:1.00)A.转换函数B.构造函数 C.虚函数D.静态成员函数解析:解析:派生类对象的数据结构是由基类中说明的数据成员和派生类中说明的数据成员共同构成,所以不能继承基类的构造函数,必须重新定义。13._ 给出了数据库物理存储结构与物理存取方法(分数:2.00)A.概念模式B.外模式C.子模式D.物理模式 解析:解析 概念模式,数据库系统中全局数据逻辑结构的描述,全体用户公共数据视图:外模式,也称子模式与用户模式,是用户的数据视图,也就是用户所见到的数据模式;内模式

22、,又称物理模式,它给出了数据库物理存储结构与物理存取方法。14.下列关于队列的叙述中正确的是_。(分数:1.00)A.在队列中只能插人数据B.在队列中只能删除数据C.队列是先进先出的线性表 D.队列是先进后出的线性表解析:解析 对队列可以进行插入和删除数据的操作,只是插入数据只能在队尾,删除数据只能在队头,所以队列是先进先出的线性表。15.数据库管理系统 DBMS 中用来定义模式、内模式和外模式的语言为(分数:1.00)ACB.BasicC.DDL D.DML解析:解析:选项 A)、选项 B)显然不合题意。数据定义语言(Data DefinitionLanguage,简称 DDL)负责数据的模

23、式定义与数据的物理存取构建;数据操纵语言(DataManipulation language,简称 DML)负责数据的操纵,包括查询及增、删、改等操作。16.算法的空间复杂度是指(分数:2.00)A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.执行过程中所需要的存储空间 解析:解析 算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量;算法的空间复杂度一般是指执行这个算法所需要的内存空间。17.下列符号中不属于 C+关键字的是_。(分数:2.00)A.friendB.namespaceC.continueD.byte

24、 解析:18.若有函数原型声明为“void fun(int*x,int ”,下列叙述中,错误的是_。(分数:2.00)A.调用函数 fun 时必须给出 3 个实参 B.函数 fun 中有 1 个指针形参C.函数 fun 中有 1 个形参有默认值D.函数 fun 中有 1 个引用形参解析:19.算法的有穷性是指_。(分数:1.00)A.算法程序的运行时间是有限的 B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用解析:解析 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。20.索引属于_。(分数:2.5

25、0)A.模式B.内模式 C.外模式D.概念模式解析:解析 建立索引是加快查询速度的有效手段,这与索引按什么方式组织有关,它建立在数据库表的基础上,属于内模式。21.有如下程序: #includeiostream using namespace std; void function2(int n); void function1(int n) if(n=0)return; function2(n-2); void function2(int n) if(n=0)return; function1(n-1); int main() function1(5); return 0; 下列关于程序运行情

26、况的描述中,正确的是_。(分数:2.00)A.function1 运行 1 次,function2 运行 2 次B.function1 运行 2 次,function2 运行 1 次C.function1 运行 2 次,function2 运行 3 次D.function1 运行 2 次,function2 运行 2 次 解析:解析 在主函数中执行 function1(5)时,会调用 function2(3),function2(3)又会调用function1(2),function1(2)又会调用 function2(0),到此相互调用结束。所以 function1()和function2(

27、)各执行了 2 次。22.以下关键字不能用来声明类的访问权限的是_。(分数:1.00)A.publicB.static C.protectedD.private解析:解析 类的成员访问权限有 3 种:public(公用)、protected(保护)、private(私有)。23.下列叙述中正确的是_。(分数:1.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对 解析:解析 程序调试就是诊断和改正程序中的错误,由程序开发者完成。软件测试是为了发现错误而执行程序的过程,它由专门的测试人员完成。软件维护是指软件系统交付使

28、用以后,为了改正错误或满足新的需要而修改软件的过程,是软件生存周期中非常重要的一个阶段。24.下列叙述中正确的是(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库技术的根本目的是解决数据的共享问题 C.数据库管理系统就是数据库系统D.以上 3 种说法都不对解析:解析 数据库技术的根本目的是要解决数据的共享问题;数据库需要操作系统的支持;数据库管理系统(Database Management System,DBMS),对数据库进行统一地管理和控制,以保证数据库的安全性和完整性。它是数据库系统的核心软件。25.有关析构函数的说法中错误的是(分数:2.00)A.析构函数

29、有且只有一个B.析构函数无任何函数类型C.析构函数和构造函数一样可以有形参 D.析构函数的作用是在对象被撤销时做清理工作解析:解析 本题考查析构函数的有关特性。考生不仅要熟记析构函数和构造函数的特点,还要深刻理解它们的内插,只有这样才可以灵活运用。26.函数定义为 Fun(int i),变量定义 n=100,则下面调用正确的是_。(分数:1.00)A.Fun(20);B.Fun(20+n);C.Fun(n); D.Fun(n);解析:解析 本题考查函数的调用。当函数的参数是引用类型时,参数不能是常量、表达式和变量地址,只能是变量本身。27.下列关于运算符重载不正确的是(分数:1.00)A.运算

30、符重载不能改变运算符的操作数个数B.运算符重载不能改变运算符的优先级C.运算符重载不能改变运算符的结合性D.运算符重载能改变对预定义类型数据的操作方式 解析:解析 考查 c+语言中操作符重载的概念。 解题要点 运算符重载的规则是重载时不能改变运算符的操作数个数,不能改变运算符的优先级,不能改变运算符的结合性,不能改变对预定义类型数据的操作方式。 考点链接 运算符重载的关键字是 operator。28.设有 int x11;,则表达式(x+*2/3)的值是 _ 。(分数:2.00)A.7 B.8C.11D.12解析:解析 当自加运算符做后缀表达式的时候,表达式的值不变,只有变量的值增 1,所以表

31、达式(x+*2/3)相当于(11*2/3)取整后为 7。29.将前缀运算符“-”重载为非成员函数,下列原型中能正确用于类中说明的是_。(分数:1.00)A.DecrB.Decr operator-(DecrC.friend DecrD.friend Decr operator-(Decr 解析:解析 非成员函数重载用友元函数的形式实现,“-”运算符重载分为前置和后置两种重载方式。用友元函数来实现“-”运算符的重载时,前置“-”运算符的重载的一般格式为:friendtypeoperator-(ClassName int n 3=10,20,30,40,50,60; int main () int

32、 (*p) 3; p=n; cout p0 0 “,“ *(p0+1) “,“ (*p)2endl; return 0; (分数:2.50)解析:10,20,3037.有以下程序 #include iostream using namespace std; class Base int a; public: Base(int x) a=x; void show() couta; class Derived: public Base int b; public: Defived(int i):Base(i+ 1 ),b(i) void show() coutb; ; int main() Bas

33、e b(5),*pb; Derived d(1); pb= pb-show(); return 0; 运行后的打印结果是 1。 (分数:2.00)解析:238.数据流图的类型有 1 和事务型。 (分数:2.00)解析:变换型解析 典型的数据流类型有两种:变换型和事务型。变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流,它可以引发一个或多个处理,这些处理能够完成该作业要求的功能,这种数据流就叫做事务。39.数据结构分为逻辑结构和存储结构,循环队列属于 1 结构。

34、(分数:2.00)解析:存储 或 物理40.C+语言支持的两种多态性分别是编译时的多态性和 _ 1_ 的多态性。 (分数:1.00)解析:运行时解析 本题考查的是多态的概念,多态性主要是指发出同样的消息而被不同类型的对象接收时导致完全不同的行为,它一般分为编译时的多态性和运行时的多态性,比如函数重载和虚函数。41.下列函数的功能是判断字符串 str 是否对称,对称则返回 true,否则返回 false。请在画线处填上适当内容,实现该函数。 bool fun(char*str) int i:0,j=0; while(strj) _ 1_ ; for(J-;ij 1 ; (分数:2.00)解析:v

35、irtual viod display()=0;解析 此题考查的是纯虚函数。纯虚函数定义格式是在虚函数的后面加上“=0”。与虚函数不同的是,纯虚函数允许没有函数体,故本题应填入的内容是 virtual viod display()=0;。47.若要在程序文件中进行标准输入输出操作,则必须在开始的# include 命令中使用头文件 _ 1_ 。 (分数:2.00)解析:iostream.h解析 本头文件和重要,包含了基本输入输出所需要的库函数。48.一个类中有 1 个析构函数。 (分数:1.00)解析:149.下列程序编译错误,是由于划线处缺少某个语句,该语句是 1。 #includeiost

36、ream.h class A private: int numl; public: A( ):numl(0) A(int i):numl(i) ; class B private: int num2; public: B( ):num2(0) B(int i):num2(i) int my_math(A obj1, B obj2); ; int B:my_math(A obj1,B obj2) return(obj1.numl+obj2.num2); void main(void) A objl(4); B obj,obj2(5); cout“obj1+obj2:“obj.my_math(ob

37、j1,obj2); (分数:2.00)解析:friend class B;解析 在 B 类中出现了对 A 类中私有成员 numl 的直接访问,这是不允许的。所以必须要把类 B 设成类 A 的友员才可以通过编译。50.以下程序的执行结果是 1。 #includeiostream.h class Sample int n; public: Sample() Sample(int m)n+m;) int&operator-(int) n- return n; void disp () cout“n= “nend1; void main () Sample s (10); (s-) +; s.disp(); (分数:1.00)解析:程序的执行结果为:n10

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

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

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