现场笔试,共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)
(关于图:左右完全对称)
A、右边 B、左边 C、不确定
解答思路:可以通过判断车门的方向来判断车的方向,车门在看不见的一侧,所以车在向左行驶
5、小正方形的边长为8,计算以下三角形ABC的面积()
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); } }