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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C+-198 及答案解析(总分:84.50,做题时间:90 分钟)一、选择题(总题数:35,分数:57.50)1.下面关于运算符重载的描述错误的是_。(分数:2.50)A.运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构B.不是所有的运算符都可以进行重载C.运算符函数的调用必须使用关键字 operatorD.在 C+语言中不可通过运算符重载创造出新的运算符2.已知类 MyClock 中未显式定义构造函数,并重载了加法运算符,使得下面的语句序列能够正确执行: MyClock c1,c2; / c2=c1+10; 由此可知,为类 MyClock 重载的“+”运

2、算符函数的声明是_。(分数:2.00)A.friend MyClock operator+(MyClock,int);B.friend MyClock operator+(MyClock,MyClock);C.friend MyClock operator+(int,MyClock);D.MyClock operator+(MyClock);3.下列叙述中正确的是(分数:1.00)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构4.下列数据结构中,属于非线性结构的是_。(分数:1.00)A.循环队列B.带链队列C.二叉树D.带链栈5.下列程序的运行结果为

3、 #includeiostream.h void main( ) int a2; int ba1; cout a/b endl; ) 0.66667 ) 0 ) 0.7 ) 0.66666666 (分数:2.00)A.B.C.D.6.一个满二叉树其深度为 4,则其叶子节点的个数为 _ 。(分数:1.00)A.8B.16C.32D.47.若是对类 BigNumber 中重载的类型转换运算符 long 进行声明,下列选项中正确的是_。(分数:1.00)A.operator long() const;B.operator long(BigNumber);C.long operator long()c

4、onst;D.long operalor long(BigNumber);8.有如下函数模板声明: templatetypename,T T Max(T a,T b)return(ab)?a:b; 下列对函数模板 Max()的调用中错误的是_。(分数:1.00)A.Max(3.5,4.5)B.Max(3.5,4)C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)9.下列字符串中可以用作 C+标识符是_。(分数:2.50)A._123B.foobarC.caseD.3var10.有如下程序: #includeiomanip #includeiostream using

5、namespace std; int main() coutsetfill(“*“)setw(6)123456; return 0; 运行时的输出结果是_。(分数:2.50)A.*123*456B.*123456*C.*123456D.12345611.分析下面程序,该程序的运行结果是_。 #includeiostream.h class TestClass public: static int m; TestClass () m+; TestClass (int n) m=n; static void test() m+; ; int TestClass:m=0; void main() T

6、estClass A; TestClass B(3); A.test(); TestClass:test(); cout“m=“B.mendl; (分数:2.50)A.m=3B.m=4C.m=5D.m=612.C+中运算符优先级由高到低排列正确的是 _ 。(分数:1.00)A.:+ + +/B. * /C.sizeof % +:D.,fin.open(“d:/test.txt“,iso_base:in);B.fstream fio;fio.open(“d:/test.txt“,iso_base:out);C.ofstream fort;fout.open(“d:/test.txt“,ios_b

7、ase:out);D.ofstream fout;fout.open(“d:/test.txt“,iso_base:app);15.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是_。(分数:2.00)A.一元成员运算符B.二元成员运算符C.一元友元运算符D.B 或 C16.下列关于默认参数的叙述中,错误的是_。(分数:2.00)A.为形参列表中的多个参数指定默认值时,应从右至左进行设置B.若函数的所有形参都指定了默认值,则调用时可不给出实参C.C+中的默认参数可以简化对复杂函数的调用D.若要为参数指定默认值,必须在函数定义及其原型声明中同时指定17.在为一个类重载下列运算符时,

8、只能作为该类成员函数重载的运算符是_。(分数:1.00)A.+B.()C.D.+18.有如下类模板定义: templatetypename T class BigNumber long n; public; BigNumberT i:n(i) BigNumber operator+(BigNumber b) return BigNumbern+b.n); ; 已知 b1、b2 是 BigNumber 的两个对象,则下列表达中错误的是_。(分数:1.00)A.b1+b2B.b1+3C.3+b1D.3+319.关于运算符重载,下列表述中正确的是_。(分数:1.00)A.C+已有的任何运算符都可以重

