2019年1月11日 星期五

java 習題

1.下列選向哪些可以編譯成功?(選擇2個) B D
   A.char xy='yz';  //不能放兩個字
   B.String s2="s2";
   C.char a='\';     // 斜線不行, 除非變成 "//" 或是 /"
   D.String s="\"";
   E.int i=1+0.1;     //int 不能小數點

2.請選擇合法的敘述句。(選擇2個) B C //只有 "$" 跟"_" 底線可以使用
  A. String #s1="Hi!";
  B. int $money=1000;
  C. double _tax=0.06;
  D. double ~pi=3.14;

3.程式碼如下:

01 int i=1;
02 long I=1;
03 float f=1.0f;
04 double d=1.0;
05 sum=i+I+f+d;

請問sum應該定義成什麼資料類型? F //double 最大
A. byte
B. short
C. int
D. long
E. float
F. double

4.下列選向哪些可以編譯成功?(選擇3個)   A,B,D
  A. int i=(int)(1+1.1f+1.1);          //掛號起來轉int 會過
  B. double d=(float)(1+1.1f+1.1);   
  C. long I=1+1.1f+1.1;
  D. float f=(long)(1+1.1f+1.1);   
  E. int i=(int)1.1f+1.1;                //沒有全部跨號轉換

5.選出合法的識別字(選擇4個 )   A B C E
  A. _$i
  B. $_i
  C. javac
  D. 2i        //數字不能放前面
  E. i2



1. 7+6-5*4/3%(2+1)的結果為何? 答案是 A   

    A. 13
    B. 14
    C. 15
    D. 16
    E. 17


2.程式碼如下,請問最後結果為何? 答案: C // "+" 可以連結兩個字

    01. int i=100;
    02. String s="10";
    03. s+=i;
    04. System.out.println(s);

  A. 110
  B. 10010
  C. 10100
  D. 11000
  E. 編譯失敗

3.程式碼如下,請問最後結果為何? 答案 C //result=1 ==2 && ++i>=2; 已是錯誤沒有執行 
                                   // or一個 true 出現就執行  AND  出現 FALSE 就不做了


     01. boolean result;
     02. int i=1;
     03. result=1 = =2 && ++i>=2;
     04. System.out.println("result="+result+",i="+i);

   A. result=true , i=1
   B. result=true , i=2
   C. result=false , i=1
   D. result=false , i=2
   E. 編譯失敗


4. 程式碼如下,請問最後結果為何? 答案 :B 
    
      01. int x=1, y=1;
      02. boolean b=++x>++y;  //兩個都先加過 再比對  
      03. System.out.println(b);


   A. true
   B. false
   C. 編譯失敗
※如果為  boolean b=++x>y++; 答案會變成 Ture 因為會先 ++X  然後  比較  在 y 執行++


5.程式碼如下,請問最後結果如何? 答案:B   \\! 會將結果相反
     
      01. int x=1 , y=1;
      02. boolean b=!(x>y)^!(x<y);
      03. System.out.println(b);

    A. true
    B. false
    C. 編譯失敗


1.程式碼如下,請問最後結果如何?  答案: B  //第一個沒有誇號 所以 y= 2 會打印 所以等於B
 01. class Test{
 02.     public static void main(String args[]){
 03.        int x=2;
 04.     int y=1;
 05.        if((x==1)&&(y = = 2))
 06.            System.out.println("x=1,");
 07.            System.out.println("y=2, ");
 08.        if((x+y)==3)
 09.            System.out.println("x+y=3");
 10.        }
 11.  }
  
  A. x=1 , y=2 , x+y=3
  B. y=2 , x+y=3
  C. x=1 , y=2
  D. x+y=3
  E. 編譯失敗

2.程式碼如下,請問最後結果為何?  答案 等於 B
 01. int x=0;
 02. int y=0;
 03. do{
 04. y++;
 05. ++x;
 06. }while(x<5);
 07. System.out.println(x+","+y);

 A. 5,6
 B. 5,5
 C. 6,5
 D. 6,6
 E. 編譯失敗


3.程式碼如下,請問最後結果為何? 答案: F //Z:要在for之上
 01. class Test{
 02. public static void main(String args[]){
 03. String str;
 04. z:
 05. str="";
 06. for(int x=3;x<8;x++){
 07.    if(x==4) break;
 08.    if(x==6) break z;
 09.    str+=x;
 10.    }
 11.    System.out.println(str);
 12.   }
 13. }

 A. 3
 B. 34
 C. 345
 D. 3456
 E. 34567
 F. 編譯失敗


4.程式碼如下,請問最後果為何? 答案: D
 01. class Test{
 02. public static void main(String args[]){
 03.     int i=2000;
        04.     int j=1999;
 05.     int k=1000;
        06.     if((i>j)^((k*2)==i))
 07.        System.out.print(1);
 08.     if((j+1)!=i^((k*2)==j))
 09.        System.out.print(2);
 10.    }
 11. }

 A. 1
 B. 2
 C. 12
 D. 沒有任何輸出
 E. 執行失敗
 F. 編譯失敗


5.程式碼如下,請問最後結果為何? 答案 D
 01. class Test{
 02. public static void main(String args[]){
 03.     String str="";
 04.     z:
 05.     for(int x=0;x<3;x++){
 06.         for(int y=0;y<2;y++)
 07.             if(x==1) break;
 08.             if(x==2) break z;
 09.             str=str+x+y;
 10.          }
 11.      }
 12.      System.out.println(str);
 13.     }
 14. }

 A. 00
 B. 0001
 C. 000110
 D. 00011011
 E. 編譯失敗



 

沒有留言:

張貼留言