Java考試題1:冒泡,閏年,質(zhì)數(shù),逆序輸出

1、定義一個數(shù)組{38,59,20,11,36,44,23},通過程序找出這個數(shù)組中的最大值和最小值,并打印出來?(機試題)
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++){//外層循環(huán)n-1,按我的理解,因為兩兩比較只需比較arr.length-1次,
? ? ?數(shù)組下標是從0開始的,(0到arr.length-2有arr.length-1個數(shù))
? ? ? ? for( j = 0;j<arr.length-1;j++){//內(nèi)層循環(huán)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();//接收用戶輸入整形的數(shù)據(jù)
if(a%4==0&&a%100!=0||a%400==0){System.out.println("是閏年");}
else{System.out.println("不是閏年");}
}
}
3、求100-9999之間的質(zhì)數(shù),質(zhì)數(shù)只能被1或自身才能整除,請寫出核心代碼?
for(int i=100;i<9999;i++) {
boolean b=true;//ture? false? ?30>20
for(int j=2;j<i;j++) {//判斷從2到小于自身1的數(shù)字
if(i%j==0) {//用本身除以2到自身小于1的數(shù)字,如果能被整除,這個就不是質(zhì)數(shù)
b=false;//如果不是直接就將b設為false
break;//跳出循環(huán)
? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? }
if(b) {//如果b它不是false,那這是數(shù)字就是質(zhì)數(shù)
System.out.println(i);
? ? ? }
? ? ? ? ? ? ? ? ? ? ? }
4、循環(huán)輸入10個數(shù),之后逆序輸出這10個數(shù)?
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)+"個整數(shù)");
? ? Scanner s1=new Scanner(System.in);//聲明Scanner接收的類
? ?int b=s1.nextInt();//接收用戶輸入整形的數(shù)據(jù)
? ? a[i]=b;
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? System.out.println("逆序輸出這10個數(shù):");
? ? for(int i = 9;i>=0;i--){
? ? System.out.println(a[i]);
? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? }
1、已知數(shù)組[22,33,44,55,66],對數(shù)組數(shù)據(jù)倒置為[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、使用循環(huán)打印如下圖形:
*
***
*****
*******
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++){//外層循環(huán)n-1
? ? ? ? for( j = 0;j<arr.length-1;j++){//內(nèi)層循環(huán)n-1
? ? ? ? ? ? if(arr[j]>arr[j+1]){//從第一個開始,往后兩兩比較大小,如果前面的比后面的大,交換位置
? ? ? ? ? ? ? ? ?tmp = arr[j];
? ? ? ? ? ? ? ? arr[j] = arr[j+1];
? ? ? ? ? ? ? ? arr[j+1] = tmp;
? ? ? ? ? ? }
? ? ? ? }
? ? }
4、定義一個整型數(shù)組,接收輸入的數(shù)據(jù)并輸出,請寫出核心代碼?
int[] a= new int[10];
? ? for(int i =0;i<10;i++){
? ? System.out.print("請輸入第"+(i+1)+"個整數(shù)");
? ? Scanner s1=new Scanner(System.in);//聲明Scanner接收的類
? ?int b=s1.nextInt();//接收用戶輸入整形的數(shù)據(jù)
? ? a[i]=b;
? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? System.out.println("輸出這10個數(shù):");
? ? for(int i = 0;i<10;i++){
? ? System.out.println(a[i]);
? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }