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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(贵州师范大学计算机科学与技术专业大二学年类和面向对象数据结构文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

贵州师范大学计算机科学与技术专业大二学年类和面向对象数据结构文档格式.docx

1、多态性,同一个操作对于不同对象表现不同的行为;封装性,屏蔽数据的具体结构以及操作的算法;模块独立性好,对象内部各种元素结合紧密,内聚性强。5、拷贝构造函数具有的下列特点中,()是错误的。A如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的B拷贝构造函数只有一个参数,并且是该类对象的引用C拷贝构造函数是一种成员函数D拷贝构造函数的名字不能用类名(正确答案)如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的;拷贝构造函数只有一个参数,并且是该类对象的引用;拷贝构造函数的名字与类同名,并且不被指定返回类型;拷贝构造函数是一种成员函数。6、关于静态成员的描述中,()是错误的。A静态

2、成员可分为静态数据成员和静态成员函数B静态数据成员定义后必须在类体内进行初始化(正确答案)C静态数据成员初始化不使用其构造函数D静态数据成员函数中不能直接引用非静态成员静态成员可分为静态数据成员和静态成员函数;静态数据成员被定义后,必须对它进行初始化,初始化在类体外进行,一般放在该类的实现部分最合适,也可以放在其他位置,例如,放在主函数前面等;静态数据成员初始化与该类的构造函数和析构函数无关;在静态成员函数的实现中,可以直接引用静态成员,但不能直接引用非静态成员。7、关于友元的描述中,()是错误的。A友元函数是成员函数,它被说明在类体内(正确答案)B友元函数可直接访问类中的私有成员C友元函数破

3、坏封装性,使用时尽量少用D友元类中的所有成员函数都是友元函数友元函数是非成员函数,在类体内说明了,在类体外定义,定义和调用等同于一般的普通函数;由于它可以直接访问类的私有成员,因此破坏了类的封装性和隐藏性,尽量少用。8、下列关于类的访问权限的描述中,()是错误的。A类中说明为公有的成员可以被程序中的任何代码访问B类中说明为私有的成员只能被类的成员函数和说明为友元类的成员函数访问C类中说明为保护的成员可以被该类的派生类的成员访问D类的对象和类成员函数一样可以访问类的所有成员(正确答案)本题考核类成员的访问权限。类成员有3类访问权限:公有(public)、私有(private)和保护(protec

4、ted)。公有成员是类的对外表现,而私有成员和保护成员是类的内部实现。类的成员函数可以访问类的所有成员,没有任何限制。而类的对象对类的成员的访问是受成员访问控制符制约的。通过类的对象只能访问类的公有成员,不能访问类的保护成员和私有成员。由此可知,选项D的描述是错误的。9、下列关于构造函数说法不正确的是() 单选题 *A构造函数必须与类同名B构造函数可以省略不写C构造函数必须有返回值(正确答案)D在构造函数中可以对类中的成员进行初始化构造函数是一类特殊的函数,其特点是函数名与类同名,没有返回值,也可以省略不写,还可以对类中的成员进行初始化。10、在派生类中能直接访问基类的()。A公有成员,私有成

5、员B保护成员,私有成员C全部成员D公有成员,保护成员(正确答案)派生类亦称为子类,基类亦称为父类。一个类中的public成员可被自己的成员和任意其它类及外部函数访问,保护成员可被自己以及其子类访问,私有成员只能被自己访问。所以此题应选D。11、下列关于运算符重载的描述中,错误的是()。A) 运算符重载不能改变操作数的个数、优先级、结合性和运算符的语法结构B) 不是所有的运算符都可以重载C) 运算符函数的调用必须使用关键字operator(正确答案)D) 在C+语言中不可以通过运算符重载创造出新的运算符运算符重载不能改变运算符的语法规则、优先级、结合性和操作数个数。运算符重载不能创造新的运算符。

6、不能重载“,”.“:”、“.*”、“-*”和“:”5个运算符。运算符重载函数在定义的时候必须使用关键字operator,调用时可直接使用运算符。12、C+语言是从早期的C语言逐渐发展演变而来的。与C语言相比,它在求解问题方法上进行的最大改进是()。A面向过程B面向对象(正确答案)C安全性D复用性C+起源于C语言,它不仅保留了传统的结构化程序设计方法,又对流行的面向对象程序设计方法提供了完整的支持。13、对于类中定义的成员,其隐含访问权限是()。ApublicBprotectedCprivate(正确答案)DStatic类中定义的成员,隐含访问权限是private。14、下面有关重载函数的说法中

7、,正确的是()。A重载函数必须具有不同的返回值类型B重载函数形参个数必须不同C重载函数必须有不同的形参列表(正确答案)D重载函数名可以不同函数重载允许用同一个函数名定义多个函数。被重载的函数必须要有不同的形参列表。不可以根据函数返回值类型来重载函数。15、有如下的对类“CSample”的说明,其中()是错误的。classCSample 单选题 *Ainta=23;(正确答案)BCSample();public:CCSample(intval);DCSample();在上面对类“CSample”说明中,“CSample()”和“CSample(intval)”是该类重载的构造函数、“CSampl

