欢迎光临散文网 会员登陆 & 注册

Java考试的题与答案2:数组最大最小值,枣,随机与冒泡,完数,月的天数,水仙,质数

2019-11-16 23:59 作者:诗书画唱  | 我要投稿

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


        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、请写出冒泡排序的核心代码?

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;


            }


        }


    }


3、循环输入10个整数,统计这10个整数中有多少个偶数。

package a1;


import java.util.Scanner;


public class a1    {


public static void main(String[] args)      {


int a=0;


    for(int i = 1;i<=10;i++){

    System.out.println("请输入第"+i+"个整数");

    Scanner s1=new Scanner(System.in);//声明Scanner接收的类


   int b=s1.nextInt();//接收用户输入整形的数据

    

if(b%2==0){a++;}

                            }


    

    System.out.println("这10个整数中有多少"+a+"个偶数");


                                              }

                  }


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. 猴子摘了一堆枣N个,第一天吃了一半,还嫌不过瘾,

又多吃了一个:第二天又吃了剩下的一半零一个:

以后每天如此,到第十天,猴子一看只剩下一个了。

问最初有多少个枣子?

package a1;


public class a1{




public static void main(String[] args) 

{

int a=1;


for(int i=10;i>=1;i-- ){System.out.println("第"+i+"天有"+a+"个桃");a=(a+1)*2;}




}


}

2.使用随机机器产生10个100以内的整数,并将其放入数组,然后用冒泡排序发将其进行排序并使用循环输出。

package a1;


import java.util.Random;




public class a1{




public static void main(String[] args) 

{      int[] nums=new int[10];//声明一个空数组储存10个数字

//使用for循环给这个数组进行赋值

for(int i=0;i<nums.length;i++) {

Random r=new Random();//声明一个随机数的对象

nums[i]=r.nextInt(100);

}

//冒泡排序

for(int i=0;i<nums.length;i++) {

for(int j=0;j<nums.length;j++) {

if(nums[i]<nums[j]) {

int temp=nums[j];

nums[j]=nums[i];

nums[i]=temp;

}

}

}

//输出的循环

for(int i=0;i<nums.length;i++) {

System.out.println(nums[i]);

}



}


}

3,输入一个年份一个月份,然后判断该月有多少天

package a1;


import java.util.Scanner;



public class a1{




public static void main(String[] args) 

{


System.out.println("输入年");





Scanner b=new Scanner(System.in);


int z=b.nextInt();







System.out.println("输入月");





Scanner b2=new Scanner(System.in);


int z2=b2.nextInt()

;









if(z%4==0&&z%100!=0||z%400==0){



int arr[]={31,29,31,30,31,30,31,31,30,31,30,31};






System.out.println("本月有"+arr[z2+1]+"天");}



else{

int arr[]={31,28,31,30,31,30,31,31,30,31,30,31};




System.out.println("本月有"+arr[z2+1]+"天");}






}


}






4、判断101-200之间有多少个素数,并输出所有素数(只能够被1和自身整除的数)。

package a1;


import java.util.Scanner;


public class a1{




public static void main(String[] args) 

{           int he=0;

for(int i=101;i<=200;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,那这是数字就是质数

he=he+1;

System.out.println(i);

      }


                      }

System.out.print("有"+he+"个质数");



}


}




5、打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

package a1;


public class a1{


 

public static void main(String[] args) 

{         




int i,j,k,n;


System.out.println("小于1000的水仙花数是");


n=100;


while(n<1000)


{i=n/100;


j=(n-i*100)/10;


k=n%10;


if(i*i*i+j*j*j+k*k*k==n)


System.out.println(n);




n++;}


}


  }








7、一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

解法一:

package a1;


public class a1{


 

public static void main(String[] args) 

{         


int n=1000; 

int r,j,i; 

int he=0;

for(i=1;i<=n; i++){ 

r = 0; 

for(j=1;j<i;j++){ 

if(i%j == 0){ 

r = r + j; 

            } 

                 } 

if(r == i){ he=he+1;

System.out.println("1000以内的第"+he+"个完数为:"+r); 

          } 



                   }

}


}







解法二:



package a1;


public class a1{


 

public static void main(String[] args) 

{         


int n=1000; 

int r,j,i; 

int he=0;

System.out.println("1000以内的所有完数为:");

for(i=1;i<=n; i++){ 

r = 0;  

for(j=1;j<i;j++){ 

if(i%j == 0){ 

r = r + j; 

            } 

                 } 

if(r == i){ he=he+1;

System.out.println(r); 

          } 



                   }

}


}



Java考试的题与答案2:数组最大最小值,枣,随机与冒泡,完数,月的天数,水仙,质数的评论 (共 条)

分享到微博请遵守国家法律