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

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

1、二级 C+-78 及答案解析(总分:64.50,做题时间:90 分钟)一、选择题(总题数:20,分数:34.50)1.若变量已正确定义并赋值,以下符合 C+语言语法的表达式是(分数:1.00)A.a:=b+1B.a=b=c+2C.int 18.5%3D.a=a+7=c+b2.下列叙述中正确的是(分数:2.00)A.数据的逻辑结构与存储结构必定是一一对应的B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D.以上三种说法都不对3.有关析构函数的说法不正确的是 _ 。(分数:1.00)A.析构函数有

2、且只有一个B.析构函数无任何函数类型C.析构函数和构造函数一样可以有形参D.析构函数的作用是在对象被撤消时收回先前分配的内存空间4.下列关于栈叙述正确的是 _ 。(分数:2.00)A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.以上三种说法都不对5.下面不是 C+语言整型常量的是 _ 。(分数:2.00)A.081B.01C.-32768D.0x816.下列程序执行结果是 #includeiostream.h class A public: int a; A( ):a(10)toutaendl; ; void main( ) A obj1; A obj2(obj

3、1); cout“ “obj2.aendl; (分数:2.00)A.10 10B.编译错误缺少拷贝构造函数C.10 随机数D.随机数随机数7.对下列二叉树 (分数:2.00)A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG8.有如下程序: #include iostream.h #include iomanip.h using namespace std; class CSum int x,y; public: CSum (int x0,int y0):x(x0),y(y0) friend ostream return os; ; int main () CSum y(

4、3,5); coutsetfill(“*“)8; couty; return 0; 执行上面程序的输出是(分数:2.00)A.88B.*88C.*8*8D.8*89.有以下程序 main() int a44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,k,t; for(i=0;i3;i+) for(k=i+I;k4;k+) if(aiiAKK)NBSP;T=AII;AII=AKK;AKK=T; for(i=0;i4;i+)printf(“%d,“,a0i); 程序运行后的输出结果是_。(分数:2.00)A.6,2,1,1,B.6,4,3,2,C.1,1,2,6,D.2,

5、3,4,6,10.下列说法中,不属于数据模型所描述的内容的是(分数:2.00)A.数据结构B.数据操作C.数据查询D.数据约束11.对虚函数的调用 _ 。(分数:1.00)A.一定使用动态联编B.必须使用动态联编C.一定使用静态联编D.不一定使用动态联编12.下列关于信息和数据的叙述不正确的是 _ 。(分数:2.00)A.信息是数据的符号表示B.信息是数据的内涵C.信息是现实世界事物的存在方式或运动状态的反映D.数据是描述现实世界事物的符号记录13.下列关于保护成员的说法中,正确的是 _ 。(分数:2.00)A.保护的成员只能被类本身的成员函数及友元类的成员函数访问B.保护成员可以被程序中的任

6、何代码访问C.保护的成员与私有成员是完全一样的D.保护成员访问权限和公有成员是一样的14.通常的拷贝初始化构造函数的参数是 _ 。(分数:1.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名15.下列关于顺序存储结构叙述中错误的是 _ 。(分数:2.00)A.存储密度大B.逻辑上相邻的结点物理上不必相邻C.可以通过计算直接确定第 i 个结点的存储地址D.插入、删除运算操作不方便16.用树形结构来表示实体之间联系的模型称为(分数:1.00)A.关系模型B.层次模型C.网状模型D.数据模型17.有如下程序: #includeiostream using namesp

7、ace std; class TlestClass int n; public: TestClass(int k):n(k) int get()return n; int get()constreturn n+1; ; int main() TestClass p(5); colast TestClass q(6); coutp.get()q.get(); return 0; 执行后的输出结果是 _ 。(分数:2.00)A.55B.57C.75D.7718.下列选项中,_不属于软件设计的基本原理。(分数:2.50)A.抽象B.模块化C.信息公开D.模块独立性19.在下面程序中,A、B、C、D

8、四句编译时不会出错的是 _ 。 #include iostream using namespace std; class Base public: Base(); Base(int e):count(C) virtual void print() const = 0; private: int count; ; class Derived :public Base public: Derived():Base(0) Derived(int C) :Base(C) void printt() constcout “Derived“endl: ; void main( ) Derived d(10

9、); Base *pb; pb = /A Base Derived dd = *pb; /B Derived /C Base bb = d; /D(分数:2.00)AaBBCCDD20.针对数组定义 int data10;,下列表述中错误的是(分数:1.00)A.用*data 可访问到数组的首元素B.用 data9可访问到数组的末元素C.用 data10访问数组元素会超出数组边界D.data 共有 10 个元素,其首元素是 data1二、填空题(总题数:18,分数:30.00)21.数据库应用的核心是指 _ 1_ 。 (分数:2.00)22.若要将函数“void FriFun();”声明为类

