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

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

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

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

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

    1、二级 C+笔试-227 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:30,分数:70.00)1.下面函数的功能是( )。int fun(char *x)char *y=X;while(*y+);return (y-x-1);(分数:2.00)A.求字符串的长度B.比较两个字符串的大小C.将字符串 x 复制到字符串 yD.将字符串 x 连接到字符串 y 后面2.类 MyClass 的定义如下:class MyClasspublic:MyClass()value=0;setVariable(int i)value=i;private:int value;则以下各项对如

    2、下语句序列的描述中,正确的是( )。MyClasS *p,my; p=private:int data;class Derive : public Basepublic:Derive() : Base(O) Derive (int x)d=x;void setvalue(int i)data=i;private:int d;(分数:2.00)A.1B.2C.3D.414.一棵含 18 个节点的二叉树的高度至少为( )。(分数:2.00)A.3B.4C.5D.615.有以下程序:#include iostreamusing namespace std;class countstatic int

    3、n;public:count ( )n+;static int test()for (int i = 0; i 4; i+ )n+;return n;int count : n = 0;int main()coutcount : test()“ “;count c1, c2;coutcount : test()end1;return 0;执行后的输出结果是( )。(分数:2.00)A.4 10B.1 2C.22D.2416.C+对 C 语言作了很多改进,下列描述中,( )使得 C+语言发生了质变,即从面向过程变成了面向对象。(分数:2.00)A.增加了一些新的运算符B.允许函数重载,并允许设置

    4、默认参数C.规定函数说明必须用原型D.引进了类和对象的概念17.C+语言的跳转语句中,对于 break 和 continue 说法正确的是( )。(分数:2.00)A.break 语句只使用于循环体中B.continue 语句只应用于循环体中C.break 是无条件跳转语句,continue 不是D.break 和 continue 的跳转范围不够明确,容易产生问题18.在一个长度为 n 的线性表中插入一个元素,以下说法不正确的是( )。(分数:2.00)A.最好情况下需要移动的数据元素数目为 0B.最坏情况下需要移动的数据元素数目为 nC.在平均情况下需要移动的数据元素数目为 n/2D.最坏

    5、情况下需要移动的数据元素数目为 n/219.有以下程序:#include iostreamusing namespace std;class CSampleprivate:int i;public:CSample ( );CSample( int val );void Display();CSample ();CSample: CSample ()cout “C1“;i = 0;CSample: :CSample( int val )cout “C2“;i = val;void CSample: :Display()couti“: “;CSample: CSample ( )cout “D“;

    6、int main ( )CSample a, b( 10 );return 0;执行后的输出结果为( )。(分数:2.00)A.ClC2DDB.DDC1C2C.C2C1DDD.C1DC2D20.有以下程序:#include iostream#include stringusxng namespace std;int main()char p = “abcdefgh“;coutstrlen(strcpy(p,“12345“)end1;return 0;执行后输出的结果是( )。(分数:2.00)A.8B.12C.5D.721.在数据结构中,从逻辑上可以把数据结构分成( )。(分数:3.00)A.

    7、动态结构和静态结构B.线性结构和非线性结构C.集合结构和非集合结构D.树形结构和图状结构22.有以下程序:#includeiostreamusing namespace std;int n3=10,20,30,40,50,60;int main()int (*p)3;p=n;coutp0 0“,“*(p0+1)“,“(*p) 2end1;return 0;上述程序执行后的输出结果是( )。(分数:3.00)A.10,20,30B.20,30,40C.10,30,50D.10,40,6023.数据管理技术的发展是与计算机技术及其应用的发展联系在一起的,经历了由低级到高级的发展过程。分布式数据库、

    8、面向对象数据库等新型数据库是属于( )。(分数:3.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.高级数据库技术阶段24.有以下程序:#include iostreamusing namespace std;template class T class TAddprivate:T x, y;public:TAdd( T a, T b )x = a;y = b;T add()return x + y;int main ()TAdd int A( 5, 6 );TAdd double B( 2.4, 5.6 );coutA, add () “, “B. add () end1;ret

    9、urn 0;执行后的输出结果是( )。(分数:3.00)A.11,8B.5,6C.2.4,5.6D.8,1125.基类中的( )不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。(分数:3.00)A.公有成员B.私有成员C.私有成员函数D.保护成员26.若有以下程序:#include iostreamusing namespace std;class Aprivate:int a;public:A(int i)a=i;void disp()couta“, “;class Bprivate:int b;public:B(int j)b=j;void disp()

    10、coutb“, “;class C : public B,public Aprivate:int c;public:C int k) :A(k-2),B(k+2)c=k;void disp()A: :disp ();B:disp();coutcend1;int main ()C ebj (10);obj .disp ();return 0;程序执行后的输出结果是( )。(分数:3.00)A.10,10,10B.10,12,14C.8,10,12D.8,12,1027.有以下程序:#includeiostreamusing namespace std;int f(int,int);int mai

    11、n()int i:1,x;x=f(i,i+1);coutxend1;return 0;int f(int a,int b) int c;c = a;if(ab) c = 1;else if(a=b) c = 0;elsec = -2;return c;运行后的输出结果是( )。(分数:3.00)A.1B.0C.-1D.-228.有以下程序:#include iostreamusing namespace std;class myclassprivate:int a, b;public:void init( int i, int j )a = i;b = j;friend int sum( my

    12、class x );int sum( myclass x )return x.a + x.b;int main ()myclass y;y.init( 15, 20 );coutsum( y )end1;return 0;执行后的输出结果是( )。(分数:3.00)A.15B.20C.5D.3529.在 C+语言中函数返回值的类型是由( )决定的。(分数:3.00)A.调用该函数时系统临时B.return 语句中的表达式类型C.定义该函数时所指定的函数类型D.调用该函数时的主调函数类型30.一个函数为 void f(int,char ch=a),另一个函数为 void f(int),则它们(

    13、)(分数:3.00)A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载D.以上说法均不正确二、填空题(总题数:14,分数:30.00)31.算法的时间复杂度是指 【1】 。(分数:2.00)填空项 1:_32.对于长度为 n 的有序线性表,在最坏情况下,二分查找需要比较 log2n,那么顺序查找需要比较的次数是 【2】 。(分数:2.00)填空项 1:_33.深度为 m 的满二叉树共有 【3】 个节点。(分数:2.00)填空项 1:_34.关系模型的四种基本操作为插入、删除、修改和 【4】 。(分数:2.00)填空项 1:_35.关系中的属性或属性组

    14、合,其值能够惟一地标识一个元组,该属性或属性组合可选作为 【5】 。(分数:2.00)填空项 1:_36.若有 09 之间不同的 3 个数构成一个三位数,下面程序将统计出共有多少种方法,请填空完成此程序。#include iostreamusing namespace std;int main ( )int i,j,k;for(i = 1;i=9;i+)for (j=O; j=9; j+)if( 【6】 )continue;elsefor(k = 0;k=9;k+)if( 【7】 )count+;coutcountend1;return 0;(分数:4.00)填空项 1:_37.设在主函数中有

    15、以下定义和函数调用语句,且 fun()函数为 void 类型,请写出 fun()函数的首部 【8】 。int main ( )double s10 22;int n;fun (s);return 0;(分数:2.00)填空项 1:_38.给出以下程序的执行结果 【9】 。#include iostreamusing namespace std;int n=1;void Fun();int main ()n+;Fun ( );if (n0)int n=5;cout“Block: n=“n “, “;cout “Main: n=“end1;return 0;void Fun ( )int n=10

    16、;cout“Fun: n=“n“,“;(分数:2.00)填空项 1:_39.C+的类继承中,默认的继承方式是 【10】 。(分数:2.00)填空项 1:_40.表达式 x=operator-(y,z)还可以表示为 【11】 。(分数:2.00)填空项 1:_41.如果一个函数模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须重复使用关键词 【12】 。(分数:2.00)填空项 1:_42.下面程序的运行结果为 【13】 。#include iostream.hvoid main()unsigned char value=127;int total=100;value+;to

    17、tal+=value;couttotalend1; A) 227 B) 100 C) 127 D) 27(分数:2.00)填空项 1:_43.有如下程序:#include iostreamusing namespace std;class shapesprotected:int x,y;public:void setvalue(int d, int w=0)x=d;y=w;virtual void disp()=0;class square : public shapespublic:void disp()coutx*yend1;int main()shapes *ptr;square s1;

    18、ptr=ptr-setvalue(10,5);ptr-disp();return 0;执行上面的程序将输出 【14】 。(分数:2.00)填空项 1:_44.有以下程序:#include iostream#include fstreamusing namespace std;int main()fstream file;file.open(“abc.txt“, ios_base:in);if (! file )cout“Can not open abc.txt“end1;abort();char ch;int i = 0;while ( ! file.eof() )file.get(ch);i

    19、+;cout“Characters : “iend1;file.close();return 0;程序实现的功能是 【15】 。(分数:2.00)填空项 1:_二级 C+笔试-227 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:30,分数:70.00)1.下面函数的功能是( )。int fun(char *x)char *y=X;while(*y+);return (y-x-1);(分数:2.00)A.求字符串的长度 B.比较两个字符串的大小C.将字符串 x 复制到字符串 yD.将字符串 x 连接到字符串 y 后面解析:解析 函数中,首先让字符串指针指向字符串 x,

    20、然后通过 while 循环使 y 指向字符串 x 的尾部。再通过两指针之间的算术运算得出字符串 x 的长度。2.类 MyClass 的定义如下:class MyClasspublic:MyClass()value=0;setVariable(int i)value=i;private:int value;则以下各项对如下语句序列的描述中,正确的是( )。MyClasS *p,my; p=private:int data;class Derive : public Basepublic:Derive() : Base(O) Derive (int x)d=x;void setvalue(int

    21、i)data=i;private:int d;(分数:2.00)A.1B.2 C.3D.4解析:解析 本题考核派生类的定义和成员的访问权限。第处错误:在派生类的构造函数 Derive(int x)中没有调用基类的构造函数对基类对象初始化。第处错误:数据 data 是基类 Base 的私有成员,派生类 Derive 不能访问,所以在函数 setvalue 中对data 的赋值是错误的。14.一棵含 18 个节点的二叉树的高度至少为( )。(分数:2.00)A.3B.4C.5 D.6解析:解析 在二叉树的零层,有 20=1 个节点即根节点。第 1 层根据根节点子节点的个数最多有 2 个节点。第 2

    22、 层的节点总数最多有 4 个,以此类推,二叉树的第 n 层的节点数最多为 2n。一棵含 18 个节点的二叉树的高度至少为 5。15.有以下程序:#include iostreamusing namespace std;class countstatic int n;public:count ( )n+;static int test()for (int i = 0; i 4; i+ )n+;return n;int count : n = 0;int main()coutcount : test()“ “;count c1, c2;coutcount : test()end1;return 0

    23、;执行后的输出结果是( )。(分数:2.00)A.4 10 B.1 2C.22D.24解析:解析 程序首先定义了类 count,其内部含有 private 类型数据成员“static int n;”,同时含有 public 类型构造函数 count()和静态成员函数 static int test(),这两个函数的功能分别是为对象申请系统资源并将静态数据成员 n 加 1 和将静态数据成员 n 加 4。主函数前,程序将静态数据成员 n 初始化为 0,该数据成员为所有类 count 的对象所共有的数据成员。主函数中,程序首先执行静态成员函数test()(由于 test 声明为 static,因此其

    24、调用时无需通过具体对象)。而其执行过程中,静态数据成员 n应该加 4 变成 n=4,因此此处输出为 4。此后程序创建对象 c1 和 c2,由于在每次创建过程中都要调用构造函数 count(),而每次调用 count()函数后,静态数据成员 n 值都会加 1,因此,创建两个对象之后,n值变为 n=6;再次执行 test()函数后,n 的值再次加 4,此时变为 n=6+4=10。故程序全部执行后,变量 n值变为 10,而中间程序输出为“4 10”。16.C+对 C 语言作了很多改进,下列描述中,( )使得 C+语言发生了质变,即从面向过程变成了面向对象。(分数:2.00)A.增加了一些新的运算符B

    25、.允许函数重载,并允许设置默认参数C.规定函数说明必须用原型D.引进了类和对象的概念 解析:解析 C+语言起源于 C 语言。C+是 C 语言的超集,即 C 语言是 C+语言的一个子集,同时 C+语言与 C 语言是兼容的。C+对 C 语言作了很多改进,引进了类和对象的概念。17.C+语言的跳转语句中,对于 break 和 continue 说法正确的是( )。(分数:2.00)A.break 语句只使用于循环体中B.continue 语句只应用于循环体中 C.break 是无条件跳转语句,continue 不是D.break 和 continue 的跳转范围不够明确,容易产生问题解析:解析 此类

    26、题比较典型,考生应该加以注意。break 语句将使程序从当前的循环语句(do、while和 for)内跳转出来。switch 语句中也可以用 break 语句终止当前 switch 语句的执行。所以选项 A 是错误的。break 和 continue 都是五条件跳转语句,所以选项 C 是错误的。break 语句是中断循环,继续执行循环后面的语句。continue 类似于 break,但它不是结束循环,而是结束循环语句当前的一次循环,继续执行下一次循环。所以选项 D 是错误。18.在一个长度为 n 的线性表中插入一个元素,以下说法不正确的是( )。(分数:2.00)A.最好情况下需要移动的数据元

    27、素数目为 0B.最坏情况下需要移动的数据元素数目为 nC.在平均情况下需要移动的数据元素数目为 n/2D.最坏情况下需要移动的数据元素数目为 n/2 解析:解析 在一般情况下,要在第 i 个元素之前插入一个新元素时,首先是从最后一个元素开始,直到第 i 个元素之间共 n-i+1 个元素依次向后移动一个位置,最好情况指的是在线性表的最后的元素之后插入一个新元素,不需要移动表中元素,选项 A 是正确的。最坏情况指的是在线性表的第一个元素之前插入一个新元素,则需要移动表中所有的元素,选项 B 是正确的。在平均情况下需要移动的数据元素数目为n2,选项 C 是正确的。19.有以下程序:#include

    28、iostreamusing namespace std;class CSampleprivate:int i;public:CSample ( );CSample( int val );void Display();CSample ();CSample: CSample ()cout “C1“;i = 0;CSample: :CSample( int val )cout “C2“;i = val;void CSample: :Display()couti“: “;CSample: CSample ( )cout “D“;int main ( )CSample a, b( 10 );return

    29、 0;执行后的输出结果为( )。(分数:2.00)A.ClC2DD B.DDC1C2C.C2C1DDD.C1DC2D解析:解析 本题程序首先定义了类 CSample,其内部成员为 private 类型数据成员 int i 和 public 类型成员函数,包括两个构造函数、一个析构函数和一个普通成员函数 void Display(),其成员函数的功能分别为:CSample:CSample():构造函数,输出构造函数的执行消息“C1”,并将数据成员 i 赋值为 i=0:CSample:CSample(int val):重载构造函数,输出构造函数的执行消息“C2”,并将数据成员 i 赋值为 i=va

    30、l:void CSample:Display():成员函数,输出数据成员 i 的值;CSample:CSample():析构函数,输出析构函数的执行消息,并输出数据成员值。在主函数中,程序分别采用两个构造函数,创建了类 CSample 的两个对象,一个利用不带参数的构造函数创建对象 a,另一个利用带参数的构造函数创建对象 b。根据上面的分析,可以得到 a 和 b 中数据成员 i 的值分别为 0(不带参数情况)和 10(所带参数值)。因此下面的两条输出语句分别输出“0”和“10”。此外,由于系统在创建对象时会调用构造函数,在对象生命期结束时会调用析构函数,因此程序还会有相应的输出。由于构造函数的

    31、调用顺序与对象创建的先后顺序一致,因此程序应该首先输出两个构造函数的调用信息,即“C1”和“C2”。在主函数执行结束后,由于两个对象 a 和 b 的生命期已经结束,因此系统将调用析构函数收回系统资源。由于析构函数的调用顺序与构造函数完全相反,因此系统将首先调用对象b 的析构函数,程序输出析构函数执行信息“D”;之后调用对象 a 的析构函数,程序输出析构函数执行信息“D”。20.有以下程序:#include iostream#include stringusxng namespace std;int main()char p = “abcdefgh“;coutstrlen(strcpy(p,“1

    32、2345“)end1;return 0;执行后输出的结果是( )。(分数:2.00)A.8B.12C.5 D.7解析:解析 本题考查对字符串函数的熟悉程度。本题主要考查 strlen 和 strcpy 两个函数,先来了解这两个函数。函数 strcpy()的函数原型为:char*strcpy(char*strDest,const char*strSrC) ;其功能是复制strSrc 所有字符到 strDest,并返回 strDest。函数 strlen()的函数原型为:size_t strlen(const char *string);,其功能是返回 string 的长度,不包括结束字符/0。在

    33、了解函数的原型和功能后,再分析本程序。程序首先定义了字符数组 p,并赋初值“abcdefg“,然后将字符串“12345“复制到数组 p 中,此时数组中元素变为字符串 “12345“,然后调用函数 strlen 求出数组 p中的字符数为 5(不包括结束标志符0)。21.在数据结构中,从逻辑上可以把数据结构分成( )。(分数:3.00)A.动态结构和静态结构B.线性结构和非线性结构 C.集合结构和非集合结构D.树形结构和图状结构解析:解析 逻辑结构即数据元素之间的逻辑关系,是从逻辑关系上描述数据,与数据的存储无关。因此根据数据元素与数据元素之间的关系,逻辑结构被分为两大类:线性结构和非线性结构。而

    34、集合结构与非集合结构、树形结构和图状结构指的都是特定的数据结构类型。22.有以下程序:#includeiostreamusing namespace std;int n3=10,20,30,40,50,60;int main()int (*p)3;p=n;coutp0 0“,“*(p0+1)“,“(*p) 2end1;return 0;上述程序执行后的输出结果是( )。(分数:3.00)A.10,20,30 B.20,30,40C.10,30,50D.10,40,60解析:解析 程序中 p 是指针数组,它等价于二维数组 p3。给 p 赋值二维数组 n 后。 p00等于n00,*(p0+1)等于

    35、 nO1,(*p)2等于 nO2。即程序最后输出 10,20,30。23.数据管理技术的发展是与计算机技术及其应用的发展联系在一起的,经历了由低级到高级的发展过程。分布式数据库、面向对象数据库等新型数据库是属于( )。(分数:3.00)A.人工管理阶段B.文件系统阶段C.数据库系统阶段 D.高级数据库技术阶段解析:解析 本题考查数据库系统的发展,考生应掌握数据库发展的各个阶段,分布式数据库、面向对象数据库属于数据库系统阶段。24.有以下程序:#include iostreamusing namespace std;template class T class TAddprivate:T x,

    36、y;public:TAdd( T a, T b )x = a;y = b;T add()return x + y;int main ()TAdd int A( 5, 6 );TAdd double B( 2.4, 5.6 );coutA, add () “, “B. add () end1;return 0;执行后的输出结果是( )。(分数:3.00)A.11,8 B.5,6C.2.4,5.6D.8,11解析:解析 本题主要考察 C+中模板类的定义和使用。程序首先定义了模板类 TAdd,类型标识符为 T,其内私有数据成员为 T 数据类型的 x 和 y,公有成员函数为构造函数和返回值为 T 数据

    37、类型的 add(),其功能为返回 x 和 y 之和。在主函数中,程序通过模板类实例化了两个对象 A 和 B,其中对象 A 实例化过程中,将类型标识符 T 具体化为血型,因此 Aadd()函数返回值为 int 型,并返回其数据成员 x 和 y 的初始化值之和,为 5+6=11;程序实例化的第 2 个对象 B 实例化过程中,将类型标识符 T 具体化为 double 型,同上,其成员函数Badd()返回值也为 double 型,并返回其数据成员初始化值加和,即为 2.4+5.6=8。25.基类中的( )不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。(分数:3.0

    38、0)A.公有成员B.私有成员C.私有成员函数D.保护成员 解析:解析 本题考核派生类的访问权限。说明为保护成员,除了类本身的成员函数和说明为友元类的成员函数可以访问保护成员外,该类的派生类的成员也可以访问。26.若有以下程序:#include iostreamusing namespace std;class Aprivate:int a;public:A(int i)a=i;void disp()couta“, “;class Bprivate:int b;public:B(int j)b=j;void disp()coutb“, “;class C : public B,public Ap

    39、rivate:int c;public:C int k) :A(k-2),B(k+2)c=k;void disp()A: :disp ();B:disp();coutcend1;int main ()C ebj (10);obj .disp ();return 0;程序执行后的输出结果是( )。(分数:3.00)A.10,10,10B.10,12,14C.8,10,12D.8,12,10 解析:解析 本题考核派生类构造函数的使用。本题中,派生 C 具有多重继承关系,所以在派生类 C 的构造函数中应该包含基类 A 和 B 的成员初始化列表。27.有以下程序:#includeiostreamusi

    40、ng namespace std;int f(int,int);int main()int i:1,x;x=f(i,i+1);coutxend1;return 0;int f(int a,int b) int c;c = a;if(ab) c = 1;else if(a=b) c = 0;elsec = -2;return c;运行后的输出结果是( )。(分数:3.00)A.1B.0C.-1D.-2 解析:解析 本题考核对函数调用方法的掌握程度。做此类题主要是弄清楚程序每一步的目的:在主函数前面声明了整型函数 f。在主函数中,调用了函数 f()。实参的值分别是 1 和 2,1 传给函数 f 的

    41、形参a,2 传给函数 f 的形参 b,函数返回的值赋给变量 x。即为输出的函数值。具体分析一下函数 f()的功能:如果 a 大于 b,则赋予 c 的值为 1;并且跳出 if-else 语句。如果 a 不大于 b,则进入 else if 分支中,如果 a 等于 b,则赋予 c 的值为 0,并跳出以下的 if-else 语句。如果 a 不等于 b,则进入 else 分支,执行 c=-2。因为实参 1,2 分别传给形参 a,b,所以此时 ab,f()函数应执行 c=-2。即最终输出应为-2。28.有以下程序:#include iostreamusing namespace std;class myc

    42、lassprivate:int a, b;public:void init( int i, int j )a = i;b = j;friend int sum( myclass x );int sum( myclass x )return x.a + x.b;int main ()myclass y;y.init( 15, 20 );coutsum( y )end1;return 0;执行后的输出结果是( )。(分数:3.00)A.15 B.20C.5D.35解析:解析 本题主要考察 C+中友元函数的使用。程序中,首先定义一个 myclass 类,其中包含private 类型数据成员 int

    43、a 和 int b;并含有成员函数 void init(),其功能为初始化数据成员 a 和 b,使其值分别为 a=i 和 b=i;同时声明了一个友元函数 int sum(),其函数定义在类声明体外,功能为返回myclass 类的对象中的两个数据成员之和。程序主函数中,首先创建一个 myclass 类的对象 y,并调用 y的初始化函数对其变量进行赋值操作,执行该语句后,应该有:y.a=15 和 y.b=20。程序最后调用函数sum()计算对象 y 中数据成员的和,由于 sum()为类 myclass 的友元函数,因此其可以自由访问对象 y 中的数据成员,显然其返回值为:15+20=35。29.在

    44、 C+语言中函数返回值的类型是由( )决定的。(分数:3.00)A.调用该函数时系统临时B.return 语句中的表达式类型C.定义该函数时所指定的函数类型 D.调用该函数时的主调函数类型解析:解析 本题考察对函数定义的掌握程度。函数类型决定了函数返回值的类型。函数值返回类型可以由编译器自动完成类型转换。在函数有返回值的调用中,编译器将 return 后面的表达式的类型强制转换为该函数定义时指定的返回值类型。30.一个函数为 void f(int,char ch=a),另一个函数为 void f(int),则它们( )(分数:3.00)A.不能在同一程序中定义B.可以在同一程序中定义并可重载C

    45、.可以在同一程序中定义,但不可以重载 D.以上说法均不正确解析:解析 只要满足参数列表不同的条件,就可以在同一程序中对同名的函数进行定义。但是由于其中一个函数有默认值,因此当程序中出现语句“x=f(10);”时,就会产生二义性,不能确定调用函数 R10)还是调用函数 f(10,a,),此时这两个函数不能重载。二、填空题(总题数:14,分数:30.00)31.算法的时间复杂度是指 【1】 。(分数:2.00)填空项 1:_ (正确答案:算法执行过程中所需要的基本运算次数)解析:解析 本题考查算法的时间复杂度,这个知识点是重点考点之一,考生应该好好理解掌握。算法的时间复杂度是指执行算法所需要的计算

    46、工作量,也就是算法在执行过程中所执行的基本运算的次数,而不是指程序运行需要的时间或是程序的长度。32.对于长度为 n 的有序线性表,在最坏情况下,二分查找需要比较 log2n,那么顺序查找需要比较的次数是 【2】 。(分数:2.00)填空项 1:_ (正确答案:n)解析:解析 对于长度为 n 的有序线性表,在最坏情况下,二分查找需要比较 log2n 次,而顺序查找需要比较 n 次。33.深度为 m 的满二叉树共有 【3】 个节点。(分数:2.00)填空项 1:_ (正确答案:2 m-1)解析:解析 对于深度为 m 的满二叉树,其节点数为 2m-1,这是满二叉树的性质之一。34.关系模型的四种基

    47、本操作为插入、删除、修改和 【4】 。(分数:2.00)填空项 1:_ (正确答案:查询)解析:解析 插入、删除、修改和查询是关系模型的四种基本操作。35.关系中的属性或属性组合,其值能够惟一地标识一个元组,该属性或属性组合可选作为 【5】 。(分数:2.00)填空项 1:_ (正确答案:键)解析:解析 键是关系模型中的一个重要概念,在二维表中能惟一地标识一个元组的属性及属性组合称为键,二维表中可能有若干个键。表中一定要有键,因为表中所有的属性的子集均不是键,则表中属性的全集必为键。36.若有 09 之间不同的 3 个数构成一个三位数,下面程序将统计出共有多少种方法,请填空完成此程序。#include iostreamusing namespace std;int main ( )int i,j,k;for(i = 1;i=9;i+)for (j=O; j=9; j


    注意事项

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




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

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

    收起
    展开