9、载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型D.可以通过运算符重载来创建 C+中原来没有的运算符20.对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2 的排序方法是_。(分数:1.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序21.下列关于线性表的叙述中,不正确的是 _。(分数:2.00)A.线性表是 n 个结点的有穷序列B.线性表可以为空表C.线性表的每一个结点有且仅有一个前趋和一个后继D.线性表结点间的逻辑关系是 1:1 的联系22.将下面类 TestClass 中的函数 fun()的对象成员 n 值修改为

10、 100 的语句应该是 _ 。 class TcstClass public: TestClass(int x)n=x; void SetNum(int n1)n=n1; private: int n; int fun() TestClass * ptr=new TestClass(45); _; (分数:2.00)A.TestClass(100)B.ptr-SetNum(100)C.SetNum(100)D.ptr-n=10023.定义如下枚举类型 enumMonday,Tuesday,Wednesday,Thrusday,Friday=2);则下列选项正确的是( )。(分数:2.00)A.

11、表达式 wednesday=Friday 的值是 trueB.Day day;day=3;C.Day day;day=Monday+3;D.Day day;day=Tuesday+10;24.设 n=10,i=4,则赋值运算 n%=i+1 执行后,n 的值是 _ 。(分数:2.00)A.0B.3C.2D.125.下面关于数组的初始化正确的是_。(分数:1.00)A.char str=“a“, “b“, “c“B.char str2=“a“, “b“, “c“C.char str23=“a“, “b“, “c“, “d“, “e“, “f“D.char str()=“a“, “b“, “c“26

