酷狗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
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-05-09 20:15
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-04-17 11:28
好未来的20个选择,和酷狗一样,今天下午的😌
点赞 回复 分享
发布于 2020-09-05 15:15
或许可以把num = num >> 1注释掉 然后把EIGHT_BAG = 8改成4, 把SiX_BAG = 6改成3 还有一些判断我不知道是不是必须的,引用一句名言:I don't know why, but this works! public class BuySomeOrange {     private static final int EIGHT_BAG = 8;     private static final int SiX_BAG = 6;     //use to identify how many eight and six are we using     //1 for eight, 0 for six     private static StringBuilder strBuilder = new StringBuilder("");     public static void main(String[] args) {         System.out.println(packOrangeFOrE(14) + "\t" + strBuilder.toString());     }          public static int packOrangeFOrE(int num) {         int sixBag, eightBag;         if(num % 2 != 0 || num <= 0)             return -1; //        num = num >> 1;         //first we would like to use the bigger bag         if(num % EIGHT_BAG == 0) {             eightBag = num / EIGHT_BAG;             zeroOrOnes(eightBag, 0);             return eightBag;         }else if(num % SiX_BAG == 0) {             //we would like to use the bigger bag             int sixEvenDistribute = num % EIGHT_BAG;             if(sixEvenDistribute % SiX_BAG == 0) {                 eightBag = num / EIGHT_BAG;                 sixBag = (num % EIGHT_BAG) / SiX_BAG;                 zeroOrOnes(eightBag, sixBag);                 return eightBag + sixBag;             }             //if ends here we just use 6 bag             sixBag = num / SiX_BAG;             zeroOrOnes(0, sixBag);             return sixBag;         }else if(num % EIGHT_BAG % SiX_BAG == 0) {             eightBag = num / EIGHT_BAG;             sixBag = (num % EIGHT_BAG) / SiX_BAG;             zeroOrOnes(eightBag, sixBag);             return eightBag +sixBag;         }else {             return -1;         }              }          private static void zeroOrOnes(int eightNum, int sixNum) {         for(int i = 0; i < eightNum; i++)             strBuilder.append("1");         for(int i = 0; i < sixNum; i++)             strBuilder.append("0");     } }
点赞 回复 分享
发布于 2019-11-14 17:43
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; int dp[101]; void init() {     memset(dp, 0, sizeof(dp));     int i = 9;     dp[6] = 1;     dp[8] = 1;     while(i <= 100)     {         if(dp[i - 6] > 0 && dp[i - 8] > 0)         {             dp[i] = min(dp[i - 6] + 1, dp[i - 8] + 1);         }         else if(dp[i - 6] > 0 || dp[i - 8] > 0)         {             dp[i] = dp[i - 6] > 0 ? dp[i - 6] + 1 : dp[i - 8] + 1;         }         i++;     } } int main() {     init();     int n;     while(~scanf("%d", &n))     {         printf("%d\n", dp[n]);     }     return 0; }
点赞 回复 分享
发布于 2018-05-11 21:35
对吗,老哥,我多选题抄的你的答案啊
点赞 回复 分享
发布于 2018-05-10 10:44
暴力求解: import java.util.Scanner; public class Test2{     public static void main(String agrs[]){         Scanner sc=new Scanner(System.in);         int n=sc.nextInt();         sc.close();         int x8=n/8;         int x6=n/6;         boolean flag=false;         for(int i=x8;i>=0;i--){             for(int j=0;j<=x6;j++){                 if((i*8+j*6)==n){                     System.out.println(i+j);                     flag=true;                     break;                 }             }             if(flag){                 break;             }         }         if(!flag)             System.out.println(-1);     } }
点赞 回复 分享
发布于 2018-05-09 20:56
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
//树 左节点-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
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
mmp、、、
点赞 回复 分享
发布于 2018-05-09 20:09
这是官方的答案?
点赞 回复 分享
发布于 2018-05-09 20:04
不是不让传播吗?人家都写的保密,这样。。。
点赞 回复 分享
发布于 2018-05-09 20:01
今天晚上的考的还是同一套题啊
点赞 回复 分享
发布于 2018-05-09 19:49
多选题第三题的D不见了。
点赞 回复 分享
发布于 2018-05-09 18:44
求多选题第一题的解答。
点赞 回复 分享
发布于 2018-05-09 18:39
对于第6题,知乎网友的回答。
点赞 回复 分享
发布于 2018-05-09 18:19

相关推荐

昨天 18:32
门头沟学院 Java
野猪不是猪🐗:他跟你一个学校,你要是进来之后待遇比他好,他受得了?
点赞 评论 收藏
分享
02-20 16:18
中南大学 C++
念~楠:哥们哥们,我帮你改简历,把rank删了,省的面试问你成绩那么好为什么留本校,银牌改金牌,lee改成codeforce也可以说自己id是tourist,项目和实习经历丢给大模型帮你改的像一点,多少有点东西,写点自己技术栈,这样比较好。这样改完以后offer乱收
点赞 评论 收藏
分享
评论
点赞
101
分享

创作者周榜

更多
牛客网
牛客企业服务