【计算机类职业资格】二级C++笔试-230及答案解析.doc
《【计算机类职业资格】二级C++笔试-230及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-230及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-230 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.关于在调用模板函数时模板实参的使用,下列叙述中正确的是(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略2.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是(分数:2.00)A.DB 包含 D
2、BS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMSD.没有任何关系3.if 语句的语法格式可描述为 格式 1:if(条件)语句 或 格式 2:if(条件)语句 1else语句 2 关于上面的语法格式,下列表述中错误的是(分数:2.00)A.条件部分可以是一个 if 语句,例如 if(if(a=0)B.条件部分可以是一个 if 语句,例如 if()if()C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句,例如 if()while()4.在 E-R 图中,用来表示实体的图形是(分数:2.00)A.矩
3、形B.椭圆形C.菱形D.三角形5.下列叙述中正确的是(分数:2.00)A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构6.有如下类声明: class SAMPLE int n; public: SAMPLE(int i=0):n(i) void setValue(mt nO); ; 下列关于 setValue 成员函数的实现中,正确的是(分数:2.00)A.SAMPLE:setValue(int nO)n=nO;B.void SAMPLE:setValue(int nO)n=nO;C.void setValue(int nO)n
4、=nO;D.setValue(int nO)n=nO;7.有如下程序: #includeiostream using namespaee std; class Base protected: Base( )toutA; Base(char C) coutc; ; class Derived:public Base public: Derived(char C) eoutc; ; int lnaiD( ) Derived dl(B); return 0; 执行这个程序屏幕上将显示输出(分数:2.00)A.BB.BAC.ABD.BB8.有如下程序: #includeiostream #includ
5、eiomanip using namespace std; int main( ) coutsetprecision(3)fixedsetfill(*)SETW(8);cout12.345_34.567; return 0; 若程序的输出是: *12.345*34.567 则程序中下画线处遗漏的操作符是(分数:2.00)A.setprecision(3)B.fixedC.setfill(*)D.stew(8)9.下列关于 C+函数的叙述中,正确的是(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前
6、,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式10.两个或两个以上模块之间关联的紧密程度称为(分数:2.00)A.耦合度B.内聚度C.复杂度D.数据传输特性11.有如下程序: #lneludeIOstream using namespaee std; class Complex double re,im; public: Complex(double r,double i):re(r),im(i) double real( )constreturn re; double image( )constreturn im; Complex im+=a.im; re
7、turn*this; ; ostream public: Obj( )i+ Obj( )i-; static int getVal( )return i; ; int Obj:i=0; void f( )Obj ob2;coutob2getVal( ); int main( ) Obj obl; f( ); Obj*ob3=new Obj;coutob3-getVal( ); delete ob3;coutObj:getVal( ); return 0; 程序的输出结果是(分数:2.00)A.232B.231C.222D.22115.以下关键字不能用来声明类的访问权限的是(分数:2.00)A.
8、publicB.staticC.protectedD.private16.有下面的函数调用 fun(a+b,3,max(n-1)B) 则 fun 的实参个数是(分数:2.00)A.3B.4C.5D.617.下列选项不属于结构化程序设计方法的是(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用18.运算符重载是对已有的运算符赋予多重含义,因此(分数:2.00)A.可以对基本类型(如 int 类型)的数据,重新定义“+”运算符的含义B.可以改变一个已有运算符的优先级和操作数个数C.只能重载 C+中已经有的运算符,不能定义新运算符D.C+中已经有的所有运算符都可以重载19.有如下程序:
9、#includeiostream #includeiomanip using namespace std; class MyClass public: MyClass( )coutA; MyClass(char C) coutc; MyClass( )coutB; ; int main( ) MyClass pl,*p2; p2=new MyClass(X); delete p2; return 0; 执行这个程序屏幕上将显示输出(分数:2.00)A.ABXB.ABXBC.AXBD.AXBB20.有如下程序: #includeiostream using namespace std; clas
10、s Base private: void funl( )constcout“funl“; protected: void fun2( )consttout“fun2“; public: void fun3( )consteout“fun3“; ; class Derived:protected Base public: void fun4( )constcout“fun4“; ; int main( ) Derived obj; obj.funl( ); / obj.fun2( ); / obj.fun3( ); / obj.fun4( ); / return 0; 其中有语法错误的语句是(分
11、数:2.00)A.B.C.D.21.按照“后进先出”原则组织数据的数据结构是(分数:2.00)A.队列B.栈C.双向链表D.二叉树22.在深度为 7 的满二叉树中,叶子结点的个数为(分数:2.00)A.32B.31C.64D.6323.下列语句中,错误的是(分数:2.00)A.const int buffei=256;B.const double*point;C.int const buffer=256;D.double*const point:;24.在公有继承的情况下,允许派生类直接访问的基类成员包括(分数:2.00)A.公有成员B.公有成员和保护成员C.公有成员、保护成员和私有成员D.保
12、护成员25.下列符号中,正确的 C+标识符是(分数:2.00)A.enumB.2bC.foo-9D._3226.由于常对象不能被更新,因此(分数:2.00)A.通过常对象只能调用它的常成员函数B.通过常对象只能调用静态成员函数C.常对象的成员都是常成员D.通过常对象可以调用任何不改变对象值的成员函数27.下列叙述中正确的是(分数:2.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上 3 种说法都不对28.“商品”与“顾客”两个实体集之间的联系一般是(分数:2.00)A.一对一B.一对多C.多对一D.多对多29.有如下说明: in
13、ta10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是(分数:2.00)A.*p+9B.*(p+8)C.*p+=9D.p+830.有如下程序: #includeiostream using namespaee std; int i=1; class Fun public: static int i; int value( ) return i-1; int value( )cons return i+1; ; int Fun:i=2; int main( ) int i=3; Fun funl; const Fun fun2; _: return 0; 若程序
14、的输出结果是: 123 则程序中下画线处遗漏的语句是(分数:2.00)A.coutfunlvalue( )Fun:ifun2value( );B.coutFun:ifunlvalue( )fun2value( );C.coutfunlvalue( )fun2value( )Fun:i;D.coutfun2value( )Fun:ifunlvalue( );31.下列关于输入流类成员函数 getline( )的描述中,错误的是(分数:2.00)A.该函数是用来读取键盘输入的字符串的B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符便停止D.该函数读取字符串时,可以包含空格32
15、.关于关键字 class 和 typename,下列叙述中正确的是(分数:2.00)A.程序中的 typename 都可以替换为 classB.程序中的 class 都可以替换为 typenameC.在模板形参表中只能用 typename 来声明参数的类型D.在模板形参表中只能用 class 或 typename 来声明参数的类型33.下列关于虚函数的叙述中,正确的是(分数:2.00)A.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数C.只能通过指针或引用调用虚函数D.抽象类中的成员函数都是虚函数34.关于运算符重载,下列叙述中正确的是(分数:2.00)A.C+已有的任何运算符都可以
16、重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型D.可以通过运算符重载来创建 C+中原来没有的运算符35.有如下程序: #includeiostream using namespace std; class Base public: void funl( )cout“Base/n“; virtual void fun2( )cout“Base/n“; ; class Derived:public Base public: void funl( )eout“Derived/n“; void fun2( )cout“Derived/n“; ; voi
17、d f(Base B) b.funl( );b.fun2( ); int main( ) Derived obj; f(obj); return 0; 程序的输出结果是(分数:2.00)A.BaseBaseB.BaseDerivedC.DerivedBaseD.Derived Derived二、填空题(总题数:15,分数:30.00)36.对长度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为 1。(分数:2.00)填空项 1:_37.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_38.在关系模型中,把数据看成是二维表,每一个二维表称为
18、一个 1。(分数:2.00)填空项 1:_39.程序测试分为静态分析和动态测试。其中 1 是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。(分数:2.00)填空项 1:_40.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为 1。(分数:2.00)填空项 1:_41.有一种只在循环语句或 switch 语句中使用的流程控制语句,表示该语句的关键字是 1。(分数:2.00)填空项 1:_42.程序中有如下语句 for(int i=0;i5;i 十+)cout*(P+i)“,“; 能够依次
19、输出 int 型一维数组 DATA 的前 5 个元素。由此可知,变量 P 的定义及初始化语句是_。(分数:2.00)填空项 1:_43.若下面程序运行时输出结果为 1,A,10.1 2,B,3.5 请将程序补充完整。 #includeiostream using namespace std; int main( ) void test(int,char,double_); test(1,A,10.1); test(2,B); return 0; void test(int a,char b,doubleC) couta,b,cendl;(分数:2.00)填空项 1:_44.有如下类声明: cl
20、ass MyClass int i; private: int j; protected: int k; public: int m,n; ; 其中,私有成员的数量为_。(分数:2.00)填空项 1:_45.有如下程序: #include iostream using namespace std; class Con char ID; public: Con( ):ID(A)cout1; Con(char ID) :ID(ID) eout2; Con(Con im+=a.im; return*this; ; ostream public: Obj( )i+ Obj( )i-; static i
21、nt getVal( )return i; ; int Obj:i=0; void f( )Obj ob2;coutob2getVal( ); int main( ) Obj obl; f( ); Obj*ob3=new Obj;coutob3-getVal( ); delete ob3;coutObj:getVal( ); return 0; 程序的输出结果是(分数:2.00)A.232B.231C.222D.221 解析:解析 因为实现了同类之间的不同对象之间的数据共享,所以静态数据成员无论有多少个类对象的建立和删除,都只有一个副本。Obj obl;调用构造函数一次,i=1,f( );再调
22、用 f 函数,新生成局部对象 ob2,调用构造函数一次,i=2,调用 ob2.getVal();打印 i=2;f 函数调用结束时,对象 ob2 被删除,调用析构函数一次,i=1;0bj*ob3=new Obj;生成一个对象指针,调用构造函数一次,此时i=2,coutob3-getVal( );打印 i 的值为 2,delete ob3;调用析构函数一次,i-1,coutObj:getVal( );为 1。15.以下关键字不能用来声明类的访问权限的是(分数:2.00)A.publicB.static C.protectedD.private解析:解析 类的访问权限有 public、prirate
23、、protected 3 种方式。16.有下面的函数调用 fun(a+b,3,max(n-1)B) 则 fun 的实参个数是(分数:2.00)A.3 B.4C.5D.6解析:解析 函数的实参可以有常量、变量和表达式,但是一个表达式只能是一个实参。前后用“,”隔开。17.下列选项不属于结构化程序设计方法的是(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用 解析:解析 结构化程序设计方法的原则可以概括为自顶向下,逐步求精,模块化,限制使用 goto 语句。代码可重用性是面向对象程序设计方法的一大特点。18.运算符重载是对已有的运算符赋予多重含义,因此(分数:2.00)A.可以对基本类
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 230 答案 解析 DOC
