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

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

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

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

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

    1、二级 C+笔试-318 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列有关继承和派生的叙述中,正确的是(分数:2.00)A.如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员B.派生类的成员函数可以访问基类的所有成员C.基类对象可以赋值给派生类对象D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类2.有如下程序: #include iostream using namcspace std; int main( ) void function(double val); double val; functio

    2、n(val); eoutval; return 0; void function(double val) val=3: 编译运行这个程序将出现的情况是(分数:2.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数3.数据库设计的 4 个阶段是:需求分析、概念设计、逻辑设计和(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设计4.有如下类定义: class Foo public: Foo(int v):value(v) / Foo() / private: Foo( ) / int value=0; / ; 其中存在语法错误的行是(分数:2.00)A.B

    3、.C.D.5.在数据库系统中,用户所见的数据模式为(分数:2.00)A.概念模式B.外模式C.内模式D.物理模式6.从工程管理角度,软件设计一般分为两步完成,它们是(分数:2.00)A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计7.对下列二叉树: (分数:2.00)A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG8.下列有关内联函数的叙述中,正确的是(分数:2.00)A.内联函数在调用时发生控制转移B.内联函数必须通过关键字 inline 来定义C.内联函数是通过编译器来实现的D.内联函数体的最后一条语句必须是 return

    4、 语句9.有如下程序: #include iostream using namespace std: class A public: virtual void funcl( )cout“A1“; void func2( )cout“A2“; ; class B:public A public: void funcl( )cout“B1“; void fllnc2( )cout“B2“; ; int main( ) A*p=new B; p-funcl( ); p-func2( ); return 0: 运行程序,屏幕上将显示输出(分数:2.00)A.B182B.A1A2C.BlA2D.AlB2

    5、10.有如下运算重载函数定义: Double operator+(int i,int k)return double(i+k); 但定义有错误,对这个错误的最准确的描述是(分数:2.00)A.+只能作为成员函数重载,而这里的+是作为非成员函数重载的B.两个 int 型参数的和应该是 int 型,而这里将+的返回类型声明为 doubleC.没有将运算符重载函数声明为某个类的友元D.C+已经提供了求两个 int 型数据之和运算符+,不能再定义同样的运算符11.下面是重载为非成员函数的运算符函数原型,其中错误的是(分数:2.00)A.Fraction operator+(Fraction,Fract

    6、ion);B.Fraction operator-(Fraction);C.Fraction cout“The value at P:“*P: return 0; 编译运行程序将出现的情况是(分数:2.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:The value at P:9C.运行时一定输出:The value at P:*9D.运行时有可能出错33.下列选项中不属于软件生命周期开发阶段任务的是(分数:2.00)A.软件测试B.概要设计C.软件维护D.详细设计34.语句 ofstream f(“SALARYDAT“,ios_base:app)的功能是建立流对象 f,

    7、并试图打开文件SALARYDAT 与 f 关联,而且(分数:2.00)A.若文件存在,则将其置为空文件;若文件不存在,则打开失败B.若文件存在,则将文件指针定位于文件尾;若文件不存在,则建立一个新文件C.若文件存在,则将文件指针定位于文件首;若文件不存在,则打开失败D.若文件存在,则打开失败;若文件不存在,则建立一个新文件35.下列情况中,不会调用复制构造函数的是(分数:2.00)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋予该类的另一个对象时C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时二、填空题(总题数:15,分数:

    8、30.00)36.如图所示的软件系统结构图的宽度为_。 (分数:2.00)填空项 1:_37. 1 的任务是诊断和改正程序中的错误。(分数:2.00)填空项 1:_38.一个关系表的行称为 1。(分数:2.00)填空项 1:_39.按“先进后出”原则组织数据的数据结构是 1。(分数:2.00)填空项 1:_40.数据结构分为线性结构和非线性结构,带链的队列属于 1。(分数:2.00)填空项 1:_41.若有定义语句:int*a,b;,则变量 b 的数据类型是 1。(分数:2.00)填空项 1:_42.已知数组 a 中的元素个数为 n,下列语句的作用是将下标为 i 的元素移动到下标为 i-1 的

    9、单元,其中1in。例如,当 n=4,a 中原有数据为 1、2、3、4 时,则移动后 a 中元素为 2、3、4、4。请将语句补充完整: for(inti=0;in-1;i+)ai=a_。(分数:2.00)填空项 1:_43.已知递归函数 f 的定义如下: int f(int n) if(n= 1)return 1;/递归结束情况 f5=5*f3=5*3*f1 else return n*f(n-2); /递归 则函数调用语句 f(5)的返回值是_。(分数:2.00)填空项 1:_44.创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用默认构造函数,下列

    10、程序涉及对象数组的创建和单个对象的创建,其输出结果是_。 #include iostream using namespace std; class Foo public: Foo(int x)eoutA; Foo( ) ; int main( ) Foo f3,g(3); return 0;(分数:2.00)填空项 1:_45.已知下列程序的输出结果是 42,请将下画线处缺失的部分补充完整。 #include iostream using namespace std; class Foo int value; public: Foo( ):value(0) void setValue(int

    11、value) _=value;/给 Foo 的数据成员 value 赋值 void print( )eoutvalue; ; int main( ) Foo f; f.setValue(42); f.print(); return 0; (分数:2.00)填空项 1:_46.有如下程序: #include iostream using namespaee std; class ONE public: virtual void f( )cout“1“; ; class TWO:public ONE public: TWO( )1 cout“2“; ; class THREE:public TWO

    12、 public: virtual void f( )TWO:f( );cout“3“; ; int main( ) ONE aa,*P; TWO bb; THREE cc; P= cout“The value at P:“*P: return 0; 编译运行程序将出现的情况是(分数:2.00)A.编译时出现语法错误,不能生成可执行文件B.运行时一定输出:The value at P:9C.运行时一定输出:The value at P:*9D.运行时有可能出错 解析:解析 int*p;指针变量定义时没有被初始化,也没有指向具体的地址,所以在后面打印时报错。应当做如下初始化: int*p=new

    13、int( );33.下列选项中不属于软件生命周期开发阶段任务的是(分数:2.00)A.软件测试B.概要设计C.软件维护 D.详细设计解析:解析 软件生命周期由软件定义、软件开发和软件维护 3 个时期构成,每个时期又进一步划分为若干个阶段。软件定义时期的基本任务是确定软件系统的工程需求。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期是具体设计和实现在前一时期定义的软件,它通常由 5 个阶段组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。即当软件在使用过程中发现错误时应加以改正:当环境改变时应该修改软件,以适应新的环境

    14、;当用户有新要求时应该及时改进软件,以满足用户的新要求。根据上述对软件生命周期的介绍,可知选项c 中的软件维护不是软件生命周期开发阶段的任务。因此,本题的正确答案是 C。34.语句 ofstream f(“SALARYDAT“,ios_base:app)的功能是建立流对象 f,并试图打开文件SALARYDAT 与 f 关联,而且(分数:2.00)A.若文件存在,则将其置为空文件;若文件不存在,则打开失败B.若文件存在,则将文件指针定位于文件尾;若文件不存在,则建立一个新文件 C.若文件存在,则将文件指针定位于文件首;若文件不存在,则打开失败D.若文件存在,则打开失败;若文件不存在,则建立一个新

    15、文件解析:解析 ios_base:app 所表示的文件打开方式为:如果文件存在则将文件指针指向文件尾,否则就建立一个新文件。35.下列情况中,不会调用复制构造函数的是(分数:2.00)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋予该类的另一个对象时C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时 解析:解析 用一个对象去初始化同一类的另一个新对象时,将类的一个对象赋予该类的另一个对象时,函数的形参是类的对象,调用函数进行形参和实参结合时都会调用复制构造函数,生成一个新的对象,只有返回值为对象时,才调用构造函数,而不是复制构

    16、造函数,生成一个新对象给函数返回,故答案为 D。二、填空题(总题数:15,分数:30.00)36.如图所示的软件系统结构图的宽度为_。 (分数:2.00)填空项 1:_ (正确答案:3)解析:解析 题目中的图形是倒置的树状结构,这是用层次图表示的软件结构。在结构图中同一层次模块的最大模块个数称为结构的宽度,它表示控制的总宽度。根据上述结构图宽度的定义,从图中可以看出,第二层的模块个数最多,即为 3。因此,这个系统结构图的宽度就为 3。37. 1 的任务是诊断和改正程序中的错误。(分数:2.00)填空项 1:_ (正确答案:或程序调试(阶段)或软件调试(阶段)或 Debug(阶段))解析:解析

    17、软件测试的目的是发现程序中的错误,而调试的目的是确定程序中错误的位置和引起错误的原因,并加以改正。换句话说,调试的目的就是诊断和改正程序中的错误。调试不是测试,但是它总是发生在测试之后。因此,本题的正确答案是调试(阶段)或程序调试(阶段)或软件调试(阶段)或 Debug(阶段)38.一个关系表的行称为 1。(分数:2.00)填空项 1:_ (正确答案:记录或元组)解析:解析 关系是关系数据模型的核心。关系可以用一个表来直观地表示,表的每一列表示关系的一个属性,每一行表示一个元组或记录。因此,本题的正确答案是元组或记录。39.按“先进后出”原则组织数据的数据结构是 1。(分数:2.00)填空项

    18、1:_ (正确答案:栈或 Stack)解析:解析 栈和队列是两种特殊的线性表,其特殊性在于对它们的操作只能在表的端点进行。栈中的数据按照后进先出的原则进行组织,而队列中的数据按照先进先出的原则进行组织。因此,本题的正确答案是栈(stack)。40.数据结构分为线性结构和非线性结构,带链的队列属于 1。(分数:2.00)填空项 1:_ (正确答案:线性结构)解析:解析 数据结构分为线性结构和非线性结构,其中队列是属于线性结构。队列有两种存储结构:一种是顺序存储结构,称为顺序队列;另一种是链式存储结构,称为链队列。题目中所说的带链的队列就是指链队列。无论队列采取哪种存储结构,其本质还是队列,还属于

    19、一种线性结构。因此,本题的正确答案是线性结构。41.若有定义语句:int*a,b;,则变量 b 的数据类型是 1。(分数:2.00)填空项 1:_ (正确答案:int)解析:解析 缺数据类型。42.已知数组 a 中的元素个数为 n,下列语句的作用是将下标为 i 的元素移动到下标为 i-1 的单元,其中1in。例如,当 n=4,a 中原有数据为 1、2、3、4 时,则移动后 a 中元素为 2、3、4、4。请将语句补充完整: for(inti=0;in-1;i+)ai=a_。(分数:2.00)填空项 1:_ (正确答案:ai+1)解析:解析 实现由后面一个数组元素将前一个数组元素进行覆盖,故应该为

    20、 ai=ai+1。43.已知递归函数 f 的定义如下: int f(int n) if(n= 1)return 1;/递归结束情况 f5=5*f3=5*3*f1 else return n*f(n-2); /递归 则函数调用语句 f(5)的返回值是_。(分数:2.00)填空项 1:_ (正确答案:15)解析:解析 函数递归调用,f(5)=5*f(3)=5*(3*f(1)=15。44.创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用默认构造函数,下列程序涉及对象数组的创建和单个对象的创建,其输出结果是_。 #include iostream usin

    21、g namespace std; class Foo public: Foo(int x)eoutA; Foo( ) ; int main( ) Foo f3,g(3); return 0;(分数:2.00)填空项 1:_ (正确答案:A)解析:解析 数组 f3调用的是无参构造函数,而 g(3)调用的是第一个有参构造函数,故打印 A。45.已知下列程序的输出结果是 42,请将下画线处缺失的部分补充完整。 #include iostream using namespace std; class Foo int value; public: Foo( ):value(0) void setValu

    22、e(int value) _=value;/给 Foo 的数据成员 value 赋值 void print( )eoutvalue; ; int main( ) Foo f; f.setValue(42); f.print(); return 0; (分数:2.00)填空项 1:_ (正确答案:this.value)解析:解析 为类的数据成员赋值,将从形参传递来的实参赋值给类数据成员,为区分名字可以使用this 指针。46.有如下程序: #include iostream using namespaee std; class ONE public: virtual void f( )cout“

    23、1“; ; class TWO:public ONE public: TWO( )1 cout“2“; ; class THREE:public TWO public: virtual void f( )TWO:f( );cout“3“; ; int main( ) ONE aa,*P; TWO bb; THREE cc; P=&cc; p-f( ); return 0; 程序的输出结果是_。(分数:2.00)填空项 1:_ (正确答案:2213)解析:解析 TWO bb;调用 TWO 的构造函数打印 2;THREE cc;调用继承类 TWO 的构造函数打印 2;p-f( );调用类 TREE

    24、 的函数 f( ),先显式调用 TWO 类的函数 f( ),TWO 中没有重新定义 f( )函数,所以调用 TWO 的基类 ONE 的虚函数 f( );打印 1,然后再打印 3,故答案为 2213。47.有如下程序: #include iostream using namespace std; class PARENT public: PARENT( )cout“PARENT“; ; class SON:public PARENT public: SON( )cout“SON“; ; int main( ) SON son; PARENT*P; P=&son; return 0; 程序的输出结

    25、果是_。(分数:2.00)填空项 1:_ (正确答案:PARENTSON)解析:解析 在有继承关系的类对象构造时,先执行基类的构造函数,然后执行派生类的构造函数。所以先执行 PARENT 的构造函数,然后执行 S0N 的构造函数。48.若以非成员函数形式,为类 Bounce 重载“!”运算符,其操作结果为一个 bool 型数据,则该运算符重载函数的原型是_。(分数:2.00)填空项 1:_ (正确答案:bool operator!(Bounee);)解析:解析 单目运算符重载为非成员函数的一般格式为: 返回类型 operator 操作符(形参) 其中形参类型为类名。49.下面是复数类 comp

    26、lex 的定义,其中重载的运算符“+”的功能是返回一个新的复数对象,其实部等于两个操作对象实部之和,其虚部等于两个操作对象虚部之和;请补充完整。 class complex double real; /实部 double imag; /虚部 public: complex(double r,double i):real(r),imag(i)j complex operator+(complex A) return complex(_); ;(分数:2.00)填空项 1:_ (正确答案:real+areal,imag+aimag)解析:解析 为复数类 complex 以成员函数重载“+”运算符,虚部与虚部相加,实部与实部相加,并返回为 cornplex 类。50.已知一个函数模板定义为 template typename T1typenaine T2 T1 FUN(T2 n)return n*5.0; 若要求以 int 型数据 7 为函数实参调用该模板函数,并返回一个 double 型数据,则该调用应表示为_。(分数:2.00)填空项 1:_ (正确答案:FUNdouble(7))解析:解析 实参类型和返回值类型不匹配时,需要强制转换参数类型,所以在函数模板调用时要显式地定义参数数据类型 double,将整数 7 转换为 double 型。


    注意事项

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




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

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

    收起
    展开