選擇題
公共知識
【1】下列敘述中正確的是
算法是指對解題方案的准確而完整的描述, 算法不等於數學上的計算方法, 也不等於程序。
算法設計需要考慮可行性、確定性、有窮性與足夠的情報, 不能只考慮計算結果。
算法設計有窮性是指操作步驟有限且能在有限時間內完成, 如果一個算法執行耗費的時間太長, 即使最終得出了正確結果, 也是沒有意義的, 。
算法在實現時需要用具體的程序設計語言描述, 所以程序可以作為算法的一種描述方法。
算法設計需要考慮可行性、確定性、有窮性與足夠的情報, 不能只考慮計算結果。
算法設計有窮性是指操作步驟有限且能在有限時間內完成, 如果一個算法執行耗費的時間太長, 即使最終得出了正確結果, 也是沒有意義的, 。
算法在實現時需要用具體的程序設計語言描述, 所以程序可以作為算法的一種描述方法。
【2】下列敘述中錯誤的是
數據元素是一個含義很廣泛的概念, 它是數據的"基本單位", 在計算機中通常作為一個整體進行考慮和處理。
數據元素可以是一個數據也可以是被抽象出的具有一定結構數據集合, 所以數據結構中的數據元素可以是另一數據結構。
滿足有且只有一個根結點並且每一個結點最多有一個前件, 也最多有一個后件的非空的數據結構認為是線性結構, 不滿足條件的結構為非線性結構。
空數據結構可以是線性結構也可以是非線性結構。
非空數據結構可以沒有根結點, 如非性線結構"圖"就沒有根結點。
數據元素可以是一個數據也可以是被抽象出的具有一定結構數據集合, 所以數據結構中的數據元素可以是另一數據結構。
滿足有且只有一個根結點並且每一個結點最多有一個前件, 也最多有一個后件的非空的數據結構認為是線性結構, 不滿足條件的結構為非線性結構。
空數據結構可以是線性結構也可以是非線性結構。
非空數據結構可以沒有根結點, 如非性線結構"圖"就沒有根結點。
【3】13.設數據結構B = (D, R), 其中
D = { a, b, c, d, e, f }
R = { (f, a), (d, b), (e, d), (c, e), (a, c) }
該數據結構為
D = { a, b, c, d, e, f }
R = { (f, a), (d, b), (e, d), (c, e), (a, c) }
該數據結構為
數據的邏輯結構有兩個要素:一是數據元素的集合, 通常記為D; 二是D上的關系, 它反映了D中各數據元素之間的前后件關系, 通常記為R。
即一個數據結構可以表示成B = (D, R)。
其中B表示數據結構。
為了反映D中各數據元素之間的前后件關系, 一般用二元組來表示。
例如, 假設a與b是D中的兩個數據, 則二元組(a, b)表示a是b的前件, b是a的后件。
本題中R中的根結點為f, 元素順序為f→a→c→e→d→b, 滿足線性結構的條件。
即一個數據結構可以表示成B = (D, R)。
其中B表示數據結構。
為了反映D中各數據元素之間的前后件關系, 一般用二元組來表示。
例如, 假設a與b是D中的兩個數據, 則二元組(a, b)表示a是b的前件, b是a的后件。
本題中R中的根結點為f, 元素順序為f→a→c→e→d→b, 滿足線性結構的條件。
【4】19.設棧的順序存儲空間為S(1 : m), 初始狀態為top = 0。現經過一系列正常的入棧與退棧操作后, top = m + 1, 則棧中的元素個數為
棧為空時, 棧頂指針top = 0, 經過入棧和退棧運算, 指針始終指向棧頂元素。
初始狀態為top = 0, 當棧滿時top = m, 無法繼續入棧, top值不可能為m + 1。
初始狀態為top = 0, 當棧滿時top = m, 無法繼續入棧, top值不可能為m + 1。
【5】下列敘述中正確的是
循環隊列是隊列的一種順序存儲結構。
在循環隊列中, 在隊列滿和隊列為空時, 隊頭指針與隊尾指針均相同; 當需要插入的數據大於循環隊列的存儲長度, 入隊運算會覆蓋前面的數據, 發生溢出現象。
在循環隊列中, 在隊列滿和隊列為空時, 隊頭指針與隊尾指針均相同; 當需要插入的數據大於循環隊列的存儲長度, 入隊運算會覆蓋前面的數據, 發生溢出現象。
【6】設循環隊列的存儲空間為Q(1 : m), 初始狀態為 front = rear = m。經過一系列正常的操作后, front = 1, rear = m。為了在該隊列中尋找值最大的元素, 在最壞情況下需要的比較次數為
該題中1 < m, 即rear - front > 0, 則該循環隊列中的元素個數為m - 1。
此在該隊列中尋找值最大的元素, 在最壞情況下需要的比較次數為m - 1 - 1 = m - 2。
此在該隊列中尋找值最大的元素, 在最壞情況下需要的比較次數為m - 1 - 1 = m - 2。
【7】深度為7的二叉樹共有127個結點, 則下列說法中錯誤的是
滿二叉樹滿足深度為m的二叉樹最多有2m - 1個結點, 本題中二叉樹深度為7且有127個結點, 滿足27 - 1 = 127, 達到最大值, 故此二叉樹為滿二叉樹, 也是完全二叉樹。
滿二叉樹第k層上有2k - 1結點, 則該二叉樹的葉子結點數為27 - 1 = 64個。
滿二叉樹不存在度為1的結點。
滿二叉樹第k層上有2k - 1結點, 則該二叉樹的葉子結點數為27 - 1 = 64個。
滿二叉樹不存在度為1的結點。
【8】下列敘述中正確的是
二分查找法(又稱對分查找法)只適用於順序存儲的有序表。
在此所說的有序表是指線性表的中元素按值非遞減排列(即從小到大, 但允許相鄰元素值相等)。
在此所說的有序表是指線性表的中元素按值非遞減排列(即從小到大, 但允許相鄰元素值相等)。
【9】將自然數集設為整數類I, 則下面屬於類I實例的是
類是具有共同屬性、共同方法的對象的集合。
類是對象的抽象, 它描述了屬於該對象類型的所有對象的性質, 而一個對象則是其對應類的一個實例。
自然數集是全體非負整數組成的集合, A項是負數實例, B項是浮點數實例, D項是用科學計數法表示的浮點數實例。
類是對象的抽象, 它描述了屬於該對象類型的所有對象的性質, 而一個對象則是其對應類的一個實例。
自然數集是全體非負整數組成的集合, A項是負數實例, B項是浮點數實例, D項是用科學計數法表示的浮點數實例。
【10】下面屬於黑盒測試方法的是
黑盒測試方法主要有等價類划分法、邊界值分析法、錯誤推測法和因果圖等。
專業知識
【11】Java語言中, 程序封裝的最小單位是
類是java的最小單位, java的程序必須在類中才能運行, 不像C 只有方法就可以, 選項C正確, 本題答案為C。
【12】下列選項中, 標識符的定義符合命名約定的是
標識符可以由字母、數字、下畫線"-"和美元符"$"組成, 但數字不能開頭, 不能用關鍵字作標識符, 包采用完整的英文描述符, 且都是由小寫字母組成。
選項A正確, 本題答案為A。
選項A正確, 本題答案為A。
【13】下列選項中, 不可以作為類中成員變量的修飾符的是
選項A public 修飾公有屬性, 選項B private修飾私有屬性, 選項 C protected修飾受保護屬性, 選項D abstract(抽象)修飾符, 可以修飾類和方法, 不可以修飾類中成員變量。
選項D正確, 本題答案為D。
選項D正確, 本題答案為D。
【14】下列選項中, 不屬於位運算符的是
選項A為邏輯非運算符, 選項B中的"|"為位運算符。
選項C為邏輯與運算符。
選項D也是為位運算符。
本題答案為A。
選項C為邏輯與運算符。
選項D也是為位運算符。
本題答案為A。
【15】下列代碼段執行后, x, y的值分別為
int x = 3, y = 1;
boolean t = (x++ > y) || (y++ > 1);
因為第一句x = 3, y = 1; 第二句t = (x++ > y), 則t = true為真, 因為"||或"運算符只要前面為真, 整體就為真, 所以它不會再去執行后面的語句, 所以x = 4, y = 1.選項B正確。
【16】下列選項中, 不屬於Java基本數據類型的是
選項A, B, C都是基本數據類型, 選項D是引用型數據類型, 本題答案為D。
【17】下列代碼段執行后, k的值為
int a = 15, b = -5, k;
if (a > 0 && a < 10)
if (b > 0)
k = 1;
else
k = 2;
else if (b > 0)
k = 3;
else
k = 4;
因為a = 15, 所以if(a > 0 && a < 10)為true, 繼續執行下去, 又因為b = -5, 能滿足的結果就是k = 4, 選項D正確, 本題答案為D。
【18】下列代碼段執行后, s的值為
int s = 0, f = -1;
for (int i = 1; i <= 6; i++) {
s = s + f * i;
f = -f;
}
本題考查的是for循環
s = 0, f = -1;
i = 1, s = 0 + (-1) * 1, f = 1;
i = 2, s = (-1) + 1 * 2, f = -1;
i = 3, s = 1 + (-1) * 3, f = 1;
i = 4, s = -2 + 1 * 4, f = -1;
i = 5, s = 2 + (-1) * 5, f = 1;
i = 6, s = -3 + 1 * 6, f = -1;
S = 3, 跳出循環。
選項A正確, 本題答案為A。
【19】下列代碼段執行后, n的值為
int f = 1, n = 0;
while (true) {
f = f * 2;
n++;
if (f >= 128)
break;
}
while (true) { } 意思是一直執行, 所以當f >= 128, 就能跳出死循環, 當f >= 128時, n的結果為7, 選項C正確, 本題答案為C。
【20】下列代碼段執行后, s的值為
int[] a = { 1, 2, 3, 4, 5 };
int s = 0;
for (int i = 0; i < 5; i++)
if (i % 2 == 0)
s += a[i];
"%"在java中做取余操作, 本題循環中只要是2的倍數都會執行s += a[i]; 運行結果為9, 選項C正確, 本題答案為C。
【21】Java中所有類的超(父)類是
java中Object類是所有類的父類, 選項B正確, 本題答案為B。
【22】當一個類要強制其子類覆蓋它的某一方法時, 該方法必須使用的關鍵字是
public是公開的, private是私有的, final是最后的, abstract是抽象的, 父類要覆蓋子類的方法, 子類的方法必須使用關鍵字abstract。
選項C正確, 本題答案為C。
選項C正確, 本題答案為C。
【23】下列語句執行后, i的值為
String str = "rock\"n\"roll";
String str1 = "n";
int i = str.indexOf(str1);
str.indexOf(String str)返該字符串中第一次出現str字符串的下標位置, str中第一次出現n的下標位置是5.選項A正確, 本題答案為A。
【24】下列程序執行后的結果是
public class Test {
public static void main(String[] args) {
float a = 4.0f, b = 9.0f;
int c = 8;
String s = "10";
System.out.println(a + s + b + c);
}
}
"+"兩邊只要有字符串都會做拼接作用 a為數 s為字符串所以a + s = 4.010拼接作用的結果均為字符串所以剩下的均為字符串拼接.選項C正確, 本題答案為C。
【25】下列程序段的運行結果是
int[][] a = { { 1, 4, 3, 2 }, { 8, 6, 5, 7 }, { 3, 7, 2, 5 }, { 4, 8, 6, 1 } };
int i, j, k, t;
for (i = 0; i < 3; i++)
for (j = i + 1; j < 4; j++)
if (a[i][i] < a[i][j]) {
t = a[i][i];
a[i][i] = a[i][j];
a[i][j] = t;
}
for (i = 0; i < 4; i++)
< span style = "FONT-SIZE: 16px; FONT-FAMILY: "Microsoft YaHei"; WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FLOAT: none; FONT-WEIGHT: 400; COLOR: rgb(0,0,0); FONT-STYLE: normal; ORPHANS: 2; WIDOWS: 2; DISPLAY: inline !important; LETTER-SPACING: normal; TEXT-INDENT: 0px; font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial" > System.out.print(a[i][i] + " ");
</span>
考查的是二維數組和雙重for循環, 執行程序后的結果為A。
選項A正確, 本題答案為A。
選項A正確, 本題答案為A。
【26】下列關於異常的敘述中錯誤的是
catch從句的排列順序應該將最特殊的排在前面, 逐步一般化, 即子類在前, 父類在后。
選項B正確, 本題答案為B。
選項B正確, 本題答案為B。
【27】執行下列代碼段時會產生的異常是
int x = 3, y = 0, z = 0;
z = x / y;
ArithmeticException是出現異常的運算條件時, 拋出此異常, 本題報除數不能為0異常屬於此異常。
選項D正確, 本題答案為D。
選項D正確, 本題答案為D。
【28】對於Map接口, 判斷某個值是否為Map中值的方法是
containsValue(Object value) value:要查詢的Map集合的指定鍵值對象。
選項A正確, 本題答案為A。
選項A正確, 本題答案為A。
【29】下列關於"流"的說法中錯誤的是
"流"在java中通過一個管道(信道)、緩沖存儲器, 還有一些中間的程序進行傳送, 選項D不滿足條件, 本題答案為D。
【30】下列選項中, 不是過濾字節輸入流的類是
FileInputStream 用於讀取諸如圖像數據之類的原始字節流, 選項A正確, 本題答案為A。
【31】設置文件f的只讀屬性時, 可以使用的語句是
設置文件f的只讀屬性時, 可以使用的語句是f.setReadOnly(); 選項B正確, 本題答案為B。
【32】下列代碼實現了將一個文件的內容復制到另一個文件的功能。下划線處應填入的代碼是
import java.io.*;
public class test {
public static void main(String[] args) {
try {
FileInputStream is = new FileInputStream("D:\\from.txt");
FileOutputStream os = new FileOutputStream("D:\\to.txt");
byte[] str = new byte[1024];
while (is.available() > 0) {
is.__________(str, 0, 1024);
os.write(str);
}
is.___________();
os.close();
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
根據程序代碼可知要填的是講字節讀入數組, 讀取自己用read()方法, 流在使用過程中占用系統資源, 在用完時要關閉流釋放資源, 用close()釋放資源。
選項C正確。
本題答案為C。
選項C正確。
本題答案為C。
【33】窗口可接收的窗口事件類是
KeyEvent按鍵事件, AdjustmentEvent調整事件類, ComponentEvent組件事件類, 選項A正確, 本題答案為A。
【34】下列包中定義了表格組件支持類的是
javax.swing.tree針對swing樹關元件(JTree)所設計的類, javax.swing.event處理由swing組件產生的事件, 有別於AWT事件javax.swing.border包含與swing組件外框有關的類, javax.swing.table針對swing表格組件(JTable)所設計的類, 選項C正確, 本題答案為C。
【35】Swing與AWT相比, 新增加的布局管理器是
Swing繼續沿用了AWT中的布局管理器, 包括FlowLayout、BorderLayout、CardLayout、GridLayout、CridBagLayout, 另外Swing新增了一個BoxLayout布局管理器。
選項C正確, 本題答案為C。
選項C正確, 本題答案為C。
【36】在Java中, 可並發執行的最小代碼單位是
在java中, 線程是可以並發執行的最小代碼單位。
選項B正確, 本題答案為B。
選項B正確, 本題答案為B。
【37】閱讀下列程序:
public class ThreadTest3 {
public static void main(String[] args) {
Thread t1 = new Thread(new PrintString());
Thread t2 = new Thread();
t1.start();
t2.start();
}
}
class PrintString implements Runnable {
int i = 0;
public void run() {
while (true) {
System.out.println("Hello" + i);
i++;
if (i == 2)
break;
}
}
}
下列選項中, 錯誤的是
本題中java中的兩個線程並發執行, 一個通過構造函數執行, 一個只聲明沒有方法體, 運行結果只能有一個Hello0, Hello1, 選項C不符合條件, 本題答案為C。
【38】下列方法能夠用來實現線程之間同步的是
Java中用notify()、notifyAll()函數進行進程間的通信, 當等待此同步鎖的線程接到此消息, 將重新獲得對象鎖, 線程重新啟動運行。
sleep()為線程休眠函數, start()是啟動線程的, stop()方法是強行終止線程。
選項A正確, 本題答案為A。
sleep()為線程休眠函數, start()是啟動線程的, stop()方法是強行終止線程。
選項A正確, 本題答案為A。
【39】下列說法中, 正確的是
A stop方法被調用后, 將立即停止所有在start()方法中啟動的操作.C Applet的start()方法, 在Applet執行過程中, 初始化只有一次, 但啟動可以多次。
D 停止是和啟動相對應的動作。
當瀏覽器離開Applet所在的Web頁轉到其他頁時, Applet被停止。
如果瀏覽器又回到此頁, 則Applet又被啟動。
所以, 和start()方法類似, 在 Applet生命周期中, stop()方法也可能被多次調用。
選項B正確, 本題答案為B。
D 停止是和啟動相對應的動作。
當瀏覽器離開Applet所在的Web頁轉到其他頁時, Applet被停止。
如果瀏覽器又回到此頁, 則Applet又被啟動。
所以, 和start()方法類似, 在 Applet生命周期中, stop()方法也可能被多次調用。
選項B正確, 本題答案為B。
【40】要向一個主類為 StringApplet.class的Applet 傳遞參數, 在下列show.html文件的下划線處應填入的是
<HTML><BODY><APPLET CODE = " __________ " WIDTH = 150 HEIGHT = 25><PARAM NAME = bookName ______ "Pride and Prejudice"></APPLET></BODY></HTML>
APPLET CODE = "", 里面填的的應該是文件名, 所有是StringApplet.class.name屬性后面應該跟的是:value。
value是絕對路徑, 必須用引號引用起來。
選項D正確, 本題答案為D。
value是絕對路徑, 必須用引號引用起來。
選項D正確, 本題答案為D。
編程題
【41】在考生文件夾中存有文件名為Java_1.java的文件, 該程序是不完整的, 請在注釋行"//**********Found**********"下一行語句的下划線地方填入正確內容, 然后刪除下划線, 請勿刪除注釋行或改動其他已有語句內容。存盤時文件必須存放在考生文件夾下, 不得改變原有文件的文件名。
程序的功能是:從鍵盤輸入5個正整數, 輸出其中的最大值。
例如:從鍵盤輸入
10
30
50
20
40
則屏幕顯示
輸入的最大值是 50
程序的功能是:從鍵盤輸入5個正整數, 輸出其中的最大值。
例如:從鍵盤輸入
10
30
50
20
40
則屏幕顯示
輸入的最大值是 50
1.i <= 5 2.parseInt 3.max = x
本題考查I / O流以及基礎知識
填空1:循環5次
填空2:將字符串轉換為整型使用Integer.parseInt
填空3:若x > max則將x賦值給max
填空1:循環5次
填空2:將字符串轉換為整型使用Integer.parseInt
填空3:若x > max則將x賦值給max
【42】在考生文件夾中存有文件名為Java_2.java的文件, 該程序是不完整的, 請在注釋行"//**********Found**********"下一行語句的下划線地方填入正確內容, 然后刪除下划線, 請勿刪除注釋行或改動其他已有語句內容。存盤時文件必須存放在考生文件夾下, 不得改變原有文件的文件名。
本題的要求是:
運行程序后, 輸出結果為(2, 3)
本題的要求是:
運行程序后, 輸出結果為(2, 3)
1.new 2.int x
3.Point 4.toString
考察了面向對象類的基本操作
填空1:實例化對象需用關鍵字new
填空2:定義變量x
填空3:構造類的有參構造器
填空4:要顯示對象內容需重寫toString方法
填空1:實例化對象需用關鍵字new
填空2:定義變量x
填空3:構造類的有參構造器
填空4:要顯示對象內容需重寫toString方法
【43】在考生文件夾中存有文件名為Java_3.java的文件, 該程序是不完整的, 請在注釋行"//**********Found**********"下一行語句的下划線地方填入正確內容, 然后刪除下划線, 請勿刪除注釋行或改動其他已有語句內容。存盤時文件必須存放在考生文件夾下, 不得改變原有文件的文件名。
本題的要求是:
程序運行后出現如圖所示界面, 點擊增大按鈕則左邊的數字增大, 點擊減小按鈕則左邊的數字減小。
本題的要求是:
程序運行后出現如圖所示界面, 點擊增大按鈕則左邊的數字增大, 點擊減小按鈕則左邊的數字減小。

1.swing 2.getContentPane 3.(b1) 4.(b2) 5.BListener 6.actionPerformed
考察了畫圖和監聽事件
填空1:導入swing包
填空2:用getContentPane()方法獲得JFrame的內容面板, 再對其加入組件
填空3, 填空4:將b1和b2按鈕加進去
填空5:缺少BListener類, 后期程序用上該類, 但沒定義, 所以添加上:
填空6:繼承ActionListener就要重寫actionPerformed方法
填空1:導入swing包
填空2:用getContentPane()方法獲得JFrame的內容面板, 再對其加入組件
填空3, 填空4:將b1和b2按鈕加進去
填空5:缺少BListener類, 后期程序用上該類, 但沒定義, 所以添加上:
填空6:繼承ActionListener就要重寫actionPerformed方法