酷狗java2018秋招笔试题目,谢谢大家捧场

酷狗java笔试题分享给大家,愿所有的人都能有一个满意的offer~

单选题

1、在命中率极高的缓存设计中,时间复杂度最差的数据结构是( B )。
A. 数组
B. 链表
C. 树

D. 哈希表

2、某二叉树共有11个结点,其叶子结点只有2个。则该二叉树的深度最短可以是( B )(根结点在第1层)。
A. 4
B. 6
C. 8
D.10

3、html是上下文相关文法,以下代码片段有利于说明这个事情的是( D )。
A. <p>认为A对的call A</p>
B. <b>选B,666</b>
C. <strike>选C,没毛病</strike>
D. <h1>选D,抱拳啦</h>

4、所有12个节点的平衡二叉树(AVL树)中,最大高度差为( B )。 
A. 0
B. 1
C. 2
D. 3

5、下列哪种进程调度算法将会优先把CPU执行权交给最早请求执行的进程?( A )
A. First-in,First-out队列算法
B. Last-in,First-out队列算法
C. 最近耗时最少算法
D. 优先级队列算法

6、对于字符串“酷狗音乐”,以下哪个编码字节数最多?( D )
A. GB2312
B. GBK
C. UTF-8
D. UTF-16

7、发现小概率发生通过域名被劫持,以下对解决此问题无帮助的是( A )。
A. 部署备用服务器
B. https
C. httpdns
D. ip直连

8、栈上存储的内容一定不包括( D )。
A. 局部变量
B. 返回地址
C. 上下文信息
D. 全局new出来内存

9、发生死锁时,可能存在几个线程阻塞?( D )
A. 2
B. 3
C. 4
D. 以上都是

10、以下对数据库索引的描述正确的是( A )。
A. 可以对多个字段建立索引
B. 某些情况下索引可以提高修改、删除记录的速度
C. 使用B-Tree结构实现的索引速度最快
D. 可以使用HASH结构来实现索引


多选题

1、下列协议中的( ABCD )能保证分布式事务的执行。
A. 二阶提交协议
B. 三阶提交协议
C. Paxos算法

D. Raft

2、设置了默认异常捕获的用户态进程,执行以下程序片段会发生上下文切换,一定会发生的有( AC )。
char p = null; p = ‘\0’;
A. 中断处理
B. 多事务处理
C. 用户态切换
D. IO切换

3、对于浏览器所有进程的用户态任意一块内存,可能存在的权限状态有( BCD )。
A. w
B. rw
C. rwx

4、下面关于DNS说法正确的有( ABCD  )。
A. DNS的作用是域名和IP地址的相互映射
B. DNS协议通常运行在UDP协议之上
C. DNS协议端口号为53
D. DNS的默认缓存时间为1小时

5、下面关于缓存的说法中,正确的有( ACD )。
A. 缓存经常用来减少磁盘读压力
B. 在大数据系统中,数据的写入量越大更新越频繁,缓存越有价值
C. 对应用做性能测试时有时需要避免缓存生效,以便支持冷启动场景
D. 硬盘也可以用来做缓存

编程题

小明去附近的水果店买橙子,水果商贩只提供整袋购买,有每袋6个和每袋8个的包装(包装不可拆分)。可是小明只想购买恰好n个橙子,并且尽量少的袋数方便携带。如果不能购买恰好n个橙子,小明将不会购买。请根据此实现一个程序,要求:
输入一个整数n,表示小明想要购买n(1≤n≤100)个橙子
输出一个整数表示最少需要购买的袋数,如果不能买恰好n个橙子则输出-1
例如,输入20,输出3。

