又到校园招聘的时候了,前几天听同学说华为校招还要考上机,然后就在网上找往年的机试题,找到之后就开始战斗了。。下面的题目都是在网上找的,然后代码是自己一个一个写的。。。
1.程序实现目标: 输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。
程序要求:该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符。
2.程序实现目标:求一个整型数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数。
程序要求:输入:整型数组中的元素个数及各个元素。
实例:
输入:1,2,5,9,84,3,2
输出:84,9
5、要求:随机打印50个随机(4-10长度)的字符串,要求字符串包含的范围是所有的英文字母包含大小写和数字,按照编码顺序排序,每行打印4个,要求首字符对齐.
6.手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。提示(可以用Map)
实例:
输入:aaabbbccc
输出:a 3
b 3
c 3
7、要求实现方法public String addTwoBigNumber(String s1,string s2)
大数相加,注意处理异常
9. 输入:a aa,cat tiger.123dd
输出: tiger
功能描述:键盘输入一句话
输出一句话中最常的单词,如果最长的出现多次&#
1.程序实现目标: 输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。
程序要求:该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println(StringASCII("abcd"));
Scanner in = new Scanner(System.in);
System.out.println("请输入一串小写字母:");
String str = in.next();
System.out.println(StringASCII(str));
in.close();
}
public static String StringASCII(String str) {
StringBuffer reslut = new StringBuffer();
// 将字符串转换成数组
char[] array = str.toCharArray();
for (int i = 0; i < array.length; i++) {
char arr= (char) (array[i] + 5);
if (arr >'z') {
arr = 'a';
}
reslut.append(arr);
}
return reslut.toString();
}
}
2.程序实现目标:求一个整型数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数。
程序要求:输入:整型数组中的元素个数及各个元素。
输出:整型数组中元素的平均值,大于和小于此平均值的元素的个数
import java.util.Scanner;
public class CountAvg {
/**
* @param args
*/
public static void main(String[] args) {
// int arr[] = { 1, 2, 4, 23, 8, 11, 22, 31 };
int[] arr = inputArr();
int[] count = count(arr);
System.out.println("数组的平均值:" + count[2] + ",小于平均值的个数:" + count[1]
+ ",大于平均值的个数:" + count[0]);
}
// 输入整形数组
private static int[] inputArr() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入整形数组的长度:");
int i = scanner.nextInt();
int arr[] = new int[i];
System.out.println("请输入整形数组的元素:");
for (int j = 0; j < arr.length; j++) {
int str = scanner.nextInt();
// System.out.println(arr[j]+"----"+str);
arr[j] = str;
}
scanner.close();
return arr;
}
/**
* 求出整形数组的平均值,大于和小于平均值的个数
*
* @param arr
* @return
*/
private static int[] count(int[] arr) {
int m = 0, n = 0, avg, total = 0;
for (int i = 0; i < arr.length; i++) {
total += arr[i];
}
avg = total / arr.length;
for (int i = 0; i < arr.length; i++) {
if (avg < arr[i]) {
m++;
} else {
n++;
}
}
int result[] = new int[3];
result[0] = m;
result[1] = n;
result[2] = avg;
return result;
}
}
3、手动输入一个存储整数的数组,要求输出数组里面的2个最大值。实例:
输入:1,2,5,9,84,3,2
输出:84,9
import java.util.Scanner;
public class CountMax {
/**
* @param args
*/
public static void main(String[] args) {
int[] arr = inputArr();
countMax(arr);
System.out.println("最大值:" + arr[0] + ",第二大的值" + arr[1]);
}
/**
* 计算出两个最大值
*
* @param arr
* @return
*/
private static void countMax(int[] a) {
// 冒泡排序
int temp = 0;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length - i - 1; j++) {
if (a[j] < a[j + 1]) { // 把这里改成大于,就是升序了
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
// 输入整形数组
private static int[] inputArr() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入整形数组的长度:");
int i = scanner.nextInt();
int arr[] = new int[i];
System.out.println("请输入整形数组的元素:");
for (int j = 0; j < arr.length; j++) {
int str = scanner.nextInt();
// System.out.println(arr[j]+"----"+str);
arr[j] = str;
}
scanner.close();
return arr;
}
}
</pre><span style="font-size:18px;">4、回文数字判断。题目描述: 有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,这样的数字就称为:回文数字。编写一个函数,判断某数字是否是回文数字。 要求实现方法:public String isPalindrome(String strIn);【输入】strIn: 整数,以字符串表示;【返回】true: 是回文数字; false: 不是回文数字;【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出</span><pre name="code" class="java">import java.util.Scanner;
public class Palindrome {
/**
* @param args
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一个整形数字:");
String str = in.next();
if (isPalindrome(str)) {
System.out.println(str + "--是回文数字");
} else {
System.out.println(str + "--不是回文数字");
}
in.close();
}
/**
* 判断是否为回文数字
*
* @param str
* @return
*/
private static boolean isPalindrome(String str) {
boolean result = false;
System.out.println("str长度---" + str.length());
for (int i = 0; i <= str.length() / 2 - 1; i++) {
if (str.charAt(i) == str.charAt(str.length() - i - 1)) {
result = true;
}else {
result = false;
}
}
return result;
}
}
5、要求:随机打印50个随机(4-10长度)的字符串,要求字符串包含的范围是所有的英文字母包含大小写和数字,按照编码顺序排序,每行打印4个,要求首字符对齐.
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class RandomStr {
/**
* @param args
*/
public static void main(String[] args) {
List<String> arrayStr = new ArrayList<String>();
for (int i = 0; i < 50; i++) {
Random random = new Random();
// 0-6
int nextInt = random.nextInt(7);
int strlen = nextInt + 4;
// 打印出随机数
String randomStr = randomStr(strlen);
// System.out.println("打印出来的字符串:" + randomStr);
arrayStr.add(randomStr);
}
int count = 0;
for (String str : arrayStr) {
System.out.print(str + " ");
if (count % 4 == 0) {
// 换行
System.out.println();
}
count++;
}
}
/**
* 打印出随机的字符串
*
* @param strlen
* @return
*/
private static String randomStr(int strlen) {
char[] str = new char[strlen];
int i = 0;
while (i < strlen) {
// 生成0-3的随机数
int f = new Random().nextInt(4);
if (f == 0) {
str[i] = (char) ('a' + Math.random() * 26);
} else if (f == 1) {
str[i] = (char) ('A' + Math.random() * 26);
} else {
str[i] = (char) ('0' + Math.random() * 10);
}
i++;
}
return new String(str);
}
}
6.手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。提示(可以用Map)
实例:
输入:aaabbbccc
输出:a 3
b 3
c 3
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class NumberOfElement {
/**
* @param args
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入的一组小写字符串:");
String str = in.next();
in.close();
// 正则运算
String reg = "^[a-z]*$";
if (str.matches(reg)) {
Map<Character, Integer> charCount = getCharCount(str);
// 遍历map
for (Map.Entry<Character, Integer> e : charCount.entrySet()) {
System.out.println(e.getKey() + " " + e.getValue());
}
}else {
System.out.println("您输入的字符串不符合要求");
}
}
private static Map<Character, Integer> getCharCount(String str) {
Map<Character, Integer> map = new HashMap<Character, Integer>();
char[] array = str.toCharArray();
for (int i = 0; i < array.length; i++) {
if (!map.containsKey(array[i])) {
map.put(array[i], 1);
} else {
map.put(array[i], map.get(array[i]) + 1);
}
}
return map;
}
}
7、要求实现方法public String addTwoBigNumber(String s1,string s2)
大数相加,注意处理异常
import java.math.BigInteger;
import java.util.Scanner;
public class BigNumAdd {
/**
* @param args
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入第一个大数:");
String str1 = in.next();
System.out.println("请输入第二个大数:");
String str2 = in.next();
in.close();
if (isBigNumber(str1) &&isBigNumber(str2)) {
String bigNumber = addTwoBigNumber(str1, str2);
System.out.println("两个大数相加的结果为:" + bigNumber);
}else {
System.out.println("输入错误!");
}
}
/**
* 大数相加
*
* @param s1
* @param s2
* @return
*/
public static String addTwoBigNumber(String s1, String s2) {
BigInteger bt1 = new BigInteger(s1);
BigInteger bt2 = new BigInteger(s2);
return bt1.add(bt2).toString();
}
/**
* 判断一个字符串是否为大数
* @param str
* @return
*/
public static boolean isBigNumber(String str) {
boolean result = false;
String reg = "[0-9]*$";
if (str.matches(reg)) {
result = true;
} else {
result = false;
}
return result;
}
}
8、比较二维数组列最小值,组成一个新数组返回。(实现核心算法,不需要使用IO)
输入:intArr = { {5,6,1,16},{7,3,9}}
输出:intArrs ={1,3}
import java.util.Arrays;
import java.util.Scanner;
public class CountMin {
/**
* @param args
*/
public static void main(String[] args) {
int[][] arr = {
{5,6,1,16},{7,3,9},{5,7,12}};
int[] colmin = getColmin(arr);
System.out.println(Arrays.toString(colmin));
}
private static int[] getColmin(int[][] arr) {
int minArr[] = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
int tmp[] = arr[i];
// 数组的排序,从小到大
Arrays.sort(tmp);
minArr[i] = tmp[0];
}
return minArr;
}
}
9. 输入:a aa,cat tiger.123dd
输出: tiger
功能描述:键盘输入一句话
输出一句话中最常的单词,如果最长的出现多次&#