软件工程师面试题(c ,c++)
1、智能指针,com实现的原理,
2、printf()可变参数如何实现
3、标准模板库vector追加数据如何实现。是底层如何实现,不能用现有的东东。
4、还有,java的垃圾收集机制如何实现为什么?如果是你自己实现垃圾收集机制,如何实现? 用什么数据结构。转摘请注明:www.pghome.net
5、二叉排序树和哈希表那个查找效率高,实用于pda 。
6、.net的底层实现机制。
7、进程间通信如何实现。
8、还有迭代问题,什么问题用迭代,迭代在操作系统中如何实现的 。
9、如何交换两个变量,不能用中间变量。
10、c与c++ static函数的区别???
11、const 函数的作用,如何实现钩子函数。
12、两层容错技术怎么实现?
13、写出函数指针,函数返回指针,const指针,指向const的指针,指向const的const指针
。
14、函数调用如何实现,注意什么问题。
15、指针和引用的差别,
16、拷贝构造函数如何实现,什么情况下会用到。
java软件工程师面试题
数据结构与算法
1.选择正确的说法
A 栈是先进先出的
B 二维数组是元素是线性表的线性表
C 二叉树的k层有2k-1个节点,i层二叉树有2i-1个节点
2.线性表中要删除p指向节点的下一个节点,做的操作是
A p->next = p->next->next
B p = p->next
C p = p->next->next
D p->next = p
3.关于队列的说法正确的是
A 队列是先进先出的
B 队列是后进先出的
C 只能做插入操作
D 只能做删除操作
4.元素1,2,3,4,5是按栈存储,下面不可能的出栈顺序是
A 2,1,3,4,5
B 2,1,5,3,4
C 3,2,5,4,1
D 4,3,2,1,5
5.数组a[m]顺序查找第n个元素的时间复杂度是__,打印出数组a[m][n]的时间复杂度是__。
6.数组a[m][n]是行优先存储,每个元素需要k个存储单元,元素a[0][0]的存储地址是b,a[j]的存储地址是__。
7.一组元素17,18,7,35,40,65,50,76,85,给出冒泡排序每一趟的结果