10、MyClass 的友元函数,则应在类 MyClass 的定义中加入语句 1。 (分数:2.00)23.补充完整下面的模板定义: templateclass Type /Type 为类型参数 class Xtwo /由两个 Type 类型的数据成员构成的模板类 Type a; Type b; public: Xtwo(Type aa=0,Type bb=0):a(aa),b(bb) int Compare( ) /比较 a 和 b 的大小) if(ab) return 1; else if(a= =b) return 0; else return -1; Type Sum( )return a+

11、b;)/返回 a 和 b 之和 Type Mult( ); /函数声明,返回 a 和 b 之乘积 ; templateclass Type 1:Mult( ) return a*b;/Mult 函数的类外定义 (分数:2.00)24.请定义一个函数名为 A,返回值为 int,没有参数的纯虚函数的定义是, _ 1_ 。 (分数:2.00)25. 1 允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回位能取任意类型。 (分数:1.00)26.一个 C+程序的开发步骤通常包括编辑、 1、链接、运行和调试。 (分数:1.00)27.类是一个支持集成的抽象数据类型,而对象是类的 1。

12、(分数:2.00)28.大多数 C+程序都要包含 1 头文件。该文件中包含了所有输入/输出流操作所需要的基本信息。 (分数:1.00)29.如果要把返回值为 void 的函数 A 声明为类 B 的友元函数,则应在类 B 的定义中加入的语句是 1。 (分数:1.00)30.、*、-、:、?:这五个运算符 1 重载。 (分数:1.00)31.如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。 Class myClass private: int data; public: myClass(int value);/构造函数 myClass(con

13、st _ 1_ anotherObject);/拷贝构造函数 (分数:2.00)32.在下面的程序的横线处填上适当的语句,使该程序的输出为 12。 #include iostream using namespace std; class Base public: int a; Base(int i) a=i; ; class Derived : public Base int a; public: Derived(int x) : Base(x),b(x+1) void show() 1; /输出基类数据成员 a 的值 coutbend1; ; int main() Derived d(1);

14、 d.show(); return 0; (分数:1.00)33.有以下程序: #includefstream #includestring using namespace std; int main() char ch=“The end“; ofstream outstr(“ 1“,ios_base:app); for(int i=0;istrlen(ch); i+) outstr.put(chi); outstr.close(); return 0: 若程序实现的功能是在文件 d:/put.txt 的尾部追加写入一串字符,试将程序补充完整。 (分数:2.00)34.数据的逻辑结构在计算机存

15、储空间中的存放形式称为数据的 1。 (分数:2.00)35.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为 _ 1_ 。 (分数:2.00)36.有如下程序: #includeiostream using namespace std; class Animal public: virtual char*getType( )const return “Animal“; virtual char*getVoice( )const return “Voice“;) ; class Dog: public Animal public: char*getType( )constret

