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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C+分类模拟 262 及答案解析(总分:62.50,做题时间:90 分钟)一、选择题(总题数:35,分数:62.50)1.for(int x=0,y=0;!x|y=5;y+,x=!x)语句执行的循环次数是 _ 。(分数:2.00)A.0B.7C.6D.无数次2.有如下程序 #includeiostream using namespace std; class A public: virtual void func1()cout“A1“; void func2()cout“A2“; ; class B:public A public: void func1()cout“B1“; void

2、func2()cout“B2“; ; int main() A *p=new B; p-func1(); P-func2(); return 0; 运行此程序,屏幕上将显示输出_。(分数:2.00)A.B1B2B.A1A2C.B1A2D.A1B23.设 n=10,i=4,则赋值运算 n%=i+1 执行后,n 的值是 _ 。(分数:2.00)A.0B.3C.2D.14.在对函数进行原型声明时,下列语法成分中不需要的是_。(分数:1.00)A.函数返回类型B.函数参数列表C.函数名D.函数体5.下列叙述中正确的是(分数:2.00)A.软件测试的主要目的是确定程序中错误的位置B.软件调试的主要目的是

3、发现程序中错误的类型C.程序经调试后还应进行测试D.软件的测试与调试工,作最好都由程序编制者来完成6.以下程序的输出结果是_。 int x=5; do cout-x: while(!x);(分数:2.00)A.43210B.5C.4D.无任何输出7.有如下程序: #includeiostream using namespace std; int main() void function(double val); double val; function(val); coutval; return 0; void function(double val) val=3; 编译运行这个程序将出现的情

4、况是_。(分数:2.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数8.假定 MyClass 为一个类,则执行 MyClass a,b(2),*p;语句时,自动调用该类构造函数 _ 次。(分数:2.50)A.2B.3C.4D.59.若变量已正确定义,有下列程序段 int a=3,b=5,c-7; if(ab)a=b;c-a; if(c!=a)c=b; printf(“%d,%d,%d/n“,a,b,c); 其输出的结果是_。(分数:2.50)A.程序段有语法错B.3,5,3C.3,5,5D.3,5,710.在计算机中,算法是指_。(分数:1.00)A.查询方法B.

5、加工方法C.解题方案的准确而完整的描述D.排序方法11.若 MyClass 是一个类名,且有如下语句序列 MyClass c1,*c2; MyClass *c3=new MyClass; MyClass 上面的语句序列所定义的类对象的个数是_。(分数:2.00)A.1B.2C.3D.412.有如下数组声明:int value 30;,下标值引用错误的是 _ 。(分数:2.00)A.value30B.value0C.value10D.value2013.下列关于模版的叙述中,错误的是_。(分数:2.50)A.调用模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每

6、个实例就是一个类定义D.类模板的实例是一个类对象14.下列叙述中正确的是(分数:2.00)A.为了建立一个关系,首先要构造数据的逻辑关系B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项C.一个关系的属性名表称为关系模式D.一个关系可以包括多个二维表15.执行下列语句序列: int i=0;while(125)i+=3;couti; 输出结果是_。(分数:1.00)A.24B.25C.27D.2816.已知枚举类型定义语句为 enum TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10; 则下列叙述中错误的是_。(分数:1.00)A.枚举常量 NAME 的值

7、为 1B.枚举常量 NUMBER 的值为 1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 1017.当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:2.00)A.ios base:inB.ios_base:binaryC.ios_base:in|ios_base:outD.ios_base:out18.有如下类定义: class Point private: static int how_many; ; _how_many=0; 要初始化 Point 类的静态成员 how_many,下画线处应填入的内容是_。(分数:1.

8、00)A.intB.static intC.int Point:D.static int Point:19.设有以下定义和程序: #include iostream.h class A1 public: void showl() cout“class A1“end1; ; Class A2 : public A1 public: void show2() cout“Class A2“end1; ; Class A3 : protected A2 public: void show3() cout”Class A 土”end1; ; void main() A1 obj1; A2 obj2; A

9、3 obj3; 则以下不合语法的调用语句是 _ 。(分数:1.00)A.obj1show1();B.obj2show1();C.obj3show1();D.obj2show2();20.有如下程序 #includeiostream.h void main() char ch25=“6937“, “8254“,*p2; int i,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0;i2;i+) for(j=0;pij“/0“;j+=2) s=10*s+pij=“0“; couts; 该程序的输出结果是_。(分数:2.50)A.69825B.63825C.6385D.693

