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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C+-81 及答案解析(总分:67.00,做题时间:90 分钟)一、选择题(总题数:20,分数:34.00)1.下列关于函数重载的叙述中,错误的是_。(分数:2.00)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同D.重载函数的参数个数或参数类型必须有所不同2.函数重载是指 _ 。(分数:1.00)A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同。B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同。C.两个以上的函数名字不同,但形参的个数或类型相同。D.两个以上的函数取相同的函数名,并且函数的返回类型相同。

2、3.下列选项中不属于软件工程 3 个要素的是 _ 。(分数:2.00)A.工具B.过程C.方法D.环境4.若执行语句:coutsetfill(“*“)setw(10)123“OK“endl 后将输出 _ 。(分数:2.00)A.*1230KB.123*OKC.*123*OKD.123*OK*5.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的 _ 。(分数:2.00)A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法6.有二个关系 R、S 和 T 如下 _ 。 (分数:2.00)A.自然连接B交C除D并7.已知在一个类体中包含如下函数原型:VOLU

3、ME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是(分数:2.00)A.这是运算符-的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值8.下列程序的执行结果是_。 #includeiostream.h #includestdlib.h class TestClass public: int x,y; TestClass()x=y=0; TestClass(int a,int b)x=a;y=b; void disp() cout“x=“x“,y=“yecdl; ; void main() T

4、estClass s1(2,3); s1.disp();(分数:1.00)A.x=2,y=2B.x=2,y=3C.x=3,y=2D.x=3,y=39.语句 cout setprecison (3)3.1415926end1;的输出为 _ 。(分数:2.00)A.3.14B.3.1C.3.142D.3.14110.在 C+中,打开一个文件就是将这个文件与一个 _ 建立关联;关闭一个文件就取消这种关联。(分数:1.00)A类B流C.对象D.结构11.下列说法中错误的是 _ 。(分数:2.00)A.公有继承时基类中的 public 成员在派生类中仍是 public 成员B.私有继承时基类中的 pro

