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

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

1、二级 C+笔试 92及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.从用户角度看,下面列出的条目中( )是数据库管理系统应具有的目标。 用户界面友好 内部结构清晰、层次分明 开放性,即符合标准和规范 负责管理企业组织的数据库资源(分数:2.00)A.、B.、C.、D.都是2.有如下程序 #includeiostream using namespace std; class Base protected: Base()coutA; Base(char c)coutc;) ; class Derived: public Base publ

2、ic: Derived(char c)coutc;) ; int main() Derived dl(B); return 0; 执行这个程序屏幕上将显示输出( )。(分数:2.00)A.BB.BAC.ABD.BB3.语句 ofstream f(“SALARYDAT“,ios:app|ios:binary);的功能是建立流对象 f,试图打开文件SALARY.DAT并与之连接,并且( )。(分数:2.00)A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文

3、件D.若文件存在,打开失败;若文件不存在,建立一个新文件4.关于 getline()函数的下列描述中,错误的是( )。(分数:2.00)A.该函数可以用来从键盘上读取字符串B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符时便停止D.该函数中所使用的终止符只能是换行符5.下列程序的运行结果为( )。 #includeiostream.h void main() int a=2; int b=a+1; couta/bendl; (分数:2.00)A.0.66667B.0C.0.7D.0.666666666.阅读下面的程序: #includeiostreamh void mai

4、n() int x; cinx; if(x+5) coutxendl; else coutxendl; 如果两次执行上述程序,且键盘输入分别为 4和 6,则输出结果分别是( )。(分数:2.00)A.4,6B.3,6C.4,7D.5,77.假定 n=3,下列程序的运行结果是( )。 #includeiostreamh int Fun(int m) void main() cout“Please input a number:“; int n,s=0; cinn; s=Fun(n); coutsendl; int Fun(int m) iht p=1,s=0; for (int I=1;I=m;

5、I+) p*=I; S+=p; return s; (分数:2.00)A.7B.9C.8D.108.以下程序的输出结果是( )。 #includeiostream #includestdlib using namespace std; void func(char *m) +m; cout*mendl; main() static char *a=“MORNING“,“AFTERNOON“,“EVENING“); char *n; n=a; func(n); system(“PAUSE“); return 0; (分数:2.00)A.为空B.MORNINGC.AFTERNOOND.EVENIN

6、G9.下面概念中,不属于面向对象方法的是( )。(分数:2.00)A.对象B.继承C.类D.过程调用10.使用 fstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为( )。(分数:2.00)A.ios:inB.ios:outC.ios:inlios:outD.没有默认11.线性表的顺序存储结构和线性表的链式存储结构分别是( )。(分数:2.00)A.顺序存取的存储结构、顺序存取的存储结构B.随机存取的存储结构、顺序存取的存储结构C.随机存取的存储结构、随机存取的存储结构D.任意存取的存储结构、任意存取的存储结构12.有以下类定义。 class MyClass private: i

