【计算机类职业资格】二级C++笔试19及答案解析.doc
《【计算机类职业资格】二级C++笔试19及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试19及答案解析.doc(16页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试 19及答案解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.C语言中 while循环和 do-while循环的主要区别是(分数:2.00)A.do-while的循环体至少无条件执行一次B.while的循环控制条件比 do-while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句2.关于类模板,下列表述不正确的是(分数:2.00)A.用类模板定义一个对象时,不能省略实参B.类模板只能有虚拟类型参数C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数3.下列叙
2、述中正确的是(分数:2.00)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构4.设有以下程序段: int a5=0,*p,*q; p=a; q=a; 则下列选项中,合法的运算是(分数:2.00)A.p+qB.p-qC.p*qD.Pq5.下列叙述中正确的是(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述三种说法都不对6.假定 MyClass为一个类,则该类的拷贝构造函数的声明语句为(分数:2.00)A.MyClass
3、 class Base public: Base() x=0; int x; ; class Derivedl: virtual public Base public: Derived1() x=10; ; class Derived2: virtual public Base publici Derived2() x=20; ; class Derived :public Derived1,protected Derived2 ; int main() Derived obj; coutobj.xend1; return 0; 该程序运行后的输出结果是(分数:2.00)A.20B.30C.1
4、0D.013.模板函数的真正代码是在( )时候产生。(分数:2.00)A.源程序中声明函数时B.源程序中定义函数时C.源程序中调用函数时D.运行执行函数时14.下列类的定义中,有( ) 处语法错误。 class Base public: Base() Base(int i) data=i; private: int data; ; class Derive: public Base public: Derive(): Base(O) Derive(int x) d=x; void setvalue(int i) data=i; private: d; ;(分数:2.00)A.1B.2C.3D.
5、415.派生类的构造函数的成员初始化列表中,不能包含(分数:2.00)A.基类的构造函数B.派生类中子对象的初始化C.基类的子对象初始化D.派生类中一般数据成员的初始化16.有以下程序: #includeiostream using namespace std; class sample private: int n; public: sample() sample(int m) n=m; sample add(sample s1,sample s2) this-n=s1.n+s2.n; return(*this); void disp() cout“n“nend1; ; int main()
6、 sample s1(10),s2(5),s3; s3add(s1,s2); s3disp(); return 0; 程序运行后,输出的结果是(分数:2.00)A.n=10B.n=5C.n=20D.n=1517.若有如下程序: #include iostream using namespaces std; int s=O; class sample static int n; public: sample(int i) n=i; static void add() s+=n; ; int sample:s=O; int main() sample a(2),b(5); sample: :add
7、(); coutsend1; return 0; 程序运行后的输出结果是(分数:2.00)A.2B.5C.7D.318.若执行语句:coutsetfill(*)setw(10)123“OK“end1 后将输出(分数:2.00)A.*1230KB.123*OKC.*123*OKD.123*OK*19.下列运算符中不能在 C中重载的是(分数:2.00)A.?:B.+C.-D.=20.下列叙述中错误的是(分数:2.00)A.在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统B.在数据库设计的过程中,概念结构设计与具体的数据库管理系统有关C.在数据库设计的过程中,逻辑结构设计与具体的数据库管理
8、系统有关D.在数据库设计的过程中,物理结构设计依赖于具体的计算机系统21.程序设计方法要求在程序设计过程中(分数:2.00)A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释D.以上三种说法都不对22.下面关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数
9、和类型23.以下程序执行后的输出结果是 #includeiostream using namcspace std; void try(int,int,int,int); int main() int x,y,z,r; x=1; y=2; try(x,y,z,r); coutrend1; return 0; void try(int x,int y, int z,int r) z = x+y; x = x*x; y = y*y; r = z+x+y; (分数:2.00)A.18B.9C.10D.不确定24.下列对派生类的描述中,错误的是(分数:2.00)A.一个派生类可以作为另一个派生类的基类B
10、.派生类至少有一个基类C.派生类的成员除了它自己的成员外,还包含了它的基类的成员D.派生类中继承的基类成员的访问权限到派生类中保持不变25.已知:int n=10;那么下列语句中错误的是(分数:2.00)A.int*p=new long;B.int p;C.int*p=new long(;D.int p10;26.下列打开文件的表达式中,错误的是(分数:2.00)A.ofstream ofile;ofilopen(“C:/vc/abtxt“,ios:binar;B.fstream iofile;iofilopen(“abtxt“,ios:at;C.ifstream ifile (“C:/vc
11、/abtxt“);D.couopen(“C:/vc/abtxt“,ios:binar;27.设树 T的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1。则 T中的叶子结点数为(分数:2.00)A.5B.6C.7D.828.下述关于数据库系统的叙述中正确的是(分数:2.00)A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据29.面向对象程序设计思想的主要特征中不包括(分数:2.00)A.继承性B.功能分解,逐步求精C.封装性和信息隐藏D.多态性30.下列叙述中正确的是(分数:2.00)
12、A.黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征B.黑箱(盒)测试方法主要考虑程序的内部结构和内部特征C.白箱(盒)测试不考虑程序内部的逻辑结构D.上述三种说法都不对31.用树形结构来表示实体之间联系的模型称为(分数:2.00)A.关系模型B.层次模型C.网状模型D.数据模型32.有如下函数模板定义: templatetypename T1,typename T2,typename T3 T2 plus T1 t1,T3 t3)return t1+t3; 则以下调用中正确是(分数:2.00)A.plus(3,5;B.plus(3,5;C.plusint(3,5;D.plusint,do
13、uble(3,5;33.下面不属于软件设计原则的是(分数:2.00)A.抽象B.模块化C.自底向上D.信息隐蔽34.若有以下程序: #includeiostream using namespace std; class data public: int x; data(int x) data:x=x; ; class A private: data d1; public: A(int x):d1(x) void dispa() coutd1.X“,“; ; classB:public A private: data d2; public: B(int x):A(x-1),d2(x) void
14、dispb() coutd2.xend1; ; class C:public B public: C(int x):B(x-1) void disp() dispa(); dispb(); ; int main() C obj(5); obj.disp(); return 0; 程序执行后的输出结果是(分数:2.00)A.5,5B.4,5C.3,4D.4,335.若有以下程序: #includeiOStream using namespaces std; class A public: A() A(int i) x1=i; void dispa() cout“X1=“x1“,“: privat
15、e; int x1; ; class B:public A public: B() B(int i):A(i+10) x2=i; void dispb() dispa(); cout“x2=“x2end1; private: int x2; ; int main() B b(2); bdispb() return 0; 程序运行后的输出结果是( )。(分数:2.00)A.x1=10,x2=2B.x1=12,x2=10C.x1=12,x2=2D.x1=2,x2=2二、B填空题/B(总题数:14,分数:28.00)36.在一个容量为 25的循环队列中,若头指针 front=16,尾指针 rear=
16、9,则该循环队列中共有U 【1】 /U个元素。(分数:2.00)填空项 1:_37.在面向对象方法中,属性与操作相似的一组对象称为U 【2】 /U。(分数:2.00)填空项 1:_38.Jackson方法是一种面向U 【3】 /U的结构化方法。(分数:2.00)填空项 1:_39.一个项目具有一个项目主管,一个项目主管可管理多个项目。则实体集“项目主管”与实体集“项目”的联系属于U 【4】 /U的联系。(分数:2.00)填空项 1:_40.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改,称为U 【5】 /U。(分数:2.0
17、0)填空项 1:_41.假设 a、b 均是整型变量,则表达式 a=2,b=5,a+,b+,a+b 值为U 【6】 /U。(分数:2.00)填空项 1:_42.设在主函数中有以下定义和函数调用语句,且 fun()函数为 void类型,请写出 fun()函数的首部U 【7】 /U。 int main() double s1022; int n; fun(s); return 0; (分数:2.00)填空项 1:_43.若有如下程序段: #includeiostream using namespace std; int main() char*p=“abcdefgh“,*r; long*q; q=(
18、long*)p;q+; r=(char*)q; coutrendl; return 0; 该程序的输出结果是U 【8】 /U。(分数:2.00)填空项 1:_44.表达式 c3=c1operator+(c2)或 c3=operator+(c1,c2)还可以表示为U 【9】 /U。(分数:2.00)填空项 1:_45.下列程序的输出结果是U 【10】 /U。 #includeiostream using namespace std; void fun (int class Base public: Base() x=0; int x; ; class Derivedl: virtual publ
19、ic Base public: Derived1() x=10; ; class Derived2: virtual public Base publici Derived2() x=20; ; class Derived :public Derived1,protected Derived2 ; int main() Derived obj; coutobj.xend1; return 0; 该程序运行后的输出结果是(分数:2.00)A.20 B.30C.10D.0解析:解析 本题考核虚基类的应用。本题中,虽然 Derived1和 Derived2都是由共同的基类 x派生而来的,但山于引入了
20、虚基类,使得它们分别对应基类的不同副本。这时数据成员 x只存在一份拷贝,不论在类 Derived1修改,还是在类 Derived2中修改, 都是直接对这惟一拷贝进行操作。本题程序执行语句“Derived obj”时,就会先调用虚基类 Base的构造函数,使得 x=0,然后执行类 Derived1的构造函数使得 x=10,再执行类 Derived2的构造函数,使得 x=20。最后输出 x的值为 20。13.模板函数的真正代码是在( )时候产生。(分数:2.00)A.源程序中声明函数时B.源程序中定义函数时C.源程序中调用函数时 D.运行执行函数时解析:解析 本题考核模板函数的使用。在说明一个函数
21、模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否匹配函数模板中对象的形参,然后生成一个重载函数。由此可知模板函数的真正代码是在函数调用时产生的。14.下列类的定义中,有( ) 处语法错误。 class Base public: Base() Base(int i) data=i; private: int data; ; class Derive: public Base public: Derive(): Base(O) Derive(int x) d=x; void setvalue(int i) data=i; private: d; ;(分数:2.00)A.1
22、B.2 C.3D.4解析:解析 本题考核派生类的定义和成员的访问权限。第一处错误:在派生类的构造函数 Derive(int x)中没有调用基类的构造函数对基类对象初始化:第二处错误:数据 data是基类 Base的私有成员,派生类 Derive不能访问,所以在函数 setvalue中对 data的赋值是错误的。15.派生类的构造函数的成员初始化列表中,不能包含(分数:2.00)A.基类的构造函数B.派生类中子对象的初始化C.基类的子对象初始化 D.派生类中一般数据成员的初始化解析:解析 本题考核构造函数。在 C中,构造函数不能被继承,因此,派生类的构造函数必须通过调用基类的构造函数来初始化基类
23、子对象。所以,在定义派生类的构造函数时,除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对于对象初始化的构造函数。但是它不负责基类中子对象的初始化。16.有以下程序: #includeiostream using namespace std; class sample private: int n; public: sample() sample(int m) n=m; sample add(sample s1,sample s2) this-n=s1.n+s2.n; return(*this); void disp()
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 19 答案 解析 DOC