javase_03作業

一、判斷題
、Java語言是不區分大小寫的。 錯,Java語言是嚴格區分大小寫的
、Java程序源文件的擴展名爲“.jar”。 錯,Java程序源文件的擴展名爲”.java” 
、Java程序一般應含有main方法,因爲它是所有java程序的入口。正確
、聲明main方法時,其聲明可以寫成:
Public static void main(String args[])
也可以寫成:
Public static void main(String s[])   
 不正確,P不應該大寫,應該小寫,其他地方是正確的
、假設有一個名爲Hello的java源程序,那麼編譯這個文件的命令爲javac Hello.java。
  正確
、當運行java程序時,類加載器將字節碼加載到內存中,字節碼檢驗器確認所有的字節碼是合法的並且不會破壞java的安全限制,然後解釋器讀取這些字節碼並將它們翻譯成計算機能夠執行的語言。
正確
、在java語言中,每個ASCII碼英文字符佔用8個二進制位,而每個中文漢字字符佔用16個二進制位。FALSE
正確 英文字符佔1個字節8位,中文字符佔2個字節16位
、short s = 64000語句是否正確。
不正確,超出short的取值範圍和應該在64000後面加上分號“;”

二、填空題    
、Sun公司提供了三種java開發工具:其用於工作站和個人計算機的標準開發工具爲_
java se _____,用於企業級開發的工具爲_java ee______,用於智能移動產品的工具爲__ java me______。
、Java程序中的數據類型分爲哪兩種_基本數據類型和引用數據類型__________________________。
種基本數據類型 數值型(byte short int long float double)字符型 char  
布爾型 (Boolean) true 和false
引用數據類型 類,接口,數組
、配置java開發和運行環境,通常需要配置哪兩個環境變量___path_______和________classpath____。
、在java源文件中,可以有哪幾種類型的註釋_____單行註釋 多行註釋和文檔註釋___________________________。
、查看當前java虛似機版本的java命令爲___java -version________。
、設一個java源文件的名字爲Test.java,則編譯該文件的命令爲_javac Test.java_____,運行的命令爲___java Test___。
、Java虛似機運行java程序過程爲:首先從後綴爲_.class____的文件加載代碼到內存中,然後在內存中__字節碼檢驗器檢查______代碼的合法性和安全性,然後___解釋器____執行合法和安全的代碼。
、Java語言在____1995______年由____SUN______公司第一次正式發佈的,__
詹姆斯•戈斯林(James Gosling)________被譽爲java之父。
、設Hello.java文件的內容如下:
class Hello
{
    static void main(String args[])
    {
        System.out.println(“Hello World!”);
    }
}
下面說法正確的是:D
A、    無法通過編譯,因爲main方法聲明不對。
B、    可以編譯,但不可以運行。
C、    可以編譯,並可以輸出正常結果。
D、    可以編譯,但不可以運行,因爲文件中沒有public類。
、請寫出下面程序的運行結果____12_______:
public class Test
{
    public static void main(String args[])
    {
        int i = 0;
        while(true)
        {
            if(i++>10)
            {
                break;
            }
        }
        System.out.printnln(i);
    }
}
X++和++X的區別: X++是X先參與運算再自增,++X是先自增再參與運算
、請寫出下面程序的運行結果____11_______:
public class Test
{
    public static void main(String args[])
    {
        int i = 0;
        while(true)
        {
            if(++i>10)
            {
                break;
            }
        }
        System.out.printnln(i);
    }
}
、請寫出下面程序的運行結果________4________
class Test
{
    public static void main(String args[])
    {
        int a=1,b=2;
        if((a==0)&(++b==6))
            a = 100;
        System.out.println(a+b);
    }
}
(a==0)這個條件爲false  (++b==6)這個條件首先b自增1後再參與比較,b變成了3,但這個條件也不成立,所以”a=100;”這個語句沒有執行,最後(a+b)的值爲(1+3)=4
、請寫出下面程序的運行結果_____4______________。
class Test
{
    public static int method(int x)
    {
        int j = 1;
        switch(x)
        {
            case 1:
                j++;
            case 2:
                j++;
            case 3:
                j++;
            case 4:
                j++;
            case 5:
                j++;
            default:
                j++;
        }
        return j;
    }
    public static void main(String args[])
    {
        System.out.println(method(4));
    }
}
、請寫出下面程序的運行結果_______7____________。
class Test
{
    public static void main(String args[])
    {
        int a = 2;
        switch(a)
        {
            case 1:
                a +=1;
                break;
            case 2:
                a +=2;
            case 3:
                a +=3;
                break;
            case 4:
                a +=4;
                break;
            default:
                a = 0;
        }
        System.out.println(a);
        
    }
}