7、nt id; char gender; char *phone; public: MyClass():id(0),gender(#),phone(NULL) MyClass(int no,char ge=#,char *ph=NULL) id=no;gender=ge;phone=ph;) ; 下列类对象定义语句中错误的是( )。(分数:2.00)A.MyClass myobj;B.MyClass myobj(11,“13301111155“);C.MyClass myobj(12,m);D.MyClass myobj(12);13.下列函数原型声明中错误的是( )。(分数:2.00)A.vo

8、id Fun(int x=0,int y=0);B.void Fun(int x,int ;C.void Fun(int x,int y=0);D.void Fun(int x=0,int ;14.下列情况中,不会调用拷贝构造函数的是( )。(分数:2.00)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋值给该类的另一个对象时C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时15.按照“先进先出”原则组织数据的数据结构是( )。(分数:2.00)A.队列B.栈C.双向链表D.二叉树16.设有如下三个关系表 (分数:2.00)A

9、.T=RSB.T=RSC.T=RSD.T=R/S17.结构化程序设计主要强调的是( )。(分数:2.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性18.以下( )成员函数表示纯虚函数。(分数:2.00)A.virtual int vf(inB.void vf(in=0C.virtual void vf()=0D.virtual void vf(in19.下列关于运算符重载的描述中,正确的是( )。(分数:2.00)A.运算符重载可以改变运算符的操作数的个数B.运算符重载可以改变优先级C.运算符重载不可以改变优先级D.运算符重载不可以改变语法结构20.关于运算符重载,下

10、列表述中正确的是( )。(分数:2.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型D.可以通过运算符重载来创建 C十十中原来没有的运算符21.下面数据结构中,属于非线性的是( )。(分数:2.00)A.线性表B.树C.队列D.堆栈22.关于动态存储分配,下列说法正确的是( )。(分数:2.00)A.new和 delete是 C+语言中专门用于动态内存分配和释放的函数B.动态分配的内存空间也可以被初始化C.当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用 delete释放内存空间D.当动态分配内

11、存失败时,系统会立刻崩溃,因此一定要慎用 new23.在下面的运算符重载函数的原型中,错误的是( )。(分数:2.00)A.Volume operator-(double,doubl;B.double Volume:operator-(doubl;C.Volume Volume:operator-(Volum;D.Volume operator-(Volume,Volum;24.如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须使用( )关键字来修饰。(分数:2.00)A.constB.staticC.voidD.class25.下列语句中,错误的是( )。(分数:

12、2.00)A.const int buffer=256;B.const double *point;C.int const buffer=256;D.double *const point;26.下面不是派生类对基类的继承方式的是( )。(分数:2.00)A.privateB.publicC.staticD.protected27.下列关于数组的描述正确的是( )。(分数:2.00)A.数组的长度是固定的,而其中元素的数据类型可以有不同B.数组的长度是固定的,而其中元素的数据类型必须相同C.数组的长度是可变的,而其中元素的数据类型可以有不同D.数组的长度是可变的,而其中元素的数据类型必须相同2

13、8.下列关于虚基类的描述,错误的是( )。(分数:2.00)A.设置虚基类的目的是为了消除二义性B.虚基类的构造函数在非虚基类之后调用C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数29.下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(分数:2.00)A.内模式B.外模式C.概念模式D.逻辑模式30.在函数中,可以用 auto、extem、register 和 static四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是( )。(分数:2.00)

14、A.autoB.externC.概 registerD.static31.下面关于对象概念的描述中,( )是错误的。(分数:2.00)A.对象就是 C语言中的结构体变量B.对象代表着正在创建的系统中的一个实体C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的32.支持数据库各种操作的软件系统叫做( )。(分数:2.00)A.数据库管理系统B.文件系统C.数据库系统D.操作系统33.在 C+语言的数据类型中,int、short 等类型的长度是( )。(分数:2.00)A.固定的B.任意的C.由用户自定义D.与机器字长有关34.在关系数据库模型中,通常可以把外码所在的

15、关系称为( )。(分数:2.00)A.被参照关系B.参照关系C.主码D.主关系35.若有如下类定义: class B void funl() protected: double varl: public: void fun2() ;class D:public B protected: void fun3() ; 已知 obj是类 D的对象,下列语句中不违反类成员访问控制权限的是( )。(分数:2.00)A.obfunl();B.obvarl;C.obfun2();D.obfun3();二、B填空题/B(总题数:15,分数:30.00)36.算法的复杂度主要包括U 【1】 /U复杂度和空间复杂

16、度。(分数:2.00)填空项 1:_37.通常元素进栈的操作是U 【2】 /U。(分数:2.00)填空项 1:_38.结构化程序设计的一种基本方法是U 【3】 /U法。(分数:2.00)填空项 1:_39.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为U 【4】 /U。(分数:2.00)填空项 1:_40.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、U 【5】 /U和选择排序等。(分数:2.00)填空项 1:_41.将以下程序写成三目运算表达式是U 【6】 /U。 if(ab) max=a; else max=b;(分数:2.00)填空项 1:_42.已知递

17、归函数 f的定义如下: int f(int n) if(n=1)return 1; /递归结束情况 else retulil n*f(n-2);/递归 则函数调用语句 f(5)的返回值是U 【7】 /U。(分数:2.00)填空项 1:_43.如果表达式 x=y*z中的“*”是作为成员函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为U 【8】 /U。(分数:2.00)填空项 1:_44.以下程序的执行结果是U 【9】 /U。 #includeiostream.h templateclass T class Sample T n; public: Sample(T i)n=i;) v

18、oid operator(); void disp()cout“n=“nendl;) ; templateclass T void SampleT:operator() n=1;/不能用 n;因为 double型不能用 void main() SamplecharS(a); S; s.disp(); (分数:2.00)填空项 1:_45.下面程序的输出结果为U 【10】 /U。 #inclUdeiostream.h void main() int a; int ) ; class Derived: public Base public: Derived(char c)coutc;) ; int

19、 main() Derived dl(B); return 0; 执行这个程序屏幕上将显示输出( )。(分数:2.00)A.BB.BAC.AB D.BB解析:3.语句 ofstream f(“SALARYDAT“,ios:app|ios:binary);的功能是建立流对象 f,试图打开文件SALARY.DAT并与之连接,并且( )。(分数:2.00)A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文

20、件解析:4.关于 getline()函数的下列描述中,错误的是( )。(分数:2.00)A.该函数可以用来从键盘上读取字符串B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符时便停止D.该函数中所使用的终止符只能是换行符 解析:5.下列程序的运行结果为( )。 #includeiostream.h void main() int a=2; int b=a+1; couta/bendl; (分数:2.00)A.0.66667B.0 C.0.7D.0.66666666解析:6.阅读下面的程序: #includeiostreamh void main() int x; cinx;

21、 if(x+5) coutxendl; else coutxendl; 如果两次执行上述程序,且键盘输入分别为 4和 6,则输出结果分别是( )。(分数:2.00)A.4,6B.3,6C.4,7D.5,7 解析:7.假定 n=3,下列程序的运行结果是( )。 #includeiostreamh int Fun(int m) void main() cout“Please input a number:“; int n,s=0; cinn; s=Fun(n); coutsendl; int Fun(int m) iht p=1,s=0; for (int I=1;I=m;I+) p*=I; S+

22、=p; return s; (分数:2.00)A.7B.9 C.8D.10解析:8.以下程序的输出结果是( )。 #includeiostream #includestdlib using namespace std; void func(char *m) +m; cout*mendl; main() static char *a=“MORNING“,“AFTERNOON“,“EVENING“); char *n; n=a; func(n); system(“PAUSE“); return 0; (分数:2.00)A.为空B.MORNINGC.AFTERNOON D.EVENING解析:9.下

23、面概念中,不属于面向对象方法的是( )。(分数:2.00)A.对象B.继承C.类D.过程调用 解析:10.使用 fstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为( )。(分数:2.00)A.ios:inB.ios:outC.ios:inlios:outD.没有默认 解析:11.线性表的顺序存储结构和线性表的链式存储结构分别是( )。(分数:2.00)A.顺序存取的存储结构、顺序存取的存储结构B.随机存取的存储结构、顺序存取的存储结构 C.随机存取的存储结构、随机存取的存储结构D.任意存取的存储结构、任意存取的存储结构解析:12.有以下类定义。 class MyClass pr

24、ivate: int id; char gender; char *phone; public: MyClass():id(0),gender(#),phone(NULL) MyClass(int no,char ge=#,char *ph=NULL) id=no;gender=ge;phone=ph;) ; 下列类对象定义语句中错误的是( )。(分数:2.00)A.MyClass myobj;B.MyClass myobj(11,“13301111155“); C.MyClass myobj(12,m);D.MyClass myobj(12);解析:13.下列函数原型声明中错误的是( )。(

25、分数:2.00)A.void Fun(int x=0,int y=0);B.void Fun(int x,int ;C.void Fun(int x,int y=0);D.void Fun(int x=0,int ; 解析:14.下列情况中,不会调用拷贝构造函数的是( )。(分数:2.00)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋值给该类的另一个对象时 C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时解析:15.按照“先进先出”原则组织数据的数据结构是( )。(分数:2.00)A.队列 B.栈C.双向链表D.二叉树解析

26、:16.设有如下三个关系表 (分数:2.00)A.T=RSB.T=RSC.T=RS D.T=R/S解析:17.结构化程序设计主要强调的是( )。(分数:2.00)A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性 解析:18.以下( )成员函数表示纯虚函数。(分数:2.00)A.virtual int vf(inB.void vf(in=0C.virtual void vf()=0 D.virtual void vf(in解析:19.下列关于运算符重载的描述中,正确的是( )。(分数:2.00)A.运算符重载可以改变运算符的操作数的个数B.运算符重载可以改变优先级C.运算符重载

27、不可以改变优先级D.运算符重载不可以改变语法结构 解析:20.关于运算符重载,下列表述中正确的是( )。(分数:2.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型 D.可以通过运算符重载来创建 C十十中原来没有的运算符解析:21.下面数据结构中,属于非线性的是( )。(分数:2.00)A.线性表B.树 C.队列D.堆栈解析:22.关于动态存储分配,下列说法正确的是( )。(分数:2.00)A.new和 delete是 C+语言中专门用于动态内存分配和释放的函数B.动态分配的内存空间也可以被初始化 C.当系统内

28、存不够时,会自动回收不再使用的内存单元,因此程序中不必用 delete释放内存空间D.当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用 new解析:23.在下面的运算符重载函数的原型中,错误的是( )。(分数:2.00)A.Volume operator-(double,doubl; B.double Volume:operator-(doubl;C.Volume Volume:operator-(Volum;D.Volume operator-(Volume,Volum;解析:24.如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须使用( )关键字来修饰。(分

29、数:2.00)A.constB.staticC.voidD.class 解析:25.下列语句中,错误的是( )。(分数:2.00)A.const int buffer=256;B.const double *point;C.int const buffer=256;D.double *const point; 解析:26.下面不是派生类对基类的继承方式的是( )。(分数:2.00)A.privateB.publicC.static D.protected解析:27.下列关于数组的描述正确的是( )。(分数:2.00)A.数组的长度是固定的,而其中元素的数据类型可以有不同B.数组的长度是固定的,

30、而其中元素的数据类型必须相同 C.数组的长度是可变的,而其中元素的数据类型可以有不同D.数组的长度是可变的,而其中元素的数据类型必须相同解析:28.下列关于虚基类的描述,错误的是( )。(分数:2.00)A.设置虚基类的目的是为了消除二义性B.虚基类的构造函数在非虚基类之后调用 C.若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数解析:29.下列模式中,能够给出数据库物理存储结构与物理存取方法的是( )。(分数:2.00)A.内模式 B.外模式C.概念模式D.逻辑模式解析:30.在函数中,可以用

31、auto、extem、register 和 static四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是( )。(分数:2.00)A.auto B.externC.概 registerD.static解析:31.下面关于对象概念的描述中,( )是错误的。(分数:2.00)A.对象就是 C语言中的结构体变量 B.对象代表着正在创建的系统中的一个实体C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的解析:32.支持数据库各种操作的软件系统叫做( )。(分数:2.00)A.数据库管理系统 B.文件系统C.数据库系统D.操作系统解析:33.在

32、 C+语言的数据类型中,int、short 等类型的长度是( )。(分数:2.00)A.固定的B.任意的C.由用户自定义D.与机器字长有关 解析:34.在关系数据库模型中,通常可以把外码所在的关系称为( )。(分数:2.00)A.被参照关系B.参照关系 C.主码D.主关系解析:35.若有如下类定义: class B void funl() protected: double varl: public: void fun2() ;class D:public B protected: void fun3() ; 已知 obj是类 D的对象,下列语句中不违反类成员访问控制权限的是( )。(分数:2

33、.00)A.obfunl();B.obvarl;C.obfun2(); D.obfun3();解析:二、B填空题/B(总题数:15,分数:30.00)36.算法的复杂度主要包括U 【1】 /U复杂度和空间复杂度。(分数:2.00)填空项 1:_ (正确答案:时间)解析:37.通常元素进栈的操作是U 【2】 /U。(分数:2.00)填空项 1:_ (正确答案:先移动栈顶指针,后存入元素)解析:38.结构化程序设计的一种基本方法是U 【3】 /U法。(分数:2.00)填空项 1:_ (正确答案:逐步求精)解析:39.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为U 【4】 /U。(

34、分数:2.00)填空项 1:_ (正确答案:软件生命周期)解析:40.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、U 【5】 /U和选择排序等。(分数:2.00)填空项 1:_ (正确答案:交换排序)解析:41.将以下程序写成三目运算表达式是U 【6】 /U。 if(ab) max=a; else max=b;(分数:2.00)填空项 1:_ (正确答案:max=(ab)?a:b)解析:42.已知递归函数 f的定义如下: int f(int n) if(n=1)return 1; /递归结束情况 else retulil n*f(n-2);/递归 则函数调用语句 f(5)的

35、返回值是U 【7】 /U。(分数:2.00)填空项 1:_ (正确答案:15)解析:43.如果表达式 x=y*z中的“*”是作为成员函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为U 【8】 /U。(分数:2.00)填空项 1:_ (正确答案:x=y.operator*(z))解析:44.以下程序的执行结果是U 【9】 /U。 #includeiostream.h templateclass T class Sample T n; public: Sample(T i)n=i;) void operator(); void disp()cout“n=“nendl;) ; temp

36、lateclass T void SampleT:operator() n=1;/不能用 n;因为 double型不能用 void main() SamplecharS(a); S; s.disp(); (分数:2.00)填空项 1:_ (正确答案:n=b)解析:45.下面程序的输出结果为U 【10】 /U。 #inclUdeiostream.h void main() int a; int &b=a;/变量引用 b=10; cout“a=“aendl; (分数:2.00)填空项 1:_ (正确答案:a=10)解析:46.下列程序的运行结果为U 【11】 /U。 #includeiostrea

37、m.h void main(void) int a=2,b=-1,c=2; if(ab) if(b0)c=0; else c=c+1; coutcendl; (分数:2.00)填空项 1:_ (正确答案:2)解析:47.以下程序的运行结果是U 【12】 /U。 #includeiostream.h func(int a,int b) statlC int m=0,i=2; i+=m+1; m=i+a+b; return m; void main() int k=4,m=1,p; p=func(k,m);coutp”,”; p=func(k,m);coutpendl; (分数:2.00)填空项

38、1:_ (正确答案:8,17)解析:48.下列程序的输出结果是U 【13】 /U。 #inCludeiostream rsing namespace std; templatetypename T T fun(Ta,Tb)retum(a=b)?a:b;) int main() coutfun(3,6),fun(3.14F,6.28F)endl; return 0; (分数:2.00)填空项 1:_ (正确答案:3,3.14)解析:49.插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置。InsertSort类的成员函数 sort()实现了插入排序算法。请将画

39、线处缺失的部分补充完整。 class InsertSort public: InsertSort(int* a0,int n0):a(a0),n(n0)/参数 a0是某数组首地址,n是数组元素个数 void sort() /此函数假设已排序序列初始化状态只包含 a0,未排序序列初始为 a1.an-1 for(int i=1;in;11i) int t=ai; int j; for(U 【14】 /U;j0;-j) if(t=aj-1)break; aj=aj-1; aj=t; protected: int *a,n;/指针 a用于存放数组首地址,n 用于存放数组元素个数 ;(分数:2.00)填

40、空项 1:_ (正确答案:j=i)解析:50.阅读下面程序: #includeiostream.h void funl(char a,char b) char c; c=a;a=b;b=C; void fun2(char &a,char b) char c; c=a;a=b;b=c; void fun3(char &a,char &b) char c; c=a;a=b;b=C; void main() char a,b; a=A;b=B; funl(a,b);coutab; a=A;b=B; fun2(a,b);coutab; a=A;b=B; fun3(a,b);coutab; 则该程序的输出为U 【15】 /U。(分数:2.00)填空项 1:_ (正确答案:ABBBBA)解析:

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

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

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