2012年10月9号阿里巴巴笔试(c++)

来源:互联网 发布:沈阳云易惠网络 编辑:程序博客网 时间:2024/06/11 07:21

http://blog.csdn.net/liuzhanchen1987/article/details/8058177#comments

2012年10月9号阿里巴巴笔试(c++)

1.BMP格式图像,图像深度为24位,一个512*1024的点阵图像所占空间是多少?

[html] view plaincopy
  1. 答:(24/8)B*512*1024=1.5M  


2.十进制数字-3转换为3进制的补码结果是多少?

[cpp] view plaincopy
  1. 答:-3可以表示为:符号位负号可表示为1,   3为十进制,可以表示为13,转换成三进制为110(符号位不变,3转变为10),补码的计算是源码的反码加1,110的反码为112(最高位为符号位不变,10反码为12(因为三进制中1的反码为1,2的反码为0,0 的反码为2)),反码加1后就是120  


 

3.两个进程同时执行以下一段代码,其中不可能的结果是:

[html] view plaincopy
  1. 代码如下:  
  2. A=5;  
  3. A=A+1 ;  
  4. printf("%d",A);  


 

A 5,6  B 6,5     C 6,7  D  7,6

答:B,D,选项记不太清楚了,答案也是不太确定,望大牛指点。

4.pid_t pid=fork();

if(pid<0)

cout<<-1<<endl;

else if(pid==0)

cout<<0<<endl;

else

cout<<1<<endl;

不可能的答案是:

A  0   B 1  C 1,0 D 0,1

[cpp] view plaincopy
  1. 答案待定。C,D应该是可能的。  


 

5 忘了

6.   6双不同的袜子,取四只,恰有一双袜子的情况有几种?

[cpp] view plaincopy
  1. 答: 6*(C(10,2)-5)=240. 其中C(10,2)是从10只袜子选2只的种类。  


 

7. 32位及其能否处理超过4G的内存?

[cpp] view plaincopy
  1. 不能,因为32为编制最大是4G,即便是所有的内存都存放地址,而不存放数据,也只能放4G的内存。  


 

8.树有时候比哈希快?

不太清楚

9.简述一下LRU算法

[cpp] view plaincopy
  1. 什么是LRU算法? LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的。   关于操作系统的内存管理,如何节省利用容量不大的内存为最多的进程提供资源,一直是研究的重要方向。而内存的虚拟存储管理,是现在最通用,最成功的方式—— 在内存有限的情况下,扩展一部分外存作为虚拟内存,真正的内存只存储当前运行时所用得到信息。这无疑极大地扩充了内存的功能,极大地提高了计算机的并发度。虚拟页式存储管理,则是将进程所需空间划分为多个页面,内存中只存放当前所需页面,其余页面放入外存的管理方式。   然而,有利就有弊,虚拟页式存储管理减少了进程所需的内存空间,却也带来了运行时间变长这一缺点:进程运行过程中,不可避免地要把在外存中存放的一些信息和内存中已有的进行交换,由于外存的低速,这一步骤所花费的时间不可忽略。因而,采取尽量好的算法以减少读取外存的次数,也是相当有意义的事情。   对于虚拟页式存储,内外存信息的替换是以页面为单位进行的——当需要一个放在外存的页面时,把它调入内存,同时为了保持原有空间的大小,还要把一个内存中页面调出至外存。自然,这种调动越少,进程执行的效率也就越高。那么,把哪个页面调出去可以达到调动尽量少的目的?我们需要一个算法。   自然,达到这样一种情形的算法是最理想的了——每次调换出的页面是所有内存页面中最迟将被使用的——这可以最大限度的推迟页面调换,这种算法,被称为理想页面置换算法。可惜的是,这种算法是无法实现的。编辑本段差距  为了尽量减少与理想算法的差距,产生了各种精妙的算法,最近最少使用页面置换算法便是其中一个。LRU算法的提出,是基于这样一个事实:在前面几条指令中使用频繁的页面很可能在后面的几条指令中频繁使用。反过来说,已经很久没有使用的页面很可能在未来较长的一段时间内不会被用到。这个,就是著名的局部性原理 ——比内存速度还要快的cache,也是基于同样的原理运行的。因此,我们只需要在每次调换时,找到最近最少使用的那个页面调出内存。这就是LRU算法的全部内容。   


 

