Java第一、二次实训作业

时间:2023-03-08 22:29:29
Java第一、二次实训作业

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

代码

 package Person;

 public class Sws {
public static void main(String[] args) {
int a,b,c,s,count;
count=0;
for(a=1;a<=4;a++){
for(b=1;b<=4;b++){
for(c=1;c<=4;c++){
if(a!=b && b!=c && a!=c){
count++;
s=a*100+b*10+c;
System.out.println(s);
}
}
}
}
System.out.println("能组成"+count+"个不同的三位数"); }
}

运行界面

Java第一、二次实训作业

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 }

运行界面

Java第一、二次实训作业

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

代码

 package Person;

 public class Jiou {
public static void main(String[] args) {
int a=5;
if(a%2==0)
System.out.println("偶数");
else
System.out.println("奇数"); }
}

运行界面

Java第一、二次实训作业

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

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

代码

 package Person;
import java.util.*; public class Password {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int i;
double s;
i=sc.nextInt();
s=(i*10+5)/2+3.14159;
System.out.println((int)s); }
}

运行界面

Java第一、二次实训作业

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

代码

 package Person;
import java.util.*; public class Round {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
float r,s;
r=sc.nextFloat();
s=3.14f*r*r;
System.out.println(s); }
}

运行界面

Java第一、二次实训作业

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+"不是素数");
} }
}

运行界面

Java第一、二次实训作业

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

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

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

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

输出最高分;

输出最低分;

代码

 package Person;
import java.util.*; public class Score {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int i,max,min;
int a[]=new int[4];
for(i=0;i<4;i++){
a[i]=sc.nextInt();
}
System.out.println("成绩顺序遍历为:");
for(i=0;i<4;i++){
System.out.println(a[i]);
}
System.out.println("成绩逆序遍历为:");
for(i=3;i>=0;i--){
System.out.println(a[i]);
}
max=0;
for(i=1;i<4;i++){
if(a[max]<a[i]){
max=i;
i++;
}
}
System.out.println("最高分为:"+a[max]);
min=0;
for(i=1;i<4;i++){
if(a[min]>a[i]){
min=i;
i++;
}
}
System.out.println("最低分为:"+a[min]); }
}

运行界面

Java第一、二次实训作业

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

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

声明并初始化数组

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

sum[0] = 1

sum[1] = 2

代码

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

运行界面

Java第一、二次实训作业

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

代码

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

运行界面

Java第一、二次实训作业

10.身份证号码的判断。

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

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

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

代码

 package Person;

 public class Idcard {
public static void main(String[] args) {
String id;
id="332522199110071234";
String substr=id.substring(0, 3);
char mychar=id.charAt(16); if(id.substring(0, 3)=="4301"){
System.out.println("这是长沙的号码");
}
else{
System.out.println("这不是长沙的号码");
} if(mychar%2==0){
System.out.println("性别为女");
}
else{
System.out.println("性别为男");
} }
}

运行界面

Java第一、二次实训作业

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

代码

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

运行界面

Java第一、二次实训作业


今日小结:

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题)