【计算机类职业资格】二级C++笔试-252及答案解析.doc
《【计算机类职业资格】二级C++笔试-252及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-252及答案解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-252 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.关于关键字 class 和 typename,下列描述中正确的是( )。(分数:2.00)A.程序中所有的 class 都可以替换为 typenameB.程序中所有的 typename 都可以替换为 classC.选项 A)和D.选项 A)和2.下列叙述中正确的是( )。(分数:2.00)A.一个算法的空间复杂度大,则其时间复杂度必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述三种说法都不对3.有如下程序:#
2、includeiostreamusing namespace std;class VACpublic:int f() constreturn 3;int f() return 5;;int main()VAC v1;const VAC v2;coutv1.f()v2.f();return 0;运行时的输出结果是( )。(分数:2.00)A.53B.35C.55D.334.下列叙述中,错误的是( )。(分数:2.00)A.派生类可以使用 private 派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派生类中维持不变D.赋值兼容规则也适用于多继承的组合5.下列叙述中正确的是( )
3、。(分数:2.00)A.一个逻辑数据结构只能有一种存储结构B.逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率6.设计程序时,应采纳的原则之一是( )。(分数:2.00)A.程序的结构应有助于读者的理解B.限制 GOTO 语句的使用C.减少或取消注释行D.程序越短越好7.派生类中的成员不能直接访问基类中的( )成员。(分数:2.00)A.publicB.privateC.virtualD.protected8.有如下程序:#includeiostream
4、using namespace std;Class TestClassprivate:int x,y;public:TestClass(int i,int j)x=i;y=j;Void print()cout“print1“endl;void print()constcout“print2“endl;int main()const TestClass a(1,2);a.print();return 0;该程序运行后的输出结果是( )。(分数:2.00)A.print1B.print2C.print1 print2D.程序编译时出错9.( )既可重载为一元运算符,又可重载为二元运算符。(分数:2
5、.00)A.“*”B.“=”C.“=”和“*”D.“*”和“*+”10.下列是重载乘法运算符的函数原型声明,其中错误的是( )。(分数:2.00)A.MyClass operator*(double,double);B.MyClass operator*(double,MyClass);C.MyClass operator*(MyClass,double);D.MyClass operator*(MyClass,MyClass);11.有如下函数模板声明:templatetypename TTMax(T a,T b)return(a=b)?a:b;下列对函数模板 Max()的调用中错误的是(
6、)。(分数:2.00)A.Max(3.5,4.5)B.Max(3.5,4)C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)12.关于关键字 class 和 typename,下列表述中正确的是( )。(分数:2.00)A.程序中的 typename 都可以替换为 classB.程序中的 class 都可以替换为 typenameC.在模板形参表中只能用 typename 来声明参数的类型D.在模板形参表中只能用 class 或 typename 来声明参数的类型13.有如下程序:#includeiostreamusing namespace std;int main
7、()void function(double val);double val;function(val);coutval;return 0;void function(double val)val=3;编译运行这个程序将出现的情况是( )。(分数:2.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数14.下列表达式的值为 false 的是( )。(分数:2.00)A.13TestClass(char c)coutc;;class TestClass1:public TestClasspublic:TestClass1(char C) coutc;;int main
8、()TestClass1 d1(y);return 0;执行这个程序,屏幕上将显示输出( )。(分数:2.00)A.yB.yxC.xyD.yy20.下列关于结构化程序设计原则和方法的描述中错误的是( )。(分数:2.00)A.选用的结构只准许有一个入口和一个出口B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C.不允许使用 GOTO 语句D.语言中所没有的控制结构,应该采用前后一致的方法来模拟21.有如下程序:#includeiostreamusing namespace std;class TestClassint a;public:TestClass(int x)a=x;void s
9、how()couta;;class TestClass1:public TestClassint b;public:TestClass1(int i):TestClass(i+1),b(i)void show()coutb;;int main()TestClass b(5),*p;TestClass1 d(1);p=Amount TestClass()i-;static int getVal()return i;;int TestClass:i=O;void fun()TestClass ob2;coutob2.getVal();int main()TestClass ob1;fun();Te
10、stClass*ob3=new TestClass;coutob3-getVal();delete ob3;coutTestClass:getVal();return 0;(分数:2.00)A.111B.121C.211D.22131.在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )。(分数:2.00)A.调用语句B.命令C.口令D.消息32.下列特征中不是面向对象方法的主要特征的是( )。(分数:2.00)A.多态性B.继承C.封装性D.模块化33.执行下列程序的结果是( )。#includeiostream.hvoid main()char *str;str=“tes
11、t!“;coutstr5;(分数:2.00)A.test!B.testC.空字符D.异常34.执行下列语句序列:int i=0;while(i25)i+=3;couti;输出结果是( )。(分数:2.00)A.24B.25C.27D.2835.设有下列定义语句:int a32=10,20, 30,40, 50,60;int b32=10,20, 30,40, 50,60;则 a11*b21的结果为( )。(分数:2.00)A.2000B.1200C.2400D.3000二、填空题(总题数:15,分数:30.00)36.在程序设计阶段应该采取 1 和逐步求精的方法,把一个模块的功能逐步分解,细化
12、为一系列具体的步骤,继而用某种程序设计语言写成程序。(分数:2.00)填空项 1:_37.注释一般分为序言性注释和 1 注释。(分数:2.00)填空项 1:_38.在面向对象方法中,类的实例称为 1。(分数:2.00)填空项 1:_39.某二叉树中度为 2 的结点有 18 个,则该二叉树中有 1 个叶子结点。(分数:2.00)填空项 1:_40.数据流图的类型有 1 和事务型。(分数:2.00)填空项 1:_41.在多继承中基类和派生类中同时出现 1 存在二义性。(分数:2.00)填空项 1:_42.有如下程序:#includeiostreamusing namespace std;class
13、 TestClass1public:TestClass1()cout“A“;;class TestClass2public:TestClass2()cout“B“;;class TestClass3;public TestClass1TestClass2 b;public:TestClass3()cout“C“;;int main()TestClass3 obj;return 0;该程序执行后的输出结果是_。(分数:2.00)填空项 1:_43.编译时的多态性可以通过使用 1 获得。(分数:2.00)填空项 1:_44.如果使用数组名称为函数参数,形实结合时,传递的是 1。(分数:2.00)填
14、空项 1:_45.在类的对象被创建时, 1 函数会被自动调用。(分数:2.00)填空项 1:_46.下列程序的执行结果是_。#includeiostream.h#includeiomanip.husing namespace std;voidmain()coutsetfill(x)setw(10);cout“Hello“end1;(分数:2.00)填空项 1:_47.请将下列类定义补充完整。class Base(public:void fun()cout“Base:fun“endl;;class Derived:public Basepublic:void fun()_ /显式调用基类的 fu
15、n 函数cout“Derived:fun“endl;(分数:2.00)填空项 1:_48.有如下程序:#includeiostreamusing namespace std;class ONEpublic:virtual void f()cout“1“;;class TWO:public ONEpublic:TWO()cout“2“;;class THREE:public TWOpublic:vurtual void f() TOW:f();cout“3“;;int main()ONE aa,*p;TWO bb;THREE cc;p= /给 Foo 的数据成员 value 赋值void pri
16、nt()coutvalue;;int main()Foo f;f.setValue(42);f.print();return 0;(分数:2.00)填空项 1:_二级 C+笔试-252 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.关于关键字 class 和 typename,下列描述中正确的是( )。(分数:2.00)A.程序中所有的 class 都可以替换为 typenameB.程序中所有的 typename 都可以替换为 class C.选项 A)和D.选项 A)和解析:解析 模板形参有 3 种形式:typename 参数名;clas
17、s 参数名;类型修饰参数名。前两种是等价的,在声明模板参数时,关键字 typename 和 class 可以互换。2.下列叙述中正确的是( )。(分数:2.00)A.一个算法的空间复杂度大,则其时间复杂度必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述三种说法都不对 解析:解析 算法的时间复杂度和算法的空间复杂度从不同的角度来衡量算法的执行情况,它们之间没有内在联系。3.有如下程序:#includeiostreamusing namespace std;class VACpublic:int f() constreturn 3;in
18、t f() return 5;;int main()VAC v1;const VAC v2;coutv1.f()v2.f();return 0;运行时的输出结果是( )。(分数:2.00)A.53 B.35C.55D.33解析:解析 此题考查的是常成员函数的应用。VAC 类中说明了两个函数,一个是常成员函数,一个是普通函数:在主函数中说明了两个对象,通过普通对象 v1 调用的是普通函数,输出 5:通过常对象 v2 调用的是常成员函数,输出 3。4.下列叙述中,错误的是( )。(分数:2.00)A.派生类可以使用 private 派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派
19、生类中维持不变 D.赋值兼容规则也适用于多继承的组合解析:解析 在建立派生类时,并不是简单地把基类的私有成员直接作为派生类的私有成员,把基类的公用成员直接作为派生类的公用成员。涉及如何确定基类的成员在派生类中的访问属性问题,不仅要考虑对基类成员所声明的访问属性,还要考虑派生类所声明的对基类的继承方式,根据这两个因素共同决定基类成员在派生类中的访问属性。所以本题选择选项 C)。5.下列叙述中正确的是( )。(分数:2.00)A.一个逻辑数据结构只能有一种存储结构B.逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数
20、据结构可以有多种存储结构,且各种存储结构影响数据处理的效率 解析:解析 数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,一种数据结构可以根据需要采用不同的存储结构,常用的存储结构有顺序和链式结构。采用不同的存储结构,其处理的效率是不同的。6.设计程序时,应采纳的原则之一是( )。(分数:2.00)A.程序的结构应有助于读者的理解 B.限制 GOTO 语句的使用C.减少或取消注释行D.程序越短越好解析:解析 程序设计的风格主要强调程序的简单、清晰和可理解性,以便读者理解。程序滥用 GOTO 语句将使程序流程无规律,可读性差;添加注释行有利于对程序的理解,不应减少或取消,程序的长短要
21、依据实际的需要而定,并不是越短越好。7.派生类中的成员不能直接访问基类中的( )成员。(分数:2.00)A.publicB.private C.virtualD.protected解析:解析 即使是共有继承,其私有成员仍为私有,无法访问。8.有如下程序:#includeiostreamusing namespace std;Class TestClassprivate:int x,y;public:TestClass(int i,int j)x=i;y=j;Void print()cout“print1“endl;void print()constcout“print2“endl;int ma
22、in()const TestClass a(1,2);a.print();return 0;该程序运行后的输出结果是( )。(分数:2.00)A.print1B.print2 C.print1 print2D.程序编译时出错解析:解析 由主函数 main 入手,定义 TestClass 型的常对象 a,然后调用对象 a 中的成员函数 print()。因为在 C+中,如果一个对象被声明为常对象,则不能调用该对象中的非 const 型的成员函数。所以,这里调用的是对象中的 const 型成员函数“void print()const”,输出为 print2。9.( )既可重载为一元运算符,又可重载为
23、二元运算符。(分数:2.00)A.“*” B.“=”C.“=”和“*”D.“*”和“*+”解析:解析 此题考查的是运算符的有关概念。“*”是二元运算符,既可以用于间接访问也可用于两数相乘;而“=”和“*+”都是一元运算符。10.下列是重载乘法运算符的函数原型声明,其中错误的是( )。(分数:2.00)A.MyClass operator*(double,double); B.MyClass operator*(double,MyClass);C.MyClass operator*(MyClass,double);D.MyClass operator*(MyClass,MyClass);解析:解
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 252 答案 解析 DOC
