提示:原码编辑于txt文本模式 运行使用doc命令行
本文内容转载于<渡一教育> 教学内容
整理、编辑于博主
习题如下:
1.利用if语句实现判断成绩分数对应的区间(1)60以下不及格(2)60-70及格
(3)中等(4)良好(5)优秀(6)满分
import java.util.Scanner;
public class score{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入你的成绩:");
int score = input.nextInt();
if(score >= 0 && score < 60){
System.out.println("你的成绩不及格!!!");
}else if(score >= 60 && score < 70){
System.out.println("你的成绩及格!!!");
}else if(score >= 60 && score < 70){
System.out.println("你的成绩中等!!!");
}else if(score >= 60 && score < 70){
System.out.println("你的成绩良好!!!");
}else if(score >= 60 && score < 70){
System.out.println("你的成绩优秀!!!");
}else if(score == 100){
System.out.println("你的成绩是满分!!!");
}else{
System.out.println("你的成绩输入有误!!!");
}
}
}
2.利用if实现一个随机摇骰子的小游戏,如猜大小。
//获取一个随机数Math.random();-->玩家输入一个1-6的
//Scanner input = new Scanner(System.in); int nume = input.nextInt();
import java.util.Scanner;//导包
public class duyi{
public static void main(String[] args){
double value = Math.random();//获取一个[0.0~1.0)的随机数
int number = (int)(value*6+1);//将随机数强制转化成int类型的[1~6]
Scanner input = new Scanner(System.in);
System.out.println("猜大猜小,买定离手~~~");
String choose = input.nextLine();//读取输入的文字
System.out.println("本次摇出的点数为:"+number);
if((number<=3 && choose.equals("小")) || (number>3 && choose.equals("大"))){
System.out.println("恭喜你,猜对了!!!");
}else{
System.out.println("猜错了!!!");
}
}
}
3.利用switch语句实现一个判断对应学生成绩的区间
//不及格 60~70及格 70~80 中等 80~90 良好 90~100优秀 100满分
import java.util.Scanner;
public class duyi{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入你的成绩:");
int score = input.nextInt();
switch(score/10){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("成绩不及格!!!");
break;
case 6:
System.out.println("成绩及格!!!");
break;
case 7:
System.out.println("成绩中等吧!!!");
break;
case 8:
System.out.println("成绩良好吧!!!");
break;
case 9:
System.out.println("成绩优秀啊!!!");
break;
case 10:
if(score == 100){
System.out.println("成绩满分啦!!!");
break;
}
default:
System.out.println("输入有误!!!");
break;
}
}
}
4、为小明制定一个学习计划(switch实现)
//1、3、5学习语文 2、4、6学习数学 7休息
import java.util.Scanner;
public class duyi{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("今天是星期几:(请输入阿拉伯数字)");
int week = input.nextInt();
switch(week){
case 1:
case 3:
case 5:
System.out.println("今天学习语文!!!");
break;
case 2:
case 4:
case 6:
System.out.println("今天学习数学!!!");
break;
case 7:
System.out.println("今天就好好休息吧!!!");
break;
default:
System.out.println("输入有误!!!");
break;
}
}
}
5、操场上有一百多人排队,(1)三个人一组,多一个(2)四个人一组,多两个
(3)五个人一组,多两个(for循环)
public class duyi{
public static void main(String[] args){
for(int x = 100; x < 200; x++){
if(x%3 == 1 && x%4 == 2 && x%5 == 2){
System.out.println("操场上一共有:"+x+"人");
}
}
}
}
6、甲乙丙丁四人加工零件加工的零件总数为370个
//如果甲加工的零件数多10
//如果乙加工的零件数少20
//如果丙加工的零件书乘以2
//如果丁加工的零件数除以2
//则四个人加工的零件数就相等了
//求四个人加工的零件个数分别是多少?
public class duyi{
public static void main(String[] args){
for(int x = 1;x < 370;x++){ //可以思考可优化的项
if((x - 10)+(x+20)+(x/2)+(x*2)==370){
System.out.println("甲加工的零件个数为:"+(x-10)+"个");
System.out.println("乙加工的零件个数为:"+(x+20)+"个");
System.out.println("丙加工的零件个数为:"+(x/2)+"个");
System.out.println("丁加工的零件个数为:"+(x*2)+"个");
}
}
}
}
7、鸡兔同笼问题
//鸡兔关在同一个笼子里 小鸡(两只脚) 小兔子(四只脚)
//小鸡+小兔子 总共50只 脚的总数是160只
//求鸡和兔子的个数分别是多少?
//设有x只鸡
//2x+4(50-x)=160
public class duyi{
public static void main(String[] args){
for(int x =1;x < 50;x++){
if(2*x+(50 - x)*4 ==160){
System.out.println("小鸡的个数是:"+x);
System.out.println("小兔子的个数为:"+(50-x));
}
}
}
}
8、通过循环找三位数字的水仙花数
//如1 5 3 1+125+27=153public class duyi{
public static void main(String[] args){
for(int num=100;num<999;num++){
int a = num/100;
int b = num/10%10;
int c = num%10;
if(a*a*a + b*b*b + c*c*c == num){
System.out.println(num+"是水仙花数");
}
}
}
}
//优化1
public class duyi{
public static void main(String[] args){
//double vale = Math.pow(double a , double b);计算a的b次方
for(int num=100;num<999;num++){
int a = num/100;
int b = num/10%10;
int c = num%10;
if(Math.pow(a,3) + Math.pow(b,3) + Math.pow(c,3) == num){
System.out.println(num+"是水仙花数");
}
}
}
}
//优化2
public class duyi{
public static void main(String[] args){
//double vale = Math.pow(double a , double b);计算a的b次方
for(int num=100;num<999;num++){
if(Math.pow(num/100,3) + Math.pow(num/10%10,3) + Math.pow(num%10,3) == num){
System.out.println(num+"是水仙花数");
}
}
}
}
9、//控制台输出以下情况的4行*号
//*
//**
//***
//****public class duyi{
public static void main(String[] args){
for(int i = 1;i<=4;i++){
for(int j = 1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
10、控制台输出一下输入的小x行*号,如下
//*
//**
//***
//****//...............
import java.util.Scanner;
public class duyi{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入行数:");
int count = input.nextInt();
for(int i = 1;i<=count;i++){
for(int j = 1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
11、控制台输出4行如图
// $$$* i==1 3 1
// $$** i==2 2 2
// $*** i==3 1 3
// **** i==4 0 4
public class duyi{
public static void main(String[] args){
for(int i = 1;i <= 4;i++){
for(int j =1;j<=4-i;j++){
System.out.print("$");
}
for(int j =1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
}
12、//控制台输出如下形状
// *******
// ***#***
// **###**
// *#####*
public class duyi{
public static void main(String[] args){
for(int i = 1;i <= 4;i++){
if(i==1){
System.out.print("*******");
}else{
for(int j = 1;j<=5-i;j++){
System.out.print("*");
}
for(int j = 1;j<=2*i-3;j++){
System.out.print("#");
}
for(int j = 1;j<=5-i;j++){
System.out.print("*");
}
}
System.out.println();
}
}
}
13、//控制台输出一下样式
// 1
// 121
// 12321
// 1234321
public class duyi{
public static void main(String[] args){
for(int i = 1;i<=4;i++){
for(int j = 1;j<=4-i;j++){ //空格
System.out.print(" ");
}
for(int j =1;j<=i;j++){
System.out.print(j);
}
for(int j=i-1;j>=1;j--){
System.out.print(j);
}
System.out.println();
}
}
}
14、for循环输出九九乘法表
public class duyi{
public static void main(String[] args){
for(int i = 1; i<=9;i++){
for(int j = 1;j <=i;j++){
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
}
}
15、输出2—100之间的素数
public class duyi{
public static void main(String[] args){
for(int num = 2;num<=100;num++){
boolean b = false;
for(int i =2;i<=num/2;i++){
if(num%i==0){
b = true;
break;
}
}
if(!b){
System.out.println(num +"是素数");
}
}
}
}
16、请解下面一个应用题
//有一个水池 已经盛满了120立方米的水
// 有一个进水管 每小时进水18立方米
// 有一个排水管 每小时排水30立方米
// 经过多少小时 水池的水排放干净?
public class duyi{
public static void main(String[] args){
int sum = 120;
int hour = 0;
while(sum>0){
sum+=18;
sum-=30;
hour++;
}
System.out.println("需要"+hour+"小时");
}
}
17、控制台输出下面的形状
// * i==1 3 1
// *** i==2 2 3
// ***** i==3 1 5
// ******* i==4 0 7
public class duyi{
public static void main(String[] args){
int i = 1;
while(i<=4){
//画空格占位
int j = 1;
while(j<=4-i){
System.out.print(" ");
j++;
}
//画星星
int k = 1;
while(k<=2*i-1){
System.out.!print("*");
k++;
}
//换行
System.out.println();
i++;
}
}
}
18、请解下面一个应用题
//小茗同学从A点以7km/h的速度向B点出发
// 哥哥从B点以18km/h的速度向A点出发
// A和B之间的距离是1000km
// 求解 小茗同学和哥哥 经过多少个小时才能相遇?
public class duyi{
public static void main(String[] args){
int num = 0;
int hour = 0;
while(num<1000){
num+=7;
num+=18;
hour++;
}
System.out.println("小茗同学和哥哥经过"+hour+"个小时才能相遇");
}
}
19、请解下面一个应用题
// 有一个瓜农卖西瓜 一车西瓜总共1020个
// 每天卖掉总数的一半 多两个
// 求解瓜农几天才能把所有的西瓜都卖完?
public class duyi{
public static void main(String[] args){
int sum=1020;
int hour=0;
while(sum>0){
sum/=2;
sum-=2;
hour++;
}
System.out.println("瓜农"+hour+"天能把所有的西瓜都卖完");
}
}
=====================================================
关于数组 #很重要 很重要 很重要 重要的事情说3遍!!
20、创建一个数组 用来存储1-100之间的偶数,并输出
public class duyi{
public static void main(String[] args){
int[] array = new int[50];//创建一个数组
for(int i=0;i<array.length;i++){//将偶数存入数组
array[i] = 2*i +2;
}
for(int v:array){
System.out.println(v);
}
}
}
21、创建一个数组用来存储1-100之间的奇数,并输出
public class duyi{
public static void main(String[] args){
int[] array = new int[50];
for(int i=0;i<array.length;i++){
array[i]=2*i+1;
}
for(int v:array){
System.out.println(v);
}
}
}
22、给定两个数组a{1,2,3,4} b{5,6,7,8} 将两个数组内的元素对应位置互换
//方法一
public class duyi{
public static void main(String[] args){
int[] a = {1,2,3,4};
int[] b = {5,6,7,8};
for(int i =0;i<a.length;i++){
int x= a[i];
a[i]= b[i];
b[i]=x;
}
for(int v:a){
System.out.println(v);
}
for(int v:b){
System.out.println(v);
}
}
}
//方法二
public class duyi{
public static void main(String[] args){
int[] a = {1,2,3,4};
int[] b = {5,6,7,8};
int[] temp =a; //temp临时的
a = b;
b = temp;
for(int v:a){
System.out.println(v);
}
for(int v:b){
System.out.println(v);
}
}
}
23、给定一个数组a{1,2,3,4,5,6} 将这个数组中的元素头尾对应互换位置
public class duyi{
public static void main(String[] args){
int[] a = {1,2,3,4,5,6};
for(int i =0;i<a.length/2;i++){
int x = a[i];
a[i] = a[(a.length-1)-i];
a[(a.length-1)-i] = x;
}
for(int v:a){
System.out.println(v);
}
}
}
24、给定一个数组a{1,2,3,4,5,6} 计算数组所有元素的平均值
public class duyi{
public static void main(String[] args){
int[] a={1,2,3,4,5,6} ;
double sum = 0.0;
for(int i = 0;i<a.length;i++){
sum+=a[i];
}
double avg = sum/a.length;
System.out.println(avg);
}
}
25、给定一个数组a{1,3,5,7,9,0,2,4,6,8} 找寻数组中的最大值和最小值(极值问题)
public class duyi{
public static void main(String[] args){
int[] a={1,3,5,7,9,0,2,4,6,8};
int max = a[0];
int min = a[0];
for(int i=1;i<a.length;i++){
if(a[i]>max){
max =a[i];
}
if(a[i]<min){
min = a[i];
}
}
System.out.println("最大值为:"+max);
System.out.println("最小值为:"+min);
}
}
26、给定两个数组a{1,2,3} b{4,5} 合并两个数组 (创建一个新的数组5长度)
public class duyi{
public static void main(String[] args){
int[] a={1,2,3};
int[] b={4,5};
int[] c =new int[a.length+b.length];//只有长度 元素默认值0
for(int i = 0;i<c.length;i++){
if(i<a.length){
c[i] = a[i];
}else{
c[i] = b[i-a.length];
}
}
for(int v:c){
System.out.println(v);
}
}
}
27、给定一个数组a{1,2,3,9,4,5} 按照数组中的最大值位置 将数组拆分成两个{1,2,3} {4,5}
public class duyi{
public static void main(String[] args){
int[] a={1,2,3,9,4,5};
int max = a[0];
int index = 0;
for(int i = 1;i<a.length;i++){
if(max<a[i]){
max = a[i];
index = i;
}
}
System.out.println("最大值为:"+max);
System.out.println("最大值位置:"+index);
int[] newa = new int[index];
int[] newb = new int[a.length-index-1];
for(int i = 0;i<newa.length;i++){
newa[i]= a[i];
}
for(int i=0;i<newb.length;i++){
newb[i] = a[(index+1)+i];
}
for(int v:newa){
System.out.println(v);
}
System.out.println("------");
for(int v:newb){
System.out.println(v);
}
}
}
28、给定一个数组a{1,2,3,0,0,4,5,0,6,0,7} 去掉数组中的0元素
// (创建一个新数组 非零元素挑出来)
public class duyi{
public static void main(String[] args){
int[] oldArray = {1,2,3,0,0,4,5,0,6,0,7};
int count = 0;
for(int i = 0;i<oldArray.length;i++){
if(oldArray[i] !=0){
count++;
}
}
System.out.println("原数组非零元素的个数:"+count);
int[] newArray = new int[count];
int index = 0;
for(int i =0;i<oldArray.length;i++){
if(oldArray[i] !=0){
newArray[index] = oldArray[i];
index++;
//或者newArray[index++] = oldArray[i];
}
}
for(int v:newArray){
System.out.println(v);
}
}
}
29、创建一个数组 存储2-100之间的素数(质数)
public class duyi{
public static void main(String[] args){
int count = 0;
for(int i=2;i<100;i++){
boolean b = false;
for(int j=2;j<=i/2;j++){
if(i%j==0){
b=true;
break;
}
}
if(!b){
count++;
}
}
System.out.println("素数的个数为:"+count);
int[] primeNumber = new int[count];
int index=0;
for(int i=2;i<100;i++){
boolean b = false;
for(int j=2;j<=i/2;j++){
if(i%j==0){
b=true;
break;
}
}
if(!b){
primeNumber[index++]=i;
}
}
for(int v:primeNumber){
System.out.println(v);
}
}
}
30、数组元素的冒泡 排序,
括号里的也应都是该会的(选择 插入 快速 希尔 堆排序 桶排序 归并排序 递归.....)
public class duyi{
public static void main(String[] args){
int[] array={1,5,4,6,9,8,2,3,7};
for(int i = 1;i<array.length;i++){
for(int j = array.length-1;j>=i;j--){
if(array[j]<array[j-1]){//升序 array[j]>array[j-1]降序
int temp = array[j];
array[j] = array[j-1];
array[j-1] = temp;
}
}
}
for(int value:array){
System.out.println(value);
}
}
}