Java考试题1:冒泡,闰年,质数,逆序输出

1、定义一个数组{38,59,20,11,36,44,23},通过程序找出这个数组中的最大值和最小值,并打印出来?(机试题)
package a1;
public class a1 {
public static void main(String[] args) {
int[] arr = {38,59,20,11,36,44,23};
int i,j,tmp;
for( i = 0;i<arr.length-1;i++){//外层循环n-1,按我的理解,因为两两比较只需比较arr.length-1次,
数组下标是从0开始的,(0到arr.length-2有arr.length-1个数)
for( j = 0;j<arr.length-1;j++){//内层循环n-1
if(arr[j]>arr[j+1]){//从第一个开始,往后两两比较大
如果前面的比后面的大,交换位置
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
System.out.println("最大值为"+arr[i]);
System.out.println("最小值为"+arr[0]);
}
}
2、接收输入的年份,求该年份是否为闰年,闰年能被4整除且不能被100整除或者能被400整除,请写出核心代码?
package a1;
import java.util.Scanner;
public class a1{
public static void main(String[] args) {//void:无返回
// TODO Auto-generated method stub
System.out.println("请输入年份");
Scanner s=new Scanner(System.in);//声明Scanner接收的类
int a= s.nextInt();//接收用户输入整形的数据
if(a%4==0&&a%100!=0||a%400==0){System.out.println("是闰年");}
else{System.out.println("不是闰年");}
}
}
3、求100-9999之间的质数,质数只能被1或自身才能整除,请写出核心代码?
for(int i=100;i<9999;i++) {
boolean b=true;//ture false 30>20
for(int j=2;j<i;j++) {//判断从2到小于自身1的数字
if(i%j==0) {//用本身除以2到自身小于1的数字,如果能被整除,这个就不是质数
b=false;//如果不是直接就将b设为false
break;//跳出循环
}
}
if(b) {//如果b它不是false,那这是数字就是质数
System.out.println(i);
}
}
4、循环输入10个数,之后逆序输出这10个数?
package a1;
import java.util.Scanner;
public class a1 {
public static void main(String[] args) {
int[] a= new int[10];
for(int i =0;i<10;i++){
System.out.print("请输入第"+(i+1)+"个整数");
Scanner s1=new Scanner(System.in);//声明Scanner接收的类
int b=s1.nextInt();//接收用户输入整形的数据
a[i]=b;
}
System.out.println("逆序输出这10个数:");
for(int i = 9;i>=0;i--){
System.out.println(a[i]);
}
}
}
1、已知数组[22,33,44,55,66],对数组数据倒置为[66,55,44,33,22],请写出核心代码?
package a1;
public class a1 {
public static void main(String[] args) {
int[] arr = {22,33,44,55,66};
for(int i = arr.length-1;i>=0;i--) {
System.out.println(arr[i]); }
}
}
2、使用循环打印如下图形:
*
***
*****
*******
package a1;
public class a1 {
public static void main(String[] args) {
for(int j=1;j<=4;j++){for(int i=1;i<=j*2-1;i++){
System.out.print("*"); }
System.out.println(); } // 代码不可乱,不然会报错
}
}
3、请写出冒泡排序的核心代码?
int[] arr = {38,59,20,11,36,44,23};
int i,j,tmp;
for( i = 0;i<arr.length-1;i++){//外层循环n-1
for( j = 0;j<arr.length-1;j++){//内层循环n-1
if(arr[j]>arr[j+1]){//从第一个开始,往后两两比较大小,如果前面的比后面的大,交换位置
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
4、定义一个整型数组,接收输入的数据并输出,请写出核心代码?
int[] a= new int[10];
for(int i =0;i<10;i++){
System.out.print("请输入第"+(i+1)+"个整数");
Scanner s1=new Scanner(System.in);//声明Scanner接收的类
int b=s1.nextInt();//接收用户输入整形的数据
a[i]=b;
}
System.out.println("输出这10个数:");
for(int i = 0;i<10;i++){
System.out.println(a[i]);
}