5、tected 成员在派生类中仍是 protected 成员C.私有继承时基类中的 public 成员在派生类中仍是 private 成员D.保护继承时基类中的 public 成员在派生类中仍是 protected 成员12.函数定义为 Fun(int B.fun(20+n);C.fun(n);D.funD( 则表达式 4+a+i*f 的值的数据类型是 _。(分数:2.00)A.intB.floatC.doubleD.不确定18.派生类的成员函数不能访问基类的(分数:2.00)A.公有成员和保护成员B.公有成员C.私有成员D.保护成员19.对于模板定义关键宁 class 和 typename 说

6、法不正确的是 _ 。(分数:1.00)A.程序中的 class 并不能都替换为 typenameB.class 和 typename 都可互相替换C.程序中的 typename 都能替换为 classD.程序中的部分 class 可以替换为 typename20.下列程序的运行结果是 #includeiostream.h class A int a; public: A( ) a0; A(int aa) aaa; cout a; ; void main( ) A x,y(2) ,z(3) ; cout endl; (分数:2.00)A.00B.23C.34D.25二、填空题(总题数:18,分数

7、:33.00)21.下列程序的输出结果是 _ 1_ 。 #includeiostream using nameSpace std; int main() int data=1; int char * min(char * a, char * b) 2 void main() double a=1.23,b=3.45; char s1=“abcd“,s2=“erg“; coutmin(a, b)min(s1,s2)end1: (分数:2.00)23.如果不能使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基数继承的成员,下列程序没有使用多态机制,其输出结果是 1。 #inc

8、ludeiostream using namespaee std; class Base public: void print( )tout“B“; class Derived:publie Base public: void print( )tout“D“; int main( ) Derived*pd=new Derived( ); Base*pb=pd: pb-print( ); pd-print( ); delete pd; return 0; (分数:2.00)24.下列软件系统结构图 (分数:2.00)25.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,

9、1,1,则 T 中的叶子结点数为 1。 (分数:2.00)26.有如下定义: class MA int value; public: MA(int n=0):value(n) ; MA *ta,tb; 其中 MA 类的对象名标识符是 1。 (分数:2.00)27.数据模型分为格式化模型和非格式化模型,则关系模型属于 _ 1_ 模型。 (分数:2.00)28.下面程序的执行结果是 1。 #include iostream.h void main() int n=0,x=0; do n+; if(n%3=2 while(x!=1); cout“n=“nendl; (分数:2.00)29.若有定义“

10、int k;”,下列程序段的输出结果是 1。 for(k=2;k6;k+,k+)printf(“#%d“,k); (分数:2.00)30.下列程序的运行结果为 _ 1_ 。 #include iostream. h class myclass private: int a, b, c; public: void fun() int a; a=10; this-,a=5; b=6; this-c=7; cout“a=“a“,this-a=“this-aendl; ; void main() myclass obj1; obj1.fun() (分数:2.00)31.声明长度为 10 的 float

11、 型数组 a,且初始化为 0 的语句是 _ 1_ 。 (分数:2.00)32.有如下程序段: int n=0,sum=0; while(n+,n50) if(n%2= =0)continue; sum+=n; coutsum; 此程序段执行的输出结果为 _ 1_ ,while 语句共执行了 _ 2_ 次。 (分数:2.00)33.冒泡排序算法在最好的情况下的元素交换次数为 _ 1_ 。 (分数:1.00)34.下列程序的输出结果为 1 2.3 2 4.6,请将横线处的缺失部分补充完整。 #includeiostream using namespace std; class Base publi

12、c: Base(int A) :idata(A) void print()coutidata“ “; private: int idata; ; class Derived: public Base public: Derived(int a, double B) : 1, ddata(B) void priat()Base:print(); coutddata“ “; private: double ddata; ; int main() Derived d1(1, 2.3), d2(2, 4.6); d1. print(); d2. print(); return 0; (分数:2.00)

13、35.一个队列的初始状态为空。现将元素 A,B,C,D,E,F,5,4,3,2,1 依次人队,然后再依次退队,则元素退队的顺序为 1。 (分数:2.00)36.下列程序的输出结果是 _ 1_ 。 #include iostream #include cstring using namespace std; void fun(const char *s, char int main() char str=“ABCDE“; char ch=str1; fun(str, ch); coutch; return 0; (分数:2.00)37.C+语言中的友元函数为在类外访问类中的私有成员和保护成员提供

14、了方便,但破坏了类的 1 和 2。 (分数:1.00)38.在有序表(1,3,5,7,9,11,13)中二分查找关键字 9 时所需进行的关键字比较次数为 _ 1_ 。 (分数:2.00)二级 C+-81 答案解析(总分:67.00,做题时间:90 分钟)一、选择题(总题数:20,分数:34.00)1.下列关于函数重载的叙述中,错误的是_。(分数:2.00)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同 D.重载函数的参数个数或参数类型必须有所不同解析:解析 两个或两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类

15、型及个数进行最佳匹配,自动确定调用哪个函数,这就是函数的重载。2.函数重载是指 _ 。(分数:1.00)A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同。 B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同。C.两个以上的函数名字不同,但形参的个数或类型相同。D.两个以上的函数取相同的函数名,并且函数的返回类型相同。解析:解析 函数重载指的是两个或两个以上的函数具有相同的函数名,但是形参的个数或类型不同。程序中通过判断主调函数传过来的参数的个数和类型来决定选择调用哪个具体的函数。3.下列选项中不属于软件工程 3 个要素的是 _ 。(分数:2.00)A.工具B

16、.过程C.方法D.环境 解析:解析 软件工程包括 3 个要素,即方法、工具和过程。方法是完成软件工程项目的技术手段;工具支持软件的开发、管理和文档生成;过程支持软件开发的各个环节的控制、管理。4.若执行语句:coutsetfill(“*“)setw(10)123“OK“endl 后将输出 _ 。(分数:2.00)A.*1230K B.123*OKC.*123*OKD.123*OK*解析:解析 cout.fill()用于设置或返回输出的填充字符,默认是空格,fill()函数的设置一直有效,直到下一个 fill()函数改变该值为止。setw(int n)作用是设置输入输出的宽度,此设置只对一次输入

17、或输出效,在完成一次数据的输入或输出后,宽度设置自动恢复为 0。注意:默认为输出数据在指定宽度内右对齐。5.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的 _ 。(分数:2.00)A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性 D.激活机制和控制方法解析:解析 模块的独立程序是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。6.有二个关系 R、S 和 T 如下 _ 。 (分数:2.00)A.自然连接B交C除 D并解析:解析 从关系 R、S 和 T 的结构可以得出关系 T 是由关系 R、S 经过除运算后得到的。7.已知在一个类体

18、中包含如下函数原型:VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是(分数:2.00)A.这是运算符-的重载运算符函数B.这个函数所重载的运算符是一个一元运算符 C.这是一个成员函数D.这个函数不改变类的任何数据成员的值解析:解析 本题考核运算符的重载。题中语句为运算符-的重载运算符函数,它所重载的运算符是一个二元运算符,且是作为常成员函数来重载的,所以它不能更新对象的数据成员,也不能调用该类中没有用 const 修饰的成员函数。8.下列程序的执行结果是_。 #includeiostream.h #includestdlib.h class Te

19、stClass public: int x,y; TestClass()x=y=0; TestClass(int a,int b)x=a;y=b; void disp() cout“x=“x“,y=“yecdl; ; void main() TestClass s1(2,3); s1.disp();(分数:1.00)A.x=2,y=2B.x=2,y=3 C.x=3,y=2D.x=3,y=3解析:解析 由主函数入手,定义了类 TestClass 的对象 s1(2,3),当类对象进入其作用域时调用构造函数,构造函数应该是调用具有参数的“TestClass(inta,int b)x=a;y=b;”,

20、然后调用成员函数ditip(),则输出为“cout“x=“x“,y=“yendl;”。即 x=2,y=3。9.语句 cout setprecison (3)3.1415926end1;的输出为 _ 。(分数:2.00)A.3.14 B.3.1C.3.142D.3.141解析:10.在 C+中,打开一个文件就是将这个文件与一个 _ 建立关联;关闭一个文件就取消这种关联。(分数:1.00)A类B流 C.对象D.结构解析:11.下列说法中错误的是 _ 。(分数:2.00)A.公有继承时基类中的 public 成员在派生类中仍是 public 成员B.私有继承时基类中的 protected 成员在派生

21、类中仍是 protected 成员 C.私有继承时基类中的 public 成员在派生类中仍是 private 成员D.保护继承时基类中的 public 成员在派生类中仍是 protected 成员解析:解析 此题考查的是派生类中的访问权限。继承方式包括公有、保护和私有派生。私有继承时基类中的 protected 成员在派生类中变成了 private 成员,所以选项 B 错误。12.函数定义为 Fun(int B.fun(20+n);C.fun(n); D.funD( 则表达式 4+a+i*f 的值的数据类型是 _。(分数:2.00)A.intB.floatC.double D.不确定解析:18

22、.派生类的成员函数不能访问基类的(分数:2.00)A.公有成员和保护成员B.公有成员C.私有成员 D.保护成员解析:解析 本题考查的知识点是:派生类对基类成员的访问。派生类对基类中各成员的访问能力与继承方式无关,其成员不能访问基类中的私有成员,可以访问基类中的公有成员和保护成员。19.对于模板定义关键宁 class 和 typename 说法不正确的是 _ 。(分数:1.00)A.程序中的 class 并不能都替换为 typenameB.class 和 typename 都可互相替换 C.程序中的 typename 都能替换为 classD.程序中的部分 class 可以替换为 typenam

23、e解析:20.下列程序的运行结果是 #includeiostream.h class A int a; public: A( ) a0; A(int aa) aaa; cout a; ; void main( ) A x,y(2) ,z(3) ; cout endl; (分数:2.00)A.00B.23 C.34D.25解析:解析 本题考查的是对构造函数的掌握,另外“”运算符是右结合的,所以在进行输出的时候都是先把原来的输出后再自加 1。二、填空题(总题数:18,分数:33.00)21.下列程序的输出结果是 _ 1_ 。 #includeiostream using nameSpace std

24、; int main() int data=1; int char * min(char * a, char * b) 2 void main() double a=1.23,b=3.45; char s1=“abcd“,s2=“erg“; coutmin(a, b)min(s1,s2)end1: (分数:2.00)解析:return(strcmp(a,b)0? a:b);解析 由于对于两个变量的比较来说,字符间的比较不同于整型或浮点剩变量那样可以直接比较,而是要采用专用函数进行,因此不能采用同一个函数模板,所以本题采用的就是单独写成一个非模板函数。23.如果不能使用多态机制,那么通过基类的指

25、针虽然可以指向派生类对象,但是只能访问从基数继承的成员,下列程序没有使用多态机制,其输出结果是 1。 #includeiostream using namespaee std; class Base public: void print( )tout“B“; class Derived:publie Base public: void print( )tout“D“; int main( ) Derived*pd=new Derived( ); Base*pb=pd: pb-print( ); pd-print( ); delete pd; return 0; (分数:2.00)解析:BD解析

26、 pd 先被定义为基类指针,指向派生类对象,但是不能使用多态性,故应该是调用基类的成员函数,打印 B。pb 是派生类对象,调用派生类的数据成员和成员函数,故打印 D。24.下列软件系统结构图 (分数:2.00)解析:325.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1,则 T 中的叶子结点数为 1。 (分数:2.00)解析:826.有如下定义: class MA int value; public: MA(int n=0):value(n) ; MA *ta,tb; 其中 MA 类的对象名标识符是 1。 (分数:2.00)解析:tb解析 本题考查的是对象的定

27、义。对象的定义格式“类名 对象名(参数表);”。所以题目中的tb 是对象名标识符,而 ta 被定义成类 MA 的指针,故空格处应填 tb。27.数据模型分为格式化模型和非格式化模型,则关系模型属于 _ 1_ 模型。 (分数:2.00)解析:非格式化解析 数据模型分为格式化模型和非格式化模型,关系模型属于非格式化模型。28.下面程序的执行结果是 1。 #include iostream.h void main() int n=0,x=0; do n+; if(n%3=2 while(x!=1); cout“n=“nendl; (分数:2.00)解析:n=2329.若有定义“int k;”,下列程

28、序段的输出结果是 1。 for(k=2;k6;k+,k+)printf(“#%d“,k); (分数:2.00)解析:#2#4解析 程序运行时 printf 中“%d”前的内容原样输出,所以第一次输出#2,接着 k 两次自加为 4,继续循环接着输出#4,接着 k 两次自加为 6,此时不符合循环条件,所以输出结果为“#2#4”。30.下列程序的运行结果为 _ 1_ 。 #include iostream. h class myclass private: int a, b, c; public: void fun() int a; a=10; this-,a=5; b=6; this-c=7; c

29、out“a=“a“,this-a=“this-aendl; ; void main() myclass obj1; obj1.fun() (分数:2.00)解析:a=10, this-a=5解析 本题考察在类的成员函数定义中,如果出现类的数据成员和成员函数的局部变量同名的情况下,如何正确引用合适的变量或数据成员。本题巧妙的采用了 this 指针完成这种标识。31.声明长度为 10 的 float 型数组 a,且初始化为 0 的语句是 _ 1_ 。 (分数:2.00)解析:float a10=0; 或 static float a10;解析 未经初始化的静态变量会被程序自动初始化为0;对非 st

30、atic 的数组,若赋初值但数据不够用,则其他元素值初始化为 0。32.有如下程序段: int n=0,sum=0; while(n+,n50) if(n%2= =0)continue; sum+=n; coutsum; 此程序段执行的输出结果为 _ 1_ ,while 语句共执行了 _ 2_ 次。 (分数:2.00)解析:625 4933.冒泡排序算法在最好的情况下的元素交换次数为 _ 1_ 。 (分数:1.00)解析:0解析 根据冒泡排序算法思想可知,若待排序的初始序列为“正序”序列,则只需进行一趟排序,在排序过程中进行 n-1 次关键字间的比较,且不移动和交换记录,这种情况是冒泡排序的最

31、好情况,故冒泡排序算法在最好的情况下的元素交换次数为 0。34.下列程序的输出结果为 1 2.3 2 4.6,请将横线处的缺失部分补充完整。 #includeiostream using namespace std; class Base public: Base(int A) :idata(A) void print()coutidata“ “; private: int idata; ; class Derived: public Base public: Derived(int a, double B) : 1, ddata(B) void priat()Base:print(); co

32、utddata“ “; private: double ddata; ; int main() Derived d1(1, 2.3), d2(2, 4.6); d1. print(); d2. print(); return 0; (分数:2.00)解析:Base(A)解析 这道题目考察了派生类构造函数的参数形式。派生类构造函数的一般格式是:派生类名:派生类名(总参数表):基类名 1(参数表 1),基类名 n(参数表 n), 成员对象名 1(参数表 n+1)成员对象名 m(参数表 n+m)派生类构造函数体。35.一个队列的初始状态为空。现将元素 A,B,C,D,E,F,5,4,3,2,1 依次

33、人队,然后再依次退队,则元素退队的顺序为 1。 (分数:2.00)解析:A,B,C,D,E,F,5,4,3,2,1解析 队列是先进先出的。36.下列程序的输出结果是 _ 1_ 。 #include iostream #include cstring using namespace std; void fun(const char *s, char int main() char str=“ABCDE“; char ch=str1; fun(str, ch); coutch; return 0; (分数:2.00)解析:C解析 strlen(s)/2 值是 2,s2值是 C。37.C+语言中的友元函数为在类外访问类中的私有成员和保护成员提供了方便,但破坏了类的 1 和 2。 (分数:1.00)解析:隐藏性、封装性38.在有序表(1,3,5,7,9,11,13)中二分查找关键字 9 时所需进行的关键字比较次数为 _ 1_ 。 (分数:2.00)解析:3 次解析 第一次和中间的值(7)比较,由于比其大,因此第二次和右侧子表中的中间值(11)比较,由于比其小,第三次再和左侧子表中间值(9)比较。

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