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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

【计算机类职业资格】二级C++分类模拟260及答案解析.doc

1、二级 C+分类模拟 260 及答案解析(总分:65.50,做题时间:90 分钟)一、选择题(总题数:35,分数:65.50)1.以下程序的输出的结果是 _ 。 #includeiostream.h void main() int i,k,a10,p3; k=5; for(i=0;i9;i+)ai=i; for(i=0;i3;i+)pi=ai*(i+1); for(i=0;i3;i+)k+=pi*2; coutk; (分数:2.00)A.20B.21C.22D.232.将 E-R 图转换为关系模式时,实体和联系都可以表示为_。(分数:2.50)A.属性B键C.关系D域3.已知 n 是一个 int

2、 型变量,下列语句中错误的是 _ 。(分数:2.00)A.long*p=new longn;B.long pn;C.long*p=new longn;D.long p10;4.C 源程序中不能表示的数制是_。(分数:2.50)A.二进制B.八进制C.十进制D.十六进制5.设 int x =2,4,6,8,y,*p= class Student:public Person; class Undergraduate:Student; 下列关于这些类之间关系的描述中,错误的是_。(分数:2.00)A.类 Person 是类 Undergraduate 的基类B.类 Undergraduate 从类

3、student 公有继承C.类 student 是类 Person 的派生类D.类 Undergraduate 是类 Person 的派生类8.在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则 _ 。(分数:2.00)A.完全相同B.完全不同C.部分相同D.以上都不对9.对于循环队列,下列叙述中正确的是_。(分数:1.00)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针10.下列关于二叉树的叙述中,正确的是_。(分数:2.50)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比

4、度为 2 的结点多一个C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍11.一个函数为 void(int,char=“a“),另一个函数为 void f(int),则它们 _ 。(分数:1.00)A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载D.以上说法均不正确12.在 C+中既可以用于文件输入又可以用于文件输出的流类是_。(分数:2.50)A.fstreamB.ifstreamC.ofstreamD.iostream13.下列关于模板的叙述中,错误的是_。(分数:2.00)A.模板声明中的第一个符号总是关

5、键字 templateB.在模板声明中用和括起来的部分是模板的形参表C.类模板不能有数据成员D.在一定条件下函数模板的实参可以省略14.有下列程序: #include stdio.h void main() int x; scanf(“%d“,x); if(x=3);else if(x!=10) printf(“%d/n“,x); 程序运行时,输入的值在哪个范围才会有输出结果_。(分数:2.50)A.不等于 10 的整数B.大于 3 且不等 10 的整数C.大于 3 或等于 10 的整数D.小于 3 的整数15.下列表示纯虚函数的成员函数是(分数:2.00)A.virtual int func

6、 (int);B.void func(int)=0;C.virtual void func=0;D.virtual void flmc(int)16.以下非法的赋值语句是(分数:2.00)A.n=(i=2,+i);B.j+;C.+(i+1);D.x=j0;17.有如下程序 #includeiostream.h void main() char ch25=“6937“,“8254“,*p2; int i,j,s0; for(i0;i(2;i+)pichi; for(i0;i(2;i+) for(j0;pij“/0,j+2) s10*s+pij-“0“; couts; 该程序的输出结果是 _ 。(

7、分数:2.00)A.69825B.63825C.6385D.69382518.有如下两个类定义: class AA); class l3B AA v1,*v2; BB v3; int*v4; ; 其中有一个成员变量的定义是错误的,这个变量是_。(分数:2.50)Av1Bv2Cv3Dv419.关于运算符重载,下列表述中正确的是_。(分数:1.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型D.可以通过运算符重载来创建 C+中原来没有的运算符20.下列语句中,错误的是_。(分数:2.00)A.const int b

8、uffer=256;B.const double*point;C.int const buffer=256;D.double*const point;21.下列程序的运行结果为 _ 。 #includeiostream.h templateclass TT class FF TT a1,a2,a3; public: FF(TT b1,TT b2,TT b3)a1b1;a2b2;a3b3; TT Sum()return a1+a2+a3; void main() FFintx(int(1.1),2,3),y(int(4.2),5,6); coutx.Sum()y.Sum()endl;(分数:2.

9、00)A.6.1 15.2B.6 15C.6 15.2D.6.1 1522.对于语句 cout setfill(“*“) setw(10)1setfill (“*“) setw (2) 2;的输出结果是(分数:1.00)A.* * * * * * * * *1*2B.* * * * * * * *12C.* * * * * * *1*2D.12* * * * * * * *23.下列关于模板的叙述中错误的是_。(分数:2.50)A.调用模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义D.类模板的实例是一个类对象24.下列关于 C+流的叙述

