点击“蓝字”关注我吧

全文字数:   1703

阅读时间:   大约6 分钟

刘小牛是一名Java程序员,由于天天996平常也不注意锻炼身体,一不小心就进入了ICU,最终抢救无效,告别了人间。死后的刘小牛,被告知需要进入天堂或者地狱,进入天堂需要有一技之长,刘小牛当然想进入天堂了,他思来想去自己也只会敲代码了,所以他来到了天堂的大门前,准备应聘Java程序员,玉帝和王母最疼爱的女儿丝音接待了他,丝音对他说,想要应聘我们天堂的程序员可不简单,我需要问你几个问题,答对了我们才会录用你,让你进入天堂工作,否则你还是去地狱吧,刘小牛说没问题,我这么多年程序员也不是白干的,这点我还是有信心的。下面是他和丝音的对话。

丝音

玉帝和王母最疼爱的女儿

你知道一个byte 几个bit位吗?

刘小牛

刘老儿家的二儿子

这个问题太简单了,一个Byte是8bit。

丝音

玉帝和王母最疼爱的女儿

常用UNIX 命令有哪些(Linux 的常用命令)(至少10 个)?

刘小牛

刘老儿家的二儿子

unix常用命令有:

ls  显示指定目录下的文件目录清单相当于dos下的dir命令。

pwd 显示当前目录。

mkdir  在当前目录下创建目录。

rm 删除文件或目录。

cp 复制文件。

mv 移动文件。

cd 切换工作目录。

ps 查看进程。

ftp 传送文件。

telnet 远程登录命令。

ping 用来测试本机与目标主机是否联通。

env  查看当前系统中的环境变量。

more 分屏显示指定文件的内容。

echo在终端上显示你要显示的内容,向C语言中的printf函数。

丝音

玉帝和王母最疼爱的女儿

嗯嗯不错,下一个问题,后序遍历下列二叉树,访问结点的顺序是什么?

刘小牛

刘老儿家的二儿子

这问题也太简单了,访问顺序为:DJGEBKNIFCA 。

丝音

玉帝和王母最疼爱的女儿

哼,敢小瞧我们天堂的题,下一道题,排序都有哪几种方法?请列举说明,然后用JAVA 实现一个快速排序。

刘小牛

刘老儿家的二儿子

排序的方法有:插入排序:包括了直接插入排序、希尔排序;交换排序:包括了冒泡排序、快速排序;选择排序:包括了直接选择排序、堆排序;归并排序;分配排序:包括了桶排序、基数排序;

Java快速排序的代码如下:

