2021年6月23日 星期三

計概15-10JAVA程式語言-檢定試題

【丙級電腦軟體應用試題】

401.下列何者是使得Java程式能夠完成跨平台(cross platform)運作的主要機制? (1)例外處理 (2)物件導向 (3)多執行緒(multi-thread) (4)虛擬機器。[1080317-55]

 

【乙級電腦軟體應用試題】

101.若收到一個副檔名為.classJava Applet程式,您該如何啟動它? (1)直接可在IE執行 (2)需要連上WWW伺服器方可執行 (3)需重新編譯方能執行 (4)要另存副檔名為.bat的新檔案方可被執行。[1050320]

Java Applet可在IE上直接執行。

 

102.下列何種機制使得Java能夠完成跨平台(Cross Platform)運作? (1)虛擬機器 (2)多執行緒(Multi-thread) (3)物件導向 (4)例外處理。[1051106-10]

Java能夠跨平台運作,是因為採用JVM(Java Virtual Machine模式)

 

203.下列何者所開發之程式,需要虛擬機器(Virtual Machine)才能正常執行? (1)COBOL (2)Java (3)C++ (4)Assembly[1060319-03]

 

104.Android系統中SDK(Software Development Kit)開發環境主要使用的程式語言是 (1)Java (2)Python (3)Object-C (4)C#[1070715-30]

2021年6月17日 星期四

計概15-10JAVA程式語言-統測試題

【四技試題】

C01.請問下列程式語言中,何者屬於「物件導向」程式語言(Object-Oriented Programming Language) (A)BASIC (B)C (C)Java (D)Assembly[103資電]

 

2021年4月9日 星期五

計概15-10JAVA程式語言-公職試題

【選擇題】

D01.下列Java程式的執行結果為何? (A)三個數字不相等三個數字不相等 (B)三個數字相等三個數字相等 (C)三個數字不相等三個數字相等 (D)三個數字相等三個數字不相等。[109地方四等電子]

class A {

  public void op(int a, int b, int c) {

    System.out.println("三個數字不相等");

  }

  public void op(double a, int b, int c) {

    System.out.println("三個數字相等");

  }

  public static void main(String[] args) {

    A demo = new A();

    demo.op(3.0, 3, 4); 三個數字相等

    demo.op(3, 3, 3); 三個數字不相等

  }

}

 

C02.下列對於C++Java的比較何者錯誤? (A)兩者都支援exception handling (B)兩者都支援generic programming (C)兩者都支援operator overloading (D)兩者都支援function overloading[109身心四等]

運算子多載(operator overloading)是多型的一種。運算子(+===)被當作多型函式。C++支援,JavaC不支援。

 

B03.請問下列Java程式的執行結果為何者? (A)Test1 (B)Test1 Test2 (C)Test2 (D)Test2 Test1[109身心四]

class B { 父類別

  public void show Message() {

    System.out.println("Test1"); 輸出Test1

    }

}

class C extends B { 子類別

  public void showMessage() {

    super.showMessage();

    System.out.println("Test2"); 輸出Test2

  }

}

class A {

  public static void main(String[]args) {

    C test = new C();

    test.showMessage();

  }

}

 

C04.有關例外(exception)處理,下列敘述何者錯誤? (A)當例外發生時,處理器會在執行引發例外的指令的過程中暫時停止,由作業系統或使用者定義的例外處理函式查看例外原因,並做適當的處理 (B)當例外發生時,處理器會利用不同的暫存器來記錄例外的原因與保存肇因指令的位址,以方便作業系統進行後續處理 (C)當例外如:未定義的指令發生時,作業系統會試著排除問題,以確保該程式可以繼續執行,不可以終止程式執行 (D)處理不精確的例外(imprecise exceptions)時,需要作業系統的協助以精確判斷那一道指令造成例外。[109普考資處]

當執行過程中發生例外時,會按照事先設計的程式碼來處理例外,程式也能正常的繼續執行。

 

D05.Java程式中,若子類別(Subclass)的方法(Method)與父類別(Superclass)的方法具有相同的方法名稱、參數(Parameter)數量、參數型態(Type)、以及回傳(Return)型態,僅方法內部實作不同,則稱為下列物件導向程式的何種設計方式? (A)複製(Copy) (B)委派(Delegation) (C)多載(Overloading) (D)覆寫(Overriding)[109普考資處]

Java的覆寫:子類別繼承父類別時,方法名稱、參數型態與數量、回傳值的資料型態都必須相同,只有改寫方法內容。

 

A06.下列的Java語言程式執行後之輸出為何? (A)16 (B)20 (C)74 (D)80[109普考電子]

Import java.lang.*;

Import java.util.*;

class test

{

 public static void main(String argv[])

 {

   StringBuilder sb = new StringBuilder();

   StringTokenizer st;

   for (int i = 0; i < 5; i++)

     if ((i & 0x00000001) == 0)

       sb.append("This is a test");

     else

       sb.append("That is a pencil");

   st = new StringTokenizer(sb.toString(), "ts");

   System.out.println(st.countTokens());

 }

}

