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

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);
}
}
}
}