ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:80KB ,
资源ID:1339695      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1339695.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

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

1、计算机等级考试二级(C+)36 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.下面程序的运行结果是( )。 # include iostreamh void fun(int * a,int * b) int x= * a; * a= * b; * b=X; cout * a * b“ “ ; void main( ) int x=1, y=2; fun ( x, y); cout y?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,

2、c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d); f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f; printf(“%d,%d,%d/n“,e,f,g); 程序运行后的输出结果是_。 (分数:2.00)A.4,3,7B.3,4,7C.5,2,7D.2,5,720.下面关于 C+语言的描述错误的是( )。(分数:2.00)A.C+语言支持数据封装B.C+语言中引入友元没有破坏封装性C.C+语言允许函数名和运算符重载D.C+语言支持动态联编21.下列情况中,不会调用拷贝构造函数的是_。(分数:2.00)A.用一个对象去初始化同一类的另一个新对象时B.

3、将类的一个对象赋予该类的另一个对象时C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时22.下列程序的运行结果为( )。 #includeiostreamh void main( ) int a=2; int b=a+1; cout a/b endl; (分数:2.00)A.0.66667B.0C.0.7D.0.6666666623.以下程序中,错误的行为是( )。 (1) # include iostream.h (2) class A (3) (4) public: (5) int n=2; (6) A(int val) cout val

4、endl; (7) A( ) ; (8) ; (9) void main( ) (10) (11) A a(0); (12) (分数:2.00)A.(5)B.(6)C.(7)D.(11)24.有以下程序 int fun(int x,int n) static int sum=0,i; for(i=0;iA.45B.50C.60D.5525.有以下程序: main() int num44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,i,j; for(i=0;i30Not30 Or30 And30Like=1) return f(a,n-1)+an-1; else

5、 return 0; main2 int aa5=1,2,3,4,5,s; s=f(aa,5); printf(“%d/n“,s); (分数:2.00)填空项 1:_49.在 C+语言中,访问一个对象的成员所用的运算符是 1,访问一个指针所指向的对象的成员所用的运算符是 2。(分数:2.00)填空项 1:_50.为解决在多重继承环境中因公共基类带来的 1 问题,C+语言提供了虚基类机制。(分数:2.00)填空项 1:_计算机等级考试二级(C+)36 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.下面程

6、序的运行结果是( )。 # include iostreamh void fun(int * a,int * b) int x= * a; * a= * b; * b=X; cout * a * b“ “ ; void main( ) int x=1, y=2; fun ( x, y); cout y?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d); f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f; printf(“%d,%d,%d

7、/n“,e,f,g); 程序运行后的输出结果是_。 (分数:2.00)A.4,3,7 B.3,4,7C.5,2,7D.2,5,7解析: 函数 f1 的功能是返回两个数中比较大的值,f2 的功能是返回两个数中比较小的值。20.下面关于 C+语言的描述错误的是( )。(分数:2.00)A.C+语言支持数据封装B.C+语言中引入友元没有破坏封装性 C.C+语言允许函数名和运算符重载D.C+语言支持动态联编解析:数据封装就是数据抽象;友元可以访问类中的所有成员,是面向对 象的一个重要特征,但是破坏了封装性;重载和动态联编都是面向对象的另一个特点- 多态性。21.下列情况中,不会调用拷贝构造函数的是_。

8、(分数:2.00)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋予该类的另一个对象时C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时解析:22.下列程序的运行结果为( )。 #includeiostreamh void main( ) int a=2; int b=a+1; cout a/b endl; (分数:2.00)A.0.66667B.0 C.0.7D.0.66666666解析:表达式值的类型是由操作数的类型决定的,因为本题的两个数都 是 int 型的,所以得出的结果也为 int 型,即去掉小数点后的部分,只取商的整

9、数部分。23.以下程序中,错误的行为是( )。 (1) # include iostream.h (2) class A (3) (4) public: (5) int n=2; (6) A(int val) cout val endl; (7) A( ) ; (8) ; (9) void main( ) (10) (11) A a(0); (12) (分数:2.00)A.(5) B.(6)C.(7)D.(11)解析:C+语言中规定在类体中不允许对所定义的数据成员进行初始化。24.有以下程序 int fun(int x,int n) static int sum=0,i; for(i=0;iA

10、.45B.50C.60 D.55解析:此题考核的知识点是函数调用及静态变量的应用,静态变量是在编译时赋初值的,即只赋初值一次,在程序运行时它已有初值,以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。调 用 fun()函数执行 for 循环语句,fun(a,5),i=0、1、2、3、4 ,sum=0+a0+a1+a2+a3+a4=15;接下来执行 fun(a,5) ,因 为 sum 定 义为 静态变 量, 即再次 调用 时 sum 保 留上 次函数 调用 结束时 的值 ,所以 sum=15+a0+a1+a2 +a3=45;返回 sum 的值,主函数 s=15+45=60。25.