執行結果StringThis is a testThat is a pencilThis is a testThat is a pencilThis is a test

countTokens()StringTokenizer分成16

 

A07.若執行以下的Java程式碼,則螢幕上的輸出數字依序為何? (A)162636 (B)182838 (C)232629 (D)323538[109關務四等]

public class Array3D{

  public static void main(String[] args){

    int[][][] array = {

      {{11,12,13}, {14,15,16}, {17,18,19}},

      {{21,22,23}, {24,25,26}, {27,28,29}},

      {{31,32,33}, {34,35,36}, {37,38,39}},

      };

    for (int i = 0; i < array.length; i++){

      System.out.println(array[i][1][2]);

    }

  }

}

[0][1][2]=16[1][1][2]=26[3][1][2]=36

 

C08.關於Java程式語言之敘述,下列何者正確? (A)Java支援如同C++程式語言的多重繼承 (B)Java中,可直接寫程序,而不用定義任何類別 (C)Java中,一個應用程式是一堆類別與這些類別實例的集合 (D)Java程式以直譯器(interpreter)執行,只允許單一執行緒。[109鐵路員級]

(A)移除C++的運算子重載和多重繼承特性,用介面取代。(B)從定義類別出發,再定義靜態方法(static method)(D)將原始碼編譯成位元組碼,再依賴不同平台的虛擬機器來解釋執行位元組碼,具有「一次編寫,到處執行」的跨平台特性。

 

B09.Java語言中類別(class)與介面(interface)中關於擴充(extend)的描述,下列何者正確? (A)一個類別無法擴充多重介面 (B)一個類別無法擴充多重類別 (C)一個介面無法擴充多重介面 (D)一個介面無法擴充多重類別。[110身心五等]

C++支援多重繼承(一個類別擁有多個父類別稱為多重繼承),但Java不直接支援多重繼承,必須透過介面來完成。

 

D10.若執行下列的Java程式碼,則螢幕上輸出的英文字母依序為何? (A)pcc (B)pcp (C)ppcp (D)ppcpc[110身心四等]

Class Parent{

  Parent(){

    System.out.println('p');

  }

}

Class Child extends Parent{

  Child(){

    System.out.println('c');

  }

}

Public class ClassTest{

  Public static void main(String[] args){

    Parent p = new Parent(); 呼叫自身,印出''p''

    Child c = new Child(); 先呼叫Parent,印出''p'',再呼叫自身,印出''c'

    Parent x = new Child(); 先呼叫Parent(); 印出"p",再呼叫自身,印出''c''

  }

}

 

D11.Java程式設計語言中,那個資料型態不是一個原始型態(primitive type) (A)boolean (B)int (C)double (D)string[110國安五等]

Java資料型態的基本類型:booleanbytechardoublefloatintlongnullshort

 

B12.Java程式語言中,下列資料型態轉換何者可能造成資訊的遺失(Information Loss) (A)char資料型態轉換為float資料型態 (B)double資料型態轉換為long資料型態 (C)float資料型態轉換為double資料型態 (D)int資料型態轉換為long資料型態。[110關務四等]

由浮點數型態(double)轉為整數型態(long),小數部分會被捨去,如:12345.678(double)12345(long)

 

C13.若執行下列的Java程式碼,則螢幕上輸出的結果依序為何? (A)falsefalsefalse (B)falsetruefalse (C)truetruefalse (D)truetruetrue[110關務四等]

Public class EqualTest{

  Public static void main(String[] args){

    Integer a = new Integer(10);

    String b = "Java";

    String c = new String("Language");

    System.out.println(a == 10);

    System.out.println(b == "Java");

    System.out.println(c == "Language");

  }

}

Java中,使用equals()比較兩個字串的實質字元序列。

c中,使用==會是false

 

A14.具有名稱的方法函式,若決定其實際執行的程式碼,在程式運行(runtime)時才決定,而不是在編譯(compile time)時決定,這種方式稱為 (A)dynamic binding (B)early binding (C)static binding (D)casting[111地方四等資處]

靜態綁定(static binding)或稱早期綁定(early binding):名稱綁定發生在程序開始運行之前(編譯時)

動態綁定(dynamic binding)或稱後期綁定(late binding)、虛綁定(virtual binding):名稱綁定發生在程序運行時。

 

D15.若執行以下的Java程式碼,則螢幕上輸出的數字依序為何? (A)134 (B)1534 (C)13345 (D)133345[111地方四等資處]

public class SwitchTest{

  public static void main(String[] args){

    int i = 1;

    while(i<5){

1<5

2<5

3<5

4<5

      switch(i){

1

2

3

4

        case 1:

 

 

 

 

          System.out.println("1");

1

 

 

 

        case 2:

 

 

 

 

        case 3:

 

 

 

 

          System.out.println("3");

3

3

3

 

          break;

 

 

 

 

        case 4:

 

 

 

 

          System.out.println("4");

 

 

 

4

        default:

 

 

 

 

          System.out.println("5");

 

 

 

5

      }

 

 

 

 

      i++;

2

3

4

5

    }

  }

}

 

