分享记录日常
习题一:
【问题描述】
定义一个长度为10行2列的字符串类型二维数组,用来存放10个学生的学号和姓名:
{ “10905100”, “Tanlinlin” },{ “10905101”, “Chenyixing” },
{ “10905102”, “Sunsimiao” },{ “10905103”, “Zhangwuji” },
{ “10905104”, “Lichunfeng” },{ “10905105”, “Wangfeifei” },
{ “10905106”, “Qianliuyi” },{ “10905107”, “Shenqiqi” },
{ “10905108”, “Yangtianyi” },{ “10905109”, “Xiaozhan” }
编写程序,产生一个0~9的随机数,并输出对应下标的学生的学号和姓名(中间隔一个空格)后换行;每按一次回车,重复上述过程输出下一个学生的学号和姓名,直到按e键结束整个程序的运行
【输入形式】
第1行为一个整数,即随机数种子;第2行开始按n个回车,最后一行输入e
【输出形式】
【样例输入】
5
Enter键
Enter键
Enter键
e
【样例输出】
10905107 Shenqiqi
10905102 Sunsimiao
10905104 Lichunfeng
源码:
package spotcheck;
import java.util.Random;
import java.util.Scanner;
public class SpotCheck {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[][] arr = new String[][] { { "10905100", "Tanlinlin" }, { "10905101", "Chenyixing" },
{ "10905102", "Sunsimiao" }, { "10905103", "Zhangwuji" }, { "10905104", "Lichunfeng" },
{ "10905105", "Wangfeifei" }, { "10905106", "Qianliuyi" }, { "10905107", "Shenqiqi" },
{ "10905108", "Yangtianyi" }, { "10905109", "Xiaozhan" } };
Scanner input = new Scanner(System.in);
int nom = input.nextInt();//输入随机种子
input.nextLine();//清除多余的换行符
Random ran = new Random(nom);
while (!(input.nextLine().equals("e"))) {//判断输入是否为结束标志符"e"
int a1 = ran.nextInt(10);//生成0—10之间的随机整数
System.out.println(arr[a1][0] + " " + arr[a1][1]);//输出
}
input.close();
}
}
class Init {
public static void init(Boolean[] arr) {
for (int i = 0; i < arr.length; i++)
arr[i] = false;
}
}
运行结果:
习题二:
【问题描述】中国福利彩票的双色球开奖规则:从编号是0133的红色球中选取6个,从编号0116的蓝色球中选取一个。 模拟这个抽奖过程,输出抽中的红色和蓝色球号。 提示:将红色球和蓝色球各自保存在一个boolean数组中,数组元素取true/false代表该球是否被选中(初始均为false ).
提示:使用Random类生成随机数
Random()方法:默认使用当前时间的毫秒数作随机数种子(默认调用currentTimeMillis())
Random(int n):指定随机数种子,每次运行结果相同
通过Random对象调用nextInt()得到随机整数,请查阅Random类中的相关方法
如:生成1-10之间有随机数
Random r = new Random(n);
int a = r.nextInt(10) + 1;
【输入形式】一个整数,作为随机种子
【输出形式】两行,抽中的红色球编号
【样例输入】1234
【样例输出】
09 18 19 28 30 33
08
【样例说明】
【评分标准】
源码:
package excel;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
import java.util.Scanner;
public class Excel {
public static void main(String[] args) {
// TODO Auto-generated method stub
Boolean[] rad = new Boolean[33];
ArrayList<String> list = new ArrayList<>();
Init.init(rad);
Scanner input = new Scanner(System.in);
String nom = input.nextLine();
Random ran = new Random(Integer.parseInt(nom));
int k = 6;
while (k > 0) {
int a1 = ran.nextInt(33);
if (!rad[a1]) {
rad[a1] = true;
if (a1 + 1 < 10)
list.add("0" + (a1 + 1) + " ");
else
list.add((a1 + 1) + " ");
k--;
}
}
Collections.sort(list);
for(String i:list)
System.out.print(i);
System.out.println();
int a1 = ran.nextInt(16);
if (a1 + 1 < 10)
System.out.print("0" + (a1 + 1) + " ");
else
System.out.print((a1 + 1) + " ");
input.close();
}
}
运行结果:
习题三:
【问题描述】
有10个元素的int型数组,元素值从键盘输入,完成以下操作:
1.输出数组的全部元素值
2.将该数组中的全部元素复制到另一个数组b中并输出。
3.将该数组中的前6个元素复制到另一个数组c中,并输出。
4.将该数组的后5个元素复制到另一个数组d中,并将数组d的最后一个元素值改为-100后输出。
提示:数组元素复制使用System类中的arraycopy() 或Arrays类的copyOf()
具体用法查阅Java API文档
数组元素输出使用Arrays类的toString()
【样例输入】
1 2 3 4 5 6 7 8 9 10
【样例输出】
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 2, 3, 4, 5, 6]
[6, 7, 8, 9, -100]
源码:
package array;
import java.util.Arrays;
import java.util.Scanner;
public class Array {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner n = new Scanner(System.in);
int[] a1 = new int[10];
for(int i = 0;i<10;i++) {
int nom = n.nextInt();
a1[i] = nom;
}
System.out.println(Arrays.toString(a1));
int[] a2 = new int[10];
System.arraycopy(a1,0,a2,0,10);
System.out.println(Arrays.toString(a2));
int[] a3 = new int[6];
System.arraycopy(a1, 0, a3, 0, 6);
System.out.println(Arrays.toString(a3));
int[] a4 = new int[5];
System.arraycopy(a1, 5, a4, 0, 5);
a4[4] = -100;
System.out.println(Arrays.toString(a4));
n.close();
}
}
#运行结果:
习题四:
【问题描述】利用ArrayList管理学生信息:
(1)输入一个学生人数n,然后输入n个学生的姓名,输出所有学生姓名及元素个数;
(2)在ArrayList中指定位置处(指定下标为3)插入一个学生,姓名由键盘输入,输出操作后的所有学生姓名及元素个数;
(3)删除下标为1的学生,输出操作后的所有学生姓名及元素个数。
【输入形式】
第一行:一个整数n,后跟n个学生的姓名
第二行:在指定位置处(下标为3)插入一个学生的姓名
【输出形式】
见样例
【样例输入】
5 zhangfei zhaoyun weiyan libei huangzhong
zhugekongming
【样例输出】
Content of ArrayList:[zhangfei, zhaoyun, weiyan, libei, huangzhong]
Size of ArrayList:5
Content of ArrayList:[zhangfei, zhaoyun, weiyan, zhugekongming, libei, huangzhong]
Size of ArrayList:6
Content of ArrayList:[zhangfei, weiyan, zhugekongming, libei, huangzhong]
Size of ArrayList:5
源码:
import java.util.ArrayList;
import java.util.Scanner;
public class StudentInform {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner n = new Scanner(System.in);
String nom = n.next();
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < Integer.parseInt(nom); i++) {
String name = n.next();
list.add(name);
}
String add = n.next();
System.out.println("Content of ArrayList:" + list.toString());
System.out.println("Size of ArrayList:" + list.size());
list.add(3, add);
System.out.println("Content of ArrayList:" + list.toString());
System.out.println("Size of ArrayList:" + list.size());
list.remove(1);
System.out.println("Content of ArrayList:" + list.toString());
System.out.println("Size of ArrayList:" + list.size());
n.close();
}
}
运行结果:
END:爱你的人永远是你坚实的靠山!