知识点
编程基础综合练习
1,编写程序实现对给定的 4 个整数从大到小的顺序排列。
import java.util.Arrays;
import java.util.Scanner;
public class JavaDemo {
public static void main(String[] args) {
int[] arr=new int[4];
for (int i=0;i<arr.length;i++){
Scanner sc = new Scanner(System.in);
System.out.println("请输入第"+(i+1)+"个数:");
int num = sc.nextInt();
arr[i]=num;
}
//冒泡排序
for (int i=0;i<arr.length-1;i++){
for (int j=0;j<arr.length-1-i;j++){
int temp = 0;
if (arr[j]<arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
2, 输入 3 个正数,判断能否构成一个三角形。
import java.util.Scanner;
public class JavaDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入a的值:");
int a = sc.nextInt();
System.out.println("请输入b的值:");
int b = sc.nextInt();
System.out.println("请输入c的值:");
int c = sc.nextInt();
if (triangle(a,b,c)==true){
System.out.println(a+"、"+b+"、"+c+"能组成三角形");
}else {
System.out.println(a+"、"+b+"、"+c+"不能组成三角形");
}
}
public static boolean triangle(int a,int b,int c) {
boolean compose = false;
if (a*a==b*b+c*c | b*b==a*a+c*c | c*c==a*a+b*b){
compose = true;
}
return compose;
}
}
3,编写程序,从键盘输入一个 0~99999 之间的任意数,判断输入的数是几位数?
import java.util.Scanner;
public class JavaDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入0-99999之间的任意一个数:");
int num = sc.nextInt();
if (num/10000<10 && num/10000!=0){
System.out.println("输入的数是5位数");
}else if (num/1000<10 && num/1000!=0){
System.out.println("输入的数是4位数");
}else if (num/100<10 && num/100!=0){
System.out.println("输入的数是3位数");
}else if (num/10<10 && num/10!=0){
System.out.println("输入的数是2位数");
}else if (num/10==0){
System.out.println("输入的数是1位数");
}
}
}
4,编写程序,给定一个学生成绩,给出相应等级:(要求:请用方法实现,传入成绩参数,返回等级打印)
90~100 优秀
80~89 良好
70~79 中等
60~69 及格
0~59 不及格
import java.util.Scanner;
public class JavaDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = sc.nextInt();
level(score);
}
public static void level(int score) {
if (score>=90 & score<=100){
System.out.println("优秀");
}else if (score>=80 & score<=89){
System.out.println("良好");
}else if (score>=70 & score<=79){
System.out.println("中等");
}else if (score>=60 & score<=69){
System.out.println("及格");
}else if (score>=0 & score<=59){
System.out.println("不及格");
}
}
}
5,验证“鬼谷猜想”:对任意自然数,若是奇数,就对它乘以 3 再加 1;若是
偶数,就对它除以 2,这样得到一个新数,再按上述计算规则进行计算,一直进
行下去,最终必然得到 1。(1–1000)
import java.util.Scanner;
public class JavaDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入任意自然数(1-1000):");
int num = sc.nextInt();
ghost(num);
}
public static void ghost(int num) {
int count=0;
do {
if (num%2==0){
num=num/2;
}else {
num=num*3+1;
}
count++;
}while (num!=1);
System.out.println(count);
}
}
6,某公司每月标准上班时间是160小时,每小时工资是30元。
如果上班时间超出了160小时,超出部分每小时按1.5倍工资发放。请编写程序计算员工月工资。(请用方法实现)
import java.util.Scanner;
public class JavaDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入工时:");
int time = sc.nextInt();
money(time);
}
public static double money(int time) {
double money=0;
if (time<=160){
money=time*30;
}else {
money=160*30+(time-160)*(30*1.5);
}
System.out.println("月工资为"+money+"元");
return money;
}
}
7,求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由用户控制。
import java.util.Scanner;
public class JavaDemo {
public static void main(String[] args) {
int s=0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入a的值(1-9):");
int a = sc.nextInt();
System.out.println("请输入需循环的次数:");
int count = sc.nextInt();
for (int i=0;i<count;i++){
s=s+s*10+a;
}
System.out.println("s="+s);
}
}
8,题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? (利用方法)
public class JavaDemo {
public static void main(String[] args) {
int count=10;
rebound(count);
}
public static void rebound(int count) {
double high=100;
double distance=0;
double sumDistance=0;
for (int i=0;i<count;i++){
high=high/2;
distance=distance+high*2;
}
//加上初始高度100米
sumDistance=distance+100;
System.out.println("球在第10次落地时,共经过"+sumDistance+"米");
System.out.println("第10次反弹"+high+"米");
}
}