B16.若執行以下的Java程式碼,則螢幕上輸出的數字依序為何? (A)1234 (B)36912 (C)5678 (D)15182124[111地方四等資處]

public class ArrayReference{

  public static void main(String[] arg){

    int[] array1 = {1, 2, 3, 4};

    int[] array2 = {5, 6, 7, 8};

    int[] array3 = {9, 10, 11, 12};

    array3 = array1; array3的元素等於array1的元素

    array2 = array3; array2的元素等於array3的元素,3array都是array1的元素

    for(int counter=0; counter<array1.length; counter++){

      array1[counter]=array1[counter]+array2[counter]+array3[counter]; array1[i]3

    }

    for(int counter=0; counter<array2.length; counter++){

      System.out.println(array2[counter]); 輸出3, 6, 9, 12

    }

  }

}

 

D17.執行下列Java程式後,產生的輸出為何? (A)0 (B)1 (C)2 (D)3[111地方四等電子]

public class BoolTest{

  public static void main(String [] args){

    int result = 0;

    Boolean b1 = new Boolean("True");

    Boolean b2 = new Boolean("TRUE");

    Boolean b3 = new Boolean("False");

    if(b1 == b2) 不成立 result = 0

      result = 1;

    if(b1.equals(b2)) 成立 result + 1 = 1

      result += 1;

    if(b2 != b3) 成立 result + 1 = 2

      result += 1;

    if(!b2.equals(b3)) 成立 result + 1 = 3

      result += 1;

    System.out.println(result);

  }

}

 

D18.若是一個高階程式語言支援強型態(strong typing),有關其程式特性的敘述,下列何者錯誤? (A)一個變數會固定對應到一種型態 (B)一個運算式通常會固定對應到一種型態 (C)編譯器會檢查型態的使用是否一致 (D)比起弱型態的程式執行時間通常較長。[111身心四等]

強型態的程式執行的速度較快,時間較短。

 

C19.關於程式語言與執行,下列敘述何者錯誤? (A)8086組合語言程式經組譯器(assembler)翻譯為機器語言執行 (B)C語言程式經編譯器(compiler)翻譯為機器碼執行 (C)Java語言程式經Java虛擬機器(virtual machine)翻譯為虛擬碼執行 (D)BASIC語言程式經解譯器(interpreter)翻譯後執行。[111初考資處]

Java語言利用Java虛擬機器翻譯為目的碼(Bytecode)執行

 

C20.有關程式語言多型(polymorphism)敘述,下列何者正確? (A)Java中,可以用繼承(Inheritance)方式來實現多型;但不能用介面(Interface)方式來實現多型 (B)Java中,可以用介面方式來實現多型;但不能用繼承方式來實現多型 (C)Java中,繼承方式和介面方式兩者都可以實現多型 (D)Java中,不論用繼承方式或介面方式都不能實現多型。[111普考資處]

 

B21.使用下列那一種語言或指令集所撰寫的程式,在不同環境或平台,可能不需改寫或極小幅度改寫就能執行?(platform independent) (A)8088 assembly (B)java (C)BIOS (D)CISC[112地方四等資處]

Java的特性:1.跨平台:一次編譯,到處執行。2.物件導向。3.自動垃圾回收(Garbage Collection)

 

B22.將下列兩個java程式檔案(Ob1.java, Test.java)編譯後,執行java Test,輸出為何? (A)9 (B)13 (C)29 (D)33[112地方四等資處]

Ob1.java檔案內容如下:

public class Ob1

{

  private int x = 3, y = 3;

  public Ob1(int num)

  {

    y = 13;

  }

  public Ob1()

  {

    x = 7;

  }

  public void foo()

  {

    System.out.print(x + 2 * y);

  }

}

Test.java檔案內容如下:

public class Test

{

  public static void main(String[] args)

  {

    Ob1 m= new Ob1();

    m.foo();

  }

}

x + 2 * y = 7 + 2 * 3 = 7 + 6 = 13

 

C23.下列Java程式執行後的輸出為何? (A)4 (B)5 (C)6 (D)7[112初考資處]

public class Test

{

  public static void main (String[] args)

  {

    int a = 0;

    int b = 0;

    for (int c = 0; c < 4; c++)

c = 0

c = 1

c = 2

c = 3

    {

 

 

 

 

      if ((++a > 2))

a = 1

a = 2

a = 3 > 2

a = 5 > 2

      {

 

 

 

 

        a++;

 

 

a = 4

a = 6

      }

    }

    System.out.println (a);

  }

}

 

B24.Java程式經編譯後,會先產生什麼格式的檔案? (A)Assembly code (B)Byte code (C)Machine code (D)Virtual code[112普考電子]

Java程式編譯後會產生Byte code格式的檔案,其副檔名為.class

 

D25.Java程式中,欲在某一個類別中宣告一個類別變數(Class variable)時,我們會使用那一個存取修飾詞(Modifier) (A)public (B)protected (C)private (D)static[112鐵路員級]

使用static修飾詞來宣告靜態成員,可以與類別、欄位、方法、屬性、運算子、事件和建構函式搭配使用。