前言:笔试题集第二弹,是至2016年12月为止的经历收集的本人觉得可以一看的面试、笔试题目,由于时间关系,先放出,答案来不及找,小部分题目有答案,望各位读者朋友见谅。
滴滴出行2017笔试:
1. 9级楼梯, 每次可以走一步或两步,问:一共会有多少种方式下楼?
答:55种
2. Linux软链接和硬链接
3. C、C++:关于const char *p
,p的值可不可以改?
4. 虚函数是在运行时绑定么?inline
是什么?
5. 概率论公式
6. 100个选手进行7局4胜的乒乓比赛,多出一个选手时(总选手数为奇数时),则抽签选中一个选手直接晋级。问:至少多少局,才决出冠军?【提示:答案在100左右】
7. 12个白球和1个黑球,围成一圈,然后开始每数到第13个位置的球,就拿出来,问:从哪个位置开始数,最后才会抽到这个黑球?
8. 问答题:从输入网站网址,到页面呈现在我们面前,这个过程都发生了什么?【网络知识】
解析:客户端输入Http地址 -> 首先,判断本地DNS客户端缓存中是否含有此域名,如果有,那么,直接可以拿到这个这个域名对应的IP地址,并开始连接服务器 -> 否则,在本地HOSTS文件中查找对应网址的IP地址 -> 再找不到的话,最终会去请求根DNS服务器去解析域名(由全球仅有13台的DNS服务器备机去解析DNS根域,按照域名、地区、作用去委派不同的DNS顶级域名服务器如.com、.cn等),最终判断是.com
子域名,委派给baidu DNS 服务器解析域名,从而得到IP -> 三次握手的TCP/IP连接的建立(通过Socket)。详细的连接过程,参考三次握手和四次挥手
金山WPS2017Android岗笔试:
1. final 修饰的类、方法、对象分别有什么特点?
2. 关于Intent隐式匹配的问题?
相关:<category android:name="">
3. 编程题:多项式相加
输入:1+x+2x^2
和 2+3x+4x^3
输出:3+4x+2x^2+4x^3
4. 什么情况下, 后台Activity会被回收?回收前的后台Activity是什么状态?怎么在被回收之前保存数据?
5. 所有排序算法和他们的利弊
6. 以下java代码:
String s1 = "windows";
String s2 = "win"+ new String("dows");
System.out.println(s1 == s2);
结果输出什么?
原因是什么?
金蝶2017Android岗笔试:
1. 中断事件是硬件发生的还是软件发生?
2. 进程和作业是否一一对应?进程和程序呢?
答:
- 程序和进程之间是:一对一或者一对多(一个程序可以有一个或多个进程)
- 进程与作业之间的关系:
3. 线程与进程的区别、各自的内存分布、资源共享情况等?
4. C宏定义:
#define PR printf
#define NL "n"
#define D "%d"
#define DL DNL
///执行以下语句:
PR(DL);
此时:执行的PR(DL);
结果会是什么?
5. 第一个体现结构化编程思想的程序设计语言:
答:Pascal语言。
查看编程语言历史,可以知道:
时间 | 编程语言 | 特点 |
---|---|---|
1957-1959 | FORTRAN , LISP , COBOL | |
1970 | pascal | |
1972 | C | |
1983 | C++ | |
1983 | Objective-C | |
1987 | Perl | |
1991 | Python | |
1993 | Ruby | |
1995 | Java | |
1995 | PHP | |
1995 | JavaScript |
6. C 语言: char a[12] = {'s', 't', 'r', 'i', 'n', 'g'}; printf("%ld\n",strlen(a));
,输出是什么?
答: 6
解析:
- 数组a在定义时就被给予连续的12的字节的存储空间,当被“string”赋值之后,a的整个内容是:
's','t','r','i','n','g','\0','\0','\0','\0','\0','\0'
- 虽然a拥有连续的12个byte的空间,但是,题目要的是
strlen(a)
,即计算内容中字符串总长度,所以,结果是6。 - strlen和sizeof对比:
```
#include <stdio.h>
#include <string.h>
int main(int argc , const char *argv[]){
char a[12] = {'s','t','r','i','n','g'};
char *p =a;
printf("%ld\n", sizeof(a)); //输出:12
printf("%ld\n", sizeof(p)); //输出:8
printf("%ld\n", strlen(a)); //输出:6
printf("%ld\n", strlen(p)); //输出:6
}
```
原因: char *p, 本身p保存的是数组a的首地址,这个首地址是int类型,大小为2byte,所以,sizeof(p)大小为8.
8. DNS和SSH,哪个即是TCP数据包又是UDP数据包?
- DNS
网易模拟笔试题2017
1. 数据库:应采用检查约束来实现的功能。
答:详细可看检查约束check。
2. N个节点的二叉树结构,最小深度是?
答:拥有N个结点的完全二叉树的深度是:(logN) +1
3. 森林对应的二叉树为B,B有m个结点,B的根节点为p,如果p的右子树结点个数为n,那么,森林中的第一棵树的结点个数是?
答:m-n。
解析:根据二叉树与森林的对应关系,将森林F转换成对应二叉树B的规则如下:1、若森林F为空,则二叉树B为空。2、若森林F非空,则F中的第一棵树的根为二叉树B的根;第一棵树的左子树所构成的森林按规则转换成一个二叉树成为B的左子树,森林F的其他树所构成的森林按本规则转换成一个二叉树成为B的右子树。依此规则可知:二叉树B结点的个数减去其右子树的结点的个数就是森林F的第1棵树的结点的个数。
4. 虚存管理和实存管理的主要区别是?
答:虚存分逻辑地址和物理地址,实存不分。
5. OS的不确定性是指?
6. 假设在x86平台上,有一个int型变量,内存中的内部从低到高分别是:0x12、0x34、0x56、0x78,那么,通过网络发送该数据实,正确的发送顺序是?
7. OS中,把逻辑地址转换为内存的物理地址的过程称为:重定位
8. 适合并行处理的排序算法是?快排?
9. 在动态分区分配方案中,系统回收主存,合并空闲空间是需要修改空闲区表。哪种情况下空闲区减 1 ?
10. 多道批处理系统最重要的是什么?运行效率?
11. 关于进程。。。。。
12. 在可变分区存储管理中的拼接技术可以:加速地址转换?增加主存容量?集中空闲区?缩短访问周期?
网易2017Android岗笔试
1. /etc/fstab
文件描述?
2. 内存和交换分区的大小关系?
3. 12台设备,K个进程竞争这些设备,每个进程需要4台设备, 请问,K醉小为多少时,就造成死锁?
4. 数据库DDL语句有哪些?
5. 关于Java JVM内存。方法区装的是什么等问题。
6. 编程题:平方串问题。比如输入:aaabccabccCC,输出3【因为有三个平方串,分别为:aa,abccabcc,CC】?
深圳青葡萄Android岗笔试
1. NAT、DHCP、DNS这三个协议各自的作用?
2. 关于String变量作为形参传入方法中被修改值与否的判断?
String s= "A";
public void change(String s){
s = "B";
}
那么, 执行完上面的change方法后,s变量的值为?
答案:“A”
广州华资软件Java岗面试
1. Fragment 之间的数据传递有哪些方式?
2. Fragment有没有异常退出时的数据暂存处理呢?如果异常时,Fragment怎么恢复回来?
3. 推送相关知识点
YY2017Android岗笔试
1. JVM和Java应用都会缓存final变量?
2. 关于内存回收的说明?(牛客)
3. 堆的形状:完全二叉树?(牛客)
4. SQLite关于query()是哪个对象的方法:ContentProvider、Cursor、ContentResolver、SQLiteHelper?
5. Service的生命周期方法正在调用,此时,进程需要到前台吗?
6. ImageView的adjustViewBounds
和tint
属性是干嘛的?
7. 一个数组(无序),找出两个下标相对最小的元素,他们的和等于指定的某个值。
8. 一个有序数组,找出输入的指定值所在数组的位置范围。
东方海外 软件工程师现场笔试题难度
1. Cache的设计思想:在合理成本下提高命中率。
2. 影响Cache命中率的因素:
答: Cache容量、Cache块大小、Cache中与主存映射方式、Cache置换算法。
3. 以下说法是错误的:在容量确定的情况下,替换算法的时间复杂度是影响Cache命中率的关键因素。
解析:
Cache(高速缓冲器)容量小于主存,但速度快于主存,慢于CPU,相当于CPU和主存间的一个缓冲器,Cache中存放最近使用过的内存内容(基于最近使用过的内容很可能被再次使用的原理)。若CPU寻访的内容在Cache中存放,则优先从Cache中读取,称为命中,否则称为脱靶,脱靶只能从主存中读取内容了。当Cache存储满的时候,用替换算法清理掉不用的内容,保留下最新或最常使用的内容,称为替换。Cache设计目标是提高命中率。替换算法确实是影响Cache命中率,但还有Cache容量、存储单元大小、组数多少、地址比较方法、写操作方法等都会影响Cache命中率。
4. 以下哪层协议是位于网络层?
- HTTPS:应用层。超文本传输协议
- SSL:会话层。SSL 是 Secure socket layer(安全套接层)的缩写。用于网络数据加密传输以及服务器身份验证SSL置身于网络结构体系的传输层和应用层之间
- ICMP : 网络层。Internet 控制报文协议
- SNMP:应用层。简单网络管理协议
详细可参考这里:计算机网络各层协议
5. 哪种设计模式将抽象部分和他的实现分离?
答案:Bridge【桥接模式】
- Singleton:单例模式,没有体现抽象的概念
- Bridge:桥接模式,优点是将抽象部分和实现部分分离,两者都可以独立进行变化。
- Composite:组合模式,本质是:一个类中,可以有一个本类的数组引用,例如:文件和文件夹都属于文件,区别是文件夹可以包含多个文件。
- Facade:外观模式,精髓是封装,通过高层次结构的一个统一API,是的用户静静通过这些API,就可以基础操控整个系统。确实,也没有注重抽象与实现分离。
6. 哪个RAID技术无法提高可靠性?
答案:RAID0
解析:关于RAID技术,可参考这里:RAID磁盘阵列
7. a边长为n的正方形可以分成多个边长为1的正方形,如边长为2的正方形有2×2个边长为1的正方形和1个边长为2的正方形;问边长为5的正方形有几个正方形。
答案: 55
解析: 找规律,发现,是一条公式:F(n) = 1*1 + 2*2 + …… + n*n
8. 异常处理中,释放资源、关闭数据库、关闭文件应由()语句来完成?
答案:finally
9. 编程题:给定一个数组和一个整数值,找出相加等于这个整数值的两个数组元素,并输出最小的两个下标?
10. 编程题:快速求出一棵二叉树的所有元素之和。
网易有道2017在线笔试
1. C 语言中,int a = 1;
,那么 &a
代表什么?
2. 5元6张,10元5张,20元4张,任取4张,,每张各取到一张的概率为?
3. 对于下列函数fun(int n, int m)
的逻辑如下,那么, fun(4,5)
的结果是?
int fun(int n ,int m){
if(n==0) return m;
if(m==0) return n;
return fun(n-1,m) + fun(n,m-1);
}
4. 下列关于JVM和操作系统内核的问题:
- 进程调度由JVM负责?
- 缺页处理是内核负责?
- 字节码编译到机器码由内核负责?
- gc由JVM负责?