10、82521.有以下程序: #include iostream using namespace std; class count static int n; public: count ( ) n+; static int test() for (int i = 0; i 4; i+ ) n+; return n; ; int count : n = 0; int main() coutcount : test()“ “; count c1, c2; coutcount : test()end1; return 0; 执行后的输出结果是 _ 。(分数:1.00)A.4 10B.1 2C.22D.

11、2422.有如下程序 #includeiostream using namespace std; class Base protected: Base()cout“A“; Base(char C)coutc; ; class Derived:public Base public: Derived(char C)coutc; ; int main() Derived d1(“B“); return 0; 执行这个程序屏幕上将显示输出_。(分数:2.00)ABB.BAC.ABD.BB23.对关系 S 和 R 进行集合运算,产生的元组属于 S 中的元组,但不属于 R 中的元组,这种集合运算称为 _

12、。(分数:2.00)A.并运算B.交运算C.差运算D.积运算24.有以下程序: #includeiostream using namespace std; class A public: A()cout“A“;) ; classBpublic:B()cout“B“; classC:public A B b: public: C()(cout“C“;) ; int main() C obj; return 0; 执行后的输出结果是_。(分数:2.50)A.CBAB.BACC.ACBD.ABC25.以下程序的输出是 _ 。 struct st int x;int *y; *p; int dt4=1

13、0,20,30,40; struct st aa4=50, 则下列叙述中错误的是_。(分数:1.00)A.枚举常量 NAME 的值为 1B.枚举常量 NUMBER 的值为 1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 1028.下列关于函数的描述中,错误的是_。(分数:1.00)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板29.执行下列语句: #includeiostream using namespace std; int main() int x=3; if(x=5) coutx+endl; else coutxen

14、dl; return 0; 程序的输出是_。(分数:2.50)A.3B.4C.5D.630.有如下程序: #include using namespace std; class Point int x, y; public: Point(int x1=0, int y1=0):x(x1), y(y1) int get()return x+y; ; class Circle Point center; int radius; public: Circle(int cx, int cy, int r):center(cx, cy), raaius(r) int get()return center

15、.get()+radius; ; int main() Circle c(3, 4, 5); coutc.get() return 0; /c.get() 运行时的输出结果是_。(分数:2.50)A.5B.7C.9D.1231.下列关于 this 指针的叙述中,正确的是 _ 。(分数:2.00)A.任何与类相关的函数都有 this 指针B.类的成员函数都有 this 指针C.类的友元函数都有 this 指针D.类的非静态成员函数才有 this 指针32.有如下程序; #includelostream using namespace std; void fun(int c=a; a=b; b=c

16、; int main() int x=14, y=20; fun(x, y); coutxy; return 0; 运行后的输出结果是“2020”,则横线处的语句应为_。(分数:1.00)AbB.int bC.int*bD.im class A public: virtual void func1()cout“A1“; void func2()cout“A2“; ; class B:public A public: void func1()cout“B1“; void func2()cout“B2“; ; int main() A *p=new B; p-func1(); P-func2();

17、 return 0; 运行此程序,屏幕上将显示输出_。(分数:2.00)A.B1B2B.A1A2C.B1A2 D.A1B2解析:解析 此题考查的是虚函数的概念。此题中,func1 是虚函数,func2 是一般成员函数,而且在派生类与基类中都存在两个这样的函数。在主函数中,语句 A*p=new B;定义了一个基类的指针 p,并让它指向一个派生类对象。所以通过该指针调用 func1 时,运行的是派生类的版本,而通过该指针调用 func2运行的是基类的版本。所以程序运行的最后输出是:B1A2。3.设 n=10,i=4,则赋值运算 n%=i+1 执行后,n 的值是 _ 。(分数:2.00)A.0 B.