10.有甲,乙两个箱子,甲箱子中方了800个红球,200个蓝球,乙中放了200个红球,800个蓝球(后面的忘了,想起来了再写)

 

11.n个无序整数,已知第i个数在排好序的序列中的位置为j,满足|i-j|<=K,请设计一种排序算法,对该序列进行排序。注:算法时间复杂度为O(nlgn)的得0分,复杂度为O(nk)

的得两分,总分是20分。

[cpp] view plaincopy
  1. 答:由以上条件判断最小的数字一定在前k个中,于是可以讲前k个数建立一个最小堆,然后把根元素取出,该根元素就是最小数,然后将第k+1个数放入堆中,因为第二小的数字肯定在下标为1到k+1的位置范围内,所以调整最小堆之后,根元素就是第二小元素,取出该元素,将第k+2个元素放入堆中,。。。。。。以此类推,按照元素从堆中取出的顺序就是已经排好序的序列。该算法时间复杂度为O(nlgk),确切的说是(n-k)lgk,  


 

12.有一个字符串排列 a,b,c,d,aa,ba,ca,da,ab,bb,cb,db,ac,bc,cc,dc,ad,bd,cd,dd..........

编程实现:1.ababab是第几个字符串?

2,第78个字符串是什么?

3.第n个字符串是什么?

[cpp] view plaincopy
  1. 初看起来比较抽象,但是我们如果把每一个字符串前后颠倒,问题就明朗多了,加入我们做如下映射:a---1, b---2,c---3,d---4,那么以上的每一个字符串前后颠倒后再做一下数字映射就变成了:1,2,3,4,11,12,13,14,21,22,23,24,..........是不是很熟悉了,很像四进制编码吧!只是把0换成了4,如果求某一字符串的位置




0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 孩子在学校被同学撞鼻骨折怎么办 孩子在学校无意致使同学受伤怎么办 9个月的宝宝吃坏东西腹泻怎么办 8个月发烧到38度怎么办 1岁半宝宝鼻塞发烧38度6怎么办 八个月的宝宝发热38度怎么办 八个月宝宝发热在38度怎么办 8个月孩子发烧38度怎么办 6个月孩子发烧38度多怎么办 7个月孩子发烧38度怎么办 小明上课总是东张西望你该怎么办 初中二年级贪玩游戏说不听怎么办 孩子上课经常和别的同学说话怎么办 小孩五年级了上课坐不住怎么办 孩子老是纠结小事抓不住重点怎么办 没文化不懂教不了孩孑怎么办 孩孑学习不好老师不让上课怎么办 5个月婴儿睡得少怎么办 教育案例——幼儿爱打小报告怎么办 上班的时候同事老是爱插话怎么办 孕晚期右侧卧睡觉宝宝好动怎么办 乐扣玻璃碗盖子长霉怎么办 乐扣保鲜盒密封圈有异味怎么办 8个月的宝宝不吃饭怎么办 宝宝十一个月了不爱吃饭怎么办 一岁八个月宝宝不爱吃饭怎么办 14个月的宝宝不爱吃饭怎么办 宝宝一岁多又黑又瘦又小该怎么办? 15个月宝宝偏瘦该怎么办 早期肺癌手术后身体瘦该怎么办 4个月婴儿的眼里有触摸糊怎么办 七个月宝宝断奶不喝奶粉怎么办 2个月的宝宝抓头怎么办 4岁宝宝吃东西一点都不认真怎么办 猫吐了白色黏液或泡沫怎么办 六个月的宝宝拉肚子老不好怎么办 小狗狗呕吐后拉肚子带血怎么办 八个月宝宝拉肚子拉出点血怎么办 在饿了么点外卖吃出虫子怎么办 1岁半宝宝拉肚子拉水怎么办 五个多月宝宝拉鼻涕便怎么办