20210819 汇顶科技测试开发工程师笔试题
20210819 汇顶科技测试开发工程师笔试题
15个单选题,4个多选题,2个编程题
编程题一:百分制成绩
编写一个程序实现以下功能:输入百分制成绩S(Double型),按照
A(≥90)B[80-90)C[70-80)D[60-70)E(<60)五个等级输出输入描述
百分制成绩S输出描述
输出提示信息,内容为"A"or"B"or"C"or"D"or"E"其中之一示例一
输入83输出
B
思路:
最简单的条件判断题,if else简单暴力,或采用case switch
import java.util.Scanner;
public class M {
public static String level(double score){
if(score>=90){
return "A";
}else if(score>=80){
return "B";
}else if(score>=70){
return "C";
}else if(score>=60){
return "D";
}else{
return "E";
}
}
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
double score = scan.nextDouble();
System.out.println(level(score));
}
} 编程题二:组合数字最大值
编写一个程序实现以下功能:输入五个1~20之间的正整数,将五个数进行组合输出组合后的最大值。
输入描述
5个正整数(范围[1,20])输出描述
1个整数示例一
输入9,7,1,20,11输出
9720111
思路:
将两个数字分别用两种方式拼接然后比较拼接后整数大小,按照大数拼接顺序对两数降序排序。最终将五个数拼接转整型输出。
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] str = sc.nextLine().split(",");
int[] arr = new int[5];
for (int i = 0; i < 5; i++) {
arr[i] = Integer.parseInt(str[i]);
}
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < 4 - i; ++j) {
String c = String.valueOf(arr[j]) + String.valueOf(arr[j + 1]);
String d = String.valueOf(arr[j + 1]) + String.valueOf(arr[j]);
int num_c = Integer.valueOf(c);
int num_d = Integer.valueOf(d);
if (num_c < num_d) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
String res = "";
for (int i = 0; i < arr.length; i++) {
res = res + arr[i];
}
System.out.println(Integer.valueOf(res));
}
} #笔经##汇顶科技#