—以下的机试题建议在校生、实习生或者1年工作经验的小伙伴看,面对实习生,面试官都主要还是问Java基础,基础过硬什么都好说。
注意事项:面试都是本人经历过的机试(也有我小伙伴的面试题)个人总结有限,小伙伴如果觉得总结不满意可以copy题目到其他地方。
每篇文章发布5个左右的机试题
建议收藏,不定时更新机试题!
↑↑↑(看这里)
问:(本题来自:京华信息)
List list = Arrays.asList(new String[] {“1,张三,50”,“2,李四,80”,“3,王五,40”,“4,张三,90”,“5,王五,70”});
要求:
//1.输出所有同学的名字及其平均分
//2.按平均分升序
//有3和4,记不太清,也不是主要的要求,反正就是代码规范之类的
要求结果如下:
参考代码:
package com.neuedu.test;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.TreeSet;
public class Exam {
public static void main(String[] args) {
List<String> list = Arrays.asList(new String[] {"1,张三,50","2,李四,80","3,王五,40","4,张三,90","5,王五,70"});
//1.输出所有同学的名字及其平均分
//2.按平均分升序
Map<String,Integer> h = new HashMap();
Map<String,Integer> h2 = new HashMap();//计算h的key的次数
String i = null;//h的key
Integer j = null;//h的value
for (String string : list) {
i = string.substring(2,4);//将名字截取到i中
j = Integer.parseInt(string.substring(5));//将数成绩截取到j中
if(h.get(i)==null) {
h.put(i,j);//如果没有当前key,在h中插入key
h2.put(i,1);//并且打开当前key的次数,value=1;value就是记次数的
}else {
h.put(i,h.get(i)+j);
h2.put(i,h2.get(i)+1);
}
// System.out.println(h.toString());
}
//遍历Map
for(Map.Entry<String, Integer> entry : h.entrySet()){
String mapKey = entry.getKey();
Integer mapValue = entry.getValue();
Integer zz = mapValue/h2.get(mapKey);
h.put(mapKey,zz);
}
//遍历输出
for (Map.Entry<String, Integer> entry : h.entrySet()) {
System.out.println(entry.getKey()+"\t"+entry.getValue());
}
}
}
输出结果与上图一样
那么这里和大家解释一下部分
1.用Map是为了通过key得到相应的value,同时这个方法也比较容易理解。
2.后两个遍历Map集合是需要自己个人硬实力的,你得要知道Map.Entry和entrySet(本人试过,自动遍历遍历不出来)
问:110元,洗剪吹31元,可以多少次洗剪吹?最后还剩多少?
public class Test {
/*
* 110元,洗剪吹31元,可以多少次洗剪吹?最后还剩多少?
* */
public void theFirstQuestion() {
System.out.println("=============================");
System.out.println("第1题");
int money=110;//钱
int xjc=31;//洗剪吹
System.out.println("洗了:"+money/xjc+"次");
System.out.println("还剩:"+money%xjc+"元");
}
public static void main(String[] args) {
Test test = new Test();
test.theFirstQuestion();
}
}
问:打印九九乘法表
public class Test {
/*
* 打印九九乘法表
* */
private void theSecondQuestion() {
for(int i=0;i<10;i++) {
for(int j=1;j<=i;j++) {
System.out.print(i+"*"+j+"="+i*j+"\t");
}
System.out.println();
}
}
public static void main(String[] args) {
Test test = new Test();
test.theSecondQuestion();
}
}
问:接受用户输入的5门功课并且计算平均分。
public class Test {
/*
* 4、接受用户输入的5门功课并且计算平均分。
* */
public void theFourQuestion() {
System.out.println("=============================");
System.out.println("第4题");
int sum=0;
for(int i=1;i<=5;i++) {
System.out.println("请输入第"+i+"个数:");
Scanner scanner = new Scanner(System.in);
int str = scanner.nextInt();
sum+=str;
}
System.out.println("平均值为:"+sum/5);
}
public static void main(String[] args) {
Test test = new Test();
test.theFourQuestion();
}
}