16、urn “Dog“;) char*getVoice( )constreturn “Woof“; ; void type(Animal void sDeak(Animal a) couta.getVoice( ); int main( ) Dog d;type(d);cout“speak“;speak(d);coutendl; return 0; 运行时的输出结果是 1。 (分数:2.00)37.在计算机软件系统的体系结构中,数据库管理系统位于用户和 _ 1_ 之间。 (分数:2.00)38.请将下列模板类 Data 补充完整。 templatetypename T class Data pub

17、lic: void put(T v)val=v; 1get() /返回数据成员 val 的值,返回类型不加转换 return val; private: T val; ; (分数:2.00)二级 C+-78 答案解析(总分:64.50,做题时间:90 分钟)一、选择题(总题数:20,分数:34.50)1.若变量已正确定义并赋值,以下符合 C+语言语法的表达式是(分数:1.00)A.a:=b+1B.a=b=c+2 C.int 18.5%3D.a=a+7=c+b解析:2.下列叙述中正确的是(分数:2.00)A.数据的逻辑结构与存储结构必定是一一对应的B.由于计算机存储空间是向量式的存储结构,因此,

18、数据的存储结构一定是线性结构C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D.以上三种说法都不对 解析:解析 本题考查数据结构的基本知识。 数据之间的相互关系称为逻辑结构。通常分为四类基本逻辑结构,即集合、线性结构、树型结构、图状结构或网状结构。存储结构是逻辑结构在存储器中的映象,它包含数据元素的映象和关系的映象。存储结构在计算机中有两种,即顺序存储结构和链式存储结构。顺序存储结构是把数据元素存储在一块连续地址空间的内存中;链式存储结构是使用指针把相互直接关联的节点链接起来。因此,这两种存储结构都是线性的。可见,逻辑结构和存储结构不是一一对应的。因此,选项 A 和选

19、项 B 的说法都是错误的。 无论数据的逻辑结构是线性的还是非线性的,只能选择顺序存储结构或链式存储结构来实现存储。程序设计语言中,数组是内存中一段连续的地址空间,可看作是顺序存储结构。可以用数组来实现树型逻辑结构的存储,比如二叉树。因此,选项 C 的说法是错误的。3.有关析构函数的说法不正确的是 _ 。(分数:1.00)A.析构函数有且只有一个B.析构函数无任何函数类型C.析构函数和构造函数一样可以有形参D.析构函数的作用是在对象被撤消时收回先前分配的内存空间 解析:4.下列关于栈叙述正确的是 _ 。(分数:2.00)A.栈顶元素最先能被删除 B.栈顶元素最后才能被删除C.栈底元素永远不能被删

20、除D.以上三种说法都不对解析:解析 栈是限定在一端进行插入删除的先入后出的线性表数据结构,栈顶元素最后被插入到栈中,但是最先被删除;而栈底元素最先被插入,最后被删除。5.下面不是 C+语言整型常量的是 _ 。(分数:2.00)A.081 B.01C.-32768D.0x81解析:解析 本题考核整型变量的 3 种表示形式,选项 B 是一个八进制数;选项 C 是一个十进制数;选项 D 是一个十六进制数;选项 A 以 0 开始没有跟字母 x,但后面的数字 8 并不是八进制中使用的数符,故选项 A 不是 C+语言的整型变量。6.下列程序执行结果是 #includeiostream.h class A

21、public: int a; A( ):a(10)toutaendl; ; void main( ) A obj1; A obj2(obj1); cout“ “obj2.aendl; (分数:2.00)A.10 10 B.编译错误缺少拷贝构造函数C.10 随机数D.随机数随机数解析:解析 本题考察拷贝构造函数的知识。如果类中没有实现拷贝构造函数,则编译器会为其自动生成一个。对于本题这种简单对象,默认生成的拷贝构造函数可以完成数据成员的自动赋值,对于复杂对象,则可能需要显式定义拷贝构造函数。7.对下列二叉树 (分数:2.00)A.ACBDFEG B.ACBDFGEC.ABDCGEFD.FCADB

22、EG解析:8.有如下程序: #include iostream.h #include iomanip.h using namespace std; class CSum int x,y; public: CSum (int x0,int y0):x(x0),y(y0) friend ostream return os; ; int main () CSum y(3,5); coutsetfill(“*“)8; couty; return 0; 执行上面程序的输出是(分数:2.00)A.88B.*88C.*8*8D.8*8 解析:解析 本题考核知识点包括:类与对象、运算重载、I/O 的格式化输出

23、。语句 “coutsetfill(“*“)8;“输出 8。语句“couty;“将调用运算符重载输出*8,因为前面语句中设置的填充符号现在还有效,而数据“8“的宽度不够 5,所以剩下 4 个字符的宽度用填充符号“*“填充。9.有以下程序 main() int a44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,k,t; for(i=0;i3;i+) for(k=i+I;k4;k+) if(aiiAKK)NBSP;T=AII;AII=AKK;AKK=T; for(i=0;i4;i+)printf(“%d,“,a0i); 程序运行后的输出结果是_。(分数:2.00)A.6,2

24、,1,1,B.6,4,3,2, C.1,1,2,6,D.2,3,4,6,解析:10.下列说法中,不属于数据模型所描述的内容的是(分数:2.00)A.数据结构B.数据操作C.数据查询 D.数据约束解析:解析 数据模型所描述的内容有 3 个部分,它们是数据结构、数据操作和数据约束。其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式。11.对虚函数的调用 _ 。(分数:1.00)A.一定使用动态联编B.必须使用动态联编C.一定使用静态联编D.不一定使用动态联编 解析:12.下列关于信息和数据的叙述不正确的是 _ 。(分

25、数:2.00)A.信息是数据的符号表示 B.信息是数据的内涵C.信息是现实世界事物的存在方式或运动状态的反映D.数据是描述现实世界事物的符号记录解析:13.下列关于保护成员的说法中,正确的是 _ 。(分数:2.00)A.保护的成员只能被类本身的成员函数及友元类的成员函数访问 B.保护成员可以被程序中的任何代码访问C.保护的成员与私有成员是完全一样的D.保护成员访问权限和公有成员是一样的解析:14.通常的拷贝初始化构造函数的参数是 _ 。(分数:1.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名 D.某个对象的指针名解析:15.下列关于顺序存储结构叙述中错误的是 _ 。(分数:2.

26、00)A.存储密度大B.逻辑上相邻的结点物理上不必相邻 C.可以通过计算直接确定第 i 个结点的存储地址D.插入、删除运算操作不方便解析:16.用树形结构来表示实体之间联系的模型称为(分数:1.00)A.关系模型B.层次模型 C.网状模型D.数据模型解析:解析 在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统 (DBMS)也不同。目前常用的数据模型有 3 种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。所以,本题的正确答案是 B。17.有如下程序: #includeiost

27、ream using namespace std; class TlestClass int n; public: TestClass(int k):n(k) int get()return n; int get()constreturn n+1; ; int main() TestClass p(5); colast TestClass q(6); coutp.get()q.get(); return 0; 执行后的输出结果是 _ 。(分数:2.00)A.55B.57 C.75D.77解析:解析 C+中对常对象的成员函数调用,将自动调用其常成员函数,程序中调用原型为“intget()cons

28、t;“的函数,对于非常对象将调用原型为“int get();“的函数。因为首先用 5 对对象 p 进行了初始化,所以执行 p.get()时直接返回 5,而对于常对象则以 6 对 q 进行初始化,在调用 q.get()时,将调用原型为“int get()const;“的函数该函数将返回 n+1,第二个输出应为 7,所以本题答案为 57。18.下列选项中,_不属于软件设计的基本原理。(分数:2.50)A.抽象B.模块化C.信息公开 D.模块独立性解析:解析 软件设计的基本原理包括:抽象;模块化;信息隐蔽;模块独立性。19.在下面程序中,A、B、C、D 四句编译时不会出错的是 _ 。 #includ

29、e iostream using namespace std; class Base public: Base(); Base(int e):count(C) virtual void print() const = 0; private: int count; ; class Derived :public Base public: Derived():Base(0) Derived(int C) :Base(C) void printt() constcout “Derived“endl: ; void main( ) Derived d(10); Base *pb; pb = /A Ba

30、se Derived dd = *pb; /B Derived /C Base bb = d; /D(分数:2.00)Aa BBCCDD解析:解析 B 和 C 不符合赋值兼容规则,D 不能建立抽象类的对象。20.针对数组定义 int data10;,下列表述中错误的是(分数:1.00)A.用*data 可访问到数组的首元素B.用 data9可访问到数组的末元素C.用 data10访问数组元素会超出数组边界D.data 共有 10 个元素,其首元素是 data1 解析:二、填空题(总题数:18,分数:30.00)21.数据库应用的核心是指 _ 1_ 。 (分数:2.00)解析:数据库设计解析 数

31、据库设计是数据库应用的核心。在数据库应用系统中的一个核心问题就是设计一个能满足用户要求,性能良好的数据库,这就是数据库设计。22.若要将函数“void FriFun();”声明为类 MyClass 的友元函数,则应在类 MyClass 的定义中加入语句 1。 (分数:2.00)解析:friend void FriFun();解析 友元函数的声明方式是 friend 返回值类型函数名称(形参列表)。23.补充完整下面的模板定义: templateclass Type /Type 为类型参数 class Xtwo /由两个 Type 类型的数据成员构成的模板类 Type a; Type b; pu

32、blic: Xtwo(Type aa=0,Type bb=0):a(aa),b(bb) int Compare( ) /比较 a 和 b 的大小) if(ab) return 1; else if(a= =b) return 0; else return -1; Type Sum( )return a+b;)/返回 a 和 b 之和 Type Mult( ); /函数声明,返回 a 和 b 之乘积 ; templateclass Type 1:Mult( ) return a*b;/Mult 函数的类外定义 (分数:2.00)解析:Type xtwoType 解析 在模板外对成员函数的声明格式

