Java第一、二次实训作业

1.有1、2、3、4共4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

代码

 1 package Person;
 2 
 3 public class Sws {
 4     public static void main(String[] args) {
 5         int a,b,c,s,count;
 6         count=0;
 7         for(a=1;a<=4;a++){
 8             for(b=1;b<=4;b++){
 9                 for(c=1;c<=4;c++){
10                     if(a!=b && b!=c && a!=c){
11                             count++;
12                             s=a*100+b*10+c;
13                             System.out.println(s);
14                         }
15                 }
16             }
17         }
18         System.out.println("能组成"+count+"个不同的三位数");
19         
20     }
21 }

运行界面

2.公鸡5元/只,母鸡3元/只,小鸡3只/元,问100元买100只鸡,公鸡、母鸡、小鸡各几只?

代码

 2 package Person;
 3 
 4 public class Chicken {
 5     public static void main(String[] args) {
 6         int i,j,k;            //i公鸡,j母鸡,k小鸡
 7         for(i=0;i<20;i++){
 8             for(j=0;j<33;j++){
 9                 for(k=0;k<300;k=k+3){
10                     if(i+j+k==100 && i*5+j*3+k/3==100)
11                         System.out.println("公鸡"+i+"只"+"  母鸡"+j+"只"+"  小鸡"+k+"只");
12                 }
13             }
14         }
15         
16     }
17 }

运行界面

3.声明一个整型变量a,并赋初值5,在程序中判断a是奇数还是偶数,然后输出判断的结果

代码

 1 package Person;
 2 
 3 public class Jiou {
 4     public static void main(String[] args) {
 5             int a=5;
 6             if(a%2==0)
 7                 System.out.println("偶数");
 8             else
 9                 System.out.println("奇数");
10             
11         }
12     }

运行界面

4.实现一个数字加密器。运行时输入加密前的整数,通过加密运算后,输出加密后的结果,加密结果仍为一整数

加密规则为:加密结果 = (整数*10+5) / 2 + 3.14159

代码

 1 package Person;
 2 import java.util.*;
 3 
 4 public class Password {
 5     public static void main(String[] args) {
 6         Scanner sc= new Scanner(System.in);
 7         int i;
 8         double s;
 9         i=sc.nextInt();
10         s=(i*10+5)/2+3.14159;
11         System.out.println((int)s);
12         
13     }
14 }

运行界面

5.从键盘输入圆的半径,计算圆的面积并输出。

代码

 1 package Person;
 2 import java.util.*;
 3 
 4 public class Round {
 5     public static void main(String[] args) {
 6         Scanner sc= new Scanner(System.in);
 7         float r,s;
 8         r=sc.nextFloat();
 9         s=3.14f*r*r;
10         System.out.println(s);
11         
12     }
13 }

运行界面

6.判断输入的整数是否为素数

代码

package Person;
import java.util.*;

public class Sushu {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        int i,j;
        boolean flag=true;        //默认是素数
        j=sc.nextInt();
        if(j==1){
            flag=false;
        }
        for(i=2;i<j;i++){
           if(j%i==0){
               flag=false;
               break;
           }
        }
        if(flag){
            System.out.println(j+"是素数");
        }
        else{
            System.out.println(j+"不是素数");
        }
        
    }
}

运行界面

7.一维数组的创建和遍历。

声明并创建存放4个人考试成绩的一维数组,并使用for循环遍历数组并打印分数。要求:

首先按“顺序”遍历,即打印顺序为:从第一个人到第四个人;

然后按“逆序”遍历,即打印顺序为:从从第四个人到第一个人;

输出最高分;

输出最低分;

代码

 1 package Person;
 2 import java.util.*;
 3 
 4 public class Score {
 5     public static void main(String[] args) {
 6         Scanner sc= new Scanner(System.in);
 7         int i,max,min;
 8         int a[]=new int[4];
 9         for(i=0;i<4;i++){
10             a[i]=sc.nextInt();
11         }
12         System.out.println("成绩顺序遍历为:");
13         for(i=0;i<4;i++){
14             System.out.println(a[i]);
15         }
16         System.out.println("成绩逆序遍历为:");
17         for(i=3;i>=0;i--){
18             System.out.println(a[i]);
19         }
20         max=0;
21         for(i=1;i<4;i++){
22             if(a[max]<a[i]){
23                 max=i;
24                 i++;
25             }
26         }
27         System.out.println("最高分为:"+a[max]);
28         min=0;
29         for(i=1;i<4;i++){
30             if(a[min]>a[i]){
31                 min=i;
32                 i++;
33             }
34         }
35         System.out.println("最低分为:"+a[min]);
36         
37     }
38 }

