2020校招笔试之新华三

现场笔试,共90分钟

软件开发中心

分Java和c语言部分(选做Java或者c)

以下为Java部分

一、单选题(8题)

1、栈底至栈顶依次存放元素A.B.C.D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是()

 

2、143%15的结果是多少

解题思路:求余

 

3、三把钥匙开三个锁,最多几次可以完全匹配(B)

A、2       B、3       C、6       D、不记得了

解答思路:2(最多开两把锁确定第一个钥匙)+1(第二次开一把锁确定第二个钥匙)+0(第三个钥匙自动确定了)

 

4、车开向哪边(B)

2020校招笔试之新华三_第1张图片

(关于图:左右完全对称)

A、右边       B、左边       C、不确定

解答思路:可以通过判断车门的方向来判断车的方向,车门在看不见的一侧,所以车在向左行驶

5、小正方形的边长为8,计算以下三角形ABC的面积()

2020校招笔试之新华三_第2张图片

A、。。。。       B、。。。。    C、。。。。    D、无法计算

二、多选题()

不记得题目了

三、简单题(2题)

1、简述&与&&的区别

& 不管前面的条件是否正确,后面都执行
&& 前面条件正确时,才执行后面,不正确时,就不执行,就效率而言,这个更好

2、线程安全是什么?列出线程安全的集合类

引用自:https://www.cnblogs.com/huangdabing/p/9249233.html

线程安全:就是当多线程访问时,采用了加锁的机制;即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读取完之后,其他线程才可以使用。防止出现数据不一致或者数据被污染的情况。

线程安全(Thread-safe)的集合对象:

  • Vector 线程安全:
  • HashTable 线程安全:
  • StringBuffer 线程安全:

四、编程题(2题)

1、输入一个超过7位数的数字,输出其从右边数的4~6位 

//取一个整数a从右端开始的4~6位
import java.util.*;
public class ExertNumber {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个整数(长度至少大于7):");
		String a = sc.next();//利用字符串接受该整数
		//int lengthNum = a.length();
		//将字符串转换成字符数组类型
		char[] c = a.toCharArray();
		for(int j=3;j<6;++j){
			System.out.print(c[j]);
		}
	}
}

2、生成随机密钥(从数字、大写字母、小写字母中随机生成,但每种类型的必须有)

代码来自:https://www.cnblogs.com/dongliyang/archive/2013/04/01/2994554.html 

public class RandomStr {
    
    /**
     * 单元测试
     * 运行: java RandomStr 4  (生成长度为4的字符串)
     */
    public static void main(String[] args){
        int len = Integer.parseInt(args[0]);;
        System.out.println(randomStr(len));
    }
    
    /**
     * 返回随机字符串,同时包含数字、大小写字母
     * @param len 字符串长度,不能小于3
     * @return String 随机字符串
     */
    public static String randomStr(int len){
        if(len < 3){
            throw new IllegalArgumentException("字符串长度不能小于3");
        }
        //数组,用于存放随机字符
        char[] chArr = new char[len];
        //为了保证必须包含数字、大小写字母
        chArr[0] = (char)('0' + StdRandom.uniform(0,10));
        chArr[1] = (char)('A' + StdRandom.uniform(0,26));
        chArr[2] = (char)('a' + StdRandom.uniform(0,26));
        
    
        char[] codes = { '0','1','2','3','4','5','6','7','8','9',
                         'A','B','C','D','E','F','G','H','I','J',
                         'K','L','M','N','O','P','Q','R','S','T',
                         'U','V','W','X','Y','Z','a','b','c','d',
                         'e','f','g','h','i','j','k','l','m','n',
                         'o','p','q','r','s','t','u','v','w','x',
                         'y','z'};
        //charArr[3..len-1]随机生成codes中的字符
        for(int i = 3; i < len; i++){
            chArr[i] = codes[StdRandom.uniform(0,codes.length)];
        }
        
        //将数组chArr随机排序
        for(int i = 0; i < len; i++){
            int r = i + StdRandom.uniform(len - i);
            char temp = chArr[i];
            chArr[i] = chArr[r];
            chArr[r] = temp;
        }
        
        return new String(chArr);
    }
} 

 

 

你可能感兴趣的:(工作)