选择题
(1)ACD (2)B (3)BC (4)B (5)BD
编码题
1…数组查找操作:定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词, 程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”,不包含就打印出“No”。
public class Task extends Test11{
public static void main(String[] args) {
String[] str = new String[10]; //定义长度为10字符串数组
for(int i = 0;i < 10;i++) { //给数组中放入单词
str[i] = "a" + i;
}
System.out.println("请输入字符串");
Scanner scanner = new Scanner(System.in);
String str1 = scanner.nextLine(); //所输入的字符串
isExist(str,str1); //检验输入的字符串是否存在的方法
}
}
//自定义类
class Test11{
public static void isExist(String[] str,String str1) { //字符串是否存在数组中的方法
boolean flag = true;
for(int i = 0;i < str.length;i++) {
if(str[i].equals(str1)) {
System.out.println("Yes");
flag = false;
}
}
if(flag) {
System.out.println("No");
}
}
}
2. 获取数组最大值和最小值操作:利用Java的Math类的random()方法,编写函数得到0到n之间的随机数,n是参数。并找出产生50个这样的随机数中最大的、最小的数,并统计其中>=60的有多少个。
提示:使用 int num=(int)(n*Math.random());获取随机数。
public class Task{
public static void main(String[] args) {
``` System.out.println("请输入随机数区间大值n");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int tempNum = 0; //临时存储超过60的数
int[] numArray = new int[50]; //numArray数组中存储的是随机
for(int i= 0;i < 50;i++) { //生成0~n之间随机数50个
numArray[i] = (int)(n * Math.random());
if(numArray[i] >= 60) { //判断超过60的个数
tempNum ++;
}
}
Test2 t2 = new Test2(); //定义的test2类实例化的对象
t2.numTest(numArray); //调用Test2中的静态方法
System.out.println("超过60的有" + tempNum + "个"); //输出超60个数
}
}
//自定义的Test2 类,用来对随机生成的数组排序,通过排序后的数组可以方便输出最大最小数
class Test2 extends BubbleSort{
public static void numTest(int[] array) {
bubbleSort(array); //冒泡排序算法处理array数组
System.out.println("最大数是:" + array[49] + "\n" + "最小数是:" + array[0]);
}
}
//自定义的冒泡排序算法
class BubbleSort {
public static void bubbleSort(int[] array) {
int temp = 0;
//冒泡排序
for(int i = array.length - 1;i > 0;i--) {
boolean flag = true;
for(int j = 0;j < i;j++) {
if(array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
flag = false;
}
}
if(flag) {
break;
}
}
}
}
3. 数组逆序操作:定义长度为10的数组,将数组元素对调,并输出对调前后的结果。
思路:把0索引和arr.length-1的元素交换,把1索引和arr.length-2的元素交换……
只要交换到arr.length/2的时候即可
public class Task extends Test11{
public static void main(String[] args) {
int[] randomNum = new int[10]; //随机生成一个·包含10个元素的int类数组
for(int i = 0;i < randomNum.length;i++) {
randomNum[i] = (int)(30 * Math.random());
}
//打印随机生成的数组顺序
System.out.println(Arrays.toString(randomNum));
int temp = 0;
for(int i = 0;i < randomNum.length / 2;i++) { //元素交换的方法
temp = randomNum[i];
randomNum[i] = randomNum[randomNum.length - 1 - i];
randomNum[randomNum.length - 1 - i] = temp;
}
System.out.println(Arrays.toString(randomNum)); //打印元素交换后的数组
//##################################################################
}
}