2012宇龙通信天津招聘笔试题

一、填空1、float X与零值比较的if语句?

2、**a[3][4]的所占内存的大小?

3、第三代通信网络无线传输的三个标准?

4、x=1;y=3 if(x==3||y )后y的值?(记不太清了)

二、选择选择题不定项

这个没记住

三、查错题是一个关于malloc和strcay的问题

四、简答1、TCP和UDP的区别

2、数组与链表的区别

1.  基于空间的考虑        
数组的存储空间是静态,连续分布的,估计过大造成空间浪费,估计太小又将使空间溢出机会增多。而链表的存储空间是动态分布的,只要内存空间尚有空闲,就不会产生溢出; 链表中每个节点除了数据域外,还有指针域,存储密度小于1(数组为1),存储空间利用率就越高。

2. 基于时间的考虑

数组中任意节点都可以在O(1)内直接存储访问,而链表中的节点,需从头指针顺着链表扫描才能取得;在链表任何位置进行插入和删除,都只需要修改指针,而在数组中插入删除节点,平均要移动一半的节点.

C++语言中可以用数组处理一组数据类型相同的数据,但不允许动态定义数组的大小,即在使用数组之前必须确定数组的大小。而在实际应用中,用户使用数组之前有时无法准确确定数组的大小,只能将数组定义成足够大小,这样数组中有些空间可能不被使用,从而造成内存空间的浪费。      

链表是一种常见的数据组织形式,它采用动态分配内存的形式实现。需要时可以用new分配内存空间,不需要时用delete将已分配的空间释放,不会造成内存空间的浪费。     

A 从逻辑结构来看     

A-1. 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费。     

A-2. 链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项。(数组中插入、删除数据项时,需要移动其它数据项)        

B 从内存存储来看     

B-1. (静态)数组从栈中分配空间,对于程序员方便快速,但是自由度小     

B-2. 链表从堆中分配空间,自由度大但是申请管理比较麻烦.  

数组中的数据在内存中的按顺序存储的,而链表是随机存储的!  

要访问数组中的元素可以按下标索引来访问,速度比较快,如果对他进行插入操作的话,就得移动很多元素,所以对数组进行插入操作效率很低!

由于链表是随机存储的,链表在插入,删除操作上有很高的效率(相对数组),如果要访问链表中的某个元素的话,那就得从链表的头逐个遍历,直到找到所需要的元素为止,所以链表的随机访问的效率就比数组要低        

数组在内存中开辟连续的一块区域,如果一个数据要两个内存单元,一组5个数据10个单元就够了,无需标记其地址,因为数组定义时候标顶了第一个原许的地址,其他四个都知道了。  链表可可以是连续的,也可以是不连续的,但一般都是不连续的,尽管在内存中是连续的,我们也不把他当作是连续的,而是把他当作是不连续的,因为如果把他当作是连续的,不如当作是数组了,在某些情况下。一链5个数据,如果每个数据本身用2个内存单元,那么10个单元是不够的,因为每个数据都要表示出下个数据在哪里,所以一个数据本身用2个单元,再用1个单元表示此链下一个数据在什么地址。  各有用处。

五程序设计

1、删除一个单项链表的最中间的元素,要求时间尽可能短(不能使用两次循环)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值