三、簡答題:
、請判斷下面的程序是否能正常編譯並運行,如能編譯請寫出運行結果,如不能請改正。
    int i = 0;
    do
        System.out.println(i++);
    while(i<5);

  正確 :結果爲 0




、請指出下面程序可能出現的問題。
    class Test
    {
        public static void main(String args[])
        {
            int i = 0;
            do
{
    System.out.println(i++);
}
        }
    }
沒有while 語句,do語句沒有中止,不是正確的寫法
、請總結break、continue和return的具體用法,並寫出相應的示例程序。
break於中止當前循環中的子語句
continue 語句只能出現在循環語句中,用於跳出循環的剩餘語句塊,接着執行下一次循環
for(int i=0;i<10;i++)
 {
          if(i%2==0)
        {
               continue; 
        }
      System.out.println(i);
 }
return 用於結束當前執行的語句,並返回一個值
static int getMax(int num1,int num2,int num3)
    {      
         
        int max=num1>num2?num1:num2;
            max=max>num3?max:num3;
        return max ;
    }

四、程序題:
、    請編寫程序,計算1+3+5+……………………+1999的結果。
源程序://FindSum.java
    public class FindSum
{
    public static void main(String args[])
    {
        int n = 1999 ;
        int sum = findSum(n);
        System.out.println("從0到"+n+"之間的奇數和爲:");
        System.out.println("sum="+sum);
    }
    
    static int findSum(int n)
    {
        int sum=0;
        for(int i=0; i<=n; i++)
        {
            if(i%2==1)
                sum+=i;    
        }
        return sum;
    }
}
運行結果:
、    請定義一個整數數組,用一種排序算法對這個數組進行排序。
 源代碼://Demo42.java
public class Demo42
{
    public static void main(String args[])
    {
        int [] num = {12,45,10,23,5,123,89,411,9,78};
        
        System.out.println("排序前:");
        arrList(num);
        
        selectSort(num);
        System.out.println("排序後:");        
        arrList(num);
        
    }
    static void selectSort(int [] arr)
    {
        for(int i=0; i<arr.length-1; i++)
        {
            int pos = i;
            int max = arr[i];
            for(int j=i+1; j<arr.length;j++)
            {
                if(arr[j]>max)
                {
                    max = arr[j];
                    pos = j;
                }
            }
            exchange(arr,i,pos);
        }
            
    }
    static void exchange(int [] arr,int pos1,int pos2)
    {
        int temp;
        temp = arr[pos1];
        arr[pos1] = arr[pos2];
        arr[pos2] = temp;
    }
    static void arrList(int [] arr)
    {
        StringBuffer sb = new StringBuffer();
        for(int i=0; i<arr.length; i++)
            sb.append(arr[i] + ",");
        sb.delete(sb.length()-1,sb.length());
        System.out.println(sb);
            
    }
}
運行結果:
、    請用System.arraycopy實現數組的拷貝。
源代碼://Demo43.java
public class Demo43
{
    public static void main(String args[])
    {
        int [] num1 = {15,89,16,56,10,2,5,123,84,99,753,612};
        int [] num2 = {789,145,100,20,36,95,88,71,40,126,91,65};
        System.out.println("數組拷貝前:");
        arrList(num1);
        arrList(num2);
        
        System.arraycopy(num1,3,num2,3,6);
        System.out.println("數組拷貝後:");
        arrList(num1);
        arrList(num2);        
    }
    
