欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C++笔试-303及答案解析.doc

    • 资源ID:1324542       资源大小:88KB        全文页数:31页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C++笔试-303及答案解析.doc

    1、二级 C+笔试-303 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:30,分数:70.00)1.有如下程序:#include iostreamusing namespace std;class pointint x, y;public:point( int vx, int vy )x = vx;y = vy;point ( )x = 0;y = 0;point operator+( point pl )point p;int px = x + p1.x;int py = y + p1.y;return point( px, py );point operator-(

    2、 point p1 )point p;int px = x - p1.x;int py = y - p1.y;return point( px, py );void print()coutx“, “yend1;int main ()point pl ( 10, 10 ), p2 ( 20, 20 );p1 = p1 + p2;p1.print ();return 0;执行后的输出结果是( )。(分数:2.00)A.10,10B.20,20C.10,20D.30,302.有以下程序: #includeiostream#includestringusing namespace std;int ma

    3、in()char arr24;strcpy(arr0,“you“);strcpy(arr1,“me“);arr03=;class Derived2 : virtual public Basepublic:Derived2()x=20;class Derived : public Derivedl,protected Derived2;int main ()Derived obj;coutobj.xend1;return 0;该程序运行后的输出结果是( )。(分数:3.00)A.10B.20C.30D.030.下列关于单目运算符+、-的叙述中,正确的是( )。(分数:3.00)A.它们的运算对象

    4、可以是任何变量和常量B.它们的运算对象可以是 char 型变量和血型变量,但不能是 float 型变量C.它们的运算对象可以是 int 型变量,但不能是 doule 型变量和 float 型变量D.它们的运算对象可以是 char 型变量、int 型变量和 float 型变量二、填空题(总题数:14,分数:28.00)31.在面向对象方法中,信息隐蔽是通过对象的 【1】 来实现的。(分数:2.00)填空项 1:_32.任何非空树中有且仅有一个结点没有前驱结点,该结点就是树的 【2】 。(分数:2.00)填空项 1:_33.常见的需求分析方法有 【3】 和面向对象的分析方法。(分数:2.00)填空

    5、项 1:_34.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 【4】 。(分数:2.00)填空项 1:_35.在数据库应用系统设计的需求分析阶段,需经过收集资料、分析整理、 【5】 、建立数据字典和用户确认等阶段。(分数:2.00)填空项 1:_36.下列程序在输入 m 后,求满足条件“n!=m=(n+1)!”的值 n,请将程序补充完整。#include iostreamusing namespace std;int main()int n,m, jc = 1;cinm;for(n=2;jc=m;n+)jc = jc*n;cout“n=“ 【6】 end1;return 0;(分数

    6、:2.00)填空项 1:_37.以下函数的功能是删除字符串 s 中的所有数字字符。请填空。void dele (char *s)int n=O;for(i=0;si;i+)if( 【7】 )sn+=si;sn= /0;(分数:2.00)填空项 1:_38.下面程序的运行结果是 【8】 #include iostreamusing namespace std;int fun(int n)static int m = 2;m=m+n;return m;int main ( )int a = 3, b = 4;int x;x = fun( a );x = fun( b );coutxend1;ret

    7、urn O;(分数:2.00)填空项 1:_39.如果类 Alpha 继承了类 Beta,则类 Alpha 称为派生类,类 Beta 称为 【9】 类。(分数:2.00)填空项 1:_40.实现编译时的多态性的机制称为 【10】 ,实现运行时的多态性的机制称为 【11】 。(分数:2.00)填空项 1:_41.下面程序是一个堆栈的类模板,在横线处填上适当语句,完成类模板的定义。#define MAXSIZE 100template class Tclass StackT sMAXSIZE;int top;public:stack()top=1;void push(T newValue)if(t

    8、opMAXSIZE)top=top+1;stop=newValue;elsecout“堆栈满,无法进栈“end1;void pop();【12】 if(top1)coutstopend1;top=top-1;elsecout“堆栈空! “end1;(分数:2.00)填空项 1:_42.下面程序的输出结果是 【13】 。#include iostreamusing namespace std;class Aint a, b;public:A()a = b = 0;A(int aa, int bb ) : a(aA) , b(bB) cout “a=“a“,“b=“b“,“;A()cout“D“;

    9、int main ( )A x, y(2, 3);return 0;(分数:2.00)填空项 1:_43.若有以下程序:#include iostreamusing namespace std;class Basepublic:void who()cout“class Base“end1;class Derivedl : public Basepublic:void who()cout“class Derivedl“end1;class Derived2 : public Basepublic:void who()cout“class Derived2“end1;int main()Base

    10、*p;Derivedl obj1;Derived2 obi2;p=p=p-who ( );return 0;则该程序运行后的输出结果是 【14】 。(分数:2.00)填空项 1:_44.有以下程序:#include fstream#include stringusing namespace std;int main ()char ch = “The end“;ofstream outstr( “d:/put.txt“, ios_base: :app);for (int i = 0; i strlen( ch ); i+ )outstr.put(chi);outstr.close();retur

    11、n 0;程序实现的功能是 【15】 。(分数:2.00)填空项 1:_二级 C+笔试-303 答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:30,分数:70.00)1.有如下程序:#include iostreamusing namespace std;class pointint x, y;public:point( int vx, int vy )x = vx;y = vy;point ( )x = 0;y = 0;point operator+( point pl )point p;int px = x + p1.x;int py = y + p1.y;retur

    12、n point( px, py );point operator-( point p1 )point p;int px = x - p1.x;int py = y - p1.y;return point( px, py );void print()coutx“, “yend1;int main ()point pl ( 10, 10 ), p2 ( 20, 20 );p1 = p1 + p2;p1.print ();return 0;执行后的输出结果是( )。(分数:2.00)A.10,10B.20,20C.10,20D.30,30 解析:解析 本题主要考察 C+中运算符重载的机制与实现。运算

    13、符重载函数一般分为成员函数形式和友元函数形式,这两种形式都可以访问类中的私有成员。本题中的运算符重载形式为成员函数形式。程序在类 point 中声明了私有数据成员 int x 和 int y,并定义了两种形式的构造函数以完成对对象的初始化:之后,程序对运算符“+”进行了重载,令其输入参数为类 point 的对象,输出为操作符“+”右侧该对象的私有数据成员 x 和 y 与操作符“+”左侧同类型对象的私有数据成员 x 和 y 的两数之和;print()函数则输出对象中数据成员的值。主函数中,实例化了类 point 的两个对象 p1 和 p2,并完成对对象的初始化。在语句“p1=p1+p2;”中,由

    14、于操作符“+”左右两端的操作数为 point 类的对象,复合类 point 定义中的操作符“+”的重载函数,因此程序将调用重载后的操作符函数,并返回两 point 对象数据成员的加和值,覆盖对象 p1 的数据成员。因此 print()函数输出对象 p1 的数据成员值应该为:x=10+20=30,y=10+20=30。2.有以下程序: #includeiostream#includestringusing namespace std;int main()char arr24;strcpy(arr0,“you“);strcpy(arr1,“me“);arr03=;class Derived2 :

    15、virtual public Basepublic:Derived2()x=20;class Derived : public Derivedl,protected Derived2;int main ()Derived obj;coutobj.xend1;return 0;该程序运行后的输出结果是( )。(分数:3.00)A.10B.20 C.30D.0解析:解析 本题中,虽然 Derived1 和 Derived2 都是由共同的基类 x 派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员 x 只存在一份拷贝,不论在类 Derived1 修改,还是在类 Derive

    16、d2 中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句“Derived obj”时,就会先调用虚基类 Base 的构造函数,使得 x=O,然后执行类 Derived1 的构造函数使得 x=10,再执行类Derived2 的构造函数,使得 x=20。最后输出 x 的值为 20。30.下列关于单目运算符+、-的叙述中,正确的是( )。(分数:3.00)A.它们的运算对象可以是任何变量和常量B.它们的运算对象可以是 char 型变量和血型变量,但不能是 float 型变量C.它们的运算对象可以是 int 型变量,但不能是 doule 型变量和 float 型变量D.它们的运算对象可以是 cha

    17、r 型变量、int 型变量和 float 型变量 解析:解析 本题考核 C+的-和+运算符。在 C+中,-和+这两种运算符是单目运算符,其运算对象可以是整型、字符型、float 型和 double 型等基本数据类型。二、填空题(总题数:14,分数:28.00)31.在面向对象方法中,信息隐蔽是通过对象的 【1】 来实现的。(分数:2.00)填空项 1:_ (正确答案:封装性)解析:解析 封装性是指从外面只能看到对象的外部特性,即只需知道数据的取值范围和可以对该数据施加的操作,根本无须知道数据的具体结构以及实现操作的算法。对象的内部,即处理能力的实现和内部状态,对外是不可见的。因此,可以看出信息

    18、隐蔽是通过对象的封装性实现的。32.任何非空树中有且仅有一个结点没有前驱结点,该结点就是树的 【2】 。(分数:2.00)填空项 1:_ (正确答案:根节点)解析:解析 在树结构中,每个节点之前有一个前件,称为父节点,没有前件的节点只有一个,称为树的根节点。33.常见的需求分析方法有 【3】 和面向对象的分析方法。(分数:2.00)填空项 1:_ (正确答案:结构化分析方法)解析:解析 本题是基础题,考核需求分析方法。常见的需求分析方法有结构化分析方法和面向对象的分析方法。34.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 【4】 。(分数:2.00)填空项 1:_ (正确答案:关

    19、系)解析:解析 关系数据模型把数据库表示为关系的一个集合。通俗地说,每个关系都类似一张表,或者在某种程度上类似一个“平面”记录文件。35.在数据库应用系统设计的需求分析阶段,需经过收集资料、分析整理、 【5】 、建立数据字典和用户确认等阶段。(分数:2.00)填空项 1:_ (正确答案:数据流图)解析:解析 简单地说,需求分析就是分析用户的要求。需要经过收集资料(信息需求,处理需求,安全性和完整性要求)分析整理数据流图数据字典用户确认四个步骤。36.下列程序在输入 m 后,求满足条件“n!=m=(n+1)!”的值 n,请将程序补充完整。#include iostreamusing namesp

    20、ace std;int main()int n,m, jc = 1;cinm;for(n=2;jc=m;n+)jc = jc*n;cout“n=“ 【6】 end1;return 0;(分数:2.00)填空项 1:_ (正确答案:(n-2))解析:解析 研究本题中包含的语句“jc=m;”和“jc=jc*n:”,可发现本题是通过求出“n!”的值jc 并检查该值是否大于 m;如果小于等于,继续循环求出“(n+1)!”直到 jcm。跳出循环后,得到 n 的值并输出。题中要填出 n 的输出值,但应注意:如果直接填 n,是错误的。因为在循环语句中先求出jc=jc*n,如果这时的 jcm,循环还没结束,n

    21、 的值就比要求的值大 1,结束循环后,执行 n+后,再判断 jc=m,所以 n 的值比所求的大 2,故应填入 n-2。37.以下函数的功能是删除字符串 s 中的所有数字字符。请填空。void dele (char *s)int n=O;for(i=0;si;i+)if( 【7】 )sn+=si;sn= /0;(分数:2.00)填空项 1:_ (正确答案:si0|si9)解析:解析 从一个字符串中删除某个字符的方法是从字符串的第 1 个字符开始一一判断该字符是否是要删除的字符,若不是,则把它放到结果字符串中;若是,则不放入结果字符串中。由此可知,本题空白处应判断 si是否为数字字符,只有在不是数

    22、字字符的情况下才存入结果字符串中,所以应填入:si0|si9。最后应在结果字符串的末尾加上字符结束标识符0。38.下面程序的运行结果是 【8】 #include iostreamusing namespace std;int fun(int n)static int m = 2;m=m+n;return m;int main ( )int a = 3, b = 4;int x;x = fun( a );x = fun( b );coutxend1;return O;(分数:2.00)填空项 1:_ (正确答案:9)解析:解析 本题主要考察 C+中变量的存储类别及其生存周期。函数 fun()中的

    23、变量 m 被定义为静态static 变量,即为局部静态变量,其特点是只在函数内部可见,但存储在全局数据区,函数执行过后变量仍存在。主函数第一次调用 fun()函数后,将实参 a=3 赋值给形参 n,因此返回值为:x=m= m+n=2+3=5。主函数再次调用 fun()函数时,由于 m 存储在全局数据区,因此其值仍然为 5,由此得到此次返回值:x=m=m+n=5+4=9。因此程序的最后输出为 9。39.如果类 Alpha 继承了类 Beta,则类 Alpha 称为派生类,类 Beta 称为 【9】 类。(分数:2.00)填空项 1:_ (正确答案:基)解析:解析 在 C+语言中,可以从一个类派生

    24、出另一个类。派生其他类的类称为基类(或父类),被派生的类称为派生类(或子类)。一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承,从多个基类派生的继承称为多继承。40.实现编译时的多态性的机制称为 【10】 ,实现运行时的多态性的机制称为 【11】 。(分数:2.00)填空项 1:_ (正确答案:10静态联编(或静态绑定)11动态联编(或动态绑定))解析:解析 本题考核静态联编和动态联编的概念。41.下面程序是一个堆栈的类模板,在横线处填上适当语句,完成类模板的定义。#define MAXSIZE 100template class Tclass StackT

    25、sMAXSIZE;int top;public:stack()top=1;void push(T newValue)if(topMAXSIZE)top=top+1;stop=newValue;elsecout“堆栈满,无法进栈“end1;void pop();【12】 if(top1)coutstopend1;top=top-1;elsecout“堆栈空! “end1;(分数:2.00)填空项 1:_ (正确答案:templateclassTvoidstackT:pop())解析:解析 本程序用类模板方式设计一个栈类 stackT,其中有两个私有数据成员 s(存放栈元素)和top(栈顶元素下标

    26、),以及两个公有成员函数 push()(元素入栈)、pop()(元素出栈)。42.下面程序的输出结果是 【13】 。#include iostreamusing namespace std;class Aint a, b;public:A()a = b = 0;A(int aa, int bb ) : a(aA) , b(bB) cout “a=“a“,“b=“b“,“;A()cout“D“;int main ( )A x, y(2, 3);return 0;(分数:2.00)填空项 1:_ (正确答案:a=2,b=3DD)解析:解析 本题主要考核构造函数与析构函数的应用。主函数中定义 A 类对象 x 时无输出,定义对象y 时调用构造函数输出 a=2,b=3。在主函数结束前,对象 x,y 都调用各自的析构函数输出 DD。所以最后答案为 a=2,b=3DD。43.若有以下程序:#include iostreamusing namespace std;class Basepublic:void who()cout“class Base“end1;class Derivedl : public Basepublic:void who()cout“class Derivedl“end1;


    注意事项

    本文(【计算机类职业资格】二级C++笔试-303及答案解析.doc)为本站会员(feelhesitate105)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开