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

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

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

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

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

    1、二级 C+笔试-71 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.以下关于友元函数的叙述不正确的是( )。(分数:2.00)A.友元函数提供了类之间数据共享的一个途径B.一个友元函数可以访问任何类的任何成员C.友元函数破坏了数据的封装D.友元函数增加了程序没计的灵活性2.判断 char 型变量 c 是否为小写字母的正确表达式是( )。(分数:2.00)A.a=c=zB.(c=A)C.(a=c)|(z=c)D.(c=a)(c=z)3.有以下程序:#includeiostreamusing namespace std;class Apubl

    2、ic:A()cout“A“;classBpublic:B()cout“B“;classC:public AB b;public:C()cout“C”;int main()C obj;return 0;执行后的输出结果是( )。(分数:2.00)A.CBAB.BACC.ACBD.ABC4.下列定义中 P 指向的地址可更改,但*p 不能够更改的是( )。(分数:2.00)A.const int *p;B.int *const p;C.const int *const p;D.int *p;5.下列关于 C+函数的说明中,正确的是( )。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数

    3、B.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值数型和参数表来区分函数的不同重载形式6.如果进栈序列为 e1、e2、e3、e4,则可能的出栈序列是( )。(分数:2.00)A.e3、e1、e4、e2B.e2、e4、e3、e1C.e3、e4、e1、e2D.任意顺序7.对于语句“coutsetfill(*)setw(10)1setfill(*)setw(2)2;”的输出结果是( )。(分数:2.00)A.*1*2B.*12C.*1*2D.12*8.在 E-R 图中,用来表示实体的图形是( )。(分数:2.00)A.

    4、矩形B.椭圆形C.菱形D.三角形9.数据库设计的根本目标是要解决( )。(分数:2.00)A.数据共享问题B.数据安全问题C.大量数据存储问题D.简化数据维护10.下列叙述中正确的是( )。(分数:2.00)A.一个逻辑数据结构只能有一种存储结构B.数据的逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率11.原因排除法属于( )。(分数:2.00)A.软件调试方法B.黑盒测试方法C.白盒测试方法D.动态测试方法12.数据流图用于抽象描述一个软件的逻辑模型

    5、,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。(分数:2.00)A.控制流B.加工C.数据存储D.源和潭13.下列关于完全二叉树的叙述中,错误的是( )。(分数:2.00)A.除了最后一层外,每一层上的结点数均达到最大值B.可能缺少若干个左右叶子结点C.完全二叉树一般不是满二叉树D.具有结点的完全二叉树的深度为lgg 2n+114.函数 swap(a,n)可完成对 a 数组从第 1 个元素到第 n 个元素两两交换。其中 h0=1;b1=2;swap(b,2)。在运行调用函数中的语句后,b0和 b1的值分别为( )。(分数:2.00)A.1,1B.1,2C

    6、.2,2D.2,115.以下选项中合法的实型常数是( )。(分数:2.00)A.5E2.0B.E-3C.2E0D.1.3E16.下列程序的运行结果是( )。#includeiostream.hint x=5;int fun(int a)int c;c=x*a;return c;void main()int x=3,a=4;x=x+fun(a);cout“x=“xend1;(分数:2.00)A.x=15B.x=17C.x=23D.x=2517.下列有关拷贝构造函数的描述中错误的是( )。(分数:2.00)A.拷贝构造函数是一种构造函数B.拷贝构造函数与一般的构造函数一样,可以设置多个形参C.每一

    7、个类中都必须有一个拷贝构造函数D.拷贝构造函数的功能是用一个已知对象去初始化一个正在创建的对象。18.有以下程序:#includeiostream.hvoid fun(int a,int b,int c)a=456,b=567,c=678;void main()int x=10,y=20,z=30;fun(x,y,z);coutx,y.zend1;输出结果是( )。(分数:2.00)A.30,20,10B.10,20,30C.456,567,678D.678,567,45619.下列数据模型中,具有坚实理论基础的是( )。(分数:2.00)A.层次模型B.网状模型C.关系模D.以上 3 个都是

    8、20.以下循环体的执行次数是( )。void main()int i,j;for(i=0,j=1;i=j+1;i+=2,j-)coutiend1;(分数:2.00)A.3B.2C.1D.021.下列字符串中可以用作 C+语言标识符的是( )。(分数:2.00)A._1234B.foobarC.virtualD.34var22.从工程管理角度,软件设计一般分为两步完成,它们是( )。(分数:2.00)A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计23.若有如下语句#includeiostream.hvoid main()int x=3;dox=x-2

    9、;coutx;while(!(-x);则上面程序段( )。(分数:2.00)A.输出的是 1B.输出的是 1 和-2C.输出的是 3 和 0D.是死循环24.下列程序的执行结果是( )。#includeiostream.h#includestdlib.hclass TestClasspublic:int x,y;TestClass()x=y=0;TestClass(int a,int b)x=a;y=b;void disp()cout“x=“x“, y=“yend1;void main()TestClass s1(2,3);s1.disp();(分数:2.00)A.x=2,y=2B.x=2,y

    10、=3C.x=3,y=2D.x=3,y=325.有以下程序:void main()int a=5,b=4,c=3,d=2;if(abc)coutdend1;else if(c-1)=d)=1)coutd+1end1;elsecoutd+2end1;(分数:2.00)A.2B.3C.4D.编译时有错,无结果26.假定其中的 x 的单位是角度且不考虑 的值的精度,则与数学公式 (分数:2.00)A.B.C.D.27.以下程序中调用 cin 函数给变量 a 输入数值的方法是错误的,其错误原因是( )。#includeiostream.hvoid main()int *p,*q,a,b;p=a;cout

    11、“input a:“;cinp;(分数:2.00)A.*p 表示的是指针变量 p 的地址B.p 表示的是变量 a 的地址,而不是变量 a 的值C.*p 表示的是指针变量 p 的值D.*p 只能用来说明 p 是一个指针变量28.如果表达式“-x/y”中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为( )。(分数:2.00)A.operator/(x.operator-(),y);B.operator/(operator-(x),y);C.operator-().operator/(y);D.operator/operator-(x);29.以下函数值的返

    12、回值类型是( )。fun(float x)float y;y=3*x-4;return y;(分数:2.00)A.intB.不确定C.voidD.float30.有以下程序:#includeiostreamusing namespace std;int main()int x=15;while(x)10x(50)x+;if(x/3)x+;break;coutxend1;return 0;执行后的输出结果是( )。(分数:2.00)A.15B.16C.17D.1831.下面程序的结果是( )。#includeiostream.hclass Aint a;public:A():a(1)void s

    13、howa()couta;class Bint a;public:B():a(2)void showa()couta;class C:public A,public Bint a;public:C():a(3)void showa()couta;void main()C c;c.showa();(分数:2.00)A.1B.2C.3D.程序有错误32.若已定义int a=1,2,3,4,5,6,7,8,9,10),p=a,i=5;则对数组元素不正确的引用是( )。(分数:2.00)A.ap-aB.*(ai)C.piD.*(*(a+i)33.下列描述中,抽象类的特性是( )。(分数:2.00)A.可

    14、以说明虚函数B.可以定义友元函数C.可以进行构造函数重载D.不能说明其对象34.下列程序输出的结果是( )。#includestdio.hfunl(char a,char b)char c;c=a;a=b;b=c;fun2(char *a,char b)char c;c=*a;*a=b;b=c;fun3(char *a,char *b)char c;c=*a;*a=*b;*b=c;void main()char a,b;a=A;b=B;fun1(a,b);putchar(a);putchar(b);a=A;b=B;fun2(a,b);putchar(a);putchar(b);a=A;b=B;

    15、fun3(a,b);putchar(a);putchar(b);putchar(/n);(分数:2.00)A.BABBABB.ABBBBAC.ABBABAD.ABABBA35.对长度为 n 的线性表进行顺序查找,在最坏情况下所需要的比较次数为( )。(分数:2.00)A.lgg2nB.n/2C.nD.n+1二、填空题(总题数:14,分数:30.00)36.在面向对象方法中,类的实例称为 1。(分数:2.00)填空项 1:_37.一个算法通常由两种基本要素组成:一是对数据对象的运算和操作;二是 1。(分数:2.00)填空项 1:_38.关系操作的特点是 1 操作。(分数:2.00)填空项 1:_

    16、39.数据库保护分为安全性控制、 1、并发性控制和数据的恢复。(分数:2.00)填空项 1:_40.全面支持软件开发过程的软件工具集合被称为 1。(分数:2.00)填空项 1:_41.将“x+y*z”中的“+”用成员函数重载,“*”用友元函数重载应写为 -|_|-。(分数:2.00)_42.指针变量所保存的不是一般的数据值,而是程序中另一个对象的 1。(分数:2.00)填空项 1:_43.下面程序的运行结果是_和_。#includeiostream.h#define N 10#define s(x)x*x#define f(x)(x*x)void main()int i1,i2;i1=1000

    17、/s(N);i2=1000/f(N);couti1“i2;(分数:4.00)填空项 1:_44.根据输出结果填空完成下面程序。#includeiostream.hclass Testprivate:static int val;int a;public:static int func();void sfunc(Test r);_/初始化静态变量 valint Test:func()return val+;void Test:sfunc(Test &r)r.a=125;cout“Result3=“r.a;void main()cout“Resuh1=“Test:func()end1;Test A

    18、;cout“Resuh2=“A.func()end1;Asfunc(A);输出结果为Result1=201Result2=202Resuh3=125(分数:2.00)填空项 1:_45.请将下列类定义补充完整。class Basepublic:void fun()cout“Base:fun“end1;class Derived:public Basepublic:void fun()_/显示调用基类的 fun 函数cout“Derived:fun“end1;(分数:2.00)填空项 1:_46._是实现 C+语言编译时多态性的机制,_是实现 C+语言运行时多态性的机制。(分数:2.00)填空项

    19、 1:_47.下列程序的运行结果是_。#includeiostream.hclass testprivate:int num;public:test();int TEST()return num+100;test();test:test()num=0;test:test()cout“Destructor is active“end1;void main()test x3;coutx1.TEST()end1;(分数:2.00)填空项 1:_48.若下列程序运行时输出结果为1,A,10.12,B,3.5请将程序补充完整。#includeiostreamusing namespace std;voi

    20、d test(int a,char b,double c)couta,b,cend1;int main()void test(int,char,double _);test(1,A,10. 1);test(2,B);return 0;(分数:2.00)填空项 1:_49.友元类的所有成员函数都是另一个类的 1。(分数:2.00)填空项 1:_二级 C+笔试-71 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.以下关于友元函数的叙述不正确的是( )。(分数:2.00)A.友元函数提供了类之间数据共享的一个途径B.一个友元函数可以访问任何类的任

    21、何成员 C.友元函数破坏了数据的封装D.友元函数增加了程序没计的灵活性解析:解析 友元函数的作用在于提高程序的运行效率,但是它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。只有在类中声明了某个函数是自己的友元函数之后,该友元函数才能够访问本类的私有成员,而不是任何类的任何成员都可以访问。2.判断 char 型变量 c 是否为小写字母的正确表达式是( )。(分数:2.00)A.a=c=zB.(c=A)C.(a=c)|(z=c)D.(c=a)(c=z) 解析:解析 字符型数据在计算机内部是以 ASC码存储的,英文大写字母和小写字母在 ASC码表中都是连续的。大写字母 AZ 是从 6

    22、590,小写字母 az 是从 97122。所以只要变量 c 大于等于 a 并且等于小于 z,就能保证其为小写字母。3.有以下程序:#includeiostreamusing namespace std;class Apublic:A()cout“A“;classBpublic:B()cout“B“;classC:public AB b;public:C()cout“C”;int main()C obj;return 0;执行后的输出结果是( )。(分数:2.00)A.CBAB.BACC.ACBD.ABC 解析:解析 本题考查的是类的继承和派生。系统首先要通过派生类的构造函数调用基类的构造函数,

    23、对基类成员初始化,然后对派生类中的新增成员初始化。4.下列定义中 P 指向的地址可更改,但*p 不能够更改的是( )。(分数:2.00)A.const int *p; B.int *const p;C.const int *const p;D.int *p;解析:解析 “const int *p;”是只能改变指针地址,“int *const p;”是只能改变*p 的内容,“const int *const p;”是指针的地址和*p 的内容都不能改变,“int *p;”是两者都能改变。5.下列关于 C+函数的说明中,正确的是( )。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B

    24、.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前,必须先声明其原型 D.编译器会根据函数的返回值数型和参数表来区分函数的不同重载形式解析:解析 内联函数不是定义在另一个函数体内部的函数,而是将 inline 放在函数定义中函数类型之前;函数体的最后一条语句可以是任意的语句;编译器不会根据函数返回值的类型来区分重载形式,选项D 错误。标准 C+要求在调用一个函数之前,必须先声明其原型。6.如果进栈序列为 e1、e2、e3、e4,则可能的出栈序列是( )。(分数:2.00)A.e3、e1、e4、e2B.e2、e4、e3、e1 C.e3、e4、e1、e2D.任意顺

    25、序解析:解析 根据栈先进后出的特点可知 e1 肯定是最后出栈的,因此正确答案为选项 B。7.对于语句“coutsetfill(*)setw(10)1setfill(*)setw(2)2;”的输出结果是( )。(分数:2.00)A.*1*2 B.*12C.*1*2D.12*解析:解析 C+语言中 setfill 的意思是在空格的地方填上 setfill 函数中的参数字符,setw 的意思是设置整个输出字符串的宅符个数,本题中用*来代替空格。8.在 E-R 图中,用来表示实体的图形是( )。(分数:2.00)A.矩形 B.椭圆形C.菱形D.三角形解析:解析 在 E-R 图中,矩形表示实体;菱形表示

    26、联系名;椭圆形表示实体的属性。9.数据库设计的根本目标是要解决( )。(分数:2.00)A.数据共享问题 B.数据安全问题C.大量数据存储问题D.简化数据维护解析:解析 从数据库的概念中可以看到,所谓数据库是指长期存储在计算机内的、有组织的、可共享的数据集合。因此进行数据库设计的根本目标还是为了解决数据共享问题。10.下列叙述中正确的是( )。(分数:2.00)A.一个逻辑数据结构只能有一种存储结构B.数据的逻辑结构属于线性结构,存储结构属于非线性结构C.一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D.一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效

    27、率 解析:解析 数据的存储结构是指数据结构(数据的逻辑结构)在计算机中的表示,又称物理结构。数据的存储结构有顺序存储结构和链式存储结构两种。不同存储结构的数据处理效率不同。根据以上分析可知,D 选项为正确答案。11.原因排除法属于( )。(分数:2.00)A.软件调试方法 B.黑盒测试方法C.白盒测试方法D.动态测试方法解析:解析 软件调试方法有:强行排错法、回塑法、原因排除法。12.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。(分数:2.00)A.控制流 B.加工C.数据存储D.源和潭解析:解析 数据流图简称 D

    28、FD,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。数据流图有 4 种基本图形符号:箭头,表示数据流;圆或椭圆,表示加工;双杠,表示存储文件(数据源);方框,表示数据的源点或终点。13.下列关于完全二叉树的叙述中,错误的是( )。(分数:2.00)A.除了最后一层外,每一层上的结点数均达到最大值B.可能缺少若干个左右叶子结点 C.完全二叉树一般不是满二叉树D.具有结点的完全二叉树的深度为lgg 2n+1解析:解析 满二叉树指除最后一层外,每一层上所有结点都有两个子结点的二叉树。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在

    29、最后一层上只缺少右边的若干叶子结点的二叉树。因此选项 A 叙述正确,而选项 B 叙述错误。由定义可知,满二叉树肯定是完全二叉树,而完全二又树一般不是满二叉树。14.函数 swap(a,n)可完成对 a 数组从第 1 个元素到第 n 个元素两两交换。其中 h0=1;b1=2;swap(b,2)。在运行调用函数中的语句后,b0和 b1的值分别为( )。(分数:2.00)A.1,1B.1,2C.2,2D.2,1 解析:解析 如果函数实参是数组名,形参也应为数组名,函数 swap 中形参进行了交换,实际上也是实参进行了交换。而且数组名代表数组首元素的地址,并不是代表数组的全部元素。所以,swap(b,

    30、2)是数组 b 第一个元素与第二个元素进行交换,即 b0与 b1,根据题干,知道答案为 2,1。15.以下选项中合法的实型常数是( )。(分数:2.00)A.5E2.0B.E-3C.2E0 D.1.3E解析:解析 本题考查实型常数的指数表示法,可以肯定地是指数不能为小数即必须为整数。由于符号E 前面必须有数字。D 在指数符号后面没有数字,是错误的。16.下列程序的运行结果是( )。#includeiostream.hint x=5;int fun(int a)int c;c=x*a;return c;void main()int x=3,a=4;x=x+fun(a);cout“x=“xend1

    31、;(分数:2.00)A.x=15B.x=17C.x=23 D.x=25解析:解析 由主函数 main 入手,首先 x 被赋值为 3,a 被赋值为 4,然后调用 fun 函数,参数为 4,所以在 fun 函数中的 a=4。而主程序中的 x 作用域是由它定义开始到 cout 输出,在 fun 函数中无效。而在fun 函数定义前的变量 x 作用域是整个程序,所以 fun 函数中的 x 值为 5,这样 c 的值就为 20。在主函数中的 x+fun(a)中的 x 为靠近这条语句的 x 定义,即 3,所以最后 x 的值为 20+3=23。17.下列有关拷贝构造函数的描述中错误的是( )。(分数:2.00)

    32、A.拷贝构造函数是一种构造函数B.拷贝构造函数与一般的构造函数一样,可以设置多个形参 C.每一个类中都必须有一个拷贝构造函数D.拷贝构造函数的功能是用一个已知对象去初始化一个正在创建的对象。解析:解析 拷贝构造函数是一个特殊的构造函数,它用一个已知的对象初始化一个正在创建的同类对象,它不能指定函数返回类型;只有一个参数,是同类的某个对象名的引用。每一个类中都必须有一个拷贝构造函数,如果类中未声明,编译器会自动生成一个公有的拷贝构造函数。18.有以下程序:#includeiostream.hvoid fun(int a,int b,int c)a=456,b=567,c=678;void mai

    33、n()int x=10,y=20,z=30;fun(x,y,z);coutx,y.zend1;输出结果是( )。(分数:2.00)A.30,20,10B.10,20,30 C.456,567,678D.678,567,456解析:解析 本题考查函数中变量的作用范围,在主函数中给变量 x,y,z 赋值,然后将其作为实参传递给了函数 fun,虽然在函数 fun 中改变了这 3 个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在调用函数 fun 结束后,主函数 3 个变量的值未改变。19.下列数据模型中,具有坚实理论基础的是( )。(分数:2.00)A.层次模型B.网状模型C.关系模 D

    34、.以上 3 个都是解析:解析 关系模型较格式化模型(网状模型和层次模型)有以下几个优点:数据结构比较简单、具有很高的数据独立性、可以直接处理多对多的联系,以及有坚实的理论基础。20.以下循环体的执行次数是( )。void main()int i,j;for(i=0,j=1;i=j+1;i+=2,j-)coutiend1;(分数:2.00)A.3B.2C.1D.0 解析:解析 本题考查考生对 for 循环中 3 个表达式的执行顺序及使用方法。首先执行第 1 个表达式,然后判断第 2 个表达式是否成立,如果成立则执行循环体,然后执行第 3 个表达式,随后再去判断第二个表达式。根据这个顺序,可以判断

    35、出,循环体只执行了一次。21.下列字符串中可以用作 C+语言标识符的是( )。(分数:2.00)A._1234 B.foobarC.virtualD.34var解析:解析 C+语言标识符只能由数字、字母和下画线组成,并且只能以字母和下画线为开头。22.从工程管理角度,软件设计一般分为两步完成,它们是( )。(分数:2.00)A.概要设计与详细设计 B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计解析:解析 从软件工程角度看,软件设计分为概要设计和详细设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构 i 详细设计的首要任务就是设计模块的程序流程、算法和数据结构,

    36、次要任务就是设计数据库。23.若有如下语句#includeiostream.hvoid main()int x=3;dox=x-2;coutx;while(!(-x);则上面程序段( )。(分数:2.00)A.输出的是 1B.输出的是 1 和-2 C.输出的是 3 和 0D.是死循环解析:解析 dowhile 语句的一般格式为“do 循环体语句 wbile(表达式);”,先执行循环体语句一次,再判断表达式的值,若为真则继续执行循环,否则终止循环。本题中,先执行 x=x-2,即为 1。判断表达式的值,!(-x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式的值为 0,结束循环

    37、。24.下列程序的执行结果是( )。#includeiostream.h#includestdlib.hclass TestClasspublic:int x,y;TestClass()x=y=0;TestClass(int a,int b)x=a;y=b;void disp()cout“x=“x“, y=“yend1;void main()TestClass s1(2,3);s1.disp();(分数:2.00)A.x=2,y=2B.x=2,y=3 C.x=3,y=2D.x=3,y=3解析:解析 由主函数入手,定义了类 TestClass 的对象 s1(2,3),当类对象进入其作用域时调用构

    38、造函数,构造函数应该是调用具有参数的“Testclass(int a,int b)x=a;y=b;)”,然后调用成员函数disp(),则输出为“cout“x=“x“,y=“yend1;”。即 x=2,y=3。25.有以下程序:void main()int a=5,b=4,c=3,d=2;if(abc)coutdend1;else if(c-1)=d)=1)coutd+1end1;elsecoutd+2end1;(分数:2.00)A.2B.3 C.4D.编译时有错,无结果解析:解析 本题考查逻辑表达式的结合特性,即左结合性。对于表达式 abc,首先判断 ab 为真,结果为 1,然后判断 1c,为

    39、假,故转去判断 c-1=d 是否成立,成立,结果为 1,再判断 1=1,结果为真,因此,执行 d+1,答案为 B。26.假定其中的 x 的单位是角度且不考虑 的值的精度,则与数学公式 (分数:2.00)A.B.C.D. 解析:解析 本题考查数学表达式的掌握,首先应转换为弧度,然后作为 cos 函数的参数求绝对值,最后是开方函数。考生需要掌握的是常用的数学函数。27.以下程序中调用 cin 函数给变量 a 输入数值的方法是错误的,其错误原因是( )。#includeiostream.hvoid main()int *p,*q,a,b;p=a;cout“input a:“;cinp;(分数:2.0

    40、0)A.*p 表示的是指针变量 p 的地址B.p 表示的是变量 a 的地址,而不是变量 a 的值 C.*p 表示的是指针变量 p 的值D.*p 只能用来说明 p 是一个指针变量解析:解析 p 表示的是变量 a 的地址,定义后*p 表示的是变量 a 的值。28.如果表达式“-x/y”中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可以表示为( )。(分数:2.00)A.operator/(x.operator-(),y);B.operator/(operator-(x),y); C.operator-().operator/(y);D.operator/opera

    41、tor-(x);解析:解析 本题考查运算符的重载。假定已经作为某个类的成员函数重载了二元运算符+,且 c1、c2都是该类的对象,则“c1.operator+(c2)”与“c1+c2”含义相同。如果+作为该类的非成员函数重载,则“operator+(c1,c2)”与“c1+c2”含义相同。同理,运算符“/”作为友元函数重载,则“(-x)/y”与表达式“operator/(-x),y)”相同。前缀运算符“-”作为友元函数重载,则“-x 与 operator-(x)”相同,所以组合起来是“operator/(operator-(x),y);”,即 B 选项。29.以下函数值的返回值类型是( )。fu

    42、n(float x)float y;y=3*x-4;return y;(分数:2.00)A.int B.不确定C.voidD.float解析:解析 本题考查 C+当中函数的默认返回值类型,这种类型与函数内部的局部变量的类型没有关系。如果不小心处理函数返回类型,可能造成数据丢失。本题答案为 A。30.有以下程序:#includeiostreamusing namespace std;int main()int x=15;while(x)10x(50)x+;if(x/3)x+;break;coutxend1;return 0;执行后的输出结果是( )。(分数:2.00)A.15B.16C.17 D

    43、.18解析:解析 本题考核选择语句与循环语句的嵌套。由程序可知,当 x=16 时,满足 if 条件表达式,进入 if 分支,执行“x+;break;”,所以最后程序输出 x 的值为 17。31.下面程序的结果是( )。#includeiostream.hclass Aint a;public:A():a(1)void showa()couta;class Bint a;public:B():a(2)void showa()couta;class C:public A,public Bint a;public:C():a(3)void showa()couta;void main()C c;c.

    44、showa();(分数:2.00)A.1B.2C.3 D.程序有错误解析:解析 类 A,类 B,中都有 showa 函数,类 C 继承后再次重写 showa 函数就解决了继承的二义性,这时 c.showa 函数显示的就是类 C 中的 showa 的值。32.若已定义int a=1,2,3,4,5,6,7,8,9,10),p=a,i=5;则对数组元素不正确的引用是( )。(分数:2.00)A.ap-aB.*(ai)C.piD.*(*(a+i) 解析:解析 数组和指针的关系非常密切,因为数组名称单独使用是表示数组的首地址。故可用的表示可能是 ai,pi,*(p+i),同样(ai)表示地址,因此*(

    45、ai)等同于 ai。本题答案为 D。33.下列描述中,抽象类的特性是( )。(分数:2.00)A.可以说明虚函数B.可以定义友元函数C.可以进行构造函数重载D.不能说明其对象 解析:解析 带有纯虚函数的类称为抽象类,抽象类中的纯虚函数没有具体的定义,所以不能说明抽象类的对象。34.下列程序输出的结果是( )。#includestdio.hfunl(char a,char b)char c;c=a;a=b;b=c;fun2(char *a,char b)char c;c=*a;*a=b;b=c;fun3(char *a,char *b)char c;c=*a;*a=*b;*b=c;void ma

    46、in()char a,b;a=A;b=B;fun1(a,b);putchar(a);putchar(b);a=A;b=B;fun2(a,b);putchar(a);putchar(b);a=A;b=B;fun3(a,b);putchar(a);putchar(b);putchar(/n);(分数:2.00)A.BABBABB.ABBBBA C.ABBABAD.ABABBA解析:解析 由程序中的主函数 main 入手,分别调用 fun1,fun2,fun3 函数,得出输出结果。其中,3 个函数都是实现的两个形参的交换功能,只是值传递的方式不同,有的是引用,有的是传值。第一个函数中参数采用的是值传递的方式,形参的变化不影响实参。所以 d 调用 fun1 后,实参 a 和 b 并没有交换,仍然是 AB。第二个调用中,实参 a 采用的是地址,即传递的是地址,所以形参 a 的改变会影响实参 a 的值,即 BB。同理,调用 fun3 后为 BA。35.


    注意事项

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




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

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

    收起
    展开