10、中,正确的是(分数:2.00)A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现B.从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作C.cin 是一个预定义的输入流类D.输出流有一个名为 open 的成员函数,其作用是生成一个新的流对象25.执行语句:coutsetfill(“*“)setw(10)setfill(“#“)left123“OK“endl;return 0;)后将输出 _ 。(分数:2.00)A.123*OKB.123#OKC.123*OK*D.123#OK#26.已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)con

11、st;,下列关于这个函数的叙述中,错误的是_ 。(分数:2.00)A.这是运算符的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值27.打开文件时可单独或组合使用下列文件打开模式_。 ios_base:app ios_base:binary ios_base:in ios_base:out 若要以二进制读方式打开一个文件,需使用的文件打开模式为(分数:2.00)A.B.C.D.28.通过运算符重载,可以改变运算符原有的_。(分数:1.00)A.操作数类型B.操作数个数C.优先级D.结合性29.有三个关系 R、S 和 T 如下:

12、(分数:1.00)A.自然连接B交C除D并30.下面叙述正确的是(分数:2.00)A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止D.以上三种描述都不对31.假定 MyClass 为一个类,那么下列的函数说明中, _ 为该类的析构函数。(分数:2.50)A.voidMyClass();B.MyClass(int n);C.MyClass();D.MyClass();32.有如下程序 #includeiostreamh void main() charch 25=“6937“,“8254“,*p2;

13、 int i,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0;2;i+) for(j=0;pij/0;j+=2) s=10*s+pij-0; couts; 该程序的输出结果是(分数:1.00)A.69825B.63825C.6385D.69382533.类 A 是类 B 的友元,类 B 是类 C 的友元,则下列说法正确的是_。(分数:2.50)A.类 B 是类 A 的友元B.类 C 是类 A 的友元C.类 A 是类 C 的友元D.以上都不对34.有如下类声明: class MyBASE int k; public: void set(int n) k=n; int g

14、et()const return k; ; class MyDERIVED: protected MyBASE Protected: int j; public: void set(int m,int n)MyBASE: set(m);j=n; int get () const return MyBASE: get ()+j; ; 则类 MyDERIVED 中保护的数据成员和成员函数的个数是_ 。(分数:2.00)A.4B.3C.2D.135.若已定义: int a=0,1,2,3,4,5,6,7,8,9,*p=a,i; 其中 0i9,则对 a 数组元素不正确的引用是_。(分数:1.00)A.

15、ap-aB.*(ai)C.piD.a10二级 C+分类模拟 260 答案解析(总分:65.50,做题时间:90 分钟)一、选择题(总题数:35,分数:65.50)1.以下程序的输出的结果是 _ 。 #includeiostream.h void main() int i,k,a10,p3; k=5; for(i=0;i9;i+)ai=i; for(i=0;i3;i+)pi=ai*(i+1); for(i=0;i3;i+)k+=pi*2; coutk; (分数:2.00)A.20B.21 C.22D.23解析:解析 程序中首先在第一个 for 循环中将数组 a 每一个元素赋值为 0,1,2,。然

16、后在第二个循环中数组 p 的第 i 元素为 a 中的第 i*(i+1),即 0,2,6,第三个循环中数组 p 中的每个元素值乘以2,然后加上 5,累加。2.将 E-R 图转换为关系模式时,实体和联系都可以表示为_。(分数:2.50)A.属性B键C.关系 D域解析:解析 在 C 语言中,将 E-R 图转换为关系模式时,实体和联系都可以表示为关系。3.已知 n 是一个 int 型变量,下列语句中错误的是 _ 。(分数:2.00)A.long*p=new longn;B.long pn; C.long*p=new longn;D.long p10;解析:4.C 源程序中不能表示的数制是_。(分数:2

17、.50)A.二进制 B.八进制C.十进制D.十六进制解析:解析 C 语言源程序不能表示二进制,在 C 语言中,所有的数值型常量都带有符号,所以整型数量只区别整型和长整型两种形式,整型常量和长整型常量均可用十进制、八进制、十六进制 3 种形式表示,故选项 A 不正确。5.设 int x =2,4,6,8,y,*p= class Student:public Person; class Undergraduate:Student; 下列关于这些类之间关系的描述中,错误的是_。(分数:2.00)A.类 Person 是类 Undergraduate 的基类B.类 Undergraduate 从类 s

