第一阶段结束,开始了第二阶段的学习,这个阶段主要是练习,然后反思。
拿了我们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
// 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));
}