    static void arrList(int [] num)
    {
        StringBuffer sb = new StringBuffer();
        for(int i=0; i<num.length; i++)
        {
            sb.append(num[i]+",");
        }
        sb.delete(sb.length()-1,sb.length());
        System.out.println(sb);
    }
}
運行結果:
、    編寫一個程序,程序裏定義三個數,並輸出這三個數的最大數。
源代碼://Demo44.java
class Demo
{
    public static void main(String args [])
    {
        int num1 = Integer.parseInt(args[0]);
        int num2 = Integer.parseInt(args[1]);
        int num3 = Integer.parseInt(args[2]);
        System.out.println("這三個數的最大值是:");
        System.out.println(getMax(num1,num2,num3));
    }
    static int getMax(int num1,int num2,int num3)
    {      
         
        int max=num1>num2?num1:num2;
            max=max>num3?max:num3;
        return max ;
    }
}

運行結果:
、    編寫一個程序,這個程序把一個整數數組中的每個元素用逗號連接成一個字符串,例如,根據內容爲[1][2][3]的數組形成內容爲“1,2,3”的字符串。 
源代碼://Demo45.java
  class arrDemo
{
    public static void main(String args [] )
    {
        int [] arr = {12,89,45,61,568,945,102,302,44,777,945,689};
        System.out.println("依次輸出數組中的元素:");
        arrList(arr);
    }
    static void arrList(int [] arr)
    {
        StringBuffer sb = new StringBuffer();
        for(int i=0; i<arr.length; i++)
            sb.append(arr[i]+",");
        sb.delete(sb.length()-1,sb.length());
        System.out.println(sb);
    }
    
}
運行結果:
、    編寫一個程序,從鍵盤上接受用戶輸入的需要轉的數,得到的一定是字符串,將此字符串轉換成十進制整數,然後打印出這個十進制整數對應的二進制形式。
源代碼://Demo46.java
class appDemo
{
    public static void main (String args [])
    {
        int num = Integer.parseInt(args[0]);
        System.out.println("輸入的整數爲:"+num);
        System.out.println("這個十進制的整數對應的二進制形式爲:");
        ten2Binary(num);
    }
    static void ten2Binary(int num)
    {
        StringBuffer sb = new StringBuffer();
        while(num>0)
        {
            int temp = num%2;
            num=num/2;
            sb.append(temp);            
        }
        sb.reverse();
        System.out.println(sb);            
    }
}
運行結果:
、     請用移位的方式打印出一個十進制整數的十六進制形式。提示:按每4個二進制位對整數進行移位和去高位處理,得到的結果就是十六進制數的一位,然後按下面三種方式之一(作爲作業,要求每種方式都用到)計算出一個十六進制數值對應的十六進制形式: 
)0-9之間的數值直接加上字符'0',9以上的數值減去10以後再加上字符'A' 
)定義一個數組,其中包含0-F這些字符,然後用要計算的數值作爲數組的索引號,即可獲得其對應的十六進制數據。 
)Character.forDigit靜態方法可以將一個十六進制的數字轉變成其對應的字符表示形式,例如,根據數值15返回字符'F'。 
源代碼://Demo47.java
class hDemo
{
    public static void main(String args[])
    {
        int num = Integer.parseInt(args[0]);
        System.out.println("輸入的整數爲:"+num);
        System.out.println("這個十進制整數對應的十六進制形式是:");
        ten2Hex(num);
    }
    static void ten2Hex(int num)
    {
        StringBuffer sb = new StringBuffer();
        char[] buf = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
        for(int i=0; i<8; i++)
        {
            int temp = num&0x000000000f;
            sb.append(buf[temp]);
            num=num>>4;
        }
        sb.reverse();
        System.out.println(sb);        
        
    }
}
運行結果:

發佈了52 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章