最近报了不少软件开发、嵌入式软件开发。笔试面试不少,记录一下遇到的不会的题。
face++
1.实现一个最小堆定时器
2.最长没有重复字符的子串
3.实现让一个线程一定在另一个线程之后执行
4.arm针对浮点数运算的优化
5.进程使用虚拟地址的原因
银联
1.纯虚函数是什么?
2.预编译的作用是什么?
3.堆栈溢出是什么?
4.什么函数不能是虚函数?
阿里
一面:
1.嵌入式开发使用malloc带来的问题,什么时候会内存泄漏
2.如果自己实现动态内存分配,怎么去做,怎样手动维护内存池,怎样实现分配和清除内存的内存管理模块,内存块的大小分配,块的分配是否等大
先预先分配一部分小的块,再分配一部分中等的块,再分配一部分较大的块,这样可以解决内存碎片的问题吗?
3.C语言中如何解决循环引用头文件的问题
4.C语言对指针的理解,用它的好处和坏处,指针对传参的好处,如果要将一个特别大的结构体传入函数怎样避免溢出的问题
5.空指针void*任意指针的理解,带来的问题(类型丢掉怎么办)
6.加快链表的查找或遍历速度有什么办法
回答哈希表对应多个链表。问多个链表怎么构造?(跳表)
7.往哈希map里传字符串怎么设计索引?设计索引会遇到的问题,解决冲突的方法。对巨大规模的hashmap怎么设计
8.打开一个网页的时候的过程
二面:
网易笔试不会的题:前缀树