33、是: template模板形参表声明 返回类型类名模板形参表:函数名(函数形参表)函数体24.请定义一个函数名为 A,返回值为 int,没有参数的纯虚函数的定义是, _ 1_ 。 (分数:2.00)解析:virtual int A()=0;25. 1 允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回位能取任意类型。 (分数:1.00)解析:类模板解析 本题考核类模板的基本概念。类模板就是一系列相关类的模型或样板,这些类的成员组成相同,成员函数的源代码形式相同,所不同的只是所针对的类型(成员的类型以及成员函数的参数和返回值的类型)。对于类模板,数据类型本身成了它的参数,因而是

34、一种参数化类型的类,是类的生成器。类模板中声明的类称为模板类。26.一个 C+程序的开发步骤通常包括编辑、 1、链接、运行和调试。 (分数:1.00)解析:编译27.类是一个支持集成的抽象数据类型,而对象是类的 1。 (分数:2.00)解析:实例解析 将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。所以,类是对象的抽象,对象则是其对应类的一个实例。28.大多数 C+程序都要包含 1 头文件。该文件中包含了所有输入/输出流操作所需要的基本信息。 (分数:1.00)解析:iostream.h29.如果要把返回值为 void 的函数 A 声明为类 B 的友元函数,则应

35、在类 B 的定义中加入的语句是 1。 (分数:1.00)解析:friend void A();解析 C+中类的友元函数在声明时应在该函数前面加上关键字 friend,同样如果要声明一个类为另一个类的友元类也要在前面类名前加上 friend。30.、*、-、:、?:这五个运算符 1 重载。 (分数:1.00)解析:不能31.如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。 Class myClass private: int data; public: myClass(int value);/构造函数 myClass(const _ 1_

36、anotherObject);/拷贝构造函数 (分数:2.00)解析:myClass class Base public: int a; Base(int i) a=i; ; class Derived : public Base int a; public: Derived(int x) : Base(x),b(x+1) void show() 1; /输出基类数据成员 a 的值 coutbend1; ; int main() Derived d(1); d.show(); return 0; (分数:1.00)解析:coutBase:a解析 本题考核作用域分辨符“:”的使用。33.有以下程