18、tudent 公有继承 C.类 student 是类 Person 的派生类D.类 Undergraduate 是类 Person 的派生类解析:解析 Student 类公有继承自 Person 类,Undergraduate 类私有继承自 Student 类。所以Undergraduate 类是从 Student 类私有继承的。8.在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则 _ 。(分数:2.00)A.完全相同 B.完全不同C.部分相同D.以上都不对解析:解析 在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则完全相同。9.对于循环

19、队列,下列叙述中正确的是_。(分数:1.00)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针 解析:解析 循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构所以队头指针有时可能大于队尾指针有时也可能小于队尾指针。10.下列关于二叉树的叙述中,正确的是_。(分数:2.50)A.叶子结点总是比度为 2 的结点少一个B.叶子结点总是比度为 2 的结点多一个 C.叶子结点数是度为 2 的结点数的两倍D.度为 2 的结点数是度为 1 的结点数的两倍解析:解析 概念理解题。在任意

20、一棵二叉树中,度为 0 的结点(即叶子结点)总比度为 2 的结点多一个,故 B 正确。11.一个函数为 void(int,char=“a“),另一个函数为 void f(int),则它们 _ 。(分数:1.00)A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载 D.以上说法均不正确解析:12.在 C+中既可以用于文件输入又可以用于文件输出的流类是_。(分数:2.50)A.fstream B.ifstreamC.ofstreamD.iostream解析:13.下列关于模板的叙述中,错误的是_。(分数:2.00)A.模板声明中的第一个符号总是关键字 t

21、emplateB.在模板声明中用和括起来的部分是模板的形参表C.类模板不能有数据成员 D.在一定条件下函数模板的实参可以省略解析:解析 此题考查模板的概念。模板的一般说明形式如下:template 类型形参表函数返回值类型函数名(形参表)函数体,所以选项 A、B 正确。函数模板的实参在一定条件下是可以省略的,所以选项 C错误。14.有下列程序: #include stdio.h void main() int x; scanf(“%d“,x); if(x=3);else if(x!=10) printf(“%d/n“,x); 程序运行时,输入的值在哪个范围才会有输出结果_。(分数:2.50)A

22、.不等于 10 的整数B.大于 3 且不等 10 的整数 C.大于 3 或等于 10 的整数D.小于 3 的整数解析:解析 在本题的程序中输入的数值小于等于 3 时不进行任何处理。如果输入的数值大干 3 并且其值不等于 10 时,则打印输入的数值。所以本题的正确答案为选项 B。15.下列表示纯虚函数的成员函数是(分数:2.00)A.virtual int func (int);B.void func(int)=0;C.virtual void func=0; D.virtual void flmc(int)解析:解析 本题考查纯虚函数的定义形式。由于纯虚函数在最后要有“=0”,故据此排除 A

23、和 D。而B 中没有出现 virtual 关键词,故正确答案为 C。16.以下非法的赋值语句是(分数:2.00)A.n=(i=2,+i);B.j+;C.+(i+1); D.x=j0;解析:解析 本题其实是考查各级运算符的优先级的。选项 A 赋值符号右侧为逗号表达式,其取值为最后一项表达式的值;选项 B 隐含表示为 j=j+1,这是很常用的一种赋值表达式。选项 D 赋值符号右侧为逻辑表达式,其值为 1 或 0,可以赋值给变量 x。将选项 C 展开为 i+1=i+1+1,这是错误的。17.有如下程序 #includeiostream.h void main() char ch25=“6937“,“

