笔试的一些题目及解答

1、请选择正确的描述。(   )

A.  静态变量和全局变量是在程序一开始时分配内存的,这部分内存无法回收,直至程序结束

B.  通常常来说,在堆上分配内存比在栈上分配内存效率更高

C.  当我预先知道待分配内存大小时,我就可以直接在栈上分配内存,只要不超过当前操作系统的可用内存大小,就永远会成功

D.  内存泄漏就是指当A程序申请一块内存时,有可能操作系统把B程序的一块内存先交给A程序使用,等A程序结束后再返回给B程序,在内存借用的这段时间内,B程序就产生了内存泄漏

参考答案:A

解析:

栈上分配内存效率更高;栈上申请内存并不总是成功;内存泄漏是使用完成之后未回收又无法使用的区域。

2、关于浮点数,下面的描述不正确的是(   )。

A.  总能找到一个32bit整数(32 bit int),来描述一个IEEE754 32bit浮点数的整数部分

B.  总能找到一个IEEE754 64bit浮点数,来描述一个32bit整数(32 bit int)

C.  表达式(0.666f - 0.665f == 0.001f),无论在任何平台,一定返回True

D.  当两个不同的平台都使用IEEE754作为浮点数标准时,他们的浮点运算结果就会严格一致

参考答案:C

解析:

 相同位时,浮点数的表示范围大于整数,但是由于精度相对于整数较低,依浮点数的尾数位数而定。

在不同平台浮点数标准不同,自然可能存在精度的不同,如果精度过低,可能不同

3、有如下一个类似跳表的额数据结构:

每层都是已经排好序的链表,

level  1层的链表有所有元素,

level  N层的链表只有levelN-1的1半的元素,

level  N层的结点指向levelN-1层中相同的结点。

请问查找一个元素的时间复杂度是(  )。

A.  O(nlog2n)

B.  O(n)

C.  O(log2n)

D.  O(n2)

参考答案:C

解析:

二分查找时间复杂度计算:

总共有n个元素,

渐渐跟下去就是n,n/2,n/4,....n/2^k,其中k就是循环的次数

由于你n/2^k取整后>=1

即令n/2^k=1

可得k=log2n,(是以2为底,n的对数)

所以时间复杂度可以表示O()=O(logn)

4、假设QQ用户包含8种状态,QQ号码为42亿,最少用多少内存标识所有用户状态?(   )

A.  约500M

B.  约1G

C.  约1.5G

D.  约2G

参考答案:C

一个内存0/1能表示两种状态

42*10^8*4=168*10^8=16.8*10^9=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值