37、序: #includefstream #includestring using namespace std; int main() char ch=“The end“; ofstream outstr(“ 1“,ios_base:app); for(int i=0;istrlen(ch); i+) outstr.put(chi); outstr.close(); return 0: 若程序实现的功能是在文件 d:/put.txt 的尾部追加写入一串字符,试将程序补充完整。 (分数:2.00)解析:d:/put.txt解析 使用 ofstream 对象打开文件时,文件路径中的字符“/”必须用转义

38、字符序列“/”代替。参数“ios_base:app”规定了文件的打开模式,使文件指针移至文件尾,向文件追加数据。34.数据的逻辑结构在计算机存储空间中的存放形式称为数据的 1。 (分数:2.00)解析:模式或逻辑模式或概念模式解析 模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。35.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为 _ 1_ 。 (分数:2.00)解析:数据字典解析 在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为数据字典。36.有如下程序: #includeiostream using na

39、mespace std; class Animal public: virtual char*getType( )const return “Animal“; virtual char*getVoice( )const return “Voice“;) ; class Dog: public Animal public: char*getType( )constreturn “Dog“;) char*getVoice( )constreturn “Woof“; ; void type(Animal void sDeak(Animal a) couta.getVoice( ); int main

40、( ) Dog d;type(d);cout“speak“;speak(d);coutendl; return 0; 运行时的输出结果是 1。 (分数:2.00)解析:DogspeakVoice解析 在类 Base 中加了 virtual 关键字的函数就是虚拟函数,于是在 Base 的派生类 Derived 中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖,这是面向对象中的多态性的体现。37.在计算机软件系统的体系结构中,数据库管理系统位于用户和 _ 1_ 之间。 (分数:2.00)解析:操作系统 或 OS38.请将下列模板类 Data 补充完整。 templatetypename T class Data public: void put(T v)val=v; 1get() /返回数据成员 val 的值,返回类型不加转换 return val; private: T val; ; (分数:2.00)解析:T解析 val 是类型参数为 T 的变量,因此返回值类型为 T。

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

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

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