18、3C.2D.1解析:4.在对函数进行原型声明时,下列语法成分中不需要的是_。(分数:1.00)A.函数返回类型B.函数参数列表C.函数名D.函数体 解析:解析 函数原型中,函数名、函数返回值、函数参数列表是需要的,而函数体在函数声明时不需要。所以答案为 D。5.下列叙述中正确的是(分数:2.00)A.软件测试的主要目的是确定程序中错误的位置B.软件调试的主要目的是发现程序中错误的类型C.程序经调试后还应进行测试 D.软件的测试与调试工,作最好都由程序编制者来完成解析:解析 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。 测试不是为了证明程序是正确的,而是

19、在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷。 由于测试的这一特征,一般应当避免由开发者测试自己的程序。 测试只能说明程序有错,而不能证明程序无错,希望通过有限次的测试就能发现程序中的所有错误是不可能的,即完全测试是不可能的。 因此,选项 A)与 D)中的说法都是错误的。 调试也称排错。 测试的目的是暴露错误,而调试的目的是发现错误的位置,并改正错误。 经测试发现错误后,可以立即进行调试并改正错误;经过调试后的程序还需进行回归测试:以检查调试的效果,同时也可防止在调试过程中引进新的错误。 因此,选项 B)中的说法也是错误的,而选项 C)中的说法是正确的。6.以下程序的输出

20、结果是_。 int x=5; do cout-x: while(!x);(分数:2.00)A.43210B.5C.4 D.无任何输出解析:解析 先无条件执行一次循环体,前置“-”作用于 x,使得 x 先减 1,再输出;由于 x 非零,故!x为 false,不再执行循环语句。7.有如下程序: #includeiostream using namespace std; int main() void function(double val); double val; function(val); coutval; return 0; void function(double val) val=3;

21、 编译运行这个程序将出现的情况是_。(分数:2.00)A.编译出错,无法运行B.输出:3C.输出:3.0D.输出一个不确定的数 解析:解析 此题考查的是函数参数的传递。C+语言中,函数在传递参数时,总是将实参的值传递给被调用函数的形参,即传值调用。因此,在函数中对形参所作的任何操作都不会改变实参的值。8.假定 MyClass 为一个类,则执行 MyClass a,b(2),*p;语句时,自动调用该类构造函数 _ 次。(分数:2.50)A.2 B.3C.4D.5解析:解析 C+在创建一个对象时,会调用类的构造函数。执行 MyClass a b,(2),*p;创建了两个对象 a、b 和指针 p,在

22、创建对象 a 和 b 会调用构造函数,而创建指针 p 时,由于 p 本身不是对象,所以不调用类的构造函数。9.若变量已正确定义,有下列程序段 int a=3,b=5,c-7; if(ab)a=b;c-a; if(c!=a)c=b; printf(“%d,%d,%d/n“,a,b,c); 其输出的结果是_。(分数:2.50)A.程序段有语法错B.3,5,3 C.3,5,5D.3,5,7解析:解析 如果 if 判断条件成立时就执行其后的相关语句,否则不执行,第一个 if 条件 ab 不成立,故不执行“a=b”,接着执行“c=a”,把 a 的值赋给 c 后,此时第二个 if 条件不成立,故不执行其后

23、语句,最终点 c 的值为 3。10.在计算机中,算法是指_。(分数:1.00)A.查询方法B.加工方法C.解题方案的准确而完整的描述 D.排序方法解析:解析 计算机算法是指解题方案的准确而完整的描述,它的基本特征分别是:可行性、确定性、有穷性和拥有足够的情报。11.若 MyClass 是一个类名,且有如下语句序列 MyClass c1,*c2; MyClass *c3=new MyClass; MyClass 上面的语句序列所定义的类对象的个数是_。(分数:2.00)A.1B.2C.3 D.4解析:解析 C1、*C2、C3 是 3 个 MyClass 对象,C4 是 MyClass 对象的引用

24、,它是对象 C1 的别名。12.有如下数组声明:int value 30;,下标值引用错误的是 _ 。(分数:2.00)A.value30 B.value0C.value10D.value20解析:13.下列关于模版的叙述中,错误的是_。(分数:2.50)A.调用模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义 D.类模板的实例是一个类对象解析:解析 模板可以看作一种高级宏。通过一次实例化模板可以得到一个类。模板和类的关系类似于类和对象的关系。但是一个类可以实例化多次,就是说一个类可以生成多个对象,只要给出的参数相同,所生成的对象在那一刻