8、e()”是该类的析构函数,这三个语句都是正确的。错误的语句是“inta=23”,因为它违反了在类的声明(不管是引用性声明,还是定义性声明)中都不能以赋值表达式的形式给它的数据成员进行初始化。16、在int a=3,*p=&a中,*p的值是()。A变量s的地址值(正确答案)B无意义C变量p的地址D3*p表示指针p指向的内容,而语句*p=&a将a的地址传递给*p。17、在一个类中可以对一个操作符进行()重载?A1种B2种C3种D多种(正确答案)重载运算符可以针对用户的各种新的数据类型按实际需要对原有运算符进行适当的改造,在一个类中可以有多种新的数据类型,所以一个操作符可以进行多种重载。18、在公有

9、继承的情况下,基类的成员在派生类中的访问权限为()。A公有B私有C保持不变(正确答案)D受保护派生类会继承基类的成员函数和成员变量,在公有继承的情况下,派生类不改变基类成员的访问权限。19、应在下列程序画线处填入的正确语句是 ()。#include iostreamusing namespace std;clas Basevoid fun()coutBase:funend1;class Derived : public Base_/显示调用基类的函数 fun()Derived:单选题 *A. fun();B. Base.fun();C. Base:fun();D. Base-fun();作用域

10、分辨符号是“:”,它可以用来限定要访问的成员所在的类的名称。在派生类Derive的定义中显式调用基类的函数fun(),则只能借助于作用域分辨符“:”。20、下面的描述中表达错误的是() 单选题 *A公有继承时基类中的public成员在派生类中仍是public的B公有继承时基类中的private成员在派生类中仍是private的(正确答案)C公有继承时基类中的protected成员在派生类中仍是protected的D私有继承时基类中的public成员在派生类中是private的C+中,继承方式控制了基类中具有不同访问属性的成员在派生类中的访问属性。基类中的私有成员在派生类中是隐蔽的,只能在基类内

11、部访问。所以B) 选项是错误的。派生类中的成员不能访问基类的中私有成员,但可以访问基类中的公有成员和保护成员。此时派生类对基类中各个成员的访问能力与继承方式无关,但继承方式将影响基类成员在派生类中的访问控制属性,基类中公有和保护成员在派生类中的访问控制属性将随着继承方式而改变:派生类从基类公有继承时,基类的公有成员和保护成员在派生类中仍然是公有成员和保护成员;派生类从基类私有继承时,基类的公有成员和保护成员在派生类中都改变为私有成员,派生类从基类保护继承时,基类的公有成员在派生类中改变为保护成员,基类的保护成员在派生类中仍然为保护成员所以,A) 、C) 和D) 选项都是正确的。21、下面对于静

12、态数据成员描述中,正确的是()。A静态数据成员可以在类体内初始化B静态数据成员不可以在类体内初始化(正确答案)C静态数据成员不能受protected控件符控制D静态数据成员可以直接用类名调用静态成员只能在类的外部定义,并且只定义一次。22、面向对象程序设计中的数据隐藏指的是()。A输入数据必须输入保密口令B数据经过加密处理C对象内部数据结构上建有防火墙D对象内部数据结构的不可访问性(正确答案)输入数据必须输入保密口令和数据经过加密处理都不是面向对象程序设计的特征;对象内部数据结构上也不可能建有防火墙,所以它们都不是面向对象程序设计中所指的数据隐藏。面向对象程序设计系统中的封装单位是对象,对象之

13、间只能通过接口进行信息交流,外部不能对对象中的数据随意地进行访问,这就造成了对象内部数据结构的不可访问性,也使得数据被隐藏在对象中。这就是面向对象程序设计中的数据隐藏所指。23、下列各项中符合函数重载必须满足的条件的是()。A必须有不同的参数个数B对应的参数类型必须不相同CA和B必须同时满足DA和B只要满足一个即可(正确答案)在同一个作用域中,要实现函数重载必须满足的条件的是:有不同的参数个数;或者对应的参数有不相同的数据类型,即和中只要有一个满足就可以了。当然两者都满足更好,但这不是必须的。24、拷贝(复制)构造函数的作用是()。A进行数据类型的转换B用对象调用成员函数C用对象初始化对象(正

14、确答案)D用一般类型的数据初始化对象进行数据类型的转换和用一般类型的数据初始化对象都是一般构造函数的功能。用对象调用成员函数不用构造函数,只要用“对象名成员函数名”即可。所以拷贝(复制)构造函数的作用,只能是用对象来初始化对象。25、下面对结构或类中成员的访问中,不正确的访问是()。A*pointer.salary;(其中pointer为指向类对象的指针)(正确答案)Bpointer-salary;Cx=worker.salary;(其中worker为具有类类型的对象)DLocation&rA=A1;intx=rAGetX();(Location为已定义的类,A1为对象)因pointer为指向

