java学习第二阶段,初始。。。
第一阶段结束,开始了第二阶段的学习,这个阶段主要是练习,然后反思。
拿了我们java老师的课堂编程题来练手,今天解决了一点,呵呵。。现在把题目和解决代码些出来。
asgn2pro1:
写Test.java,要求如下:
1. 传入一个int数,要求清除该数的低8位,高24位不变,将结果以十进制形式输出
2. 传入一个int数,要求将该数的低16位置1,高16位不变,将结果以十进制形式输出
3. 实现两个变量值的交换,要求不使用中间变量
asgn2pro2:
打印出四种形式的九九乘法表
形式1:
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
形式2:
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*4= 4 2*4= 8 3*4=12 4*4=16
1*3= 3 2*3= 6 3*3= 9
1*2= 2 2*2= 4
1*1= 1
形式3:
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
形式4:
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*4= 4 2*4= 8 3*4=12 4*4=16
1*3= 3 2*3= 6 3*3= 9
1*2= 2 2*2= 4
1*1= 1
asgn2pro3:
写LoopTest.java,分别使用while/do/for循环实现1x2x...x10。
asgn2pro4:
创建一个应用程序DateGenerator.java
要求提供的功能有:
// 在给定年份中 随机生成一个日期,返回的字符串格式为 YYYY-MM-DD
String getRandomDateInYear(int year)
// 给定年份和月份的情况下,从这个月中随机挑选一天,返回的字符串格式为 YYYY-MM-DD
String getRandomDateInMonth(int year, int month)
asgn2pro5:
将一个整数以二进制方式打印出来。
注意负数的处理。
还有6和7,不过悲剧的是我没解决出来。。。
现贴上上面的代码;
pro1
public static void main(String[] args) {
// TODO Auto-generated method stub
int exa=3;
int exb=4;
int i=256;
project1.method1(i);
project1.exchange(exa, exb);
}
public static void method1(int i){
/*
* 传入一个int数,要求清除该数的低8位,高24位不变,将结果以十进制形式输出
*/
System.out.println(i&255);
}
public static void method2(int i){
/*
* 传入一个int数,要求将该数的低16位置1,高16位不变,将结果以十进制形式输出
*/
//可惜没实现。。。有思路可以通知我
}
public static void exchange(int a,int b){
/*
* 实现两个变量值的交换,要求不使用中间变量
*/
System.out.println("Before exchange:a="+a+",b="+b);
a=a+b;
b=a-b;
a=a-b;
System.out.println("After exchange:a="+a+",b="+b);
}
public static void method1(){ for(int i=1;i<10;i++){ for(int j=1;j<=i;j++){ System.out.print(i+"*"+j+"="+i*j+" "); } System.out.println(); } } public static void method2(){ for(int i=9;i>0;i--){ for(int j=1;j<=i;j++){ System.out.print(i+"*"+j+"="+i*j+" "); } System.out.println(); } } public static void method3(){ System.out.println("The Formal 3:");//这种格式,可能出错,第四中显示方式为做下去,//其实和这个类似 for (int i = 1; i < 10; i++) { for (int k = 0; k < (9 - i); k++) { System.out.print(" "); } for (int j = 1; j <= i; j++) { System.out.print(j + "*" + i + "=" + j * i + " "); } System.out.println(); } }
public static void forloop(){ int j=1; for(int i=1;i<=10;i++){ j=j*i; } System.out.println(j); } public static void whileloop(){ int j=1; int i=1; while(i<11){ j=j*i; i++; } System.out.println(j); } public static void dowhileloop(){ int j=1; int i=1; do{ j=j*i; i++; }while(i<11); System.out.println(j); }
private Random random = new Random(System.currentTimeMillis()); public String getRandomDateInYear(int year) { int month = random.nextInt(12) + 1; return getRandomDateInMonth(year, month); } public String getRandomDateInMonth(int year, int month) { if (year >= 0 && year <= 99) { year += 1900; } if (year < 0 || year > 9999 || month <= 0 || month > 12) { return "YYYY-MM-DD"; } int day = random.nextInt(31) + 1; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: break; case 2: { if (isLeapYear(year)) { day = random.nextInt(29) + 1; } else { day = random.nextInt(28) + 1; } break; } case 4: case 6: case 9: case 11: day = random.nextInt(30) + 1; break; default: break; } return year + "-" + (month < 10 ? "0" : "") + month + "-" + (day < 10 ? "0" : "") + day; } public boolean isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0; }
public static void tobina (int a){ //String str=Integer.toBinaryString(a); System.out.println(Integer.toBinaryString(a)); }