25、的内部状态就是一样的。但是模板只能用一套参数实例化一次。14.下列叙述中正确的是(分数:2.00)A.为了建立一个关系,首先要构造数据的逻辑关系B.表示关系的二维表中各元组的每一个分量还可以分成若干数据项C.一个关系的属性名表称为关系模式 D.一个关系可以包括多个二维表解析:解析 本题考查数据库的关系模型。关系模型的数据结构是一个“二维表”,每个二维表可称为一个关系,每个关系有一个关系名。表中的一行称为一个元组;表中的列称为属性,每一列有一个属性名。表中的每一个元组是属性值的集合,属性是关系二维表中最小的单位,它不能再被划分。关系模式是指一个关系的属性名表,即二维表的表框架。因此,选项 C 的

26、说法是正确的。15.执行下列语句序列: int i=0;while(125)i+=3;couti; 输出结果是_。(分数:1.00)A.24B.25C.27 D.28解析:解析 本题考查循环语句 while 的使用。i 为 3 的倍数,当 i=24 时,i25,执行 while 的循环体 i+=3,则 i=27,不满足 i25 的条件,结束循环。16.已知枚举类型定义语句为 enum TokenNAME,NUMBER,PLUS=5,MINUS,PRINT=10; 则下列叙述中错误的是_。(分数:1.00)A.枚举常量 NAME 的值为 1 B.枚举常量 NUMBER 的值为 1C.枚举常量 M

27、INUS 的值为 6D.枚举常量 PRINT 的值为 10解析:解析 本题考查 C+语言的数据类型。第一个枚举常量的值为 0;允许程序显示的定义中指定部分或全部枚举常量的值,枚举常量默认时,在前一枚举常量值的基础上以此增 1。17.当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:2.00)A.ios base:inB.ios_base:binaryC.ios_base:in|ios_base:outD.ios_base:out 解析:解析 对于 ofstream,默认的打开方式是 ios_base:out,ofstream 只能用于输出,它没有

28、提供任何用于输入的操作。18.有如下类定义: class Point private: static int how_many; ; _how_many=0; 要初始化 Point 类的静态成员 how_many,下画线处应填入的内容是_。(分数:1.00)A.intB.static intC.int Point: D.static int Point:解析:解析 本题考查静态数据成员,静态数据成员可以初始化,但只能在类体外进行初始化,其一般形式为:数据类型类名:静态数据成员名=初值。所以本题答案为 C。19.设有以下定义和程序: #include iostream.h class A1 pu

29、blic: void showl() cout“class A1“end1; ; Class A2 : public A1 public: void show2() cout“Class A2“end1; ; Class A3 : protected A2 public: void show3() cout”Class A 土”end1; ; void main() A1 obj1; A2 obj2; A3 obj3; 则以下不合语法的调用语句是 _ 。(分数:1.00)A.obj1show1();B.obj2show1();C.obj3show1(); D.obj2show2();解析:解析

30、 C+中,通过类的对象只能访问类的公有成员,不能访问类的保护成员和私有成员。A2 是A1 的公有派生类,A3 是 A2 的保护派生类,所以类 A1 的成员函数 showl()在类 A3 中呈现保护属性,不能通过 A3 类的对象访问。20.有如下程序 #includeiostream.h void main() char ch25=“6937“, “8254“,*p2; int i,j,s=0; for(i=0;i2;i+)pi=chi; for(i=0;i2;i+) for(j=0;pij“/0“;j+=2) s=10*s+pij=“0“; couts; 该程序的输出结果是_。(分数:2.50

31、)A.69825B.63825C.6385 D.693825解析:解析 该题主要要搞清楚以下几点:定义了一个指针数组 char*p2后,程序中第一个循环“for(i=0;i2;i+)pi=chi”的作用是使指针数组的 p0元素(它本身是一个指针)指向了二维数组ch 的第一行字符串,并使指针数组的 p1元素指向了二维数组 ch 的第二行字符串,这样,就使指针数组p 和二维数细 ch 建立起了一种对应关系,以后对二维数组 ch 的某个元素的引用就有两种等价的形式:chij或 pij。对二维数组 ch 的初始化,使其第一行 ch0中存入了字符串“6937”,第二行ch1中的内容为字符串“8254”。