15、类对象的指针,所以“pointer-salary”是正确的访问数据成员的形式;因worker为具有类类型的对象,所以“worker.salary”也是正确的访问数据成员的形式;因Location为已定义的类,A1为对象,所以“Location&”表示以对象A1初始化对象引用rA,然后由对象引用rA调用成员函数GetX()给变量x赋值,这样的访问成员函数的形式也是正确的;“*pointer.salary;”中,因为运算符.的优先级高于运算符*的优先级,所以相当于“*(pointer.salary);”,那正确的形式应该是“*(pointersalary);故“*pointer.salary”是不

16、正确的访问。数据结构部分1、研究数据结构就是研究()。A. 数据的逻辑结构(正确答案)B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构(存储结构)以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。算法的设计取决于数据的逻辑结构,而算法的实现依赖于指定的存储结构。2、具有线性结构的数据结构是()。A. 图B. 树C. 广义表D. 栈(正确答案)栈(stack)是一

17、种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。3、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、()等5个特性。A. 可行性、可移植性和可扩充性B. 可行性、有穷性和确定性(正确答案)C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性算法是指为解决某个特定问题而采取的确定且有限的步骤。一个算法应当具有以下五个特性:1)、有穷性:一个算法包含的操作步骤应该是有限的。2)、确定性:算法中每一条指令必须有确切的含义,不能有二义性,对于相同的输入必须能得到相同的执行结果。3)、可行性:算法中指定的操作,都可以通过已经验证过可以实现的基本运算执行有限次后实现

18、。4)、有0个或多个输入:在计算机上实现的算法是用来处理数据对象的,在大多数情况下这些数据对象需要通过输入来得到。5)、有一个或多个输出:算法的目的是为了求解,这些解只有通过输出才能得到(注意:算法要有一个以上的输出)。4、下面程序段的时间复杂度是()。for(i=0;im;i+)for(j=0;jnext=head(正确答案)B. p-next=NULLC. p=NULLD. p=head循环单链表首尾节点相连,因此p-next=head。9、链表不具有的特点是()。A. 可随机访问任一元素(正确答案)B. 插入删除不需要移动元素C. 不必事先估计存储空间D. 所需空间与线性表长度成正比链表

19、只能顺序访问,只能从第一个元素开始逐个地读取元素,不能随机访问任一元素。10、在双向循环链表中,在p指针所指的结点后插入一个指针q所指向的新结点,修改指针的操作是()。next=q;q-prior=p;p-next-prior=q;next=p-next;C. q-D. q-需先赋值插入节点的信息,再修改当前节点,避免节点信息丢失。11、从表中任一结点出发,都能扫描整个表的是()。A. 单链表B. 顺序表C. 循环链表(正确答案)D. 静态链表只有循环链表能从任一结点出发,找到所有元素。12、线性表L=(a1,a2,an),下列说法正确的是()。A. 每个元素都有一个直接前驱和一个直接后继B.

20、 线性表中至少要有一个元素C. 表中诸元素的排列顺序必须是由小到大或由大到小D. 除第一个和最后一个元素外,其余每个元素都由一个且仅有一个直接前驱和直接后继(正确答案)A 第一个和最后一个元素不符合条件;B 线性表可以为空表; C 线性表不要求排序。13、在下列对顺序表进行的操作中,算法时间复杂度为O(1)的是()。A. 访问第i个元素的前驱(1 p-next=s;next=s-s-next=p;D. p-原来的节点关系为q、p,即q-next=p,插入s后的节点关系为q、s、q,因此,先让p指向s,即q-next=s;然后让s指向q,即s-next=p。16、一个栈的输入序列为:a,b,c,

21、d,e,则栈的不可能输出的序列是()。A. a,b,c,d,eB. d,e,c,b,aC. d,c,e,a,b(正确答案)D. e,d,c,b,a栈是先进后出的结构,对于C,由于e出栈时,a、b已进栈且还没有出栈,因此,b应该比a出,所以C错误。17、设计一个判别表达式中括号是否配对的算法,采用()数据结构最佳。A. 顺序表B. 链表C. 队列右括号需要匹配最近的左括号,具有后进先出的特点,因此用栈更合适。18、栈和队列都是()。A. 链式存储的线性结构B. 链式存储的非线性结构C. 限制存取点的线性结构(正确答案)D. 限制存取点的非线性结构由于栈和队列都属于线性表,所以线性表的顺序存储结构

22、和链式存储结构同样适用于栈和队列。队列(Queue)是一种先进先出(FIFO)的线性表,队列是只允许在一端进行插入,另一端进行删除运算的线性表。允许删除的那一端称为队首(Front),允许插入运算的另一端称为队尾(Rear)。栈(Stack)是限定仅在表尾进行插入或删除操作的线性表。表尾端称为栈项(top),表头端称为栈底(bottom)。故栈是后进先出(LIFO)的线性表。可见,栈和队列都是限制存储点的线性结构19、设循环队列的容量为70,现经过一系列的入队和出队操作后,front为20,rear为11,则队列中元素的个数为()。A. 9B. 31C. 61(正确答案)D. 39一个循环队列Q的存储空间大小为M,其队头和队尾

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1