JAVA复习题

练习1——给小学生出100以内的加减法题,结果也不能超100:

出5个题,随机产生数据,随机做加减法,最后给出正确率,如图所示:

提示:产生0-99之间的随机数字:int number = (int)(Math.random()*100);

要求:代码规范,有注释,能正确运行出结果,.java源文件打包后,以自己名字命名提交。

提示:从控制台读入数据用Scanner类

Scanner input = new Scanner(System.in);

int i = input.nextInt();

Code

		/**
		 * 作者:xxx
		 * 功能:5道加减法算术题
		 * 隐含条件:得数不得超过100,不能有负数
		 */
package Sjx29;

import java.util.Scanner;

public class Cs01 {

	public static void main(String[] args) {


				//初始化变量
				int count = 5;  //计数器
				int a,b,i = 0;
				int right = 0,result = 0;
				Scanner input = new Scanner(System.in); //输入语句
				System.out.println();  //syso,回车【快捷键】
				System.out.println("开始答题了,你准备好了吗?");
				
				//为什么不能用for循环,用while循环--->for循环的i会多加一个才结束
//				for (int i = 0; i < count; i++) {
				while(i < 5) {
					a = (int)(Math.random()*101); //产生0-100随机数【减数】
					b = (int)(Math.random()*101); //产生0-100随机数[被减数]
					//随机产生数,是奇数-->令符号为“-”号;反之..
					int op = (int)(Math.random()*101);
					
					if(op % 2 == 0) {
						System.out.print(a+ "+" +b+ "=");
						result = a + b;
					}else {
						if(a >= b) {
							System.out.print(a+ "-" +b+ "=");
							result = a - b;
						}else {
							System.out.print(b+ "-" +a+ "=");
							result = b - a;
						}
						
					}
					//得数不能超过100
					if( result > 100) {
						System.out.println("得数超过100,此题无效,继续作答");
						continue;
					}
					
					
					int inputresult = input.nextInt(); //用户输入的数
					if( inputresult == result ) {
						right++;
						System.out.println("正确!");
					}else {
						System.out.println("错误!");
					}
					i++; //while循环的结构
				}
				System.out.println("分数:" + (right * 20));
			}


		}


练习2——用*打印图案:

需求说明:打印直角三角形

提示:使用二重循环

/**
 * 作者:xxx
 * 功能:打印直角三角形
 */
package Sjx29;
import java.util.Scanner;
public class Zj01 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("输入打印的行数:");
		int line = input.nextInt();
		
		for (int i = 1; i <= line; i++) {
			for (int j = 1; j <= 2*i-1; j++) 
				System.out.print("*");
				
			System.out.println();
			}
	}

}

练习3——用*打印图案:

需求说明:打印等腰三角形:

提示:使用二重循环

/**
 * 作者:xxx
 * 功能:打印等腰三角形
 */
package Sjx29;

import java.util.Scanner;

public class Sjx01 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入打印行数:");
		int line = input.nextInt();
        //打印三角形 5行
        for (int i=1; i<=line; i++){
            for (int j=line; j>=i; j--){
                System.out.print(" ");  //注意不要换行
            }
            for (int j=1; j<=i; j++){
                System.out.print("*");
            }
            for (int j=1; j<i; j++){
                System.out.print("*");
            }
            System.out.println();
        }
 
	}

}

法2

 /*
 * 作者:xxx
 * 功能:打印等腰三角形(法2)
 */
package Sjx29;

import java.util.Scanner;

public class Sjx02 {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入打印行数:");
		int line = input.nextInt();
		for (int i = 1; i <= line; i++) {
			for (int k = 1; k <= line - i; k++) 
				System.out.print(" ");
			
			for (int j = 1; j <= 2*i - 1; j++) 
				System.out.print("*");
			System.out.println();
		}
			
	}

}

附加题1——用*打印图案:

需求说明:打印菱形:

提示:使用二重循环

/**
 * 作者:xxx
 * 功能:打印菱形
 */
package Sjx29;
import java.util.Scanner;
import javafx.scene.shape.Line;
public class Lingx01 {

	public static void main(String[] args) {
		int line;
		Scanner input = new Scanner(System.in);
		do {
			System.out.println("请输入奇数行数:");
			line = input.nextInt();
		}while(line % 2 == 0);
		for (int i = 1; i <= line/2+1; i++) {
			for (int k = 1; k <= line - i; k++) 
				System.out.print(" ");
			for (int j = 1; j <= 2*i-1; j++) 
				System.out.print("*");
				
			System.out.println();
		}
		for (int i = 0; i < line / 2; i++) {
			for (int k = 0; k <= i+2 ; k++) 
				System.out.print(" ");
			for (int j = 0; j < 2*(line/2-i)-1; j++) 
				System.out.print("*");
			System.out.println();
		}

	}

}

附加题2——猜数小游戏

需求说明:

随机生成一个0~99(包括0和99)的数字,从控制台输入猜测的数字,输出提示太大还是太小,只允许猜3次

/**
 * 作者:xxx
 * 任务:猜数字
 */
package Sjx29;
import java.util.Random;
import java.util.Scanner;
public class Caishu {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int guess,count = 0;
		//生成0-99随机数
//		Random random = new Random();
//		int num = random.nextInt(100);
	
		int num = (int)(Math.random()*100); //生成0-99随机数
		System.out.println("答案为: " + num);
		do{
			
			System.out.println("请猜数:");
			guess = input.nextInt();
			if(guess > num) {
				System.out.println("猜大了");
			}
			else if (guess < num) {
				System.out.println("猜小了");
			}
			
			count++; //虽然从0开始,但是算间隔数
			if(count == 3)
				break;
		}while(num != guess);
		System.out.println("count:"+count);
		
		//边界问题
		if(count <= 3 && num == guess ) {
			System.out.println("猜对了");
		}
		
		else {
			System.out.println("很遗憾,数字为:"+num);
		}
	}

}

总结

逻辑不强,注意边缘问题,找规律

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值