11、有以下程序: main() int num44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,i,j; for(i=0;i30Not30 Or30 And30Likefloat-double。二、填空题(每空 2 分,共 30 分)(总题数:15,分数:30.00)36.以下程序运行后的输出结果是 1。 #include char *ss(char *s) char *p,t; p=s+1;t=*s; while(*p) *(p-1)=*p; p+; *(p-1)=t; return s; main2 char *p,str10=“abcdefgh“; p=ss

12、(str); printf(“%s/n“,p); (分数:2.00)填空项 1:_ (正确答案:bcdefgha)解析:函数 ss 的作用是将指针变量 s 指向的字符串的首字符移到最后一个位置,其他字符依次前移。其方 法是:首先将首字符进行了保存,保存在字符变量 t 中;其次,从指针变量 p 指向的字符(字符串 s 中的 第二个字符,即字符 b)开始,通过语句“*(p-1)=*p;”,依次前移,直到*p 指向的存储单元中的值为空为 止;最后通过语句“*(p-1)=t;”将保存在 t 中的字符放到移动后的字符串的末尾,所以本题输出的结果是 bcdefgha。37.以下程序运行后的输出结果是 1。

13、 main2 char c; int n=100; float f=10; double x; x=f*=n/=(c=50); printf(“%d %f/n“,n,x); (分数:2.00)填空项 1:_ (正确答案:2)填空项 1:_ (正确答案:20.000000)解析:由于赋值运算符按照“自右而左”的结合顺序,故本题中赋值表达式“x=f*=n/=(c=50)”的求解步骤如下:首先,进行“n/=(c=50)”的运算,相当于 n=n/c=100/50=2;其次,进行“f*=n”的运算,相当于“f=f*n”,故 f=20.000000;最后,得出 x 的值为 20.000000。38.类模板

14、不同于函数模板,类模板只可用 1 型参数。(分数:2.00)填空项 1:_ (正确答案:类)解析:本题考查的是类模板的定义,C+语言中模板分为两种:类模板和函数模板, 类模板只能用于类型参数,函数模板可以重载。 39.设置虚基类的目的是 1,通过 2 表示虚基类。(分数:2.00)填空项 1:_ (正确答案:解决二义性问题)解析:解决二义性的两个基本方法一是用域名进行限制,二是用虚基类的方法。40.如果要把返回值为 void 的函数 A 声明为类 B 的友元函数,则应在类 B 的定义中加入的语句是 1。(分数:2.00)填空项 1:_ (正确答案:friend void A-|_|-;)解析:

15、C+中类的友元函数在声明时应在该函数前面加上关键字 friend,同样如果要声明一个类为另一个类的友元类也要在前面类名前加上 friend。 41.C+语言的基本控制结构为顺序结构、选择结构和 1。(分数:2.00)填空项 1:_ (正确答案:循环结构)解析:C+语言 3 种基本结构就是顺序结构,选择结构,循环结构。 42.以下程序运行后的输出结果是 1。 main2 int a,b,c; a=10; b=20; c=(a%b1); printf(“%d %d %d/n“,a,b,c); (分数:2.00)填空项 1:_ (正确答案:10 20 0)解析:本题中“(a%b1)”的运算顺序为先算

16、括号算术运算符关系运算符逻辑运算符。其中 a%b=10,a/b=0,所以 a%b1 值也是 0,故整个表达式的结果为 0,所以输出的 a,b,c 的值为 10 20 0。43.数据结构分为线性结构和非线性结构,带链的队列属于 1。(分数:2.00)填空项 1:_ (正确答案:线性结构)解析:与栈类似,队列也是线性表,可以采用链式存储结构。所以带链的队列属于线性结构。44.一棵二叉树第六层(根结点为第一层)的结点数最多为 1 个。(分数:2.00)填空项 1:_ (正确答案:32)解析:根据二叉树的性质:二叉树第 i(i1)层上至多有 2i-1 个结点。得到第 6 层的结点数最多是 32。45.

17、友元类的所有成员函数都是另一个类的 1。(分数:2.00)填空项 1:_ (正确答案:友元函数)解析:C+语言中友元类中的函数都是另一个类的友元函数。46.如果类 B 继承了类 A,则称类 A 为类 B 的基类,类 B 称为类 A 的 1。(分数:2.00)填空项 1:_ (正确答案:派生类)解析:如果类 A 为类 B 的基类,那么类 B 称为类 A 的派生类。 47.以下程序运行时,若从键盘输入:10 20 30,输出的结果是 1。 #include main2 int i=0,j=0,k=0; scanf(“%d%*d%d“, printf(“%d%d%d/n“,i,j,k); (分数:2

18、.00)填空项 1:_ (正确答案:10300)解析:在 scanf 格式控制符中,如果在%后有一个“*”附加说明符,表示跳过它指定的列数。本题中“%d%*d%d“”表示将 10 赋给 i,%*d 表示读入整数但不赋给任何变量,然后再读入整数 30 赋给变量 j, 那么变量 k 并没有重新赋值,仍为初始值 0。所以输出的结果为 10300。48.以下程序运行后的输出结果是 1。 int f(int a,int n) if(n=1) return f(a,n-1)+an-1; else return 0; main2 int aa5=1,2,3,4,5,s; s=f(aa,5); printf(

19、“%d/n“,s); (分数:2.00)填空项 1:_ (正确答案:15)解析:本题通过递归调用实现了数组 aa 各元素之和,即 a4+a3+a2+a1+a0=15。49.在 C+语言中,访问一个对象的成员所用的运算符是 1,访问一个指针所指向的对象的成员所用的运算符是 2。(分数:2.00)填空项 1:_ (正确答案:成员选择运算符(或“))解析:本题考查的是使用对象和对象指针访问成员所使用的符号的不同,请注意它们的区别。 50.为解决在多重继承环境中因公共基类带来的 1 问题,C+语言提供了虚基类机制。(分数:2.00)填空项 1:_ (正确答案:二义性)解析:本题考查关于 C+中虚基类的作用。C+中产生虚基类的作用就是为了解决继承中的二义性问题,通过虚基类继承可以把父基类中相同的函数只编译一次。

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