【计算机类职业资格】二级C++笔试314及答案解析.doc
《【计算机类职业资格】二级C++笔试314及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试314及答案解析.doc(16页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试 314 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.有如下的程序: #include cstring.h #include iostream.h using namespace std; class MyString public: MyString(const char*s); MyString () delete data; protected: unsigned len; char*data; ; MyString:MyString(const char *s) len=strlen (s); data=ne
2、w charlen+1; strcpy (data,s); int main () MyString a(“C+ Programing“); MyString b(a); return 0; 在运行上面的程序时出错,出错的原因是(分数:2.00)A.构造函数的实参不允许是本类的对象B.没有定义实现深层复制(深拷贝)的复制构造函数C.构造对象 a 时实参与形参类型不符D.系统不能生成默认的复制构造函数2.在面向对象的程序设计中,下列叙述中错误的是(分数:2.00)A.任何一个对象构成一个独立的模块B.一个对象不是独立存在的实体,各个对象之间有关联,相互依赖C.下一层次的对象可以继承上一层次对象的
3、某些属性D.上述三种说法都正确3.下面的函数模板定义中错误的是(分数:2.00)A.template class Q q F(Q return Q+x;B.template class Q Q F(Q return x+x;C.template class T T F(Treturn x*x;D.template class T bool F(Treturn x1;4.下列关于栈的描述中错误的是(分数:2.00)A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针5.关于类模板,下列表述不正确的是(分数:2.00)A.用类模板定义一个对象时
4、,不能省略实参B.类模板只能有虚拟类型参数C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数6.下列叙述中正确的是(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述三种说法都不对7.已知:int m=10;在下列定义引用的语句中,正确的是(分数:2.00)A.int class Base public: Base() cout“BB“; f(); voidf()cout “Bf“; ; class Derived: public Base
5、 public: Derived ()cout“DD“; void f()cout“Df“; ; int main()Derived d; return 0; 执行上面的程序将输出(分数:2.00)A.BBBfDDB.BBDfDDDfC.DDD.DDBBBf9.下列关于 this 指针的叙述中,正确的是(分数:2.00)A.任何与类相关的函数都有 this 指针B.类的成员函数都有 this 指针C.类的友元函数都有 this 指针D.类的非静态成员函数才有 this 指针10.有如下程序: #include iostream using namespace std; class BASE p
6、ublic: BASE()cout“BASE“; ; class DERIVED:public BASE public: DERIVED()cout“DERIVED“; ; int main()DERIVED x;return 0; 执行后的输出结果是(分数:2.00)A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE11.数据库系统的核心是(分数:2.00)A.数据模型B.数据库管理系统C.数据库D.数据库管理员12.程序设计方法要求在程序设计过程中(分数:2.00)A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图B.先编制出程序,经调试使程序运
7、行结果正确后再在程序中的适当位置处加注释C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释D.以上三种说法都不对13.下列类的定义中,有( )处语法错误。 class Base public: Base() Base(int i) data=i; private: int data; ; class Derive : public Base public: Derive() : Base(0) Derive (int x) d=x; void setvalue(int i) data=i; private: d; ;(分数:2.00)A.1B.
8、2C.3D.414.面向对象程序设计思想的主要特征中不包括(分数:2.00)A.继承性B.功能分解,逐步求精C.封装性和信息隐藏D.多态性15.以下程序的输出结果是 #include iostream.h void main () int a=0, i; for (i=1; i5; i+) switch (i) case 0 : case 3 : a+=2; case 1 : case 2 : a+=3; default : a+=5; coutaendl; return; (分数:2.00)A.31B.13C.10D.2016.下列打开文件的表达式中,错误的是(分数:2.00)A.ofstr
9、eam ofile;ofilopen(“C:/vc/abtxt“,ios:binar;B.fstream iofile;iofilopen(“abtxt“,ios:at;C.ifstream ifile(“C:/vcXXabtxt“);D.couopen(“C:/vc/abtxt“,ios:binar;17.下列说法中错误的是(分数:2.00)A.公有继承时基类中的 public 成员在派生类中仍是 public 成员B.私有继承时基类中的 protected 成员在派生类中仍是 protected 成员C.私有继承时基类中的 public 成员在派生类中仍是 private 成员D.保护继承
10、时基类中的 public 成员在派生类中仍是 protected 成员18.下列函数中对调用它的函数没有起到任何作用的是(分数:2.00)A.void f1(double B.double f1(double return x-1.5;C.void f3(double -x;D.double f4(double *-*x; return*x;19.有以下程序: #include iostream using namespace std; class A private: int a; public: A(int i) a=i; void disp() couta“,“; ; class B p
11、rivate: int b; public: B(int j) b=j; void disp() coutb“,“; ; class C : public B,public A private: int c; public: C(int k) :A(k-2),B(k+2) c=k; void disp () A:disp (); B:disp (); coutcendl; ; int main () C obi (10); obj.disp (); return 0; 程序执行后的输出结果是(分数:2.00)A.10,10,10B.10,12,14C.8,10,12D.8,12,1020.有如
12、下程序: #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*821.在结构化设计方法中生成的结构图(SC) 中,带有箭头的连线表示(分数:2.00)A.模块之
13、间的调用关系B.程序的组成成份C.控制程序的执行顺序D.数据的流向22.下列叙述中正确的是(分数:2.00)A.接口复杂的模块,其耦合程度一定低B.耦合程度弱的模块,其内聚程度一定低C.耦合程度弱的模块,其内聚程度一定高D.上述三种说法都不对23.有以下程序 #include iostream #include string using namespace std; class base private: char baseName10; public: base () strcpy(baseName,“Base“); virtual char *myName() return baseNam
14、e; char *className() return baseName; ; class Derived : public base private: char derivedName10; public: Derived() strcpy(derivedName,“Derived“); char *myName() return derivedName; char *className() return derivedName; ; void showPtr(base int main () base bb; Derived dd; showPtr(dd); return 0; 运行后的输
15、出结果为(分数:2.00)A.Derived BaseB.Base BaseC.Derived DerivedD.Base Derived24.下面关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型25.有如下程序: #include iostream void fun(intx=y;y=t; int main () int a2=23,42; fun(a1,a0); std:couta0“,“a1std:endl; return
16、 0; 执行后的输出结果是(分数:2.00)A.42,42B.23,23C.23,42D.42,2326.在一棵二叉树上第 5 层的结点数最多是(分数:2.00)A.8B.16C.32D.1527.数据的存储结构是指(分数:2.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示28.若有以下程序: #include iostream using namespace std; int f() static int i = 0; int s = 1; s+=i; i+; return s; int main() int i,a =
17、 0; for(i = 0;i5;i+) a+=f(); coutaendl; return 0; 程序运行后,输出的结果是(分数:2.00)A.20B.24C.25D.1529.以下选项中合法的用户标识符是(分数:2.00)A.longB._2TestC.3DmaxD.dat30.在关系模型中,(分数:2.00)A.为了建立一个关系,首先要构造数据的逻辑关系B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项C.一个关系的属性名表称为关系模式D.一个关系可以包括多个二维表31.若有以下定义: int a = 1,2,3,4,5,6,7; char c1 = b,c2 = 2; 则数值
18、不为 2 的表达式是(分数:2.00)A.a1B.d-c1C.a3-c2D.c2-032.若类 A 和类 B 的定义如下: class A int i,j; public: int geti () return i; ; class B : public A int k; public: void make () k=i*j; ; 则上述定义中非法的语句是(分数:2.00)A.k=i*j;B.int k;C.return i;D.void make()33.针对数组定义 int data10;,下列表述中错误的是(分数:2.00)A.用*data 可访问到数组的首元素B.用 data9可访问到
19、数组的末元素C.用 data10访问数组元素会超出数组边界D.data 共有 10 个元素,其首元素是 data134.一个类可以同时继承多个类,称为多继承。下列关于多个继承和虚基类的表述中,错误的是(分数:2.00)A.每个派生类的构造函数都要为虚基类构造函数提供实参B.多继承时有可能出现对基类成员访问的二义性问题C.使用虚基类可以解决二义性问题并实现运行时的多态性D.建立最派生类对象时,虚基类的构造函数会首先被调用35.有以下程序: #include iostream using namespace std; int main () int x=15; while (x10 if (x/3
20、) x+; break; coutxendl; return 0; 执行后的输出结果是(分数:2.00)A.15B.16C.17D.18二、B填空题/B(总题数:15,分数:30.00)36.在一个容量为 25 的循环队列中,若头指针 front=16,尾指针 rear=9,则该循环队列中共有_个元素。(分数:2.00)填空项 1:_37.数据的逻辑结构在计算机存储空间中的存放形式称为数据的 1。(分数:2.00)填空项 1:_38.Jackson 方法是一种面向 1 的结构化方法。(分数:2.00)填空项 1:_39.在关系数据库中,把数据表示成二维表,每一个二维表称为 1。(分数:2.00
21、)填空项 1:_40.关系数据库管理系统能实现的专门关系运算包括选择、连接和 1。(分数:2.00)填空项 1:_41.求 1100 的和,可写成 for(s=0,i=1;_;i+) s+=1 的形式。(分数:2.00)填空项 1:_42.从实现的角度划分,C+所支持的两种多态性分别是 1 时的多态性和运行时的多态性。(分数:2.00)填空项 1:_43.非成员函数只有在声明为类的 1 才能防问这个类的所有 private 成员。(分数:2.00)填空项 1:_44.在下面横线上填上适当的语句,完成程序。 #include iostream using namespace std; class
22、 Base int x; public: Base(int i) x=i; Base() ; class Derived : public Base public: _/完成类 Derive 构造函数的定义 ; int main() Derived Obj; return 0; 在横线处应填入的语句是_。(分数:2.00)填空项 1:_45.非成员函数应声明为类的 1 函数才能访问这个类的 private 成员。(分数:2.00)填空项 1:_46.在下面程序的横线处填上适当的语句,使该程序的输出为 12。 #include iostream using namespace std; clas
23、s 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() _; /输出基类数据成员 a的值 coutbendl; ; int main () Derived d(1); d.show(); return 0; (分数:2.00)填空项 1:_47.假定 A 为一个类,则语句 A(A if (xy) a=x; x=y; y=a; if (yz) a=y; y=z; z=a; if (xy) a=x; x=
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 314 答案 解析 DOC
