網站首頁 文學常識 簡歷 公文文書 文學名著 實用文 人生哲理 作文 熱點話題作文
當前位置:文萃咖 > 教師之家 > 試題

工程師筆試題答案

欄目: 試題 / 發佈於: / 人氣:9.1K

 一、單項選擇題

工程師筆試題答案

1.二進制數 11101 轉化為十進制數是( )。

A.23  B.17  C.26  D.29

2.以下可以對對象加互斥鎖的關鍵字是( )。

A.synchronized  B.serialize C.volatile  D.static

 二、不定項選擇題

3.下列關於類的構造方法的描述中,正確的是( )。

A.類中的構造方法不可省略

B.構造方法必須與類同名,但方法不能與class 同名

C.構造方法在一個對象被 new 時執行

D.一個類只能定義一個構造方法

4.下列關於 Java 語言中 main 方法的描述中,正確的是( )。

A.Java 程序的 main 方法必須寫在類裏面

B.Java 程序中可以有多個 main方法

C.Java 程序的 main 方法中,如果只有一條語句,可以不用大括號{}括起來

D.Java 程序中類名必須與文件名一樣

5.在類聲明中,聲明一個類不能再被繼承的關鍵字是( )。

A.private  B.abstract C.final D.static

 答案解析

一、單項選擇題

1.二進制數 11101 轉化為十進制數是( )。

A.23  B.17  C.26  D.29

答案:D。

分析:本題考察的是進制轉換的知識。本題中,二進制數 11101 對應的十進制數表示為 1*2^0 + 0*2^1 + 1*2^2 +1*2^3 + 1*2^4= 29,所以,選項 D 正確。除了人工轉換外,在 Java 語言中,也可以用如下方法將一個二進制數轉換為十進制數:eOf("11101",2) 。所以,本題的答案為 D。

2.以下可以對對象加互斥鎖的關鍵字是( )。

A.synchronized  B.serialize C.volatile  D.static

答案:A。

分析:本題考察的是 Java 關鍵字的知識。對於選項 A,synchronized(同步的)是 Java 語言的關鍵字,主要用來給對象和方法或者代碼塊加鎖,當它鎖定一個方法或者一個代碼塊時,同一時刻最多隻有一個線程執行這段代碼。當兩個併發線程訪問同一個對象中的這個加鎖同步代碼塊時,同一時間只能有一個線程執行。所以,選項 A 正確。

對於選項 B,serialize 是序列化的意思,所謂對象的序列化指的是把對象轉換為字節序列的過程,所謂對象的反序列化指的是把字節序列恢復為對象的過程。通常,對象的序列化主要有以下兩種用途:

①將對象的字節序列永久地保存到硬盤上,通常存放在一個文件中;

②在網絡上載送對象的字節序列。在 Java 語言中,序列化通過 Serializable 接口來實現。所以,選項 B 不正確。

對於選項 C,在由 Java 語言編寫的程序中,有時候為了提高程序的運行效率,編譯器會做一些優化操作,把經常被訪問的變量緩存起來,程序在讀取這個變量的時候有可能會直接從寄存器中讀取這個值,而不會去內存中讀取。這樣做的一個好處是提高了程序的運行效率,但當遇到多線程編程時,變量的值可能被其他線程改變了,而該緩存的值不會做相應的改變,從而造成應用程序讀取的值和實際的變量值不一致。關鍵字 volatile 正好能夠解決這一問題,被關鍵字 volatile 修飾的變量編譯器不會做優化,每次都會從內存中讀取。所以,選項 C 不 正確。

對於選項 D,關鍵字 static 主要有以下兩種作用:第一,為某特定數據類型或對象分配單一的存儲空間,而與創建對象的個數無關。第二,希望某個方法或屬性與類而不是對象關聯在一起,也就是説,在不創建對象的情況下就可以通過類來直接調用方法或使用類的屬性。總之,被 static 修飾的屬性(方法)是類的屬性(方法),不屬於任何對象。所以,選項 D 不正確。

所以,本題的答案為 A。

 二、不定項選擇題

3.下列關於類的構造方法的描述中,正確的是( )。