#笔试题目##春招#
全部评论
第二题答案不对,应该是D,任意一颗二叉树中度为0的节点总比度为2的节点个数多1,这里叶子结点的数量为2,也即是度为零的节点数为2,那么度为2的节点数只有1个,其余的都是度为1的节点。
点赞 回复 分享
发布于 2018-05-12 15:31
求酷狗内推
点赞 回复 分享
发布于 2018-04-17 11:28
import java.util.Scanner; public class Test12 { public static void main(String[] args) { Scanner sc =new Scanner(System.in); int n = sc.nextInt(); int res,yushu,res6=0,m; while (n>0){ if (n%8==0){ res=n/8; System.out.println(res); return; } else { yushu = n % 8; res = n / 8; if(yushu % 6 == 0){ res6 =yushu/6; }else { while (yushu % 6 != 0){ m=n-(res-1)*8; yushu = m % 6; res=res-1; if(res<1){ System.out.println(-1); return ; } res6=m/6; } } System.out.println(res+res6); return; } } } }
点赞 回复 分享
发布于 2018-05-08 12:35
来不及了,马上交卷了,擦看见,真坑,说实话,我还怀疑这个答案呢,感觉有些题不对
点赞 回复 分享
发布于 2018-05-09 20:15
import java.util.Scanner; public class sdas { public static void main(String[] args) { System.out.print("请输入要买的橘子数:"); Scanner io=new Scanner(System.in); int w=io.nextInt(); if(w%2==0){ int p=w/6;//袋数为6的数量 int z=w%6;//袋数6个装完剩下的即  装8个的袋子 p=p-z;//装6个的袋子数 while(p>=4){ z=z+3; p=p-4; } System.out.println(p+z); } else{ System.out.println(-1); } } }
点赞 回复 分享
发布于 2018-05-13 20:12
吓了一跳,还以为酷狗春招结束了😅
点赞 回复 分享
发布于 2018-04-11 18:16
有编程题的详解吗
点赞 回复 分享
发布于 2018-05-08 10:54
点赞 回复 分享
发布于 2018-05-09 16:52
感谢分享,加精啦~
点赞 回复 分享
发布于 2018-05-09 16:52
第6题是不是应该选UTF-8,也就是选C ?
点赞 回复 分享
发布于 2018-05-09 18:15
对于第6题,知乎网友的回答。
点赞 回复 分享
发布于 2018-05-09 18:19
求多选题第一题的解答。
点赞 回复 分享
发布于 2018-05-09 18:39
多选题第三题的D不见了。
点赞 回复 分享
发布于 2018-05-09 18:44
今天晚上的考的还是同一套题啊
点赞 回复 分享
发布于 2018-05-09 19:49
不是不让传播吗?人家都写的保密,这样。。。
点赞 回复 分享
发布于 2018-05-09 20:01
这是官方的答案?
点赞 回复 分享
发布于 2018-05-09 20:04
mmp、、、
点赞 回复 分享
发布于 2018-05-09 20:09
public static void main(String[] args) {         Scanner scanner = new Scanner(System.in);         int n = scanner.nextInt();         int i = n % 8;         if (i == 1 || i == 3 || i == 5 || i == 7) {             System.out.print(-1);         } else {             int j = n / 8;             while ((n - j * 8) % 6 != 0) {                 j--;             }             System.out.print(j + (n - j * 8) / 6);         }     }
点赞 回复 分享
发布于 2018-05-09 20:11
//树 左节点-6 右节点-8 #include <cstdio> #include <iostream> using namespace std; int tree[1000]; void fun(int n, int v) {     tree[2 * n] = v - 6;     tree[2 * n + 1] = v - 8;     if (tree[2 * n] > 0) fun(2 * n, v - 6);     if (tree[2 * n + 1] > 0) fun(2 * n + 1, v - 8); } int depth(int n) {     int ans = 0;     while (n != 1) {         n = n / 2;         ans++;     }     return ans; } int main() {     int n;     scanf("%d", &n);     int ans = 100000;     for (int i = 0; i < 1000; i++) tree[i] = -1;     tree[1] = n;     fun(1, n);     for (int i = 0; i < 1000; i++) {         if (tree[i] == 0) {             int tmp = depth(i);             if (tmp < ans) ans = tmp;         }     }     if (ans == 100000) ans = -1;     printf("%d\n", ans);     return 0; }
点赞 回复 分享
发布于 2018-05-09 20:17
import java.util.Scanner; /**  *          小明去附近的水果店买橙子,水果商贩只提供整袋购买,有每袋6个和每袋8个的包装(包装不可拆分)。     可是小明只想购买恰好n个橙子,并且尽量少的袋数方便携带。如果不能购买恰好n个橙子,小明将不会购买。请根据此实现一个程序,要求:     输入一个整数n,表示小明想要购买n(1≤n≤100)个橙子     输出一个整数表示最少需要购买的袋数,如果不能买恰好n个橙子则输出-1     例如,输入20,输出3。  *  */ public class Test8 {     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         int n = in.nextInt();         System.out.println(fun(n));     }          public static int fun(int n){         int res8 = n / 8;         int yushu = n % 8;         if(yushu == 0){             return res8;         }else{             while(res8 >= 0){                 if(yushu % 6 == 0){                     return res8+(yushu/6);                 }                 res8--;                 yushu += 8;             }             return -1;         }     } }
点赞 回复 分享
发布于 2018-05-09 20:51

相关推荐

点赞 101 评论
分享
牛客网
牛客企业服务