Java编程日常训练

分享记录日常

习题一:

【问题描述】

定义一个长度为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:爱你的人永远是你坚实的靠山!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值