第一次月測題



1.
(單選題)下列Java代碼中,在(___)處填寫哪些代碼可以實現遍歷輸出數組元素:()。
int[] arr = {13,24,35,8,1,37};
(_________)
System.out.println(arr[i]);
}
    A.for(int i=1;i<arr.length;i++){
    B.for(int i=1;i<=arr.length;i++){
    C.for(int i=0;i<arr.length;i++){
    D.for(int i=0;i<=arr.length;i++){

   
正確答案:C
此題目考查的是Java數組的遍歷。
在Java語言中,數組的下標從0開始,所以選項A和B是錯誤的。數組的下標最大到數組的長度-1,也就是說,並不包括數組的長度,所以也就不可以<=arr.length。本題正確選項為C。
2.
(單選題)在Java中,用()關鍵字修飾的方法可以直接通過類名來調用。
    A.static
    B.final
    C.public
    D.void

   
正確答案:A
此題目考查的是Java中的static關鍵字。
在Java語言中,由static關鍵字修飾的方法為靜態方法,可以通過類名來直接調用。所以本題正確的選項為A。
3.
(單選題)在Java中,下列關於定義常量正確的是()。
    A.public static final double PI=3.14159;
    B.public static double PI=3.14159;
    C.public final double PI=3.14159;
    D.public double PI=3.14159;

   
正確答案:A
此題目考查的是Java中的常量。
在java語言中,聲明常量需要由static final關鍵字修飾,常量必須聲明的同時初始化,常量的值不能被改變。所以本題正確選項為A。
4.
(單選題)在Java中,如果Coo是類Boo的子類,類Boo是類Aoo的子類,如下描述正確的是()。
    A.Coo不僅繼承的Boo的成員,同時也繼承了Aoo中的成員
    B.Coo只繼承了Boo中的成員
    C.Coo只繼承了Aoo中的成員
    D.Coo不能繼承Aoo和Boo的成員

   
正確答案:A
此題目考查的是Java中的繼承。
在Java語言中,繼承是具備傳遞性的,所以本題描述的結果中,Coo既繼承了Boo的成員,同時也繼承了Aoo的成員,所以選項A是正確的。
5.
(單選題)下面哪一個是java中不合法的標識符()。
    A.$number
    B._count
    C.a*b
    D.num2

   
正確答案:C
此題目考查的是Java中的變量。
在Java語言中,標識符只能包含字母、數字、下划線和$符,並且不能以數字開頭。本題是a*b是不正確的。本題正確選項為C。
6.
(單選題)main方法定義正確的是( )。
    A.public static void main(String args){}
    B.public static void main(String[] args){}
    C.public void main(String[] args){}
    D.public void static void main(){}

   
正確答案:B
main方法是JAVA程序執行的入口,有固定的定義語法,該方法定義如下:
public static void main(String[] args){}
當執行某個java應用程序的時候,JVM直接運行該方法,如果該方法定義錯誤,會無法找到程序入口。
7.
(單選題)對如下類的定義
class Phone{
 public String call(){return "A"; }
 public void show(int i){     }
}
以下選項,類中語法完全正確的是( )。
    A.class NewPhone extends Phone{
     public void call(){return "B";}
     public void show(int i){}
    }
    B.class NewPhone extends Phone{
     public String call(){return "B";}
     public String  show(int i){return "C";}
    }
    C.class NewPhone extends Phone{
     public String call(){return "B";}
     void show(int i){}
    }
    D.class NewPhone extends Phone{
     public String call(){return "B";}
     public void show(int i){}
    }

   
正確答案:D
本題考查方法的重寫
方法的重寫是指,子類中的方法與父類中的方法有完全相同的方法簽名,即返回值類型,方法名,參數都完全相同。子類方法的訪問級別不能低於父類方法的訪問級別。
選項A,錯誤,call()方法返回值類型與父類的不同
選項B,錯誤,show()方法返回值類型與父類不同
選項C,錯誤,父類的show()方法的訪問級別高於子類的show()方法,
選項D正確
8.
(單選題)下列選項中,屬於計算機操作系統的是()。
    A.Oracle
    B.JVM
    C.Open Source
    D.Windows 7

   
正確答案:D
此題目考查的是Java行業知識。
如上選項中Oralce為數據庫,JVM為Java虛擬機,Open Source為開源的,Windows 7是一種計算機操作系統,所以本題正確選項為D。
9.
(單選題)下列運算結果正確的是:()。
    A.double d = 5/10+2.5;
    d結果為3.0
    B.double d = 7/2+0. 5;
    d結果為4.0
    C.double d = 5/2 + 2.5;
    d結果為5.0
    D.double d = 3.0 - 2.6;
    d結果為0.3999999999999999

   
正確答案:D
選項A 5/10java默認整型都是int,5/10運算結果為0 所以運算結果為2.5
選項B 7/2java默認整型都是int,7/2運算結果為3 所以運算結果為3.5
選項C 5/2java默認整型都是int,5/2運算結果為2 所以運算結果為4.5
選項D 2.6轉換成二進制會損失精度,所以運算結果為0.3999999999999999
D選項正確
10.
(單選題)在Java中,如下()不可以作為循環條件。
    A.i>5
    B.count==num
    C.b=str.equals("q")
    D.i++

   
正確答案:D
此題目考查的是Java的循環結構。
循環條件必須為boolean型數據,選項ABC都是boolean數據,所以選項D是錯誤的。
11.
(單選題)類Worker是類Person的子類,在類Worker的構造函數的第一條語句中有
"super();"代碼,該代碼的作用是( )。
    A.調用類Worker類的super()方法。
    B.調用類Person中的super()方法
    C.調用類Person中的無參數的構造方法。
    D.編譯錯誤,找不到該方法

   
正確答案:C
本題考查super關鍵字在構造方法的使用
super可以用來調用父類的構造方法,格式是super().
但是,super調用父類構造方法的時候,必須是子類構造方法中的第一條語句。
選項C正確,本題中就是調用父類Person中的構造方法。
12.
(單選題)下列用於判斷某個引用指向的對象是否為指定的類型的關鍵字是( )。
    A.equals
    B.isNull
    C.instanceof
    D.native

   
正確答案:C
本題考查instanceof關鍵字
在強制轉型中,為了避免出現ClassCastException,可以通過instanceof關鍵字判斷某個引用指向的對象是否為指定的類型。
語法是:obj instanceof type;
選項C正確。
13.
(單選題)有如下java代碼:
int a = -8;
String r = a > 0 ? "正數" : (a == 0 ? "0":"負數");
System.out.println(r);
正確得輸出結果是()。
    A.負數
    B.正數
    C.0
    D.編譯錯誤

   
正確答案:A
此題目考查的是Java中的三目運算符。
本題變量a的值為-8,程序先判斷a>0,結果為false,所以會執行冒號后面的,再判斷a==0為false,所以最終結果為”負數”。本題選項A 是正確的。
14.
(單選題)運行下列Java代碼后,變量c的值為:() 。
int a=15,b=10;
double c=(double)a/b;
    A.1
    B.1.5
    C.2
    D.0

   
正確答案:B
此題目考查的是Java中的算術運算符和數據類型轉換。
在java語言中,兩個整數相除,結果還是整數,小數位會被無條件舍棄。而多種基本類型參與的表達式運算中,運算結果會自動的向較大的類型進行轉換。所以(double)a/b的結果為double型的1.5,所以本題正確選項為B。
 
15.
(單選題)在Java中,將類成員的訪問權限設置為默認的,則該成員能被()
    A.同包中的類訪問
    B.其它包中的類訪問
    C.所有子類訪問
    D.所有類訪問

   
正確答案:A
此題目考查的是Java中的訪問控制修飾符
在java中:
public修飾的成員變量和方法可以在任何地方調用。
  private修飾的成員變量和方法僅僅只能在本類中調用。
  protected修飾的成員變量和方法可以被子類及同一個包中的類調用。
  默認訪問控制即不書寫任何訪問修飾符,默認訪問控制的成員變量和方法可以被同一個包中的類調用。
  所以本題正確選項為A。
16.
(單選題)下列類的定義,語法正確的是( )
    A.class Point{
       public Point(){}
       public Point(int x){}
       public Point(int y){}
    }
    B.class Point{
       public Point(){}
       public void Point(int x){}
       public Point(int x,int y){}
    }
    C.class Point{
       public Point(){}
       public Point(int x){}
       public Point(int x,int y){}
    }
    D.class Point{
       public Point(){}
       public Point(int x){}
       public int Point(int x,int y){}
    }

   
正確答案:C
本題考查構造方法的重載
構造方法的重載,需要遵守構造方法和重載的語法要求。
語法要求如下:
* 構造方法方法名必須與類名相同
* 構造方法可以有參數,可以根據傳參的方式,初始化對象的成員變量
* 構造方法的定義不能有返回值類型,即使void也不可以使用
* 一個類可以定義多個構造方法,方法名都與類名相同,參數不同,即為重載
選項A,錯誤,類中出現了兩個相同方法的定義
選項B,錯誤,構造方法不可以有返回值類型
選項C,正確
想想D,錯誤,構造方法不可以有返回值類型
17.
(單選題)分析如下Java代碼,如果想在控制台上輸出"B類的test()方法",
則在1處應填入( )。 
class A {     
 public void test() {        
  System.out.println("A類的test()方法");    
 } 

class B extends A {     
 public void test() {         
  System.out.println("B類的test()方法");    
 }     
 public static void main(String args[]) {
          // 1
 }
}
    A.A a = new B();
    a.test();
    B.A a = new A();
    a.test();
    C.B b = new A();      
    b.test();
    D.B.test();

   
正確答案:A
本題考查面向對象的特性之一多態。
實現多態的條件是繼承和重寫,定義父類型的引用指向子類的對象
本題中類B繼承了類A,子類中重寫了父類的方法test()。
選項A,在繼承和重寫的前提下,父類A類型的引用變量a指向了子類
B創建的對象。a.test(),會調用子類中的test()方法,會滿足題目要求
選項A正確。
18.
(單選題)在java中,下列程序的輸出結果是( )。 
class Point  {    
 int x;
 boolean y;    
 void output(){
  System.out.println(x);       
  System.out.println(y);     
 }     
 public static void main(String[] args) {
  Point point =new Point();        
  point.output();    
 }  
}
    A.編譯錯誤
    B.0
    true
    C.0
    false
    D.0
    0

   
正確答案:C
本題考查成員變量默認初始化
成員變量會被默認的構造方法默認初始化,int默認值為0,boolean默認初始為false
值,選項C正確。
19.
(單選題)System.out.println(3+4+"tedu"+3+4);
的打印結果:(  )
    A.34tedu34
    B.7tedu7
    C.7tedu34
    D.34tedu7

   
正確答案:C
本題考查程序的執行順序。
輸出語句中,先執行3+4,結果是7,再執行7+"tedu",結果是7tedu
再+3,結果是7tedu3,在加4,結果是7tedu34
選項C正確
20.
(單選題)以下程序運行結果是:
class Demo {
 int x;
 public static void main(String[] args)  {
  Demo d = new Demo();
  d.x = 8;
  show(d);
  System.out.println("x="+d.x);
 }
 public static void show(Demo d) {
  d.x = 7;
 }
}
    A.x=8
    B.會出現語法編譯錯誤
    C.x=7
    D.以上都不對

   
正確答案:C
本題考查調用帶有引用類型的參數
調用帶有引用類型的參數,傳遞的是對象的引用,方法中操作該參數,操作的
是傳遞到該方法中的具體對象。
本題目中,創建一個對象,變量d存儲了該對象在內存中的地址信息,通過
d.x = 8,修改了該對象的x值,然后調用show()方法,將該引用傳遞給show方法
show()方法中,再次修改了該對象的x值為7,所以最后運行結果x=7
選項C正確
21.
(單選題)給出以下代碼,請問該程序的運行結果是( )。 
public abstract class AbstractClass{
 public AbstractClass(){
  System.out.printIn("abstract class constructor!");
 } 
 public void aMethod(){
  System.out.printIn("method in the abstract class");
 }
}
    A.代碼編譯失敗,因為抽象類不能有構造器。
    B.代碼編譯失敗,因為當類不存在抽象方法時,是不能定義為抽象類的。
    C.代碼編譯成功,並且因為該類實際上不是抽象類,因此可以被實例化。
    D.代碼編譯成功,但不能被實例化。可以被擴展為非抽象類,子類的構造器可以調用抽象父類的構造器。

   
正確答案:D
本題考查抽象類
選項A錯誤,編譯成功,抽象類是可以有構造器的。
選項B錯誤,編譯成功,抽象類中可以沒有抽象方法,但是如果一個類中有抽象方法
這個類必須是抽象類。
選項C錯誤,編譯成功,但是只要是抽象類,就不能創建對象。
選項D正確,抽象類不能被實例化,只能由其子類實例化。
22.
(單選題)下列程序運行結果是( )。
public class Test {
 String str=new String("tedu"); 
 char[]ch={'x','y','z'}; 
 public static void main(String args[]){ 
  Test t = new Test(); 
  t.change(t.str,t.ch); 
  System.out.print(t.str+" and "); 
  System.out.print(t.ch);} 
 public void change(String str,char ch[]){ 
  str="tarena"; 
  ch[0]='w'; 
    }
}
    A.tedu and xyz
    B.tarena and xyz
    C.tedu and wyz
    D.tarena and wyz

   
正確答案:C
本題考查方法的調用
調用帶有引用數據類型參數的方法,傳的是引用,當在方法中操作該引用,被傳遞的參數所指向的對象將發生變化。
本題中,調用change()方法,傳遞一個字符串類型引用,和數組對象的引用,方法中
將字符串引用重新指向了一個新的字符串對象,源字符串對象不會發生變化。還是
tedu,而方法中對數組的操作,改變了源數組中第1個元素,源數組被改變后為
wyz,所以本題選項C正確
23.
(單選題)下列()選項添加到空白處,可以輸出乘法表的語句。
for(int i=1;i<=9;i++){ 
 //空白處
 System.out.println();
}
    A.for(int j=1;j<=9;j++){
      System.out.print(j+"*"+i+"="+j*i+"\t");
    }
    B.for(int j=1;j<i;j++){
      System.out.print(j+"*"+i+"="+j*i+"\t");
    }
    C.for(int j=1;i<=j;j++){
      System.out.print(j+"*"+i+"="+j*i+"\t");
    }
    D.for(int j=1;j<=i;j++){
      System.out.print(j+"*"+i+"="+j*i+"\t");
    }

   
正確答案:D
此題考查嵌套循環的用法,嵌套循環外層執行一次,內層要執行整個循環,內存循環中的循環變量與外層的循環變量
選項A會出現每次i的值都與1~9相乘
選項B會打印出不完整的乘法表
選項C會無限循環
選項D正確
24.
(單選題)int x = 10;
x = x++ +10;
System.out.println(x);
程序會輸出( )。
    A.11
    B.10
    C.21
    D.20

   
正確答案:D
本題考查后++程序的執行順序
代碼x = x++ + 10;執行順序如下
1、先執行x+10,結果為20
2、再執行x++,x值為11
3、將第一步結果賦值給x,x=20;
選項D正確
25.
(單選題)給出下面的代碼段 : 
public class Base{ 
 int w, x, y ,z;  
 public Base(int a,int b)  {  
  x=a; y=b; 
 }  
 public Base(int a, int b, int c, int d)  {  
  // ... 
  w=d; 
  z=c; 
 } 
}  
在代碼// ... 處寫入如下哪個代碼是正確的?( )。
    A.Base(a,b);
    B.x=a, y=b;
    C.this(a);
    this(b);
    D.this(a,b);

   
正確答案:D
本題考查this關鍵字的使用。
在構造函數中,調用構造函數的時候,必須使用this調用,而且必須是構造函數中的第一條語句,選項AC錯誤,選項B中,x=a必須使用分號結尾。選項D正確。
26.
(單選題)下列關於JAVA程序運行過程說法正確的是( )。
    A.Java源程序由JVM直接解釋運行
    B.Java源程序擴展名為.class,要先經過編譯,生成擴展名為.java的字節碼文件
    C.Java 源程序由不同的平台直接運行,並可查看程序的運行結果
    D.Java程序的運行必須經過編寫 、編譯 、運行 三個步驟。

   
正確答案:D
本題考查Java程序的運行過程
Java程序的運行必須經過編寫 、編譯 、運行 三個步驟。
編寫是指在Java開發環境中進行程序代碼的輸入,最終形成后綴名為.java的Java源文件。編譯是指使用Java編譯器對源文件進行錯誤排查的過程,編譯后將生成后綴名為.class的字節碼文件。運行是指使用Java解釋器JVM將字節碼文件翻譯成機器代碼,執行並顯示結果。
選項A B C均錯誤,D正確
27.
(單選題)下列程序輸出結果是( )。
class Super {
 public static void m1() {
  System.out.println("m1 in Super"); }
 public void m2() {
  System.out.println("m2 in Super"); }}
class Sub extends Super {
 public static void m1() {
  System.out.println("m1 in Sub"); }
 public void m2() {
  System.out.println("m2 in Sub"); }}
public class TestMain {
 public static void main(String args[]) {
  Super sup = new Sub();
  sup.m1();
  sup.m2();
  Sub sub = (Sub) sup;
  sub.m1();
  sub.m2(); }}
    A.m1 in Sub
    m2 in Sub
    m1 in Sub
    m2 in Sub
    B.m1 in Super
    m2 in Super
    m1 in Sub
    m2 in Sub
    C.m1 in Sub
    m2 in Sub
    m1 in Super
    m2 in Super
    D.m1 in Super
    m2 in Sub
    m1 in Sub
    m2 in Sub

   
正確答案:D
靜態方法可以被繼承和隱藏  而不能夠被重寫,因此不能實現多態,不能實現父類的引用可以指向不同子類的對象進行多態調用。
選項D正確
28.
(單選題)對於給定數組 int[] arr = {25,12,37,9,11,19};計算數組中元素的最大值,下列選項中
正確的是( )。
    A.int max = arr[0];
    for(int i=1;i<arr.length){
     if(max<arr[i]){
      max = arr[i];
     }
    }
    B.int max = arr[0];
    for(int i=1;i<=arr.length;i++){
     if(max<arr[i]){
      max = arr[i];
     }
    }
    C.int max = arr[0];
    for(int i=1;i<arr.length-1;i++){
     if(max<arr[i]){
      max = arr[i];
     }
    }
    D.int max = arr[0];
    for(int i=1;i<arr.length;i++){
     if(max<arr[i]){
      max = arr[i];
     }
    }

   
正確答案:D
本題考查for循環的使用和如何操作數組
選項A會出現編譯錯誤,for循環中,缺失表達式3,錯誤
選項B中,數組的最大下標值為數組長度-1,會出現數組越界異常,錯誤
選項C中,通過for循環訪問數組元素,會缺失最后一個元素
選項D 正確
29.
(單選題)下列選項中語法完全正確的是( )。
    A.public static void main(String args){
      x = 30;
      int y = 50;
      int z = x+y;
      System.out.println(z);
    }
    B.public static void main(String args){
      x = 30;
      int y;
      int z = x+y;
      System.out.println(z);
    }
    C.public static void main(String args){
      int x = 30;
      int y = 50;
      int z = x+y;
      System.out.println(z);
    }
    D.public static void main(String args){
      int x = 30;
      int y = 50;
      z = x+y;
      System.out.println(z);
    }

   
正確答案:C
選項A,x=30,變量x缺失類型,錯誤
選項B,變量y沒有賦值,不可參與運算,錯誤
選項C , 符合Java變量的語法要求,正確
選項D,變量z缺失類型,錯誤
30.
(單選題)下列程序輸出結果是( )。
char c = 'a'; // 'a' 的int值為97
if(c>100){
 System.out.println('A');
}else if(c>90){
 System.out.println('B');
}else if(c>80){
 System.out.println('C');
}else{
 System.out.println('D');
}
    A.A
    B.B
    C.C
    D.D

   
正確答案:B
本題考查if語句
If語句結構之一if...else if...else if.....else,此結構執行流程為,當出現表達式
結果為true,即執行語句體,整個if結構運行結束
本題中,char c = 'a',c對應的ASCII值為97
97>90結果為true,打印字符B,其他語句體不再執行,選項B正確
31.
(多選題)Java中的繼承,如下說法正確的是( )。
    A.Java支持接口之間的多繼承,也支持類之間的多繼承。
    B.Java中只支持單繼承,即一個類只能有一個父類.
    C.當兩個類存在所屬關系(is a),才使用繼承(is a,是一個。 說明該類是某類的一個特殊例子,簡單之稱為繼承。)
    D.使用繼承,可以使類之間產生關系,提供了多態的特性。

   
正確答案:BCD
選項A,錯誤,繼承可以提高代碼的復用,但是兩個類之間,如果沒有所屬關系,不可以使用繼承
選項BCD正確
32.
(多選題)下列對面向過程和面向對象描述正確的是( )
    A.面向對象以功能為核心,使用函數封裝。
    B.面向過程以功能為核心,使用函數封裝。
    C.面向對象以事物為核心,將具體的數據和功能封裝到事物中。
    D.面向過程以事物為核心,將具體的數據和功能封裝到事物中。

   
正確答案:BC
本題考查面向過程和面向對象的區別
“面向過程”是一種以過程為中心的編程思想。
就是分析出解決問題所需要的步驟,然后用函數把這些步驟一步一步實現,使用的時候一個一個依次調用就可以了。
面向過程其實是最為實際的一種思考方式,就是算面向對象的方法也是含有面向過程的思想.可以說面向過程是一種基礎的方法.它考慮的是實際的實現.一般的面向過程是從上往下步步求精.所以面向過程最重要的是模塊化的思想方法.
面向過程可以說是從細節處思考問題。
“面向對象”(Object Oriented,簡稱OO)是一種以事物為中心的編程思想。
面向對象的方法主要是把事物給對象化,對象包括屬性與行為.當程序規模不是很大時,面向過程的方法還會體現出一種優勢,因為程序的流程很清楚,按着模塊與函數的方法可以很好的組織.面向對象也可以說是從宏觀方面思考問題
選項BC正確
33.
(多選題)請選出屬於JDK的組成部分( )。
    A.支持JAVA程序運行的一組類庫
    B.JVM
    C.支持JAVA程序開發的一組開發工具
    D.一組軟件測試工具

   
正確答案:ABC
JDK:JAVA開發工具集,包含JAVA程序的運行環境和輔助JAVA開發的一組開發工具。運行環境又包括一組類庫和JVM
34.
(多選題)下列關於Linux操作系統,描述正確的是( )。
    A.Linux 是一個開源的操作系統 是一個類似Unix的操作系統
    B.Linux 是主流的服務器操作系統,廣泛應用於互聯網、雲計算、智能手機等領域
    C.Linux 中的相對路徑,使用“.”表示上一級目錄,“..”表示當前路徑
    D.Linux 中使用"pwd"命令顯示當前工作目錄的內容

   
正確答案:AB
本題考查對Linux操作系統的基本了解和命令的使用
Linux是一套免費使用和自由傳播的類Unix操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承了Unix以網絡為核心的設計思想,是一個開源的類Unix的操作系統。A選項正確
Linux操作系統誕生於1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在着許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬件設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機,是主流的服務器操作系統 B選項正確
"."表示當前路徑,“..”表示上一級路徑 C選項錯誤
 常用命令中,pwd用於顯示當前工作目錄 D選項錯誤
35.
(多選題)Eclipse是Java常用的集成開發工具,下列對Eclipse描述正確的是:()。
    A.Eclipse可以通過插件(plugin)的方式擴展其功能。
    B.Eclipse聯盟是由IBM公司捐資組建的。
    C.Eclipse使用了SWT圖形界面技術。
    D.Eclipse中采用自動對Java源程序編譯

   
正確答案:ABD
Eclipse 是一個開放源代碼的、基於Java的可擴展開發平台。就其本身而言,它只是一個框架和一組服務,用於通過插件組件構建開發環境。幸運的是,Eclipse 附帶了一個標准的插件集,Eclipse 是商業軟件公司
36.
(多選題)下面關於數組的說法中,正確的是( )。
    A.在類中聲明一個整數數組作為成員變量,如果沒有給它賦值,數值元素值為空
    B.數組可以在內存空間連續存儲任意一組數據
    C.數組必須先聲明,然后才能使用
    D.數組本身是一個對象

   
正確答案:CD
本題考查數組的基本使用
數組中元素如果是數值元素初值為0值,數組中元素類型必須一致,數組必須先聲明
再使用,數組在內存中以對象的形式存在。選項CD正確。
37.
(多選題)下列對Java變量的使用說法正確的是( )
    A.聲明變量可以指定數據類型,也可以不指定
    B.變量名采用任意命名的方式,盡量做到見名知意
    C.局部變量聲明后,要為其賦一個確定的初值后再使用
    D.變量是指在內存中開辟的存儲空間中存放的運算過程中需要用到的數據。

   
正確答案:CD
選項A錯誤,Java中的變量聲明,必須指定數據類型
選項B錯誤,Java中的變量命名必須符合標識符的規則
選項C、D說法正確
38.
(多選題)循環統計1到100之間能被7整除的整數的個數,
代碼輸出正確的是:()。
    A.int y = 1;
    int count = 0;
    while(y<=100){
     if(y/7==0)
      count++;     
     y++; 
    }
    System.out.println(count);
    B.int y = 1;
    int count = 0;
    while(y<=100){
     if(y%7==0)
      count++;     
     y++; 
    }
    System.out.println(count);
    C.int count = 0;
    for(int i=1;i<=100;i++){
     if(i%7==0)
      count++;     
    }
    System.out.println(count);
    D.int count = 0;
    for(int i=1;i<=100;i++){
     if(i/7==0)
      count++;     
    }
    System.out.println(count);

   
正確答案:BC
題目要求7的整數倍,所以應該選擇模的運算
A,D選項都是除的運算
39.
(多選題)給定java代碼如下所示,在1處新增下列(  )方法,是對show方法的重載
public class Test{ 
 public void show(int x, int y, int z) {    }
 //1
}
    A.public int show(int x,int y,float z){return 0;}
    B.public int show(int x,int y,int z){return 0;}
    C.public void show(int x,int z){}
    D.public viod show(int z,int y,int x){}

   
正確答案:AC
本題考查方法的重載規則
方法的重載必須滿足方法名相同和參數不同(類型或個數)
選項AC滿足重載的條件正確
選項BD參數都與定義的方法參數相同,不是重載。
40.
(多選題)下列關於封裝的說法正確的是( )。
    A.封裝思想的體現之一就是將屬性私有化,提供公共的方法訪問私有屬性
    B.屬性的訪問方法包括setter方法和getter方法
    C.通常情況下,setter方法用於給屬性賦值,getter方法用於獲取屬性的值
    D.包含屬性的類都必須將屬性私有化,即使用private修飾,否則無法通過編譯

   
正確答案:ABC
本題考查與封裝相關的語法現象
封裝是面向對象方法的重要原則,就是把對象的屬性和操作(或服務)結合為一個獨立的整體,並盡可能隱藏對象的內部實現細節。
選項ABC正確,規范的實體類設計。
選項D,錯誤,類中的屬性,從語法規則上,可以有非private屬性,不會出現語法
編譯錯誤
41.
(多選題)下列選項中可以實現無限循環的是:()。
    A.for(;;){}
    B.while(true){}
    C.do{}while(true);
    D.for(int i=0;i++){}

   
正確答案:ABC
此題考查無限循環的語法。
選項D有編譯錯誤,缺少分號,不滿足for循環的基本語法要求
42.
(多選題)下列對java中關鍵字final的說法正確的是( )。
    A.關鍵字final可以修飾類,方法,變量。
    B.final修飾的類,稱為final類,類中方法必須使用final修飾
    C.類中被final修飾的方法,在其子類中不能被重寫
    D.類中的變量如果使用static和final修飾,必須聲明同時初始化,不可被改變

   
正確答案:ACD
本題考查final的用法
* final可以修飾類,方法,和變量
* final修飾方法,不可以被重寫
* final修飾類,該類不能被繼承
* final修飾的變量,為常量,不可改變
選項ACD正確。
選項B錯誤,final的類中,沒有對方法是否final的限定。
43.
(多選題)對如下數組,說法正確的是( )。
int [] arr = {12,23,34,45,56,67};
    A.獲取數組中第三個元素的語法是arr[3]
    B.獲取數組中第三個元素的語法是arr[2]
    C.該數組的最后一個元素的下標值為arr.length
    D.該數組的最后一個元素的下標值為arr.length-1

   
正確答案:BD
該題目考查數組元素和長度的訪問
數組中元素通過其下標訪問語法為arr[0],
數組中元素下標從0開始,該題目中A,B
都是要求訪問第三個元素,數組中第三個元素
下標為2,所以B正確。
數組元素下標從0開始,數組長度使用leng屬性獲取
所以最后一個元素的下標值為arr.length-1,D選項正確
44.
(多選題)下列關於JDK的說法正確的是( )
    A.開發一個Java程序,需要完整的JDK
    B.運行一個Java程序,需要完整的JDK
    C.運行一個Java程序,只需要JDK中的JRE
    D.以上說法都不對

   
正確答案:AC
本題考查JDK的組成和每個組成部分的功能
JDK是Java語言的軟件開發工具包,其中包括JRE和一組開發工具
選項A,開發一個JAVA程序,需要開發工具,所以需要完整的JDK,正確
選項B,運行一個Java程序只需要JRE 錯誤
選項C,運行一個Java程序,只需要JDK中的JRE 正確
選項D,A C 選項是正確的,所以該選項是錯誤的
45.
(多選題)下列switch語句會輸出哪些字符:( )。
int i1 = 97;
int i2 = 65; 
switch (i1-i2) {
case 30:
 System.out.println('A');break;
case 31:
 System.out.println('B');break;
case 32:
 System.out.println('C');   
default:
 System.out.println('D');break;
}
    A.A
    B.B
    C.C
    D.D

   
正確答案:CD
switch語句塊中,表達式的值匹配到case語句中的常量值,會執行對應的
case中的語句,如果case語句以break語句結束,會跳出swithc語句,如果沒有break,會繼續執行該case后的case語句。
本題中,表達式結果為32,會打印字符C,但是該case沒有使用break語句,程序還會繼續執行,所以會輸出C,D字符
46.
(多選題)給出以下代碼,請問該程序的運行結果是什么?
class A{ 
 private int x=0;
 static int y=1;
 protected int z=2;
}  
class B extends A{
 void method(){ 
  System.out.println(x);
  System.out.println(y);
  System.out.println(z);
 }

下列說法正確的是( )。
    A.程序編譯錯誤,因為類B不能訪問變量x。
    B.程序編譯成功,打印輸出012。
    C.程序編譯錯誤,如果移走System.out.println(x)這條語句,
    可使編譯程序通過。
    D.程序編譯錯誤,因為變量x未在類B中定義。

   
正確答案:ACD
本題考查java中幾種訪問修飾符
public:公共的,可以在任何類中訪問
protected:受保護的,只能在同一個包中,或子類中訪問
default:只能在同一個包中的類中訪問
private:私有的,只能在本類中訪問的
本題代碼中,變量x是私有的,不能在類外部訪問,ACD正確。
47.
(多選題)Java中,下列說法正確的是( )。
    A.私有方法不能被重載
    B.靜態方法能被重載
    C.公有方法被重寫之后,可以使用private修飾。
    D.一個重寫的方法不能拋出在父類中不被檢查的異常。

   
正確答案:BD
本題考查Java中方法的重載和重寫。
類中的方法,任意方法都可以被重載。只要滿足方法名相同,參數不同,即可
實現重載。
選項A錯誤。
選項B正確。
選項C錯誤,子類重寫父類的方法,子類的方法訪問修飾符的訪問權限必須大於或等於父類的訪問修飾符的權限。
選項D正確,子類重寫父類的方法,子類的方法拋出的異常類型必須是父類方法拋出異常類型或其子類型。如果父類方法沒有定義異常,子類重寫的方法也不可以拋出異常。
48.
(多選題)下列程序中不會出現編譯錯誤的是( )
    A.short s1 = 3;
    short s2 = 5;
    s1 += s2;
    B.short s1 = 3;
    short s2 = 5;
    s1 = s1+s2;
    C.short s1 = 3;
    short s2 = 5;
    s1 = s1 * s2;
    D.short s1 = 3;
    short s2 = 5;
    s1 *= s2 ;

   
正確答案:AD
本題考查擴展賦值運算符。
Java的擴展賦值運算符,+=,-=,*=,/=, %=
x+=y等價於x=x+y,其他同理。
除了以上語法現象外,使用擴展賦值運算符運算的時候,內部隱含強制轉換。
如果出現需要類型轉換,擴展賦值運算符直接進行轉換。
選項B C都出現相同錯誤,計算結果都是int類型,都需要從int類型強制轉換到short類型 選項AD都使用擴展賦值運算符運算,自動強制轉換
AD正確
49.
(多選題)下列關於do....while循環說法正確的是:
    A.do....while循環,循環體至少執行一次
    B.do....while循環和while循環只是語法不同,沒區別
    C.do....while循環先執行循環體,再執行boolean表達式,如果為true再執行循環體
    D.以上說法都正確

   
正確答案:AC
本題考查do....while循環的用法和while循環的區別。
while和do....while的區別如下:
while循環先判斷再執行;
do....while循環先執行一次循環體,再判斷。
當初始條件不滿足循環條件時,while循環一次都不會執行;
do....while循環不管任何情況都至少執行一次,所以選項AC正確


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM