1 下列關(guān)于棧的描述中錯誤的是___B___。
A、棧是先進后出的線性表 B、棧只能順序存儲 C、棧具有記憶作用
D、對棧的插入與刪除操作中,不需要改變棧底指針
解析:棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂?shù)脑兀磩倓偙徊迦氲脑?。所以棧又稱先進后出表(FILO-First In Last Out)。線性表可以順序存儲,也可以鏈式存儲,而棧是一種線性表,也可以采用鏈式存儲結(jié)構(gòu)。
2 對于長度為n的線性表,在最壞情況下,下列各排序法所對應(yīng)的比較次數(shù)中正確的是___D___。
A、冒泡排序為n/2 B、冒泡排序為n C、快速排序為n D、快速排序為n(n-1)/2
解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后掃描和n/2遍的從后往前掃描,需要比較次數(shù)為n(n-1)/2??焖倥判蚍ǖ淖顗那闆r比較次數(shù)也是n(n-1)/2。
3 對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為__C____。
A、 B、n/2 C、n D、n+1
4 在進行順序查找過程中,如果線性表中的第一個元素就是被查找元素,則只需做一次比較就查找成功,查找效率;但如果被查找的元素是線性表中的最后一個元素,或者被查找的元素根本就不在線性表中,則為了查找這個元素需要與線性表中所有的元素進行比較,這是順序查找的最壞情況。所以對長度為n的線性表進行順序查找,在最壞情況下需要比較n次。
5 模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。
6 計算機軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。軟件具有以下特點:①軟件是一種邏輯實體,而不是物理實體,具有抽象性;②軟件的生產(chǎn)過程與硬件不同,它沒有明顯的制作過程;③軟件在運行、使用期間不存在磨損、老化問題;④軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的限制,這導致軟件移植的問題;⑤軟件復(fù)雜性高,成本昂貴;⑥軟件開發(fā)涉及諸多的社會因素。
7 數(shù)據(jù)獨立性是數(shù)據(jù)庫技術(shù)的重要特點之一。所謂數(shù)據(jù)獨立性是指__D____。
A、數(shù)據(jù)與程序獨立存放 B、不同的數(shù)據(jù)被存放在不同的文件中
C、不同的數(shù)據(jù)只能被對應(yīng)的應(yīng)用程序所使用 D、以上三種說法都不對
解析:數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應(yīng)用程序。選項A、B、C三種說法都是錯誤的。
8 在讀字符文件Employee.dat時,使用該文件作為參數(shù)的類是___D___。
A、BufferedReader B、DataInputStream C、DataOutputStream D、FileInputStream
解析:本題考查的是文件和文件I/O。
BufferedReader用來從字符輸入流中讀取并緩沖字符,以提高讀取字符(或字符數(shù)組)的效率。其構(gòu)造方法為:
public BufferedReader(Reader in)
public BufferedReader(Reader in, int sz)
DataInputStream用來以獨立于機器的方式從潛在的輸入流中讀取Java基本數(shù)據(jù)類型。構(gòu)造方法為:
DataInputStream(InputStream in)
FileInputStream用來從文件中讀取字節(jié)。構(gòu)造方法為:
FileInputStream(String name)
FileInputStream(File file)
char類型的取值范圍是___B___。
A、2-7~27-1 B、0~216-1 C、-215~215-1 D、0~28-1
9 能夠支持javadoc命令的注釋語句是______。
A、/**...// B、/*...*/ C、// D、/**...*/
解析:Java的單行注釋符為//,多行注釋符有/*...*/和/**...*/(javadoc能夠利用該注釋符自動生成幫助文檔)。10 下列不是InputStream子類的是__C____。
A、文件輸入流FileInputStream B、對象輸入流ObjectInputStream
C、字符輸入流CharInputStream D、壓縮文件輸入流ZipInputStream
11 Java中沒有CharInputStream流。
下列方法中可以用來創(chuàng)建一個新線程的是___C___。
A、實現(xiàn)java.lang.Runnable接口并重寫start()方法
B、實現(xiàn)java.lang.Runnable接口并重寫run()方法
C、繼承java.lang.Thread類并重寫run()方法
D、繼承java.lang.Thread類并重寫start()方法
解析:java.lang中的Thread類的典型構(gòu)造方法為:
public Thread(ThreadGroup group,Runnable target,String name)
接口Runnable定義了run()方法;而Thread類本身也實現(xiàn)了Runnable接口,故創(chuàng)建線程有兩種方法:
1、用實現(xiàn)Runnable接口的類的實例作target參數(shù)生成Thread類的實例
2、編寫繼承Thread類的類,并重寫(override)run()方法
12 下列關(guān)于線程優(yōu)先級的說法中,正確的是__C____。
A、線程的優(yōu)先級是不能改變的 B、線程的優(yōu)先級是在創(chuàng)建線程時設(shè)置的
C、在創(chuàng)建線程后的任何時候都可以設(shè)置 D、B和C
解析:Java語言中線程的優(yōu)先級是用一個介于MIN_PRIORITY 和MAX_PRIORITY之間的整數(shù)來表示的??梢栽趧?chuàng)建線程后的任何時候修改線程的優(yōu)先級。
13 下列代碼中,將引起一個編譯錯誤的行是__D____。
1)public class Test{
2) int m,n;
3) public Test(){}
4) public Test(int a){m=a;}
5) public static void main(String args[]){
6) Test t1,t2;
7) int j,k;
8) j=0;k=0;
9) t1=new Test();
10) t2=new Test(j,k);
11) }
12) }
A、第3行 B、第5行 C、第6行 D、第10行
解析:第10行代碼中的參數(shù)數(shù)目比類Test的任何一個構(gòu)造方法聲明的形參都多,因此引起編譯錯誤。
14 閱讀下列代碼后
public class Person{
int arr[]=new int[10];
public static void main(String args[]){
System.out.println(arr[1]);
}
}
15 正確的說法是__A____。
A、編譯時將產(chǎn)生錯誤 B、編譯時正確,運行時將產(chǎn)生錯誤 C、輸出為零 D、輸出為空
解析:由于數(shù)組arr聲明時未用static關(guān)鍵字,而main()方法直接引用arr(而非通過Person的實例引用),將產(chǎn)生"非靜態(tài)變量不能從靜態(tài)上下文中引用"(non-static variable cannot be referenced from a static context)的編譯錯誤。
16 某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有 19 個葉子結(jié)點。
解析:二叉樹的性質(zhì)3:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。
17 問題處理方案的正確而完整的描述稱為 算法 。
18 線程在生命周期中要經(jīng)歷5種狀態(tài),分別是新建狀態(tài)、可運行狀態(tài)、運行狀態(tài)、___阻塞 或 Blocked___狀態(tài)和終止狀態(tài)。19 請閱讀下列程序代碼,然后將程序的執(zhí)行結(jié)果補充完整。
程序代碼:
class throwsException
{
static void Proc(int sel) throws ArithmeticException,ArrayIndexOutOfBoundsException
{
System.out.println("In Situation"+sel);
if(sel==0){
System.out.println("no Exception caught");
return;
}
else if(sel==1){
int iArray[]=new int[4];
iArray[1]=3;
}
}
public static void main(String[] args)
{
try{
Proc(0);
Proc(1);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Catch"+e);
}finally{
System.out.println("in Proc finally");
}
}
}
執(zhí)行結(jié)果:
In Situation0
no Exception caught
__In Situation1____
in Proc finally
解析:調(diào)用Proc(1)時,執(zhí)行語句System.out.println("In Situation"+sel);控制臺輸出In Situation1。然后在if語句中執(zhí)行sel==1分支,該分支中無任何輸出語句。
當使用Thread t=new Thread(r)創(chuàng)建一個線程時,表達式:r instanceof Thread的值是___false___。
表達式:r instanceof Thread的語義即"r是否為Thread的實例(instance)"。再看Thread的構(gòu)造方法(Thread有許多構(gòu)造方法,以下是最典型的構(gòu)造方法,其它構(gòu)造方法都是從下面的構(gòu)造方法中"減掉"一些參數(shù)形成的):
Thread(ThreadGroup group, Runnable target, String name)
可見,Thread構(gòu)造方法中沒有類型為Thread的參數(shù),故r不可能是Thread的實例
20 面向?qū)ο蟮恼Z言將客觀世界都看成由各種對象組成。具有共同特征和行為的對象組成類,類是變量和___操作___的集合體。
21 Random類中的nextInt(N)方法得到一個介于0至N-1之間的隨機數(shù),而平常用到的Math.random()是得到一個介于0與1之間的小數(shù)。
A、棧是先進后出的線性表 B、棧只能順序存儲 C、棧具有記憶作用
D、對棧的插入與刪除操作中,不需要改變棧底指針
解析:棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂?shù)脑兀磩倓偙徊迦氲脑?。所以棧又稱先進后出表(FILO-First In Last Out)。線性表可以順序存儲,也可以鏈式存儲,而棧是一種線性表,也可以采用鏈式存儲結(jié)構(gòu)。
2 對于長度為n的線性表,在最壞情況下,下列各排序法所對應(yīng)的比較次數(shù)中正確的是___D___。
A、冒泡排序為n/2 B、冒泡排序為n C、快速排序為n D、快速排序為n(n-1)/2
解析:假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后掃描和n/2遍的從后往前掃描,需要比較次數(shù)為n(n-1)/2??焖倥判蚍ǖ淖顗那闆r比較次數(shù)也是n(n-1)/2。
3 對長度為n的線性表進行順序查找,在最壞情況下所需要的比較次數(shù)為__C____。
A、 B、n/2 C、n D、n+1
4 在進行順序查找過程中,如果線性表中的第一個元素就是被查找元素,則只需做一次比較就查找成功,查找效率;但如果被查找的元素是線性表中的最后一個元素,或者被查找的元素根本就不在線性表中,則為了查找這個元素需要與線性表中所有的元素進行比較,這是順序查找的最壞情況。所以對長度為n的線性表進行順序查找,在最壞情況下需要比較n次。
5 模塊獨立性是指每個模塊只完成系統(tǒng)要求的獨立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單。耦合性與內(nèi)聚性是模塊獨立性的兩個定性標準,耦合與內(nèi)聚是相互關(guān)聯(lián)的。在程序結(jié)構(gòu)中,各模塊的內(nèi)聚性越強,則耦合性越弱。一般較優(yōu)秀的軟件設(shè)計,應(yīng)盡量做到高內(nèi)聚,低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨立性。
6 計算機軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。軟件具有以下特點:①軟件是一種邏輯實體,而不是物理實體,具有抽象性;②軟件的生產(chǎn)過程與硬件不同,它沒有明顯的制作過程;③軟件在運行、使用期間不存在磨損、老化問題;④軟件的開發(fā)、運行對計算機系統(tǒng)具有依賴性,受計算機系統(tǒng)的限制,這導致軟件移植的問題;⑤軟件復(fù)雜性高,成本昂貴;⑥軟件開發(fā)涉及諸多的社會因素。
7 數(shù)據(jù)獨立性是數(shù)據(jù)庫技術(shù)的重要特點之一。所謂數(shù)據(jù)獨立性是指__D____。
A、數(shù)據(jù)與程序獨立存放 B、不同的數(shù)據(jù)被存放在不同的文件中
C、不同的數(shù)據(jù)只能被對應(yīng)的應(yīng)用程序所使用 D、以上三種說法都不對
解析:數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性,即數(shù)據(jù)庫中數(shù)據(jù)獨立于應(yīng)用程序而不依賴于應(yīng)用程序。也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應(yīng)用程序。選項A、B、C三種說法都是錯誤的。
8 在讀字符文件Employee.dat時,使用該文件作為參數(shù)的類是___D___。
A、BufferedReader B、DataInputStream C、DataOutputStream D、FileInputStream
解析:本題考查的是文件和文件I/O。
BufferedReader用來從字符輸入流中讀取并緩沖字符,以提高讀取字符(或字符數(shù)組)的效率。其構(gòu)造方法為:
public BufferedReader(Reader in)
public BufferedReader(Reader in, int sz)
DataInputStream用來以獨立于機器的方式從潛在的輸入流中讀取Java基本數(shù)據(jù)類型。構(gòu)造方法為:
DataInputStream(InputStream in)
FileInputStream用來從文件中讀取字節(jié)。構(gòu)造方法為:
FileInputStream(String name)
FileInputStream(File file)
char類型的取值范圍是___B___。
A、2-7~27-1 B、0~216-1 C、-215~215-1 D、0~28-1
9 能夠支持javadoc命令的注釋語句是______。
A、/**...// B、/*...*/ C、// D、/**...*/
解析:Java的單行注釋符為//,多行注釋符有/*...*/和/**...*/(javadoc能夠利用該注釋符自動生成幫助文檔)。10 下列不是InputStream子類的是__C____。
A、文件輸入流FileInputStream B、對象輸入流ObjectInputStream
C、字符輸入流CharInputStream D、壓縮文件輸入流ZipInputStream
11 Java中沒有CharInputStream流。
下列方法中可以用來創(chuàng)建一個新線程的是___C___。
A、實現(xiàn)java.lang.Runnable接口并重寫start()方法
B、實現(xiàn)java.lang.Runnable接口并重寫run()方法
C、繼承java.lang.Thread類并重寫run()方法
D、繼承java.lang.Thread類并重寫start()方法
解析:java.lang中的Thread類的典型構(gòu)造方法為:
public Thread(ThreadGroup group,Runnable target,String name)
接口Runnable定義了run()方法;而Thread類本身也實現(xiàn)了Runnable接口,故創(chuàng)建線程有兩種方法:
1、用實現(xiàn)Runnable接口的類的實例作target參數(shù)生成Thread類的實例
2、編寫繼承Thread類的類,并重寫(override)run()方法
12 下列關(guān)于線程優(yōu)先級的說法中,正確的是__C____。
A、線程的優(yōu)先級是不能改變的 B、線程的優(yōu)先級是在創(chuàng)建線程時設(shè)置的
C、在創(chuàng)建線程后的任何時候都可以設(shè)置 D、B和C
解析:Java語言中線程的優(yōu)先級是用一個介于MIN_PRIORITY 和MAX_PRIORITY之間的整數(shù)來表示的??梢栽趧?chuàng)建線程后的任何時候修改線程的優(yōu)先級。
13 下列代碼中,將引起一個編譯錯誤的行是__D____。
1)public class Test{
2) int m,n;
3) public Test(){}
4) public Test(int a){m=a;}
5) public static void main(String args[]){
6) Test t1,t2;
7) int j,k;
8) j=0;k=0;
9) t1=new Test();
10) t2=new Test(j,k);
11) }
12) }
A、第3行 B、第5行 C、第6行 D、第10行
解析:第10行代碼中的參數(shù)數(shù)目比類Test的任何一個構(gòu)造方法聲明的形參都多,因此引起編譯錯誤。
14 閱讀下列代碼后
public class Person{
int arr[]=new int[10];
public static void main(String args[]){
System.out.println(arr[1]);
}
}
15 正確的說法是__A____。
A、編譯時將產(chǎn)生錯誤 B、編譯時正確,運行時將產(chǎn)生錯誤 C、輸出為零 D、輸出為空
解析:由于數(shù)組arr聲明時未用static關(guān)鍵字,而main()方法直接引用arr(而非通過Person的實例引用),將產(chǎn)生"非靜態(tài)變量不能從靜態(tài)上下文中引用"(non-static variable cannot be referenced from a static context)的編譯錯誤。
16 某二叉樹中度為2的結(jié)點有18個,則該二叉樹中有 19 個葉子結(jié)點。
解析:二叉樹的性質(zhì)3:在任意一棵二叉樹中,度為0的結(jié)點(即葉子結(jié)點)總是比度為2的結(jié)點多一個。本題中度為2的結(jié)點數(shù)為18,故葉子結(jié)點數(shù)為18+1=19個。
17 問題處理方案的正確而完整的描述稱為 算法 。
18 線程在生命周期中要經(jīng)歷5種狀態(tài),分別是新建狀態(tài)、可運行狀態(tài)、運行狀態(tài)、___阻塞 或 Blocked___狀態(tài)和終止狀態(tài)。19 請閱讀下列程序代碼,然后將程序的執(zhí)行結(jié)果補充完整。
程序代碼:
class throwsException
{
static void Proc(int sel) throws ArithmeticException,ArrayIndexOutOfBoundsException
{
System.out.println("In Situation"+sel);
if(sel==0){
System.out.println("no Exception caught");
return;
}
else if(sel==1){
int iArray[]=new int[4];
iArray[1]=3;
}
}
public static void main(String[] args)
{
try{
Proc(0);
Proc(1);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Catch"+e);
}finally{
System.out.println("in Proc finally");
}
}
}
執(zhí)行結(jié)果:
In Situation0
no Exception caught
__In Situation1____
in Proc finally
解析:調(diào)用Proc(1)時,執(zhí)行語句System.out.println("In Situation"+sel);控制臺輸出In Situation1。然后在if語句中執(zhí)行sel==1分支,該分支中無任何輸出語句。
當使用Thread t=new Thread(r)創(chuàng)建一個線程時,表達式:r instanceof Thread的值是___false___。
表達式:r instanceof Thread的語義即"r是否為Thread的實例(instance)"。再看Thread的構(gòu)造方法(Thread有許多構(gòu)造方法,以下是最典型的構(gòu)造方法,其它構(gòu)造方法都是從下面的構(gòu)造方法中"減掉"一些參數(shù)形成的):
Thread(ThreadGroup group, Runnable target, String name)
可見,Thread構(gòu)造方法中沒有類型為Thread的參數(shù),故r不可能是Thread的實例
20 面向?qū)ο蟮恼Z言將客觀世界都看成由各種對象組成。具有共同特征和行為的對象組成類,類是變量和___操作___的集合體。
21 Random類中的nextInt(N)方法得到一個介于0至N-1之間的隨機數(shù),而平常用到的Math.random()是得到一個介于0與1之間的小數(shù)。