1. 程式人生 > >java基礎及練習題

java基礎及練習題

a* generated sca tde 字符串 ron class arr oracl

1.1基本數據類型和引用數據類型的傳遞參數區別:


基本數據類型傳遞的參數是值;
引用數據類型傳遞的參數是地址;
如:public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a=9;
        int[] arr={1,2};
        int w;
        System.out.println("第一"+a+","+arr[0]+","+arr[1]);//9,1,2
        chuandi(a,arr);
        System.
out.println("第二"+a+","+arr[0]+","+arr[1]);//9,1,100 } public static void chuandi(int a,int[] arr){ a=a+2; arr[1]=100; System.out.println(a+","+arr[0]+","+arr[1]);//11,1,100 } }

2.. private 是一個權限修飾符

private 是一個權限修飾符,可以用來修飾成員變量和成員方法,被private修飾的成員,只能在本類中被訪問 。
常見的應用:把成員變量使用private修飾,然後對外界提供getXxx()和setXxx()方法; 
如果一個類的無參和有參構造都被private修飾,則該類將無法創建對象,可將本類中的方法使用static修飾,使用   類名.方法名(); 來訪問. 
class Animal{ private Animal () {} private Animal (數據類型 變量名) {.....} public static void method(....){....} } 如外界想訪問此Animal類中的method方法,可通過Animal.method(...)

3.編制程序要求輸入整數a的平方和b的平方,若大於100,則輸出百位以上的數字,否則輸出兩數之和。




package oracle.zibo.exam;
public class Demo {
    public
static void main(String[] args) {//客戶端 // TODO Auto-generated method stub System.out.println(method(12,8)); } public static String method(int a,int b){ if((a*a+b*b)>100){ return "百位以上的數"+(a*a+b*b)/100; }else{ return "兩數之和:"+(a+b); } }


4.實現字符串的反轉,如"hgy123"可得到"132ygh"

package oracle.zibo.exam;
public class TestDemo {
    public static void main(String[] args) {
        method1();
    }
    public static void method1(){
        String str="hgy123";for(int i=str.length()-1;i>=0;i--){
            char c=str.charAt(i);
            System.out.print(c);
        }
    }
}

5.對任意函數x,返回y的值。

package oracle.zibo.exam;
import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        fun3();
    }
    public static void fun3(){
        Scanner sc=new Scanner(System.in);
        System.out.println("請輸入x的值:");        
        int x=sc.nextInt();
        int y=0;
        if(x<=1){
            y=x*x+x*2;
            System.out.println("y的值是:"+y);        
        }else if(x>1){
            y=(int) Math.sqrt(x*x+1); //Math.sqrt();取數的根次方
            System.out.println("y的值是:"+y);        
        }
    }
}

6.5 數組元素逆序

5.數組元素逆序
public class Total1 {
    public static void main(String[] args) {
        int[] arr={1,2,3,4,5};
            int start=0,end=arr.length-1;
            for (int j = 0; j < arr.length; j++) {
                int tmp = arr[start];
                arr[start] = arr[end];
                arr[end] = tmp;
                start++;
                end--;
                if(start>end){
                     break;
                }
             }
             for (int j = 0; j < arr.length; j++){
                System.out.println(arr[j]);
             }
    }
 }    

7.4 利用for循環打印 9*9 表?

public class Total1 {
    public static void main(String[] args) {
        for(int i=0;i<9;i++){
            for(int j=0;j<i+1;j++){
                System.out.print((j+1)+"×"+(i+1)+"\t");
            }
            System.out.println("");
        }
    }
}

8.3 利用for循環打印ABCDEFG...XYZ,26個大寫字母與26個小寫字母

public class Total1 {
    public static void main(String[] args) {
        char da=A;
        char xiao=a;
        for(int i=0;i<26;i++){
            System.out.println("大寫字母是:"+da+"小寫字母是"+xiao);
            da++;
            xiao++;
            //註意輸出語句在++(在後面時)前後的區別
            //System.out.println("大寫字母是:"+da+"小寫字母是:"+xiao);
        }
    }
}

9.2 輸出所有的水仙花數,所謂水仙花數是指一個數3位數,其每位數字立方和等於其 本身,如153 = 1*1*1 + 3*3*3 + 5*5*5

public class Total1 {
    public static void main(String[] args) {
        int ge=0,shi=0,bai=0;
        for(int i=100;i<1000;i++){
            ge=i%10;
            shi=i/10%10;
            bai=i/100;
            if((ge*ge*ge+shi*shi*shi+bai*bai*bai)==i){
                System.out.println(i);    
            }
        }
    }
}

java基礎及練習題