运行界面

8.Arrays类的sort方法的理解与应用(参照110页程序)。

对无序的10个数字使用Arrays类的sort方法(可对任意类型的数组进行升序排列)进行排序。要求:

声明并初始化数组

按如下格式输出排序后的数组

sum[0] = 1

sum[1] = 2

代码

 1 package Person;
 2 import java.util.*;
 3 
 4 public class Sort {
 5     public static void main(String[] args) {
 6         int sum[]=new int[]{2,3,8,4,7,1,6,5,9,10};
 7         int i;
 8         Arrays.sort(sum);
 9         for(i=0;i<10;i++){
10             System.out.println("sum["+i+"]="+sum[i]);
11         }
12         
13     }
14 }

运行界面

 

9.一个班级的学生成绩存在长度为10的数组中,计算不及格的学生数目。

代码

 1 //一个班级的学生成绩存在长度为10的数组中,计算不及格的学生数目。
 2 package Person;
 3 
 4 public class Fail {
 5     public static void main(String[] args) {
 6         int a[]=new int[]{59,78,99,85,15,93,77,54,65,57};
 7         int count=0;
 8         for(int i=0;i<10;i++){
 9             if(a[i]<=60){
10                 count++;
11             }
12         }
13         System.out.println("不及格的学生数目为:"+count);
14     }
15 }

运行界面

 

10.身份证号码的判断。

声明String类型的字符串,保存身份证号码。编写程序判断:

该号码是否为湖南长沙的号码(判断依据:前4位为4301,即长沙号码;否则不是长沙号码)。

该号码主人的性别(判断依据:第17位为奇数,性别为男;第17位为偶数,性别为女)。

代码

 1 package Person;
 2 
 3 public class Idcard {
 4     public static void main(String[] args) {
 5         String id;
 6         id="332522199110071234";
 7         String substr=id.substring(0, 3);
 8         char mychar=id.charAt(16);
 9         
10         if(id.substring(0, 3)=="4301"){
11             System.out.println("这是长沙的号码");
12         }
13         else{
14             System.out.println("这不是长沙的号码");
15         }
16         
17         if(mychar%2==0){
18             System.out.println("性别为女");
19         }
20         else{
21             System.out.println("性别为男");
22         }
23         
24     }
25 }

运行界面

11.实现一个二维数组的转置,操作过程是将二维数组表示的矩阵对应的每一个元素number[i][j]被置为number[j][i]。要求:

可以借助一个新的数组来完成转置

如果不借助新的数组完成转置。

转置举例:

1   2   3                           1   4   7

4   5   6                           2   5   8

7   8   9                           3   6   9

代码

//实现一个二维数组的转置,操作过程是将二维数组表示的矩阵对应的每一个元素number[i][j]被置为number[j][i]。要求:
//可以借助一个新的数组来完成转置
//如果不借助新的数组完成转置。
//转置举例:
//1   2   3                           1   4   7
//4   5   6                           2   5   8
//7   8   9                           3   6   9
package Person;

public class Transpotion {
    public static void main(String[] args) {
        int a[][]={{1,2,3},{4,5,6},{7,8,9}};
        int b[][]=new int[3][3];
        int i,j;
        
        System.out.println("原数组为:");
        for(i=0;i<3;i++){
            for(j=0;j<3;j++){
                System.out.print(a[i][j]+" ");
            }
            System.out.println();
        }
        
        System.out.println("不借助新数组,倒置后的数组为:");
        for(i=0;i<3;i++){
            for(j=0;j<3;j++){
                System.out.print(a[j][i]+" ");
            }
            System.out.println();
        }
        

    }
}

运行界面

 


今日小结:

int+float=float)以及结果的强制转换最好在输出的地方进行转换(见第4题)

boolean 在java中boolean值只能是true和false,而不能用0和1代替,并且一定要小写。 (if(flag)即 flag为真 即true)(1不是素数,最小的素数是2)(见第6题)

Arrays类(需要先导入包 import Java.util.*;)中sort方法(Arrays.sort(数组名);),可对任意类型的数组进行升序排列 (String类型数组中,数字排在字母前面,大写字母排在小写字母前面)(见第8题)

猜你喜欢

转载自www.cnblogs.com/smyhhh/p/10699497.html