【计算机类职业资格】二级C++笔试-188及答案解析.doc
《【计算机类职业资格】二级C++笔试-188及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-188及答案解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-188 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。(分数:2.00)A.125B.n/2C.nD.n+12.有下列程序:#includeiostreamUsing namespace std;Class Amountint amount;public;Amount(int n=O):amount(n)Int getAmount()constreturn amount;Amount return;int main()Amount x(3),y(7);
2、x+=y;coutx.getAmount()endl;return 0;己知程序的运行结果是 10,则横线处缺失的表达式是( )。A) *thisB.thisC.intb32=10,20,30,40,50,60;则 a11*b21)的结果为( )。(分数:2.00)A.2000B.1200C.2400D.30004.派生类构造函数的成员初始化列表中,不能包含( )。(分数:2.00)A.基类的构造函数B.派生类中子对象的初始化C.基类中子对象的初始化D.派生类中一般数据成员的初始化5.下列程序的输出结果是( )。#includeiostream.hvoid main()char*Str;str
3、=“testI“;coutstr5;(分数:2.00)A.test!B.testC.空字符D.异常6.下列叙述中正确的是( )。(分数:2.00)A.一个逻辑数据结构只能有一种存储结构B.逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率7.有下列程序:#includeiostreamusing namespace std;class VACpublic:int f() constreturn3;int f() return 5;int main()VAC
4、 v1;const VAC v2;coutv1.f()v2.f();return 0;运行该程序的输出结果是( )。(分数:2.00)A.53B.35C.55D.338.有下列程序:#includeiostreamusing namespace std;class TestClassprivate:int x,y;public:TestClass (int i,int j)x=i;y=j;void print()cout“printl“endl;void print ()constcout“print2“endl;int main()const TestClass a(1,2);a.print
5、();return 0;运行该程序后的输出结果是( )。(分数:2.00)A.print1B.print2C.pfint1 print2D.程序编译时出错9.以下( )成员函数表示纯虚函数。(分数:2.00)A.virtual int fun(int)B.void fun(int)=0C.virtual void fun()=0D.virtual void fun(int)10.有下列程序:#includeiostreamusing namespace std;class TestClassint a;public:TestClass(int x)a=x;void show()couta;cl
6、ass TestClass1:publicTestClassint b;public:TestClass1(int i):TestClass(i+1),b(i)void show()coutb;int main()TestClass b(5),*p;TestClass1 d(1);p=p-show();return 0;运行后的打印结果是( )。(分数:2.00)_11.下列程序的运行结果是( )。#includeiostream.hvoid fun(int a=a+b+i;i=i+a;void main()int x=5,y=2;fun(x,y);coutx“,“;fun(x);coutxe
7、ndl;(分数:2.00)A.5,2B.7,11C.11,23D.9,2312.在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )。(分数:2.00)A.调用语句B.命令C.口令D.消息13.下列程序的输出结果是( )。#includeiostreamusing namespace std;class TestClassstatic int i;public:TestClass()i+;TestClass()i-;static int getVal()retum i;int TestClassi=0;void fun()TestClass ob2;coutob2.getVa
8、l();int main()TestClass obi;fun();TestClass*ob3=new TestClass;coutob3-getVal();delete ob3;coutTestClassgetVal();retum 0;(分数:2.00)A.111B.121C.211D.22114.有如下函数模板声明:templatetypename TT Max(T a,T b)return(a-b)?a:b;下列对函数模板 Max()的调用中错误的是( )。(分数:2.00)A.Max(3.5,4.5)B.Max(3.5,4)C.Maxdouble(3.5,4.5)D.Maxdoubl
9、e(3.5,4)15.关于关键字 class 和 typename,下列表述中正确的是( )。(分数:2.00)A.程序中的 typename 都可以替换为 classB.程序中的 class 都可以替换为 typenameC.在模板形参表中只能用 typename 来声明参数的类型D.在模板形参表中只能用 class 或 typename 来声明参数的类型16.关于关键字 class 和 typename,下列描述正确的是( )。(分数:2.00)A.程序中所有的 class 都可以替换为 typenameB.程序中所有的 typename 都可以替换为 classC.选项 A) 和选项 B
10、D.选项 A) 和选项 B17.下列关于结构化程序设计原则和方法的描述中,错误的是( )。(分数:2.00)A.选用的结构只准许有一个入口和一个出口B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C.不允许使用 GOTO 语句D.语言中所没有的控制结构,应该采用前后一致的方法来模拟18.若有下列定义及初始化语句:int i=100;int*p=intk=*ip;并假设整型数 i 的地址为 0x12345678,指针中的地址为 0x21000000,则 k 的值为( )。(分数:2.00)A.0x12345678B.0x21000000C.100D.异常19.下列特征中不是面向对象方法的主
11、要特征的是( )。(分数:2.00)A.多态性B.继承C.封装性D.模块化20.下列叙述中正确的是( )。(分数:2.00)A.一个算法的空间复杂度大,则其时间复杂度必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述三种说法都不对21.有如下函数模板定义:templatetypename T1,int a2,int a3T1 fun(T1 a1)return(al+a2+a3);则下列调用中正确的是( )。(分数:2.00)A.funint,4,3(5);B.fun4,3(5);C.funint,int,int(5);D.fun(5)
12、;22.下列表达式的值为 false 的是( )。(分数:2.00)A.13int main()void function(double val);double val;function(val);coutval;return 0;void fimction(double val)val=3;编译运行这个程序将出现的情况是( )。(分数:2.00)A.编译出错,无法运行B.输出 3C.输出:3.0D.输出一个不确定的数31.一个函数为 void f(int,char ch=a),另一个函数为 void f(iht),则它们( )。(分数:2.00)A.不能在同一程序中定义B.可以在同一程序中定
13、义并可重载C.可以在同一程序中定义,但不可以重载D.以上三种说法均不正确32.执行语句序列inti=0;while(i25)i+=3;couti;输出结果是( )。(分数:2.00)A.24B.25C.27D.2833.下列描述中错误的是( )。(分数:2.00)A.继承分为多重继承和单继承B.对象间通信靠传递消息实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合34.有下列程序:#includeiostreamusing namespace std;class TestClassprotected:TestClass()coutx
14、;TestClass(char c)coutc;class TestClassl:public TestClasspublic:TestClassl(char c)coutc;int main()TestClass1 d1(y);retum 0;执行这个程序屏幕上将显示输出( )。(分数:2.00)_35.下列是重载乘法运算符的函数原型声明,其中错误的是( )。(分数:2.00)A.MyClass operator*(double,double);B.MyClass operator*(double,MyClass);C.MyClass operator*(MyClass,double);D.
15、MyClassoperator*(MyClass,MyClass);二、填空题(总题数:15,分数:30.00)36.在程序设计阶段应该采取 1 和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。(分数:2.00)填空项 1:_37.注释一般分为序言性注释和 1 注释。(分数:2.00)填空项 1:_38.在面向对象方法中,类的实例称为 1。(分数:2.00)填空项 1:_39.某二叉树中度为 2 的结点有 18 个,则该二叉树中有 1 个叶子结点。(分数:2.00)填空项 1:_40.数据流图的类型有 1 和事务型。(分数:2.00)填空项
16、1:_41.在多继承的基类和派生类中同时出现 1 存在二义性。(分数:2.00)填空项 1:_42.有下列程序:#includeiostreamusing namespace std;class TestClass1public:TestClass1()cout“A“;class TestClass2public:TestClass2()cout“B“;class TestClass3:public TestClass1TestClass2 b;public:TestClass3()cout“C“;;int main()(TestClass3 obj;return 0;执行该程序后的输出结果是
17、_。(分数:2.00)填空项 1:_43.编译时的多态性可以通过使用 1 获得。(分数:2.00)填空项 1:_44.如果使用数组名称为函数参数,形实结合时,传递的是 1。(分数:2.00)填空项 1:_45.在类的对象被创建时, 1 函数会被自动调用。(分数:2.00)填空项 1:_46.下列程序的执行结果是_。#includeioStream.h#includeiomanip.husing namespace std;void main()coutsetfill(x)setw(10);cout“Hello“end1;(分数:2.00)填空项 1:_47.请将下列类定义补充完整。class
18、Basepublic:void fun()cout“Basefun“end1;c1ass DehVed:public Basepublic:void fun()_ 显式调用基类的 fun 函数cout“Derivedfun“endl;(分数:2.00)填空项 1:_48.有下列程序:#includeiostreamusing namespace std;class ONEpublic:virtual void f()COUt“1“;c1assTWO:public ONEpublic:TWO()cout“2“;class THREE:public TWOpublic:virtual void f
19、()TWOf();cout“3“;int main()ONE aa,*p;TWO bb;THREE cc;p=p-f();return 0;执行上面程序的输出结果是_。(分数:2.00)填空项 1:_49.在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承 private。已知有如下类定义:class Baseprotected:void fun();class Derived:Base;则 Base 类中的成员函数 fun(),在 Derived 类中的访问权限是_(注意:要求填写private、protected 或 public 中的一项)。(分数:2.00)填空项 1
20、:_50.已知下列程序的输出结果是 42,请将横线处缺失的部分补充完整。#includeiostreamusing namespace std;class Fooint value;public:Foo():value(0)void setValue(int value)_=value; 给 Foo 的数据成员 value 赋值void print()coutvalue;p;int main()Foo f;gf.setValue(42);f.print();return 0;(分数:2.00)填空项 1:_二级 C+笔试-188 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(
21、总题数:35,分数:70.00)1.对长度为 n 的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。(分数:2.00)A.125B.n/2C.n D.n+1解析:解析 对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为 n。2.有下列程序:#includeiostreamUsing namespace std;Class Amountint amount;public;Amount(int
22、 n=O):amount(n)Int getAmount()constreturn amount;Amount return;int main()Amount x(3),y(7);x+=y;coutx.getAmount()endl;return 0;己知程序的运行结果是 10,则横线处缺失的表达式是( )。A) *thisB.thisC.intb32=10,20,30,40,50,60;则 a11*b21)的结果为( )。(分数:2.00)A.2000B.1200C.2400 D.3000解析:解析 因为 a 中由第 0 个位置开始,所以 a11*b21为二维数组中的第二行二列乘以 b 中第
23、三行二列,即 40*60。4.派生类构造函数的成员初始化列表中,不能包含( )。(分数:2.00)A.基类的构造函数B.派生类中子对象的初始化C.基类中子对象的初始化 D.派生类中一般数据成员的初始化解析:解析 构造函数的主要作用是对数据成员初始化。在设计派生类的构造函数中,不仅要考虑派生类所增加数据成员的初始化,还应考虑基类中构造函数的初始化。子对象是对象中的对象,子对象的初始化是在建立派生类时通过调用派生类构造函数来实现。所以派生类构造函数的任务包括 3 部分:对基类数据成员初始化:对子对象数据成员初始化;对派生类数据成员初始化。即本题选择选项 C)。5.下列程序的输出结果是( )。#in
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 188 答案 解析 DOC