12、.下列函数中对调用它的函数没有起到任何作用的是(分数:2.00)A.void f1(double B.double f1(double x)return x-1.5;C.void f3(double x)-x;D.double f4(double *x)-*x; return*x;27.下列关于构造函数的描述中,错误的是_。(分数:1.00)A.构造函数名与类名相同B.构造函数可以有返回值C.构造函数可以重载D.每个类都有构造函数28.两个变量定义不能同名,是因为 _ 。(分数:1.00)A.这两个变量定义在同一文件中B.这两个变量定义在同一作用域中C.一个定义在 main 函数中,一个定义在

13、子函数中D.以上说法均不正确29.关于纯虚函数,下列表述中正确的是_。(分数:2.50)A.纯虚函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0;”结束C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不可能是派生类30.有如下类定义: class XX int xdata; public: XX(int n=0):xdata(n) ; class YY:public xx int ydata; public: YY(int m=0,int n=0):XX(m),ydata(n) ; YY 类的对象包含的数据成员的个数是_。(分数:2.50)A.1B.2C.3D

14、.431.有如下程序: #includeiostream using namespace std; void fl(int8,.x,tnt8-y) int z=x;x=y;y=z; void f2(int x,int y) int z=x;x=y;y=z; int main() int x=10,y= 26; f1(x,y); f2(x,y); coutyendl; return 0; 运行时的输出结果是_。(分数:1.00)A.10B.16C.26D.3632.对长度为 n 的线性表进行顺序查找,在最坏情况下所需要的比较次数为_。(分数:2.50)A.log2nB.n/2CnD.n+133.

15、派生类中的成员不能直接访问基类中的 _ 成员。(分数:2.00)A.publicB.privateC.virtualD.protected34.下列对模板的声明中正确的是(分数:1.00)A.templateTB.templateclass T1,T2C.templateclass T1,class T2D.templateclass T1 ;class T235.执行下列程序的结果是 main( ) float x=1,y; y=+x*+x; coutyendl; (分数:2.00)A.9.000000B.6.000000C.1.000000D.程序有错误二、填空题(总题数:15,分数:27

16、.00)36.在下面横线上填上适当的语句,完成程序。 #include iostream using namespace std; class Base int x; public: Base(int i) x=i; Base() ; class Derived : public Base public: 1/完成类 Derive 构造函数的定义 ; int main() Derived Obj; return 0; 在横线处应填入的语句是 2。 (分数:2.00)37.将下面的语句段(A) 补充完整,使其和语句段(B) 在功能上完全等价。 (a) double s=0.0; _ 1_ ; i

17、nt k=0; do s+=d; k+; d=1.0/(k*k+1); while( _ 2_ ); (b) double s=1.0; for(int k=1;k=10;k+) s+=1.0/(k*(k+1); (分数:1.00)38.索引从物理上分为聚簇索引和 _ 1_ 。 (分数:2.00)39.在 C+语言中,一个 short 型数据在内存中占用 2 个字节,则 unsigned short 型数据的取值范围为 _ 1_ 。 (分数:2.00)40.表达式 8 else return 0; void fun1(int m, int for (i=1; im; i+) if(fun2(i

18、) S=S*i; void main() int n=9, s=2; fun1(n, s); coutsend1; 该程序的运行结果是 _ 1_ 。 (分数:2.00)42.数据的逻辑结构在计算机存储空间中的存放形式称为数据的 1。 (分数:2.00)43.在 C+语言的面向对象程序设计框架中, _ 1_ 是程序的基本组成单元。 (分数:1.00)44.以下程序的输出结果是 1 。 #includeiostream.h void fun( ) static int a0; a2; cout a “ “; void main( ) int cc; for(cc1;cc4;cc) fun( ) ;

19、 cout endl; (分数:2.00)45.定义在类内部的函数被类默认为 _ 1_ ,在类外部每次调用该函数时,定义的函数代码会在调用函数位置展开。 (分数:2.00)46.下列程序的运行结果是 1。 #includeiostream.h) class test private: int num; public: test(); int TEST()return num+100; test(); ; test:test()num0; test:test()cout“Destructor is active“endl; void main() test x3; coutx1.TEST()en

20、d1; (分数:2.00)47.将 x+y*z 中的“+”用成员函数重载,“*”用友元函数重载应写为 _ 1_ 。 (分数:1.00)48.C+本身没有定义 I/O 操作,但 I/O 操作包含在 C+实现中。C+标准库 iostream 提供了基本的 I/O 类。I/O 操作分别由类 istream 和 _ 1_ 提供。 (分数:2.00)49.计算机技术中,为解决一个特定问题而采取的特定的有限的步骤称为 _ 1_ 。 (分数:2.00)50.以下程序的运行结果是 _ 1_ 。 #includeiostream #includestring using namespace std; void

21、main() chara10=“China“,b=“Chin“,c=“ese“; coutstrlen(strcat(strcpy(a,b),c)endl; (分数:2.00)二级 C+-198 答案解析(总分:84.50,做题时间:90 分钟)一、选择题(总题数:35,分数:57.50)1.下面关于运算符重载的描述错误的是_。(分数:2.50)A.运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构B.不是所有的运算符都可以进行重载C.运算符函数的调用必须使用关键字 operator D.在 C+语言中不可通过运算符重载创造出新的运算符解析:解析 例如“:”运算符

22、就不能被重载;通过重载可以创造新的运算方式,但是不能臆造新的运算符;定义的时候必须使用关键字 operator,而调用时可直接使用运算符。2.已知类 MyClock 中未显式定义构造函数,并重载了加法运算符,使得下面的语句序列能够正确执行: MyClock c1,c2; / c2=c1+10; 由此可知,为类 MyClock 重载的“+”运算符函数的声明是_。(分数:2.00)A.friend MyClock operator+(MyClock,int); B.friend MyClock operator+(MyClock,MyClock);C.friend MyClock operator

23、+(int,MyClock);D.MyClock operator+(MyClock);解析:3.下列叙述中正确的是(分数:1.00)A.线性表是线性结构 B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构解析:解析:线性表是一种线性结构,数据元素在线性表中的位置只取决于它们自己的序号,即数据元素之间的相对位置是线性的;栈、队列、线性链表实际上也是线性表,故也是线性结构;树是一种简单的非线性结构。4.下列数据结构中,属于非线性结构的是_。(分数:1.00)A.循环队列B.带链队列C.二叉树 D.带链栈解析:解析 树是简单的非线性结构,所以二叉树作为树的一种也是一种非线性结构。

24、5.下列程序的运行结果为 #includeiostream.h void main( ) int a2; int ba1; cout a/b endl; ) 0.66667 ) 0 ) 0.7 ) 0.66666666 (分数:2.00)A.B. C.D.解析:解析 表达式值的类型是由操作数的类型决定的,因为本题的两个数都是 int 型的,所以得出的结果也为 int 型,即去掉小数点后的部分,只取商的整数部分。6.一个满二叉树其深度为 4,则其叶子节点的个数为 _ 。(分数:1.00)A.8 B.16C.32D.4解析:解析 若深度为 k,则叶子节点的个数为 2k-1,这是满二叉树的性质之一。

25、7.若是对类 BigNumber 中重载的类型转换运算符 long 进行声明,下列选项中正确的是_。(分数:1.00)A.operator long() const; B.operator long(BigNumber);C.long operator long()const;D.long operalor long(BigNumber);解析:解析 C+不仅可以对运算符进行重载,还可以重载类型转换符,函数声明的形式为 operator 类型符()const。8.有如下函数模板声明: templatetypename,T T Max(T a,T b)return(ab)?a:b; 下列对函数模

26、板 Max()的调用中错误的是_。(分数:1.00)A.Max(3.5,4.5)B.Max(3.5,4) C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)解析:解析 本题考查函数模板的引用。引用模板函数和引用一般函数在语法形式上基本相同。需要注意的是,说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否调用函数模板中的对应形参。本题选项 B 中,编译系统从第一个参数“3.5”获得信息“double 型数据”和从第二个参数获得信息“inL 型数据”,两者矛盾。9.下列字符串中可以用作 C+标识符是_。(分数:2.50)A._123 B

27、.foobarC.caseD.3var解析:10.有如下程序: #includeiomanip #includeiostream using namespace std; int main() coutsetfill(“*“)setw(6)123456; return 0; 运行时的输出结果是_。(分数:2.50)A.*123*456B.*123456*C.*123456 D.123456解析:11.分析下面程序,该程序的运行结果是_。 #includeiostream.h class TestClass public: static int m; TestClass () m+; TestC

28、lass (int n) m=n; static void test() m+; ; int TestClass:m=0; void main() TestClass A; TestClass B(3); A.test(); TestClass:test(); cout“m=“B.mendl; (分数:2.50)A.m=3B.m=4C.m=5 D.m=6解析:解析 由主函数 main 入手,首先定义 TestClass 对象 A,B;对象 B 构造函数值为 3,构造函数中m+,所以这时 m=4。主函数中调用 A.test(),因为“static int m;”,m 被定义为类 TestClas

29、s 静态成员变量,当它的值改变后,则在各对象中这个数据成员的值都同时改变了。所以这里执行“A.test();”中的 m 为前面进行加 1 操作后的 4,即 m 现在的值为 5。12.C+中运算符优先级由高到低排列正确的是 _ 。(分数:1.00)A.:+ + +/ B. * /C.sizeof % +:D.,fin.open(“d:/test.txt“,iso_base:in); B.fstream fio;fio.open(“d:/test.txt“,iso_base:out);C.ofstream fort;fout.open(“d:/test.txt“,ios_base:out);D.o

30、fstream fout;fout.open(“d:/test.txt“,iso_base:app);解析:解析 ifstream 为输入流,iso_base:in 表示以只读的方式打开文件,所以 A 不会创建文件。15.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是_。(分数:2.00)A.一元成员运算符B.二元成员运算符C.一元友元运算符D.B 或 C 解析:解析 二元的成员操作符的第一个参数是类对象本身,因此选项 B 和 C 都有可能。16.下列关于默认参数的叙述中,错误的是_。(分数:2.00)A.为形参列表中的多个参数指定默认值时,应从右至左进行设置B.若函数的所有形

31、参都指定了默认值,则调用时可不给出实参C.C+中的默认参数可以简化对复杂函数的调用D.若要为参数指定默认值,必须在函数定义及其原型声明中同时指定 解析:17.在为一个类重载下列运算符时,只能作为该类成员函数重载的运算符是_。(分数:1.00)A.+B.() C.D.+解析:解析 本题考查重载运算符,C+规定有的运算符(如赋值运算符、下标运算符、函数调用运算符)必须定义为类的成员函数。所以本题选 B。18.有如下类模板定义: templatetypename T class BigNumber long n; public; BigNumberT i:n(i) BigNumber operato

32、r+(BigNumber b) return BigNumbern+b.n); ; 已知 b1、b2 是 BigNumber 的两个对象,则下列表达中错误的是_。(分数:1.00)A.b1+b2B.b1+3C.3+b1 D.3+3解析:解析 该题考查了 C+模板类和十运算符重载的知识,3+b1 时,程序不能将 bl 转化为整型,所以编译会出错。19.关于运算符重载,下列表述中正确的是_。(分数:1.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型 D.可以通过运算符重载来创建 C+中原来没有的运算符解析:解析

33、重载运算符的规则如下:C+不允许用户自己定义新的运算符,只能对已有的 C+运算符进行重载;C+不能重载的运算符只有 5 个;重载不能改变运算符运算对象的个数;重载不能改变运算符的优先级和结合性;重载运算符的函数不能有默认的参数;重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是 c+的标准类型。故本题答案为C。20.对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2 的排序方法是_。(分数:1.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序 解析:解析 除了堆排序算法的比较次数是 O(nlog2n),其他的都是 n(n

34、-1)/2。21.下列关于线性表的叙述中,不正确的是 _。(分数:2.00)A.线性表是 n 个结点的有穷序列B.线性表可以为空表C.线性表的每一个结点有且仅有一个前趋和一个后继 D.线性表结点间的逻辑关系是 1:1 的联系解析:22.将下面类 TestClass 中的函数 fun()的对象成员 n 值修改为 100 的语句应该是 _ 。 class TcstClass public: TestClass(int x)n=x; void SetNum(int n1)n=n1; private: int n; int fun() TestClass * ptr=new TestClass(45)

35、; _; (分数:2.00)A.TestClass(100)B.ptr-SetNum(100) C.SetNum(100)D.ptr-n=100解析:解析 对象指针存放的是对象的地址,要访问对象指针所指向对象的成员。可以通过两种方式。(*指针).成员,或者是指针-成员。23.定义如下枚举类型 enumMonday,Tuesday,Wednesday,Thrusday,Friday=2);则下列选项正确的是( )。(分数:2.00)A.表达式 wednesday=Friday 的值是 true B.Day day;day=3;C.Day day;day=Monday+3;D.Day day;da

36、y=Tuesday+10;解析:解析 枚举类型定义了一些整型符号常量的集合,使用枚举类型时应该注意以下几点:枚举类型的第一个常量默认值是 O;枚举类型常量的值允许彼此相同;虽然枚举类型常量是整数类型,但是不允许使用整数直接赋值给枚举类型变量,也不允许与整数进行运算,只可以与整数进行比较。24.设 n=10,i=4,则赋值运算 n%=i+1 执行后,n 的值是 _ 。(分数:2.00)A.0 B.3C.2D.1解析:25.下面关于数组的初始化正确的是_。(分数:1.00)A.char str=“a“, “b“, “c“ B.char str2=“a“, “b“, “c“C.char str23=

37、“a“, “b“, “c“, “d“, “e“, “f“D.char str()=“a“, “b“, “c“解析:解析 本题考查的是字符数组的初始化。选项 B 中用 3 个元素初始化大小为 2 的数组,越界了;选项 C 中应该是 2 行 3 列的数组,题中使用 3 行 2 列初始化;选项 D 中数组合后应用方括号。26.下列函数中对调用它的函数没有起到任何作用的是(分数:2.00)A.void f1(double B.double f1(double x)return x-1.5;C.void f3(double x)-x; D.double f4(double *x)-*x; return*

38、x;解析:解析 本题考核函数的调用和参数值的传递(形参、实参)。选项 C 中的函数 D 调用采用按值传递的方式,函数中对形参的修改没有影响到实参的值,而且函数 G 还没有返回值,所以函数耀对调用它的函数没有起到任何作用。选项 A 中的函数 f1 采用引用传递的方式影响实参的值,选项 D 中的函数 f4 通过返回值和指针调用来影响调用函数;选项 B 中的函数 f2 采用返回值的形式对其调用函数发生作用。27.下列关于构造函数的描述中,错误的是_。(分数:1.00)A.构造函数名与类名相同B.构造函数可以有返回值 C.构造函数可以重载D.每个类都有构造函数解析:解析 构造函数没有返回值,虽然叫函数

39、但是它没有任何返回值,包括 void 型都不是,官方叫法为“构造器”。28.两个变量定义不能同名,是因为 _ 。(分数:1.00)A.这两个变量定义在同一文件中B.这两个变量定义在同一作用域中 C.一个定义在 main 函数中,一个定义在子函数中D.以上说法均不正确解析:29.关于纯虚函数,下列表述中正确的是_。(分数:2.50)A.纯虚函数是没有给出实现版本(即无函数体定义)的虚函数B.纯虚函数的声明总是以“=0;”结束 C.派生类必须实现基类的纯虚函数D.含有纯虚函数的类不可能是派生类解析:30.有如下类定义: class XX int xdata; public: XX(int n=0)

40、:xdata(n) ; class YY:public xx int ydata; public: YY(int m=0,int n=0):XX(m),ydata(n) ; YY 类的对象包含的数据成员的个数是_。(分数:2.50)A.1B.2 C.3D.4解析:解析 派生类中的成员包括从基类继承过来的成员和自己增加的成员两大部分。其中,从基类继承的私有成员是不能直接访问的。题中,派生类 YY 除了增加的成员 ydata,还包含从基类继承的 xdata。故答案选 B。31.有如下程序: #includeiostream using namespace std; void fl(int8,.x,

41、tnt8-y) int z=x;x=y;y=z; void f2(int x,int y) int z=x;x=y;y=z; int main() int x=10,y= 26; f1(x,y); f2(x,y); coutyendl; return 0; 运行时的输出结果是_。(分数:1.00)A.10 B.16C.26D.36解析:解析 该题考查了函数参数传递的两种方式:引用传递和值传递。引用传递时 x 和 y 会交换,而传值时二者不交换,因此选 10。32.对长度为 n 的线性表进行顺序查找,在最坏情况下所需要的比较次数为_。(分数:2.50)A.log2nB.n/2Cn D.n+1解析

42、:解析 对线性表进行顺序查找,最坏情况下,如果从表头进行查找,要查找到表尾才能得出结果,因此需要比较 n 次。33.派生类中的成员不能直接访问基类中的 _ 成员。(分数:2.00)A.publicB.private C.virtualD.protected解析:解析 即使是共有继承,其私有成员仍为私有,无法访问。34.下列对模板的声明中正确的是(分数:1.00)A.templateTB.templateclass T1,T2C.templateclass T1,class T2 D.templateclass T1 ;class T2解析:解析 本题考核模板的定义。模板定义的类型参数表中包含一

43、个或多个由逗号分隔的类型参数项,每一项由关键字 class 后跟一个用户命名的标识符,此标识符为类型参数,它不是一种数据类型,但可以同一般数据类型一样使用。在使用类模板时,必须将其实例化,即用实际的数据类型代替它。35.执行下列程序的结果是 main( ) float x=1,y; y=+x*+x; coutyendl; (分数:2.00)A.9.000000 B.6.000000C.1.000000D.程序有错误解析:解析 本题比较简单,考查自增运算符的运算规则以及运算符优先级的知识点。自增运算符的优先级高于乘法运算符的优先级。二、填空题(总题数:15,分数:27.00)36.在下面横线上填

44、上适当的语句,完成程序。 #include iostream using namespace std; class Base int x; public: Base(int i) x=i; Base() ; class Derived : public Base public: 1/完成类 Derive 构造函数的定义 ; int main() Derived Obj; return 0; 在横线处应填入的语句是 2。 (分数:2.00)解析:Derived(int i):Base(i)解析 本题考核派生类中构造函数。程序中,类 Derived 是基类 Base的公有派生。在类 Derived

45、 的构造函数应该包括调用基类构造函数使基类的数据成员得以初始化。37.将下面的语句段(A) 补充完整,使其和语句段(B) 在功能上完全等价。 (a) double s=0.0; _ 1_ ; int k=0; do s+=d; k+; d=1.0/(k*k+1); while( _ 2_ ); (b) double s=1.0; for(int k=1;k=10;k+) s+=1.0/(k*(k+1); (分数:1.00)解析:8d=1.09k=10解析 本题考核 while 循环与 for 循环之间的转换。只要把握住循环的起始条件、结束条件和变量控制,就易解这种类型的题目。38.索引从物理上

46、分为聚簇索引和 _ 1_ 。 (分数:2.00)解析:非聚簇索引解析 根据索引的顺序与数据表的物理顺序是否相同可以分为:聚簇索引和非聚簇索引,聚簇索引重新组织表中的数据以按指定的一个或多个列的值排序;非聚簇索引不重新组织表中的数据。39.在 C+语言中,一个 short 型数据在内存中占用 2 个字节,则 unsigned short 型数据的取值范围为 _ 1_ 。 (分数:2.00)解析:02 16 -1 解析 unsigned short 是无符号整型,最小值为 0,最大值为 2(上标)16-1。40.表达式 8 else return 0; void fun1(int m, int for (i=1; im; i+) if(fun2(i) S=S*i; void main() int n=9, s=2; fun1(n, s); coutsend1; 该程序的运行结果是 _ 1_ 。 (分数:2.00)解析:3642.数据的逻辑结构在计算机存储空间中的存放形式称为数据的 1。 (分数:2.00)解析:模式或逻辑模式或概念模式解析 模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共

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