招聘软件工程师试题.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
招聘软件工程师试题

测试题 请分别说明类与对象的关系,类的层次关系。 对象的共性抽象为类 ,类的实例化就是对象. 包含与被包含的关系. 请说明栈与队列的数据结构特性,并说明在实际应用中如何用代码实现栈和队列,请写出思路。 栈(Stack)是仅限制在表的一端进行插入和删除运算的线性表,通常称插入、删除这一端为栈顶,另一端称为栈底。表中无元素时为空栈。栈的修改是按后进先出的原则进行的. 队列(Queue)也是一种运算受限的线性表,它的运算限制与栈不同,是两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),允许删除的一端称为队尾(rear),允许插入的一端称为队头 (Front) ,队列的操作原则是先进先出的. 在对数据进行排序时,有哪几种排序方法,请列举不少于2种,并写出它们的排序原理. 直接插入排序,冒泡排序,快速排序,直接选择排序,堆排序,希尔排序。 冒泡排序和选择排序是排序算法中比较简单和容易实现的算法。 冒泡排序的基本概念是:依次比较相邻的两个数,将大数放在前面,小数放在后面。即首先比较第1个和第2个数,将大数放前,小数放后。然后比较第2个数和第3个数,将大数放前,小数放后,如此继续,直至比较最后两个数,将大数放前,小数放后,此时第一趟结束,在最后的数必是所有数中的最小数。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将大数放前,小数放后,一直比较到最小数前的一对相邻数,将大数放前,小数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。 快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 选择排序:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 直接选择排序中,为了从R[1..n]中选出关键字最小的记录,必须进行n-1次比较,然后在R[2..n]中选出关键字最小的记录,又需要做n-2次比较。事实上,后面的n-2次比较中,有许多比较可能在前面的n-1次比较中已经做过,但由于前一趟排序时未保留这些比较结果,所以后一趟排序时又重复执行了这些比较操作。 堆排序可通过树形结构保存部分比较结果,可减少比较次数。 插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。 直接插入排序(Straight Insertion Sort):将一个记录插入到排好序的有序表中,从而得到一个新的、记录数增1的有序表。 4. 下列链式存储结构的叙述中哪一条是不正确的? 结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构 逻辑上相邻的结点物理上不必邻接 可以通过计算直接确定第i个结点的存储地址 D 插入、删除运算操作方便,不必移动结点 模块内聚度越高,说明模块内各成分彼此结合的程度越 松散 紧密 无法判断 相同 内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。耦合(Coupling)是模块之间依赖程度的度量。内聚和耦合是密切相关的,与其它模块存在强耦合的模块通常意味着弱内聚,而强内聚的模块通常意味着与其它模块之间存在弱耦合。模块设计追求强内聚,弱耦合。 与引用类型有什么区别 存储保存数据的内存空间地址;值类型变量可以直接进行访问并按值传递,而引用类型 值类型变量通常容纳小容量数据,如int或bool类型;而引用类型通常引用大的对象 ADO.net/ADO(两者请选择其一)对象有哪些?分别描述一下。 其中,Connection对象主要负责连接数据库,Command对象主要负责生成并执行SQL语句, DataReader对象主要负责读取数据库中的数据,DataAdapter对象主要负责在Command对象执行完SQL语句后生成并填充 DataSet和DataTable,而DataSet对象主要负责存取和更新数据。 9. 如何理解委托? 委托是C#中新加入的一个类型,可以把它想作一个和Class类似的一种类型,和使用类相似,使用一个委托时,需要两个步骤,首先你要定义一个委托,就像是定义一个类一样;然后,你可以创建一个或多个该委托的实例。 当你需要把一个方法传送给其他方法时,可以考虑使用委托。 UDP连接和TCP连接的异同。 进程和线程分别怎么理解? 线程是进程的执行单元。当进程被初始化后,主线程就被创建了。对于绝大多数的应用程序

您可能关注的文档

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档