TOP

苏州信描软件公司 笔试题(软件方面)-答案
2014-11-23 22:07:26 】 浏览:10260
Tags:苏州 软件公司 试题 软件 方面 答案

1. 对数组元素进行排序的思路是什么?你还知道哪些排序方法


答:起泡法


(1):从数组末端开始,不断比较相邻记录,不满足排序要求就交换,这样比较完一轮后,就会发现最小的元素已被推到数组的最左端R0的位置上,就好象一个气泡从湖底慢慢的冒上来,最后浮出水面。


(2):然后开始第二轮冒泡过程,由于R0已经是最小的记录了,所以第二轮只要对


Rn-1到 R1进行比较就可以了。第二次冒泡结束后,第二小的记录就被推到R1位置上了。如此类推,直到数组中所以记录都排好序为止。


除了冒泡算法,还有:插入排序、直接选择排序、快速排序、归并排序、堆排序、Shell排序 等。


2. 在编写程序之前,你是否是先画出程序的流程图了?谈谈流程图对你在编程时的帮助。试写出对一列数用选择排序法进行升序排序的程序流程图。


答:是的,流程图能形象的表示程序的流程,能给人清晰直观的感觉。流程图能把我建立清晰的程序结构,有利于程序编写时的参考。


程序流程图略.


3. 在c/c++中,谈谈对continue 与break 的区别。


答:continue是终止当前次的循环并转入下次循环的入口,break则是终止它所在的整个循环体,转到循环结构的下面指令进行执行。


4. 在处理动态链表时常常需要哪些函数?它们各自的功用是什么?可以用其它方式替代吗?


答:一般要用到:FindIndex(const int i),//查找单链表中第i个结点;


Insert(value,i),//插入数据内容为value的新结点,使之成为第i个结点;


RmoveAfter(In),//删除由参数In指定的结点的下一个结点;


New Type,//新申请一块由Type指定类型数据的内存空间。


这些函数可以由已知头结点的指针,通过编写代码来实现其功能。


5. 在数组的存储中,对于稀疏矩阵是怎么样存储的?常采用什么样的结构?


答:用数组存储稀疏矩阵时,一般使用三元组(i,j,V)来顺序存储稀疏矩阵,其中i表示该元素的行号,j表示该元素的列号,V表示该元素的值。


用三元组存储稀疏矩阵时进行矩阵的查找、添加、删除等运算时十分不方便,所以经常使用十字链表法来存储稀疏矩阵。


6. 编程时,内存的分配方式有哪几种?分别有什么特点?


答:一、从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量。
二、在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
三、从堆上分配,亦称动态内存分配。程序在运行的时候用malloc(C)或new(C++)申请任意多少的内存,程序员自己负责在何时用free(C)或delete(C++)释放内存。动态内存的生存期由我们决定,使用非常灵活,但问题也最多。


7. 请你谈谈指针除了在数组方面的优点外,还有什么其他的优点?也请你谈谈如何将指针与数组结合使用,以便最大限度地利用它们各自的长处。


答:指针是一种特别的变量,它所存放的是其他的变量的地址,就是说它所存的数据实际上的其他变量的地址而不是一般的数据。指针的特点就是动态性比较好,可以随时申请内存空间,对指针的操作也很灵活。 可以将数组的首地址申明成一个指针,这样对数组元素的操作就可以化为用指针进行操作,从集合了数组对元素读取的速度快,而删除或者添加的则又有指针的快捷。



苏州信描软件公司 笔试题(软件方面)-答案 https://www.cppentry.com/bencandy.php?fid=43&id=22012

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇腾讯 [ 笔试 一面 二面] 下一篇北京一家公司的Oracle面试题