32、程序中第二个循环中的循环体“s=s*10+pij=“0“”的功能是这样的,每执行一次,将 s 中的值乘以 10(即将 s 中的数值整体向左移动一位,并在空出来的个位上添一个0),再将当前 pij中的字符量转换为相应的数字,然后把这个数字加到 s 的个位上。注意到内层循环的循环条件 pij“/0“是指 pij中的字符只要不是字符串结束标志“/0“就继续循环,语句j+2;是使下标 j 每次增加 2,即一个隔一个地从 pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 p0所指向的字符串“6937”中一个隔一个地取出字符,分别是“6”和“3”,然后从 p1所指向的字符串“8254”

33、中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相加运算后,结果 s 中的值应该是 6385。21.有以下程序: #include iostream using namespace std; class count static int n; public: count ( ) n+; static int test() for (int i = 0; i 4; i+ ) n+; return n; ; int count : n = 0; int main() coutcount : test()“ “; count c1, c2; coutcount : test()end1;

34、 return 0; 执行后的输出结果是 _ 。(分数:1.00)A.4 10 B.1 2C.22D.24解析:解析 程序首先定义了类 count,其内部含有 private 类型数据成员“static int n;”,同时含有 public 类型构造函数 count()和静态成员函数 static int test(),这两个函数的功能分别是为对象申请系统资源并将静态数据成员 n 加 1 和将静态数据成员 n 加 4。主函数前,程序将静态数据成员 n 初始化为 0,该数据成员为所有类 count 的对象所共有的数据成员。主函数中,程序首先执行静态成员函数test()(由于 test 声明为

35、static,因此其调用时无需通过具体对象)。而其执行过程中,静态数据成员 n应该加 4 变成 n=4,因此此处输出为 4。此后程序创建对象 c1 和 c2,由于在每次创建过程中都要调用构造函数 count(),而每次调用 count()函数后,静态数据成员 n 值都会加 1,因此,创建两个对象之后,n值变为 n=6;再次执行 test()函数后,n 的值再次加 4,此时变为 n=6+4=10。故程序全部执行后,变量 n值变为 10,而中间程序输出为“4 10”。22.有如下程序 #includeiostream using namespace std; class Base protecte

36、d: Base()cout“A“; Base(char C)coutc; ; class Derived:public Base public: Derived(char C)coutc; ; int main() Derived d1(“B“); return 0; 执行这个程序屏幕上将显示输出_。(分数:2.00)ABB.BAC.AB D.BB解析:解析 此题考查的是派生类对象的构造。建立派生类对象时,构造函数的执行顺序是:执行基类的构造函数,调用顺序按照各个基类被被继承时声明的顺序;执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序;执行派生类的构造函数。此题中,在建立派生

37、类 Derived 的对象 d1 时会先调用基类 Base 的构造,调用的是默认构造函数,输出字符A;然后调用自身的构造函数,输出B;故程序的输出结果是:AB。23.对关系 S 和 R 进行集合运算,产生的元组属于 S 中的元组,但不属于 R 中的元组,这种集合运算称为 _ 。(分数:2.00)A.并运算B.交运算C.差运算 D.积运算解析:24.有以下程序: #includeiostream using namespace std; class A public: A()cout“A“;) ; classBpublic:B()cout“B“; classC:public A B b: pub

38、lic: C()(cout“C“;) ; int main() C obj; return 0; 执行后的输出结果是_。(分数:2.50)A.CBAB.BACC.ACBD.ABC 解析:解析 本题考查的是类的继承和派生。系统首先要通过派生类的构造函数调用基类的构造函数,对基类成员初始化,然后对派生类中的新增成员初始化。25.以下程序的输出是 _ 。 struct st int x;int *y; *p; int dt4=10,20,30,40; struct st aa4=50, 则下列叙述中错误的是_。(分数:1.00)A.枚举常量 NAME 的值为 1 B.枚举常量 NUMBER 的值为

39、1C.枚举常量 MINUS 的值为 6D.枚举常量 PRINT 的值为 10解析:解析 本题考查 C+语言的数据类型。第一个枚举常量的值为 0;允许程序显示的定义中指定部分或全部枚举常量的值,枚举常量默认时,在前一枚举常量值的基础上以此增 1。28.下列关于函数的描述中,错误的是_。(分数:1.00)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板 解析:解析 本题考查函数的基础知识,函数可以没有返回值,没有参数,也可以是一个类的成员,函数可以定义为模板,即模板函数。29.执行下列语句: #includeiostream using namespac