/*  * 使用快速排序方法对arr[0:n- 1]排序
从a[ 0 :n- 1 ]中选择一个元素作为middle,该元素为支点;
把余下的元素分割为两段left 和right,使得left 中的元素都小于等于支点,
而right 中的元素都大于等于支点;
递归地使用快速排序方法对left 进行排序;
递归地使用快速排序方法对right 进行排序;
所得结果为left + middle + right。   */
public class QuickSort {    public static void main(String[] args) {    int[] arr = {5,2,4,9,7,16,26,3};   sort(arr, 0, arr.length - 1);   }   public static void sort(int arr[], int left, int hight) {   int l = left;  int h = hight; int k = arr[left]; while (l < h) {  //  从后往前比较  //  如果没有比关键值小的,比较下一个,直到有比关键值小的交换位置,    // 然后再从前往后比较    while (l < h && arr[h] > k) { h--;//  h=6    }   // 交换位置 if (l < h) { int temp = arr[h]; arr[h] = arr[l];   arr[l] = temp; // 进行过一次替换后,没必要将替换后的两值再次比较,所以i++直接下一位与k对比   l++;  }   //  从前往后比较 如果没有比关键值大的,比较下一个,  // 直到有比关键值大的交换位置    while (l < h && arr[l] <= k) {   l++;  }   // 交换位置 if (l < h) { int temp = arr[h]; arr[h] = arr[l];   arr[l] = temp; h--;    }   //  此时第一次循环比较结束,关键值的位置已经确定了。左边的值都比关键值小,右边的值都比关键值大, // 但是左右两边的顺序还有可能是不一样的,进行下面的递归调用  }   print(arr); System.out.print("l=" + (l + 1) + ",h=" + (h + 1) + ",k=" + k + "\n");   //  递归,先判断l>low再次进行左边排序   if (l > left) {  //  左边序列。第一个索引位置到关键值索引-1    sort(arr, left, l - 1); }   // 左边依次排序执行完递归后,弹栈进行右边排序 if (h < hight) { //  右边序列。从关键值索引+1到最后一个 sort(arr, l + 1, hight);   }   }   //  打印数组的方法 public static void print(int[] arr) {   System.out.print("[");    for (int i = 0; i < arr.length; i++) {    if (i != (arr.length - 1)) {   System.out.print(arr[i] + ",");  } else {    System.out.print(arr[i] + "]");  System.out.println();   }   }   }   }

刘小牛把在纸上写好的代码递给了丝音。

丝音

玉帝和王母最疼爱的女儿

嗯嗯,写的不错,看不出来你还挺厉害的呀,好再问你一个简单的问题,写一个程序判断数字是否为质数?

刘小牛

刘老儿家的二儿子

程序如下:

/**  * 1、偶数不可能是质数    * 2、对于大于2的数,如果一个数a大于数b的一半,那么b不可能被a整除  */  public boolean isPrimeNum(int num) {    // 2特殊处理    if (num == 2) {   return true;    }   // 识别小于2的数和偶数   if (num < 2 || num % 2 == 0) { return false;   }   int max = num / 2; for (int i = 3; i < max; i += 2) {    if (num % i == 0) {   return false;   }   }   return true;    }   

丝音

玉帝和王母最疼爱的女儿

给你出一道难得吧,这个题有好多以前应聘的人都没答对呢,设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序;要求用java 实现。

刘小牛

刘老儿家的二儿子

这道题难不倒我

代码如下:

public class CountGame {    //判断第n个人是否已经出列  private static boolean same(int[] p, int l, int n) {    for (int i = 0; i < l; i++) { if (p[i] == n) {  return true;    }   }   return false;   }   public static void play(int playerNum, int step) {  //按出列顺序排列的新数组   int[] p = new int[playerNum];  //当前报数的人    int counter = 1;   while (true) {  if (counter > playerNum * step) {    break;  }   //从1开始报数    for (int i = 1; i < playerNum + 1; i++) {    while (true) {  //如果报数的人已经出去,则跳过 if (same(p, playerNum, i) == false){  break;  }   else{   i = i + 1;    }   }   if (i > playerNum){  break;  }   //如果当前报数的人是第m个人,则第M个人出列  if (counter % step == 0) {    System.out.print(i + " ");   p[counter / step - 1] = i; }   counter += 1; }   }   System.out.println();   }   public static void main(String[] args) {    //一共10个人,输到第7个人出列    play(10, 7);    }
}

丝音

玉帝和王母最疼爱的女儿

哇,你真厉害呀,最后一个问题,用程序实现1000 的阶乘。

刘小牛

刘老儿家的二儿子

这个问题有个陷阱,就是普通的数据类型存不了这么大的数,不过这难不倒我的,嘿嘿

Java的代码实现如下:

//首先导入大数包和输入包
import java.math.BigInteger;
import java.util.Scanner;   //计算n!(1*2*...*n)
public class BigIntegerTestDrive {  public static void main(String[] args) {    // 输入n  Scanner in = new Scanner(System.in);   int n = in.nextInt();  // 输入初始值    int pre_answer = 1;    // 将初始值由int类型转变为String类型    String x = String.valueOf(pre_answer); // 将String类型的的初始值,传递给BigInteger类型,    BigInteger answer = new BigInteger(x); // 循环迭代逐次相乘 for (int i = 1; i <= n; i++) {   // 因为BigInteger类型只能和该类型的变量相乘,因此还需将每次的中间乘数也依次变为BigInteger类型   String var = String.valueOf(i);    BigInteger variable = new BigInteger(var); // 调用相乘函数进行相乘运算 answer = answer.multiply(variable);    }   // 输出最终答案   System.out.println(answer); in.close(); }
}

回答完这些问题,丝音看着刘小牛微笑着点点头说:“”你基础还是挺不错的”。听到夸赞,刘小牛期待的看着丝音问:“那我能进入天堂了吗”。丝音笑着说:“天堂哪有那么好进”。你......未完待续

(本故事纯属虚构,如有雷同纯属巧合)

 欢我们的内容就点“在看”分享给小伙伴哦

Java面试题总结之数据结构、算法和计算机基础(刘小牛和丝音的爱情故事1)...相关推荐

  1. JAVA:实现BloomFilter二进制向量数据结构算法(附完整源码)

    JAVA:实现BloomFilter二进制向量数据结构算法 package com.thealgorithms.datastructures.bloomfilter; import java.util ...

  2. 【超全汇总】学习数据结构与算法,计算机基础知识,看这篇就够了【ZT帅地】2020-3-7

    https://blog.csdn.net/m0_37907797/article/details/104029002 由于文章有点多,并且发的文章也不是一个系列一个系列发的,不过我的文章大部分都是围 ...

  3. 超详细的Java面试题总结(四 )之JavaWeb基础知识总结

    系列文章请查看: 超详细的Java面试题总结(一)之Java基础知识篇 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(三)之Java集合篇常见问题 超详细的Java ...

  4. 计算机应用基础试题事业单位,事业单位考试计算机基础知识试题及答案

    计算机基础知识是事业单位考试内容,以下是由学习啦小编整理关于事业单位考试计算机基础知识试题的内容,希望大家喜欢! 事业单位考试计算机基础知识试题及答案(一) 1.Windows中,剪贴板是指( ). ...

  5. 部队文职计算机试题,2020军队文职人员考试:计算机基础模拟试题(1)

    [导语]2020年军队文职备考进行中,为助力各位考生做好2020年军队文职招聘考试准备,山东中公教育小编为大家整理了考试题库:2020军队文职人员考试:计算机基础模拟试题(1),供大家学习和参考. 1 ...

  6. 事业单位考试计算机科学与技术试题的答案,事业单位考试计算机基础知识试题答案...

    事业单位考试计算机基础知识试题答案(微缩打印版) 一. 选择题 1. 世界上首先实现存储程序的电子数字计算机是____. A.ENIAC B.UNIVAC C.EDVAC D.EDSAC 2.计算机科 ...

  7. 2016年大学计算机期末试题及答案,2016年大学计算机基础试题题库及答案

    2016年大学计算机基础试题题库及答案 一.单选题练习 1.完整的计算机系统由( C )组成. A.运算器.控制器.存储器.输入设备和输出设备 B.主机和外部设备 C.硬件系统和软件系统 D.主机箱. ...

  8. 计算机基础知识数据结构与算法,(计算机基础知识)[数据结构与算法] 图

    第六章 图 6.1 图的定义和基本术语 图: G=(V,E) Graph = (Vertex, Edge) V: 顶点(数据元素)的有穷非空集合 E: 边的有穷集合 完全图: 任意两个点都有一条边相连 ...

  9. 使用流程图表示算法(计算机基础)

    前言 用流程图表示算法,其特点是 直观易读,流程图是指利用标准的图形符号来描述程序处理的步骤,流程图包括一个基本符号集合,其中每个符号表示算法中指定类型的操作. 使用流程图表示算法直观.清晰,因此在程 ...

  10. 奥鹏教育计算机试题,最新奥鹏教育《计算机基础》模拟试卷附答案(11页)-原创力文档...

    <计算机基础>模拟试卷一 一.[单项选择题]( 本大题共 20 小题,每小题 2 分,共 40 分) 在每小题列出的四个选项 中只有一个选项是符合题目要求的,请将正确选项前的字母填在答题卷 ...

最新文章

  1. This is probably not a problem with npm. There is likely additional logging output above
  2. 添加mysql引擎错误
  3. Tomcat参数设置,解决内存溢出问题
  4. 检测IIS应用程序池对象 回收
  5. 如何使cmd的输入和输出重定向到管道中(用这种方法可以将指令写入cmd并抓取输出)
  6. vs2010 Qt插件报错Couldn't register all Qt4VSAddin command解决方案
  7. 代码需要不断进化和改变
  8. 罐中研讨会:设置JBoss BRMS全日研讨会
  9. 最接近原点的 k 个点_第K个最接近原点的位置
  10. SQL多列查询最大值
  11. Windows API 进程状态信息函数
  12. java需要最大正数_Java输出double类型中的最小正数和最大正数
  13. 〖Linux〗在tmux同时使用bash和zsh
  14. 高并发大流量专题---1、高并发大流量解决方案总结
  15. 用SPSS进行描述性分析
  16. hexo部署时出现excepted token解决方法
  17. Nginx实现文件共享
  18. Android Beacon开发
  19. Scheduled里面报错No thread-bound request found
  20. 最好用的开源日志分析工具

热门文章

  1. Problem E 寻找最大元素和第二大元素
  2. swing添加按钮监听后,面板监听失效
  3. MS5611气压计数据采集(模拟IIC)/温度采集/相对高度求解
  4. 评测近40个Mac软件下载站,这些是真良心网站!
  5. android 电子签名证书,android 电子签名实现
  6. Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!
  7. 微信小说小程序源码-自带采集带安装教程
  8. 计算机领域所有SCI期刊,计算机领域的所有SCI一区期刊,这是最顶级期刊了
  9. 一种使用随机抽样梯度下降算法来预估词汇量的方法
  10. 【复杂网络】网络科学导论学习笔记-第五章节点重要性与相似性