A.類中的構造方法不可省略

B.構造方法必須與類同名,但方法不能與class 同名

C.構造方法在一個對象被 new 時執行

D.一個類只能定義一個構造方法

答案:C。

分析:本題考察的是 Java 語言構造方法的知識。對於選項 A,類中的構造方法是可以省略的,當省略的時候,編譯器會提供一個默認的構造方法以供使用。因此,選項 A 錯誤。對於選項 B,構造方法必須與類名相同,但是方法名也可以與類名相同。如下例所示:

public class Test{

public Test(){

tln("construct");

}

public void Test(){

tln("call Test");

}

public static void main(String[] args) {

Test a = new Test(); //調用構造方法

(); //調用 Test 方法

}

}

程序的運行結果為

construct

call Test

因此,選項 B 錯誤。對於選項 C,當一個對象被 new 的時候必定會調用構造方法。因此,選項 C 正確。對於選項 D,由於構造方法也可以重載,所以,一個類可以定義多個構造方法。因此,選項 D 錯誤。所以,本題的答案為 C。

4.下列關於 Java 語言中 main 方法的描述中,正確的是( )。

A.Java 程序的 main 方法必須寫在類裏面

B.Java 程序中可以有多個 main方法

C.Java 程序的 main 方法中,如果只有一條語句,可以不用大括號{}括起來

D.Java 程序中類名必須與文件名一樣

答案:A、B。

分析:本題考察的是 Java 基本語法的知識。

在 Java 語言中,main 方法是程序的入口方法,一個程序要想運行必須要有 main 方法,但是隻有滿足特定條件的 main 方法才能作為程序的入口方法。對於本題而言:對於選項 A,由於 Java 語言是純面嚮對象語言,所以,所有的`屬性與方法都必須定義在類裏面,而且,main 方法也不例外。因此,選項 A 正確。對於選項 B,Java 程序可以定義多個 main 方法,但是隻有 public static void main(String[]args)方法才是 Java 程序的入口方法,其他 main 方法都不是,並且這個入口方法必須被定義在類名與文件名相同的被 public 修飾的類中,如下例所示():

class T{

public static void main(String[] args) {

tln("T main");

}

}

public class Test {

// 程序入口方法

public static void main(String[] args) {

tln("Test main");

}

}

程序的運行結果為Test main從上例可以看出,這個程序中定義了多個 main 方法,但是隻有滿足特定條件的 main 方法才能作為程序的入口方法。因此,選項 B 正確。對於選項 C,在 Java 語言中,不管方法體裏有幾條語句,所有的方法體都必須用大括號{}括起來。因此,選項 C 錯誤。對於選項 D,在 Java 語言中,一個文件內部可以有多個類的存在,但只有被 public 修飾的類的名字與文件的名字相同,其他類的名字可以根據需求隨意起名字。因此,選項 D 錯

誤。所以,本題的答案為 A、B。

5.在類聲明中,聲明一個類不能再被繼承的關鍵字是( )。

A.private  B.abstract C.final D.static

答案:C。

分析:本題考察的是 Java 關鍵字的知識。

對於選項 A,關鍵字 private 是一個作用域修飾符,被關鍵字 private 修飾過的變量或方法只有當前類或對象具有訪問權限。所以,選項 A 不正確。對於選項 B,在 Java 語言中,可以通過把類或者類中的某些方法聲明為 abstract 來表示一個類是抽象類。所以,選項 B 不正確。

對於選項 C,被 final 修飾的變量為常量,當一個方法被聲明為 final 時,該方法不允許任何子類重寫,當一個類被聲明為 final 時,此類不能被繼承,所有方法都不能被重寫。所以,選項 C 正確。

對於選項 D,關鍵字 static 主要有兩種作用:第一,為某特定數據類型或對象分配單一的存儲空間,而與創建對象的個數無關;第二,希望某個方法或屬性與類而不是對象關聯在一起,也就是説,在不創建對象的情況下就可以通過類來直接調用方法或使用類的屬性。即被 static 修飾的屬性(方法)是類的屬性(方法),不屬於任何對象。所以,選項 D 不正確。

所以,本題的答案為 C。