40、e std; int main() int x=3; if(x=5) coutx+endl; else coutxendl; return 0; 程序的输出是_。(分数:2.50)A.3B.4C.5 D.6解析:解析 if条件语句 1 else 语句 2,语句的执行过程是:首先判断条件是否为真(不为 0),为真则执行语句 1,否则执行语句 2。题目中的条件是 x=5,意思是把 5 赋予变量 x,它将 x 置 5 且返回一个真值。30.有如下程序: #include using namespace std; class Point int x, y; public: Point(int x1=0

41、, int y1=0):x(x1), y(y1) int get()return x+y; ; class Circle Point center; int radius; public: Circle(int cx, int cy, int r):center(cx, cy), raaius(r) int get()return center.get()+radius; ; int main() Circle c(3, 4, 5); coutc.get() return 0; /c.get() 运行时的输出结果是_。(分数:2.50)A.5B.7 C.9D.12解析:解析 本题考查的知识点是

42、类的继承和派生。类的继承是新的类从已有类那里得到已有的特性,如数据成员、成员函数等。类的派生是从已有的类产生新类的过程。在继承过程中,原有的类或已经存在的用来派生新类的类成为基类或父类,而由已经存在的类派生出的新类则称为派生类或子类。派生类具有基类的数据成员和成员函数,同时增加了新的成员。31.下列关于 this 指针的叙述中,正确的是 _ 。(分数:2.00)A.任何与类相关的函数都有 this 指针B.类的成员函数都有 this 指针C.类的友元函数都有 this 指针D.类的非静态成员函数才有 this 指针 解析:解析 本题考查 this 指针的使用。类的每一个成员函数都有一个隐含的常

43、量指针,即 this 指针。类的静态成员函数不能含有 this 指针,因为 this 指针是一个指向本对象的指针。32.有如下程序; #includelostream using namespace std; void fun(int c=a; a=b; b=c; int main() int x=14, y=20; fun(x, y); coutxy; return 0; 运行后的输出结果是“2020”,则横线处的语句应为_。(分数:1.00)AbB.int b C.int*bD.im&b解析:解析 C+中,函数的参数必须指定类型,选项 A 错误;C+中,函数的参数默认是按值传递的,观察程序

44、可知,在函数 fun 中,由于 fun 函数的第一个参数为引用类型,所以 x 值被改变为 y 的值,由于程序输出 x、y 的值均为 20,所以 y 的值并没有在调用 fun 的过程中被改变,所以 fun 函数的第二个形参类型不能为引用类型,选项 D 错误;由于 fun 函数中,形参 a、b 与整型变量 c 之间可以相互赋值,所以b 不可能为指针类型,选项 C 错误;对于选项 B,由于函数参数按值传递,所以形参 b 的改变,不会影响实参 y 的值,选项 B 正确。33.要通过函数实现一种不太复杂的功能,并且要求加快执行速度,则应该选用(分数:2.00)A.重载函数B.内联函数 C.静态函数D.虚

45、函数解析:解析 内联 inline 函数就是取代宏定义的,在编译时展开,插入到相应的位置,从而减少了系统开销,加快了执行速度。虚函数则是为了取消二义性现象,静态函数则是一个类所有对象的共享函数。34.关于二义性的描述错误的是 _ 。(分数:1.00)A.一个子类的两个父类中都有某个同名成员,在子类中对该成员访问可能出现二义性B.解决二义性可以用对成员名的限定法C.父类和子类中同时出现同名函数,也可能存在二义性 D.一个子类是从两个父类派生出来的,而这两个父类只有一个共同的父类,对该父类成员进行访问时,可能出现二义性解析:35.下列选项中合法的用户标识符是 _ 。(分数:2.00)A.10ngB.2Test C.3DmaxD.dat解析:解析 此题考查的是标识符。标识符是由数字、字母以及下划线构成,其第一个字符必须是字母或下划线,中间不能有空格;标识符的长度是任意的,但由于编译系统的限制一般不超过 31 个字符;标识符中的大小写字母是不同的;定义标识符时不能采用系统的保留字。符合这些要求的只有选项 B。

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