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

    【计算机类职业资格】计算机等级考试二级(C++)43及答案解析.doc

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

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

    【计算机类职业资格】计算机等级考试二级(C++)43及答案解析.doc

    1、计算机等级考试二级(C+)43 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.有如下程序: #includeiostreamh long fib(int n) if(n 2) return(fib(n-1)+fib(n-2) ); else return(2); void main( ) cout fib(3); 该程序的输出结果是( )。 (分数:2.00)A.2B.4C.6D.82.与语句 coutendl;不等价的是( )。(分数:2.00)A.coutfunc1(); P-func2();

    2、return 0; 运行此程序,屏幕上将显示输出【 】 (分数:2.00)A.B1 B2B.A1 A2C.B1 A2D.A1 B227.有以下结构体说明和变量定义,如图所示: (分数:2.00)A.P-next=q-next;B.p-next=p-next-next;C.p-next=r;D.p=q-next;28.对于语句 cout setfill(*) setw(10) 1 setfill(*) setw(2) 2;的输出结果是 ( )。(分数:2.00)A.编译时将发生错误B.编译时正确但是运行时出错C.输出为 0D.输出为 null29.关于友元的概念错误的是( )。(分数:2.00)

    3、A.友元函数没有 this 指针B.调用友元函数时必须在它的实参中给出要访问的对象C.一个类的成员函数也可以作为另一个类的友元函数D.只能在类的公有段声明友元30.下面对于友元函数描述正确的是( )。(分数:2.00)A.多线程就是同时执行几个事件B.多线程是将程序分为几个并行的子任务,由它们并发交叉执行C.一个进程可产生多线程,形成执行流D.Java 语言支持多线程31.下面程序段的运行结果是( )。 voidmain( ) ihtt,a,b,C; a=1;b=2;C=2; while(abc) t=a;a=b;b=t;c-; couta“,“b“,“C; (分数:2.00)A.8B.9C.

    4、7D.632.两个或两个以上的模块之间关联的紧密程度称为_。 (分数:2.00)A.耦合度B.内聚度C.复杂度D.数据传输特性33.若有以下说明和定义 union dt int a;char b;double c;data; 以下叙述中错误的是_。 (分数:2.00)A.data 的每个成员起始地址都相同B.变量 data 所占的内存字节数与成员 c 所占字节数相等C.程序段 data.a=5;printf(“%f/n“,data.;输出结果为 5.000000D.data 可以作为函数的实参34.以下哪个基类中的成员函数表示纯虚函数?(分数:2.00)A.virtual void vf(in

    5、t)B.void vf(int)=0C.virtual void vf(=0)D.virtual void yf(int) 35.执行语句序列 intn: cinn: switch(n) casel: case2:cout1: case 3: case4:cout2: break: delhult:cout3: 时,若键盘输入 1,则屏幕显示【 】(分数:2.00)A.1B.2C.3D.12二、填空题(每空 2 分,共 30 分)(总题数:15,分数:30.00)36.内联函数是通过 1 来实现的,因此内联函数是真正的函数。(分数:2.00)填空项 1:_37.若要在 C 盘根目录下作为二进制

    6、文件打开文件 testdat,则应该用的语句是 1。(分数:2.00)填空项 1:_38.继承的方式有公有继承、私有继承和 13 种。(分数:2.00)填空项 1:_39.下面程序的功能是将字符数组 a 中下标值为偶数的元素从小到大排列,其他元素不变,请填空。 #includeiostreamh #includestringh void main1 char a =“clanguage“,t; int i,j,k; k=strlen(A) ; for(i=;0 i =k-2;i+=2= for(j=i+2;j =k; 2= if ( 3) t=ai;ai=aj;aj=t; cout a; co

    7、ut end1;= (分数:2.00)填空项 1:_40.创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数,下列程序涉及到对象数组的创建和单个对象的创建,其输出结果是 1。 #include using namespace std; class Foo public: Foo(int X)cout func1(); P-func2(); return 0; 运行此程序,屏幕上将显示输出【 】 (分数:2.00)A.B1 B2B.A1 A2C.B1 A2 D.A1 B2解析:在 C+中,一个基类指针(或引用)可以用于指向它的派生类对象,而

    8、且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。基类中的实函数也可以在派生类中重定义,但重定义的函数仍然是实函数。在实函数的情况下,通过基类指针(或引用)所调用的只能是基类的那个函数版本,无法调用到派生类中的重定义函数。27.有以下结构体说明和变量定义,如图所示: (分数:2.00)A.P-next=q-next;B.p-next=p-next-next;C.p-next=r;D.p=q-next; 解析:要想将 q 所指结点从链表中删除,同时保持链表的连续,必需使 p 结点的 next 指向 r,在四个选项 中,只有选项 D 不能做到。2

    9、8.对于语句 cout setfill(*) setw(10) 1 setfill(*) setw(2) 2;的输出结果是 ( )。(分数:2.00)A.编译时将发生错误B.编译时正确但是运行时出错C.输出为 0 D.输出为 null解析:在同一个类的不同构造方法中调用该类的其他构造方法需要使用 this()的形式,而且必须是在构造方法的第一行调用,这个和普通方法重载调用的方式 不同,普通方法可以直接使用方法名加参数来调用,而且调用位置没有限制,因此选项 A)是不行的,选 B)的语法就是错误的,选 D)的错误在于在父类型的构造方法被调用前不能引用类的成员。构造方法是一个类对象实例化的开始,因此

    10、在构造方法中不能将成员作为参数引用。29.关于友元的概念错误的是( )。(分数:2.00)A.友元函数没有 this 指针B.调用友元函数时必须在它的实参中给出要访问的对象C.一个类的成员函数也可以作为另一个类的友元函数D.只能在类的公有段声明友元 解析:C+中的友元可以在一个类中的任何位置声明,不一定必须在公有段,友元没有自己的 this 指针,调用友元函数时必须在它的实参中给出要访问的对象,并且一个类的成员函数是可以作为另一个类的友元函数的。30.下面对于友元函数描述正确的是( )。(分数:2.00)A.多线程就是同时执行几个事件 B.多线程是将程序分为几个并行的子任务,由它们并发交叉执行

    11、C.一个进程可产生多线程,形成执行流D.Java 语言支持多线程解析:C+语言中的抽象类就是类中至少有一个纯虚函数的类,抽象类不能被实例化,继承抽象类的类必须实现抽象类中的纯虚函数。31.下面程序段的运行结果是( )。 voidmain( ) ihtt,a,b,C; a=1;b=2;C=2; while(abc) t=a;a=b;b=t;c-; couta“,“b“,“C; (分数:2.00)A.8 B.9C.7D.6解析:本题考查的是 DOLoopUntil,结构的循环语句,不管满不满足条件,都要先执行一次。经分析当I7(或 8 或 9)都满足执行三次的条件,但题目要求最小的,所以应该是 7

    12、。32.两个或两个以上的模块之间关联的紧密程度称为_。 (分数:2.00)A.耦合度 B.内聚度C.复杂度D.数据传输特性解析:耦合度是模块间互相连接的紧密程度的度量;内聚度是一个模块内部各个元素间彼此结合的紧密程 度的度量。33.若有以下说明和定义 union dt int a;char b;double c;data; 以下叙述中错误的是_。 (分数:2.00)A.data 的每个成员起始地址都相同B.变量 data 所占的内存字节数与成员 c 所占字节数相等C.程序段 data.a=5;printf(“%f/n“,data.;输出结果为 5.000000 D.data 可以作为函数的实参

    13、解析: union 是表示共用体的关键字,成员 a,b,c 共占用同一个内存空间, data 的每个成员起始地址都相 同;共用体变量所占的内存长度等于最长的成员的长度,故变量 data 所占的内存字节数与成员 c 所占字节 数相等;执行“data.a=5;printf(“%f/n“,data.c);” printf 函数只是将内存中的数据以不同的类型输出,而不能将 内存中的整型数据自动转换为等值的浮点数,故 C 是错误的。34.以下哪个基类中的成员函数表示纯虚函数?(分数:2.00)A.virtual void vf(int)B.void vf(int)=0 C.virtual void vf

    14、(=0)D.virtual void yf(int) 解析:C+中纯虚函数的定义与虚函数的关键字一样,在函数末尾要加上“=0”。35.执行语句序列 intn: cinn: switch(n) casel: case2:cout1: case 3: case4:cout2: break: delhult:cout3: 时,若键盘输入 1,则屏幕显示【 】(分数:2.00)A.1B.2C.3D.12 解析:本题考核 C语句中的 switch 语句。switch 语句也称为开关语句,用于有多重选择的场合,测试某一个变量具有多个值时所执行的动作。switch 语句中每个 case 语句只是一个入口标号

    15、,并不能确定执行的终点,因此,每个 case 分支的最后应该加 break 语句,用来结束这个 switch 结构,否则,会从入口点开始,一直执行到 switch 结构的结束点。若键盘输入 1,n 的值被赋为 1,进入第一个分支,没有break 跳出,然后进入第二个分支,执行“cout1“输出 1,然后进入第 3、4 个分支,执行“cout2;“,然后执行 break,跳出 switch 语句。所以最后输出为 12。二、填空题(每空 2 分,共 30 分)(总题数:15,分数:30.00)36.内联函数是通过 1 来实现的,因此内联函数是真正的函数。(分数:2.00)填空项 1:_ (正确答案

    16、:编译器)解析:本题考查内联函数的基本概念内联函数是通过编译器,只是在调用的时候,像宏一样展开。37.若要在 C 盘根目录下作为二进制文件打开文件 testdat,则应该用的语句是 1。(分数:2.00)填空项 1:_ (正确答案:ifstream fin(“C:/testdat“,ios_binary);或ifstream fin;finopen(c:/test daf“ios_binary);)解析:C+中打开文件有两种方式ifstream fin(“testdat“);ifstream fin;finopen(“testdat“);,ios_binary 的意义是以二进制文件打开。38.

    17、继承的方式有公有继承、私有继承和 13 种。(分数:2.00)填空项 1:_ (正确答案:保护继承)解析:继承性是面向对象程序设计中最重要的机制,用户可以根据不同的需要选择 3 种不同的继承方式。39.下面程序的功能是将字符数组 a 中下标值为偶数的元素从小到大排列,其他元素不变,请填空。 #includeiostreamh #includestringh void main1 char a =“clanguage“,t; int i,j,k; k=strlen(A) ; for(i=;0 i =k-2;i+=2= for(j=i+2;j =k; 2= if ( 3) t=ai;ai=aj;a

    18、j=t; cout a; cout end1;= (分数:2.00)填空项 1:_ (正确答案:j+=2)解析:strlen 函数是测试字符串长度的函数,函数的值为字符串中的实际长度,不包括/0在内。40.创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数,下列程序涉及到对象数组的创建和单个对象的创建,其输出结果是 1。 #include using namespace std; class Foo public: Foo(int X)cout 2 ; int main3 Foo f 4,g(3); return 0; (分数:2.00)

    19、解析:41. 以下程序的输出结果是 1。 #includeiostreamh class object private: int va1; public: object2; object(int i) object3; ; object:Object4 va1=0; cout “Default constructor for object“ end1; object:object(int i) va1=i cout “Constructor for object“ va1 end1; object:object5 cout “Destructor for object“ va1 end1; c

    20、lass container private: object one; object two; int data; public: container6; container(int i,int j,int k); container7; ; container:container8 data=0; cout “Default constructor for container“ end1; container:container(int i,int j,int k):two(i),one(j) data=k; cout “Constructor for container“ end1; co

    21、ntainer:container9 cout “Destructor for container“ end1; void main10 container anObj(5,6,10); (分数:2.00)填空项 1:_ (正确答案:Constructor for object6 Constructor for object5 Constructor for container Destructor for container Destructor for object5 Destructor for object6)解析:+语言中的构造函数和析构函数分别是在声明对象时和对象调用完毕后调用,本

    22、题中的调用就是这样成对出现的。42.表达式 xoperator+1 还可写成 2。(分数:2.00)填空项 1:_ (正确答案:+x)解析:C+语言中用成员函数重载+x 为 xoperator +-|_|-用友元函数重载+x 为:operator +(x)43.以下程序的输出结果是 1。 main2 int a33=1,2,9,3,4,8,5,6,7,i,s=0; for(i=0;i填空项 1:_ (正确答案:30)解析:此题主要考核的是多维数组以及 for-|_|-循环语句的应用,即 i=0 时,s=0+a00+ a02=10,i=1 时,s=10+a11 +a11=18,i=2 时,s=1

    23、8 +a22 +a20=30。44.以下程序运行后的输出结果是 1。 main2 char c1,c2; for(c1=0,c2=9;c1填空项 1:_ (正确答案:918273645)解析:本题程序的作用是通过 for 循环将 0-9 这 10 个数字从前向后,同时也从后向前依次输出。45.下列 for 语句的循环次数为 1。 for(int a=0,b=1;b char ch=A; scanf(“%d“, if(n=n;i+) for(j=1; j=n-i+1;j+) printf(“%2c“,ch); 2 ; 3 ; else printf (“n is too large!/n“);

    24、printf(“/n“); (分数:2.00)填空项 1:_ (正确答案:ch+ 或 ch=ch+1 或 +ch , printf(“/n“))解析:此题主要考核的是有关循环的程序分析。程序中使用了两层 for 循环,外循环的作用是控制行数,内循环的作用是控制每行的列数,在此循环内第一个空中填入 ch+的作用是将输出的字符本身加 1,成为 欲输出的下一个字符。第二个空中填入 printf(“/n“)是用来实现换行操作的。49.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为 1。(分数:2.00)填空项 1:_ (正确

    25、答案:物理独立性)解析:数据独立性包括数据的物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上 的数据库中数据是相互独立的。数据在磁盘上的数据库中怎样存储是由 DBMS 管理的,用户程序不需要了 解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变时,应用程序不用改变。逻辑独 立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程 序也可以不变。50.下列程序的执行结果为 1。 #includeiostream.h void main2 cout.fill( * ); cout.width(10); cout“hello“endl; (分数:2.00)填空项 1:_ (正确答案:* * * * * hello)解析:本题考查的是 C+语言的流输出操作,cout 中包括的函数 fill-|_|-和 width-|_|-分 别实现填充和设定显示长度的功能。


    注意事项

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




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

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

    收起
    展开