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)); } }
全部评论
(1) 回帖