24、8254“,*p2; int i,j,s0; for(i0;i(2;i+)pichi; for(i0;i(2;i+) for(j0;pij“/0,j+2) s10*s+pij-“0“; couts; 该程序的输出结果是 _ 。(分数:2.00)A.69825B.63825C.6385 D.693825解析:解析 该题主要要搞清楚以下几点:定义了一个指针数组 char *p2后,程序中第一个循环or(i=o;i2,i+)pi=chi;的作用是使指针数组的 p0元素(它本身是一个指针)指向了二维数组ch 的第一行字符串,井使指针数组的 p1元素指向了二维数组 ch 的第二行字符串,这样,就使指针数

25、组p 和二维数蛆 ch 建立起了一种对应关系,以后对二维数组 ch 的某个元素的引用就有两种等价的形式;chij或 Pij。对二维数组 ch 的初始化,使其第一行 ch0中存入了字符串“6937“,第二行ch1中的内容为字符串”8254”。程序中第二个循环中的循环体 s=s。10+pij -“0“;的功能是这样的,每执行一次,将 s 中的值乘以 10(也即,将 s 中的数值整体向左移动一位,并在空出来的个位上添一个 0),再将当前 pij中的字符量转换为相应的数字,然后把这个数字加到 s 的个位上。注意到内层循环的循环条件 pij,“/0“是指 pij中的字符只要不是字符串结束标志“/0“就继

26、续循环,语句j+2;是使下标 j 每次增加 2,也即一个隔一个地从 pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 p0所指向的字符串” 6937“中一个隔一个地取出字符,分别是“6“和“3“,然后从 p1所指向的宇符串“8254“,中一个隔一个地取出字符,分别是”“8“和“5“,同时经过转换和相加运算后,结果 s 中的值应该是 6385。18.有如下两个类定义: class AA); class l3B AA v1,*v2; BB v3; int*v4; ; 其中有一个成员变量的定义是错误的,这个变量是_。(分数:2.50)Av1Bv2Cv3 Dv4解析:解析 本题主要

27、考查类对象的定义,类的对象一般放在类结构体外或在主函数中定义,而不能放在类定义的结构体中,但自身类的指针可以,本题 BB v3 不能被定义于类体内。19.关于运算符重载,下列表述中正确的是_。(分数:1.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型 D.可以通过运算符重载来创建 C+中原来没有的运算符解析:解析 重载运算符的规则如下:C+不允许用户自己定义新的运算符,只能对已有的 C+运算符进行重载;C+不能重载的运算符只有 5 个;重载不能改变运算符运算对象的个数;重载不能改变运算符的优先级和结合性;重载

28、运算符的函数不能有默认的参数;重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是 C+的标准类型。故本题答案为C。20.下列语句中,错误的是_。(分数:2.00)A.const int buffer=256;B.const double*point;C.int const buffer=256;D.double*const point; 解析:解析 此题考查的是常指针和指针常量的概念。常指针是指向一个常量的指针变量,指针自身的内容可以改变但指针指向的内容不可以改变;指针常量是一个常量,即不能修改指针自身的内容,但可以通过指针修改其所指向的内容。D 选

29、项中指针常量 point 没有初始化,编译无法通过。21.下列程序的运行结果为 _ 。 #includeiostream.h templateclass TT class FF TT a1,a2,a3; public: FF(TT b1,TT b2,TT b3)a1b1;a2b2;a3b3; TT Sum()return a1+a2+a3; void main() FFintx(int(1.1),2,3),y(int(4.2),5,6); coutx.Sum()y.Sum()endl;(分数:2.00)A.6.1 15.2B.6 15 C.6 15.2D.6.1 15解析:解析 本题考查模板函

30、数的应用,表达式 int(1.1)和 int(4.2)是将 1.1 和 4.2 强制转换为整型。22.对于语句 cout setfill(“*“) setw(10)1setfill (“*“) setw (2) 2;的输出结果是(分数:1.00)A.* * * * * * * * *1*2 B.* * * * * * * *12C.* * * * * * *1*2D.12* * * * * * * *解析:解析 C+语言中 setfill 的意思是在空格的地方填上 setfill 函数中的参数字符,setw 的意思是设置整个输出字符串的字符个数,本题中用*来代替空格。23.下列关于模板的叙述中

31、错误的是_。(分数:2.50)A.调用模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义 D.类模板的实例是一个类对象解析:24.下列关于 C+流的叙述中,正确的是(分数:2.00)A.与键盘、屏幕、打印机和通信端口的交互都可以通过流类来实现 B.从流中获取数据的操作称为插入操作,向流中添加数据的操作称为提取操作C.cin 是一个预定义的输入流类D.输出流有一个名为 open 的成员函数,其作用是生成一个新的流对象解析:解析 在 C+中,所有设备的交互都通过流来实现。从流中提取数据称为输入操作,或者提取操作;向流中添加数据称为输出操作,或者

32、插入操作。cin 是标准的输入流对象,cout 标准输入流对象。文件流中有 open 成员函数,其作用是使磁盘文件同某一已经定义的文件流对象建立关联。25.执行语句:coutsetfill(“*“)setw(10)setfill(“#“)left123“OK“endl;return 0;)后将输出 _ 。(分数:2.00)A.123*OKB.123#OK C.123*OK*D.123#OK#解析:26.已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_ 。(分数:2.00)A.这是运算符的重载运算符函数 B.这个

33、函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值解析:解析 重载的是一个二元运算符“一”,所以此题选择 A。27.打开文件时可单独或组合使用下列文件打开模式_。 ios_base:app ios_base:binary ios_base:in ios_base:out 若要以二进制读方式打开一个文件,需使用的文件打开模式为(分数:2.00)A.B.C.D. 解析:解析 模式 ios_base:binary 作为二制进文件打开,ios_base:out 为输出而打开文件。28.通过运算符重载,可以改变运算符原有的_。(分数:1.00)A.操作数类型 B

34、.操作数个数C.优先级D.结合性解析:解析 重载运算符的规则如下:C+不允许用户自己定义新的运算符,只能对已有的 C+运算符进行重载;C+不能重载的运算符只有 5 个;重载不能改变运算符运算对象的个数;重载不能改变运算符的优先级和结合性;重载运算符的函数不能有默认的参数;重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是 C+的标准类型。故本题答案为A。29.有三个关系 R、S 和 T 如下: (分数:1.00)A.自然连接B交C除 D并解析:解析 S 中的关系全部出现在 R 中,只有做除法操作才会出现关系 T。30.下面叙述正确的是(分数:2.00

35、)A.算法的执行效率与数据的存储结构无关B.算法的空间复杂度是指算法程序中指令(或语句)的条数C.算法的有穷性是指算法必须能在执行有限个步骤之后终止 D.以上三种描述都不对解析:解析 A 选项错误,因为算法的执行效率与算法执行过程中所需基本运算的执行次数有关;B 选项错误,原因是算法的空间复杂度是指执行这个算法所需要的内存空间;C 选项正确,故 D 选项不正确。31.假定 MyClass 为一个类,那么下列的函数说明中, _ 为该类的析构函数。(分数:2.50)A.voidMyClass();B.MyClass(int n);C.MyClass();D.MyClass(); 解析:解析 C+语

36、言中析构函数为符号“”加类名,且析构函数没有返回值和参数,故前不加 void关键字。所以正确的形式应该是MyClass()。32.有如下程序 #includeiostreamh void main() charch 25=“6937“,“8254“,*p2; int i,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0;2;i+) for(j=0;pij/0;j+=2) s=10*s+pij-0; couts; 该程序的输出结果是(分数:1.00)A.69825B.63825C.6385 D.693825解析:解析 该题主要要搞清楚以下几点: 定义了一个指针数组 cha

37、r*P2后,程序中第一个循环 for(i=0;i2;i+)Pi=chi;的作用是使指针数组的 P0元素(它本身是一个指针)指向了二维数组 ch 的第一行字符串,并使指引数组的 P1元素指向了二维数组汕的第二行字符中。这样,就使指针数组 p 和二维数组 ch 建立起了一种对应关系,以后对二维数组 ch 的某个元素的引用就有两种等价的形式: chij或 pij。对二维数组 ch 的初始化,使其第一行 ch0中存入了字符串“6937,第二行 ch1中的内容为字符串“8254”。程序中第二个循环中的循环体 s=s*10+pij-0;的功能是这样的,每执行一次,将 s 中的值乘以 10(也即,将 s 中

38、的数值整体向左移动一位,并在空出来的个位上添一个 0),再将当前 Pij中的字符量转换为相应的数字,然后把这个数字加到 s 的个位上注意到内层循环的循环条件 Pij/0,是指 pij中的字符只要不是字符串结束标志/0就继续循环,语句。j+2;是使下标j 每次增加 2,也即一个隔一个地从 pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 P 0所指向的字符申“6937中一个隔一个地取出字符,分别是“6”和“3”,然后从 p1所指向的字符串“8254中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相加运算后,结果 s 中的值应该是 6385。33.类 A 是类 B

39、的友元,类 B 是类 C 的友元,则下列说法正确的是_。(分数:2.50)A.类 B 是类 A 的友元B.类 C 是类 A 的友元C.类 A 是类 C 的友元D.以上都不对 解析:解析 选项 A、B 和 C 都不正确,因为友元关系是单项的,并且没有交换性、传递性。34.有如下类声明: class MyBASE int k; public: void set(int n) k=n; int get()const return k; ; class MyDERIVED: protected MyBASE Protected: int j; public: void set(int m,int n)

40、MyBASE: set(m);j=n; int get () const return MyBASE: get ()+j; ; 则类 MyDERIVED 中保护的数据成员和成员函数的个数是_ 。(分数:2.00)A.4B.3C.2 D.1解析:解析 由于是保护继承,基类的公有成员变成保护成员,set(int n)变成保护成员函数,而 get()const 被重载,为公有成员,j 为新定义的保护成员,所以数据成员和成员函数的个数是 C。35.若已定义: int a=0,1,2,3,4,5,6,7,8,9,*p=a,i; 其中 0i9,则对 a 数组元素不正确的引用是_。(分数:1.00)A.ap-aB.*(ai)C.piD.a10 解析:解析 通常,引用一个数组元素可以用下标法,如 ap-a形式,或指针法如*(ai)的形式。本题中 a9=9,a10显然超出了数组范围,数组的下标是从 0 开始的。

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