1、动态链接库的优点?
答:共享、开发速度快,减少页面交换。拓展一下,静态链接库的优点:(1) 代码装载速度快,执行速度略比动态链接库快; (2)
只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地域等问题。
2.、n个数值选出最大m个数(3<m<n)的最小算法复杂度是
答:O(n)
3、由权值分别为1、12、13、4、8的叶子节点生成一颗哈夫曼树,它的带权路径长度为()
答:81。
4、阿里巴巴国际站的股票代码是1688,这个数字具有这样的特性,首先是个首位为1的4位数,其次恰巧有且仅有1个数字出现了两次。类似的数字还有:1861,1668等。这样的数字一共有()个。
答:分两种情况,重复数字是1和重复数字不是1.用排列组合的方法来计算比较快。
(1)若这个四位数的重复数字为1,那么首先从三个空位中选出一个给1,第二步从剩下9个可选数字中选出2个有序的排列到剩下的两个空位中去,那么有C(1,3)*A(2,9)=3*(9!/(9-2)!)=3*9*8=216种可能;
(2)若这个四位数的重复数字不为1,那么首先从9个可选数字中选出一个作为重复数字(C(1,9)),并放到三个空位中的两个(这两个数字相同,故只涉及组合)(C(2, 3)),然后从剩下8个数字中选出一个(它的位置在重复数字确定后就自然固定了,不可选)即可,故有C(1,9)*C(2, 3)*C(1, 8)=216种可能。
总共:216+216=432
5、工程师M发明了一种游戏:M将一个小球随机放入完全相同的三个盒子中的某一个,玩家选中装有球的盒子即获胜;开始时M会让玩家选择一个盒子(选择任何一个获胜概率均为1/3);玩家做出选择后,M会打开没有被选择的两个盒子中的一个空盒,此时M会询问玩家是否更改选择(可以坚持第一次选择,也可以选择另一个没有打开的盒子),下列叙述正确的有()。
6、以下哪种方式,在读取磁盘上多个顺序数据块时的效率最高?
答:通道方式>DMA方式>中断控制方式>程序直接访问方式(循环检测IO方式)
7、下列不是进程间的通信方式的是()
答:回调(这属于一种编程机制)8、已知IBM的PowerPC是big-endian字节序列而Intel的X86是little-endian字节序,如果在地址啊存储的整形值时0x04030201,那么地址为a+3的字节内存储的值在PowerPC和Intel X86结构下的值分别是?
答:1 4
9、在TCP/IP建立连接过程中,客户端或服务器的状态转移说法错误的是?
答:TIME_WAIT是断开连接时的状态(属于第四次握手)
10、已知一棵二叉树的先序和中序遍历序列如下:先序:A、B、C、D、E、F、G、H、I,J中序:C、B、A、E、F、D、I、H、J、G其后序遍历序列为:
答:C、B、F、E、I、J、H、G、D、A
先序,中序,后序,这里面的先中后,都是根的位置。
11、设有四个元素A、B、C、D顺序进栈,在进栈过程中可以出栈,出栈次序错误的排列是
答:DCAB,没什么难度,这道题
12、
#pragma pack(2) class BU { int number; union UBffer { char buffer[13]; int number; }ubuf; void foo(){} typedef char*(*f)(void*); enum{hdd,ssd,blueray}disk; }bu;
sizeof(bu)的值是()
答:4+14 +0 +0 +4 =
22;union的大小取决于它所有的成员中,占用空间最大的一个成员的大小,并且需要内存对齐,这里因为#pragma pack(2),所以union的大小为14,如果不写#pragma pack(2),那么union大小为16【因为与sizeof(int)=4对齐】;此外,这里还有一个坑人的地方,enum这里有变量,就是disk,这里比较坑人,申明和定义写在一起,很容易吧disk看成是enum的命名。
13、同一个进程中的线程不共享的部分是()
答:栈空间;
14、下面关于系统调用的描述中
答:调用程序是运行在用户态,而被调用的程序是运行在系统态。
15、在动态分区分配方案中,系统回收主存,合并空闲空间时需修改空闲区表,以下哪种情况空闲区会减1?
答:有上邻空闲区,也有下邻空闲区
17、刚毕业的小王上班有两路公交车都可以从家到公司.如果只等A车,平均需要5分钟才等到;如果只等B车,平均需要7分钟才能等到.假定两辆车运行时间独立,那么小王平均需要等多长时间才能等到A车或B车?
答:2分55秒。在时间t内,A车t/5趟,
B车t/7趟,所以在t内等到车共计t/5+t/7趟,等到一趟的时间则为t/(t/5+t/7),等价35/12,
18、一个黑色袋子中装有5个红球,5个蓝球,5个黄球,从中抽取三次,每次抽一个球,取完不放回,则每种颜色球各得一个的概率是()
答:25/91。
最开始是0个球,第一次不管怎么选都会选一个和以前不同颜色的球,所以第一次选择颜色不同的球概率为1;
第一次选择之后,还剩14个球,其中 被第一次选走的那个颜色只有4个,剩下的两种颜色的球个数不变,都为5,
然后选一个与第一次颜色不同的球的概率是:10/14, 这是第二次选择
第二次选择之后,还剩13个球,其中被第一次和第二次选中的球,各有4个,剩下的没选到颜色的球还是5个,这次选中
还没选到的这个颜色的球的概率是:5/13
所以选择三个不同颜色总的概率为:1*(10/14)*(5/13) = 25/91.
19、
#include<iostream> #include<stdio.h> using namespace std; int main() { int* pint = 0; pint += 6; cout << pint << endl; printf("%d\n", pint); return 0; }
以上程序的运行结果是:24
不懂的可以加我的QQ群:261035036(IT程序员面试宝典 群) 欢迎你的到来哦,看了博文给点脚印呗,谢谢啦~~