【计算机类职业资格】二级C++笔试-345及答案解析.doc
《【计算机类职业资格】二级C++笔试-345及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-345及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-345 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.设有下定义的语句: inta32=10,20,30,40,50,60; intb32=10,20,30,40,50,60; 则 a11*b21)的结果为( )。(分数:2.00)A.2000B.1200C.2400D.30002.下列是重载乘法运算符的函数原型声明,其中错误的是( )。(分数:2.00)A.MyClass operator*(double,doubl;B.MyClass operator*(double,MyClas;C.MyClass opera
2、tor*(MyClass,doubl;D.MyClassoperator*(MyClass,MyClas;3.有下列程序: #includeiostream using namespace std; class TestClass private: int x,y; public: TestClass (int i,int j) x=i; y=j; void print() cout“printl“endl; void print ()const cout“print2“endl; ; int main() const TestClass a(1,2); a.print(); return 0
3、; 运行该程序后的输出结果是( )。(分数:2.00)A.print1B.print2C.pfint1 print2D.程序编译时出错4.定义如下枚举类型:enum Numberone=l,two=2,fomr=4,eight=8,则枚举类型 Number的取值范( )。(分数:2.00)A.18B.08C.115D.0155.( )既可重载为一元运算符,又可重载为二元运算符。(分数:2.00)A.“*”B.“=”C.“=”和“*”D.“*”和“*+”6.下列表达式的值为 false的是( )。(分数:2.00)A.13 则下列调用中正确的是( )。(分数:2.00)A.funint,4,3(
4、5);B.fun4,3(5);C.funint,int,int(5);D.fun(5);8.下列关于结构化程序设计原则和方法的描述中,错误的是( )。(分数:2.00)A.选用的结构只准许有一个入口和一个出口B.复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现C.不允许使用 GOTO语句D.语言中所没有的控制结构,应该采用前后一致的方法来模拟9.对长度为 n的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。(分数:2.00)A.125B.n/2C.nD.n+110.有如下函数模板声明: templatetypename T T Max(T a,T b)return(a-b)?a:b;
5、 下列对函数模板 Max()的调用中错误的是( )。(分数:2.00)A.Max(3.5,4.5)B.Max(3.5,4)C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)11.一个函数为 void f(int,char ch=a),另一个函数为 void f(iht),则它们( )。(分数:2.00)A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载D.以上三种说法均不正确12.下列叙述中错误的是( )。(分数:2.00)A.派生类可以使用 private派生B.对基类成员的访问必须是无二义性的C.基类成员的访问能力在派生
6、类中维持不变D.赋值兼容规则也适用于多继承的组合13.最简单的交换排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序14.下列程序的输出结果是( )。 #includeiostream.h void main() char*Str; str=“testI“; coutstr5; (分数:2.00)A.test!B.testC.空字符D.异常15.关于关键字 class和 typename,下列表述中正确的是( )。(分数:2.00)A.程序中的 typename都可以替换为 classB.程序中的 class都可以替换为 typenameC.在模板形参表中只能用
7、 typename来声明参数的类型D.在模板形参表中只能用 class或 typename来声明参数的类型16.派生类中的成员不能直接访问基类中的( )成员。(分数:2.00)A.publicB.privateC.virtualD.protected17.有下列程序: #includeiostream using namespace std; class VAC public: int f() constreturn3; int f() return 5; ; int main() VAC v1; const VAC v2; coutv1.f()v2.f(); return 0; 运行该程序的
8、输出结果是( )。(分数:2.00)A.53B.35C.55D.3318.下列特征中不是面向对象方法的主要特征的是( )。(分数:2.00)A.多态性B.继承C.封装性D.模块化19.下列叙述中正确的是( )。(分数:2.00)A.一个逻辑数据结构只能有一种存储结构B.逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率20.下列叙述中正确的是( )。(分数:2.00)A.一个算法的空间复杂度大,则其时间复杂度必定大B.一个算法的空间复杂度大,则其时间复杂度
9、必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述三种说法都不对21.有下列程序: #includeiostream using namespace std; int 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.输出一个不确定的数22.有下列程序: #includeiostream using
10、namespace std; class TestClass protected: TestClass()coutx; TestClass(char c)coutc; ; class TestClassl:public TestClass public: TestClassl(char c)coutc; ; int main() TestClass1 d1(y); retum 0; 执行这个程序屏幕上将显示输出( )。(分数:2.00)A.yB.yxC.xyD.yy23.若有下列定义及初始化语句: int i=100; int*p= intk=*ip; 并假设整型数 i的地址为0x123456
11、78,指针中的地址为 0x21000000,则 k的值为( )。(分数:2.00)A.0x12345678B.0x21000000C.100D.异常24.在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )。(分数:2.00)A.调用语句B.命令C.口令D.消息26.以下( )成员函数表示纯虚函数。(分数:2.00)A.virtual int fun(inB.void fun(in=0C.virtual void fun()=0D.virtual void fun(in27.下列描述中错误的是( )。(分数:2.00)A.继承分为多重继承和单继承B.对象间通信靠传递消息实现C
12、.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征D.类是具有共同属性、共同方法的对象的集合28.派生类构造函数的成员初始化列表中,不能包含( )。(分数:2.00)A.基类的构造函数B.派生类中子对象的初始化C.基类中子对象的初始化D.派生类中一般数据成员的初始化29.下列程序的运行结果是( )。 #includeiostream.h void fun(int a=a+b+i; i=i+a; void main() int x=5,y=2; fun(x,y); coutx“,“; fun(x); coutxendl; (分数:2.00)A.5,2B.7,11C.11,23D.9
13、,2330.设计程序时应采纳的原则之一是( )。(分数:2.00)A.程序的结构应有助于读者的理解B.限制 GOTO语句的使用C.减少或取消注释行D.程序越短越好31.有下列程序: #includeiostream using namespace std; class TestClass int a; public: TestClass(int x)a=x; void show()couta; ; class TestClass1:publicTestClass int b; public: TestClass1(int i):TestClass(i+1),b(i) void show()co
14、utb; ; int main() TestClass b(5),*p; TestClass1 d(1); p= p-show(); return 0; 运行后的打印结果是( )。(分数:2.00)A.5B.1C.0D.232.有下列程序: #includeiostream Using namespace std; Class Amount int amount; public; Amount(int n=O):amount(n) Int getAmount()constreturn amount; Amount return ; int main() Amount x(3),y(7); x+
15、=y; coutx.getAmount()endl; return 0; 己知程序的运行结果是 10,则横线处缺失的表达式是( )。(分数:2.00)A.*thisB.thisC.while(i25)i+=3;couti; 输出结果是( )。(分数:2.00)A.24B.25C.27D.2835.下列程序的输出结果是( )。 #includeiostream using namespace std; class TestClass static int i; public: TestClass()i+; TestClass()i-; static int getVal()retum i; ;
16、int TestClassi=0; void fun()TestClass ob2;coutob2.getVal(); int main() TestClass obi; fun(); TestClass*ob3=new TestClass;coutob3-getVal(); delete ob3;coutTestClassgetVal(); retum 0; (分数:2.00)A.111B.121C.211D.221二、B填空题/B(总题数:15,分数:30.00)36.在程序设计阶段应该采取 1 和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成
17、程序。(分数: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.有下列程序: #includeiostream using namespace std; class TestClass1 public: Te
18、stClass1()cout“A“; ; class TestClass2public:TestClass2()cout“B“; ; class TestClass3:public TestClass1 TestClass2 b; public:TestClass3()cout“C“; ; int main()(TestClass3 obj;return 0; 执行该程序后的输出结果是_。(分数:2.00)填空项 1:_43.编译时的多态性可以通过使用 1 获得。(分数:2.00)填空项 1:_44.如果使用数组名称为函数参数,形实结合时,传递的是 1。(分数:2.00)填空项 1:_45.在
19、类的对象被创建时, 1 函数会被自动调用。(分数:2.00)填空项 1:_46.下列程序的执行结果是_。 #includeioStream.h #includeiomanip.h using namespace std; void main() coutsetfill(x)setw(10); cout“Hello“end1; (分数:2.00)填空项 1:_47.请将下列类定义补充完整。 class Basepublic:void fun()cout“Basefun“end1; c1ass DehVed:public Base public: void fun() _ 显式调用基类的 fun函
20、数 cout“Derivedfun“endl; ;(分数:2.00)填空项 1:_48.有下列程序: #includeiostream using namespace std; class ONE public: virtual void f()COUt“1“; ; c1assTWO:public ONE public: TWO()cout“2“; ; class THREE:public TWO public: virtual void f()TWOf();cout“3“; ; int main() ONE aa,*p; TWO bb; THREE cc; p= p-f(); return
21、0; 执行上面程序的输出结果是_。(分数:2.00)填空项 1:_49.在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承 private。已知有如下类定义: class Base protected: void fun() ; class Derived:Base; 则 Base类中的成员函数fun(),在 Derived类中的访问权限是_(注意:要求填写 private、protected 或 public中的一项)。(分数:2.00)填空项 1:_50.已知下列程序的输出结果是 42,请将横线处缺失的部分补充完整。 #includeiostream using name
22、space std; class Foo int 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+笔试-345 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.设有下定义的语句: inta32=10,20,30,40,
23、50,60; intb32=10,20,30,40,50,60; 则 a11*b21)的结果为( )。(分数:2.00)A.2000B.1200C.2400 D.3000解析:解析 因为 a中由第 0个位置开始,所以 a11*b21为二维数组中的第二行二列乘以 b中第三行二列,即 40*60。2.下列是重载乘法运算符的函数原型声明,其中错误的是( )。(分数:2.00)A.MyClass operator*(double,doubl; B.MyClass operator*(double,MyClas;C.MyClass operator*(MyClass,doubl;D.MyClassope
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 345 答案 解析 DOC
