一、選擇題(每小題1分,共40小題,共40分)
1.算法的空間復(fù)雜度是指( )。
A.算法程序的長度
B.算法程序中的指令條數(shù)
C.算法程序所占的存儲空間
D.算法執(zhí)行過程中所需要的存儲空間
2.用鏈表表示線性表的優(yōu)點是( )。
A.便于隨機存取
B.花費的存儲空間較順序存儲少
C.便于插入和刪除操作
D.?dāng)?shù)據(jù)元素的物理順序與邏輯順序相同
3.已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為( )。
A.GEDHFBCA
B.DGEBHFCA
C.ABCDEFGH
D.ACBFEDHG
4.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進行查找的是( )。
A.順序存儲的有序線性表
B.線性鏈表
C.二叉鏈表
D.有序線性鏈表
5.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是( )。
A.過程、子程序和分程序
B.順序、選擇和重復(fù)
C.遞歸、堆棧和隊列
D.調(diào)用、返回和轉(zhuǎn)移
6.下列敘述中正確的是( )。
A.在模塊化程序設(shè)計中,一個模塊應(yīng)該盡量多的包括與其他模塊聯(lián)系的信息
B.在自頂向下、逐步細(xì)化的設(shè)計過程中,首先應(yīng)設(shè)計解決問題的第一個細(xì)節(jié)
C.在模塊化程序設(shè)計中,一個模塊內(nèi)部的控制結(jié)構(gòu)也要符合結(jié)構(gòu)化原則
D.在程序設(shè)計過程中,不能同時采用結(jié)構(gòu)化程序設(shè)計
方法與模塊化程序設(shè)計方法
7.設(shè)計軟件結(jié)構(gòu)是在軟件生命周期的( )。
A.軟件定義期
B.軟件開發(fā)期
C.軟件維護期
D.以上3個都不是
8.?dāng)?shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的( )。
A.存儲問題
B.共享問題
C.安全問題
D.保護問題
9.設(shè)計數(shù)據(jù)庫的存儲結(jié)構(gòu)屬于( )階段。
A.需求分析
B.概念設(shè)計
C.邏輯設(shè)計
D.物理設(shè)計
10.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)依賴、數(shù)據(jù)不一致性和( )。
A.可重用性差
B.安全性差
C.非持久性
D.冗余性
11.如果要求一個線性表既能較快地查找,又能適應(yīng)動態(tài)變化的要求,則可采用的方法是( )。
A.分塊法
B.順序法
C.二分法
D.散列法
12.順序存儲結(jié)構(gòu)的優(yōu)點是( )。
A.刪除運算方便
B.存儲空間利用率高
C.插入運算方便
D.可以方便地運用到各種邏輯結(jié)構(gòu)的存儲表中
13.用下列4種排序方法,對一個已排好序(由小到大)的序列進行由小到大排序時,選擇( )方法。
A.冒泡排序
B.直接選擇排序
C.直接插入排序
D.歸并排序
14.按層次次序?qū)⒁豢糜衝-個結(jié)點的完全二叉樹的所有結(jié)點從l~n編號,當(dāng)i≤n/2時,編號為i的結(jié)點的左子樹的編號是( )。
A.2i-1
B.2i
C.2i+1
D.不確定
15.對于給出的一組權(quán)w={10,12,16,21,30},通過霍夫曼算法求出的擴充二叉樹的帶權(quán)外部路徑長度為( )。
A.89
B.189
C.200
D.300
16.JDK中,用( )命令對其源文件進行編譯,生成字節(jié)碼文件。
A.java.exe
B.javac.exe
C.javadoc.exe
D.javap.exe
17.以下敘述中不屬于Java語言特點的是( )。
A.面向?qū)ο?BR> B.可移植性
C.多線程
D.宏定義
18.在Java語言中,封閉是借助于( )實現(xiàn)酊。
A.對象
B.類
C.?dāng)?shù)組
D.成員
19.Java對文件類提供了許多操作方法,能獲得文件對象父路徑名的方法是( )。
A.getAbsolutePath()
B.getParentFile()
C.getAbsoluteFile()
D.getName()
20.下列各項中屬于合法標(biāo)識符的是( )。
A.myid/2
B.+void
C.-5
D._vacl
21.下列各選項中屬于Java保留字的是( )。
A.TRUE
B.NULL
C.FALSE
D.null
22.下列各項中代表八進制整數(shù)的是( )。
A.0XA6
B.0144
C.1840
D.-lE3
23.下列代碼的執(zhí)行結(jié)果是( )。
public class Test
{
public static void main(String args[])
{
System.out.println(5/2);
System.OUt.println(100%3.O)
}
}
A.2和1
B.2和1.0
C.2.5和1
D.2.5和1.0
24.char類型被封裝在( )中。
A.java.lang.Integer
B.java.lang.Char
C.java.lang.Boolean
D.java.lang.Character
25.下面代碼段的輸出是( )。
if(5 8L7)0&8L5|2)system.out.println("true");
A.編譯出錯
B.5752
C.true
D.無任何輸出
26.下列關(guān)于內(nèi)部類的說法,正確的是( )。
A.內(nèi)部類可以與它包含的類名相同
B.內(nèi)部類只能使用它所在類的靜態(tài)成員變量,不能使用它所在類的方法中的局部變量
C.內(nèi)部類可以用abstract修飾定義為抽象類,不能用private或protected定義
D.外部使用內(nèi)部類時必須給出類的全名
27.定義一個表示10個值為null的字符串?dāng)?shù)組,下面選項正確的是( )。
A.String []a;
B.String a[];
C.char a[l0][];
D.String a[]=new String[10];
28.有一個接口定義如下,下列選項中實現(xiàn)了該接口并且不是抽象的是( )。
interface A
{
int methodl(int i);
int method2(int j);
}
A.classBimplementsA B.classB
{ {
int methodl(){) int methodl(inti){)
int method2(){) int method2(intj){)
} }
C.class B implements A D.class B extends A
{ {
int methodl(int i){) int methodl(int i){}
int method2(int j){) int method2(int J){}
} }
29.下面程序段的輸出結(jié)果是( )。
class Base
{
int i;
Base()
{
add(1);
}
void add(int v)
{
i+=v:
}
void print()
{
System.out.println(i);
}
}
class Extension extends Base
{
Extension()
{
add(2);
}
void add(int v)
{
i+=v*2:
}
}
public class Test
{
public static void main(String args[])
{
bogo(new Extension());
}
static void bogo(Base b)
{
b.a(chǎn)dd(8);
b.print();
}
}
A.9 B.18
C.20 D.22
30.通常我們使用( )方法來為一個部件注冊事件監(jiān)聽器。
A.a(chǎn)dd×××Listener
B.×××Listener
C.Listener×××
D.×××Listeneradd
31.下列的( )原始類型在使用流時可以互換。
A.byte和boolean
B.char和int
C.byte和char
D.String和char
32.下列關(guān)于HTML標(biāo)記的說法,正確的是( )。
A.URL getDocumentBase()返回Applet主類的URL
B.URL getCOdeBase()返回包含Applet的HTML文件的URL
C.在HTML中不說明String getParameter(stringname)的參數(shù),該方法將返回"0"
D.HTML標(biāo)記方法用于獲取HTML文件中關(guān)于Applet的信息
33.下列關(guān)于Applet的說法,正確的是( )。
A.它們能讀/寫用戶的文件系統(tǒng)
B.它們能與提供包含小程序的網(wǎng)頁的站點之內(nèi)的Internet站點聯(lián)系
C.它們能在閱讀者的系統(tǒng)上運行任何程序
D.它們能加載存儲在用戶系統(tǒng)上的程序
34.resume()方法恢復(fù)( )的執(zhí)行。
A.通過調(diào)用stop()方法而停止的線程
B.通過調(diào)用sleep()方法而停止運行的線程
C.通過調(diào)用wait()方法而停止運行的線程
D.通過調(diào)用suspend()方法而停止運行的線程
35.下列方法中能完成主類實例初始化工作的是( )。
A.start()
B.stop()
C.ink()
D.paint()
36.下面的( )關(guān)鍵字通常用來對對象加鎖,從而使得對對象的訪問是排他的。
A.serialize
B.transient
C.synchronized
D.static
37.下列程序中,若從鍵盤中輸入的是大寫字母C,則程序輸出的結(jié)果是( )。
Importjava.io.*;
public class Exam{
public static void main(String args[]){
int ch=0;
System.out.println("輸入一個字符:");
try{
ch=System.in.read();
charch_A=’A’,ch_Z=’Z’;
int delta c=(int)ch A+(int)ch Z-ch;
syStem. out.println("編碼后的字符為:"+(char)delta_c);
}
catch(IOException e){
e.printStackTrace();
}
}
}
A.C
B.Y
C.X
D.字母C的ASCIl碼的整型值
38.下面的程序執(zhí)行后,屏幕上顯示的應(yīng)是( )。
public class Exam{
public static void main(String[]args){
char charl[]=(’t’,’e’,’s’,’t’};
char char2[]=(’t’,’e’,’s’,’t’,’l’};
String sl=newString(charl);
String s2=newString(char2,0,4);
System.out.println(sl.equals(s2));
}
}
A.true
B.false
C.test
D.編譯錯誤
39.以下( )命令能為遠(yuǎn)程對象生成stub和skeleton。
A.rmiregistry
B.serialver
C.rmic
D.rmid
40.Java程序與數(shù)據(jù)庫的連接機制是( )。
A.ODBC
B.JDBC
C.ODBCAPI
D.SQL/CLI
1.算法的空間復(fù)雜度是指( )。
A.算法程序的長度
B.算法程序中的指令條數(shù)
C.算法程序所占的存儲空間
D.算法執(zhí)行過程中所需要的存儲空間
2.用鏈表表示線性表的優(yōu)點是( )。
A.便于隨機存取
B.花費的存儲空間較順序存儲少
C.便于插入和刪除操作
D.?dāng)?shù)據(jù)元素的物理順序與邏輯順序相同
3.已知一棵二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為( )。
A.GEDHFBCA
B.DGEBHFCA
C.ABCDEFGH
D.ACBFEDHG
4.下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進行查找的是( )。
A.順序存儲的有序線性表
B.線性鏈表
C.二叉鏈表
D.有序線性鏈表
5.結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu)是( )。
A.過程、子程序和分程序
B.順序、選擇和重復(fù)
C.遞歸、堆棧和隊列
D.調(diào)用、返回和轉(zhuǎn)移
6.下列敘述中正確的是( )。
A.在模塊化程序設(shè)計中,一個模塊應(yīng)該盡量多的包括與其他模塊聯(lián)系的信息
B.在自頂向下、逐步細(xì)化的設(shè)計過程中,首先應(yīng)設(shè)計解決問題的第一個細(xì)節(jié)
C.在模塊化程序設(shè)計中,一個模塊內(nèi)部的控制結(jié)構(gòu)也要符合結(jié)構(gòu)化原則
D.在程序設(shè)計過程中,不能同時采用結(jié)構(gòu)化程序設(shè)計
方法與模塊化程序設(shè)計方法
7.設(shè)計軟件結(jié)構(gòu)是在軟件生命周期的( )。
A.軟件定義期
B.軟件開發(fā)期
C.軟件維護期
D.以上3個都不是
8.?dāng)?shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的( )。
A.存儲問題
B.共享問題
C.安全問題
D.保護問題
9.設(shè)計數(shù)據(jù)庫的存儲結(jié)構(gòu)屬于( )階段。
A.需求分析
B.概念設(shè)計
C.邏輯設(shè)計
D.物理設(shè)計
10.相對于數(shù)據(jù)庫系統(tǒng),文件系統(tǒng)的主要缺陷有數(shù)據(jù)依賴、數(shù)據(jù)不一致性和( )。
A.可重用性差
B.安全性差
C.非持久性
D.冗余性
11.如果要求一個線性表既能較快地查找,又能適應(yīng)動態(tài)變化的要求,則可采用的方法是( )。
A.分塊法
B.順序法
C.二分法
D.散列法
12.順序存儲結(jié)構(gòu)的優(yōu)點是( )。
A.刪除運算方便
B.存儲空間利用率高
C.插入運算方便
D.可以方便地運用到各種邏輯結(jié)構(gòu)的存儲表中
13.用下列4種排序方法,對一個已排好序(由小到大)的序列進行由小到大排序時,選擇( )方法。
A.冒泡排序
B.直接選擇排序
C.直接插入排序
D.歸并排序
14.按層次次序?qū)⒁豢糜衝-個結(jié)點的完全二叉樹的所有結(jié)點從l~n編號,當(dāng)i≤n/2時,編號為i的結(jié)點的左子樹的編號是( )。
A.2i-1
B.2i
C.2i+1
D.不確定
15.對于給出的一組權(quán)w={10,12,16,21,30},通過霍夫曼算法求出的擴充二叉樹的帶權(quán)外部路徑長度為( )。
A.89
B.189
C.200
D.300
16.JDK中,用( )命令對其源文件進行編譯,生成字節(jié)碼文件。
A.java.exe
B.javac.exe
C.javadoc.exe
D.javap.exe
17.以下敘述中不屬于Java語言特點的是( )。
A.面向?qū)ο?BR> B.可移植性
C.多線程
D.宏定義
18.在Java語言中,封閉是借助于( )實現(xiàn)酊。
A.對象
B.類
C.?dāng)?shù)組
D.成員
19.Java對文件類提供了許多操作方法,能獲得文件對象父路徑名的方法是( )。
A.getAbsolutePath()
B.getParentFile()
C.getAbsoluteFile()
D.getName()
20.下列各項中屬于合法標(biāo)識符的是( )。
A.myid/2
B.+void
C.-5
D._vacl
21.下列各選項中屬于Java保留字的是( )。
A.TRUE
B.NULL
C.FALSE
D.null
22.下列各項中代表八進制整數(shù)的是( )。
A.0XA6
B.0144
C.1840
D.-lE3
23.下列代碼的執(zhí)行結(jié)果是( )。
public class Test
{
public static void main(String args[])
{
System.out.println(5/2);
System.OUt.println(100%3.O)
}
}
A.2和1
B.2和1.0
C.2.5和1
D.2.5和1.0
24.char類型被封裝在( )中。
A.java.lang.Integer
B.java.lang.Char
C.java.lang.Boolean
D.java.lang.Character
25.下面代碼段的輸出是( )。
if(5 8L7)0&8L5|2)system.out.println("true");
A.編譯出錯
B.5752
C.true
D.無任何輸出
26.下列關(guān)于內(nèi)部類的說法,正確的是( )。
A.內(nèi)部類可以與它包含的類名相同
B.內(nèi)部類只能使用它所在類的靜態(tài)成員變量,不能使用它所在類的方法中的局部變量
C.內(nèi)部類可以用abstract修飾定義為抽象類,不能用private或protected定義
D.外部使用內(nèi)部類時必須給出類的全名
27.定義一個表示10個值為null的字符串?dāng)?shù)組,下面選項正確的是( )。
A.String []a;
B.String a[];
C.char a[l0][];
D.String a[]=new String[10];
28.有一個接口定義如下,下列選項中實現(xiàn)了該接口并且不是抽象的是( )。
interface A
{
int methodl(int i);
int method2(int j);
}
A.classBimplementsA B.classB
{ {
int methodl(){) int methodl(inti){)
int method2(){) int method2(intj){)
} }
C.class B implements A D.class B extends A
{ {
int methodl(int i){) int methodl(int i){}
int method2(int j){) int method2(int J){}
} }
29.下面程序段的輸出結(jié)果是( )。
class Base
{
int i;
Base()
{
add(1);
}
void add(int v)
{
i+=v:
}
void print()
{
System.out.println(i);
}
}
class Extension extends Base
{
Extension()
{
add(2);
}
void add(int v)
{
i+=v*2:
}
}
public class Test
{
public static void main(String args[])
{
bogo(new Extension());
}
static void bogo(Base b)
{
b.a(chǎn)dd(8);
b.print();
}
}
A.9 B.18
C.20 D.22
30.通常我們使用( )方法來為一個部件注冊事件監(jiān)聽器。
A.a(chǎn)dd×××Listener
B.×××Listener
C.Listener×××
D.×××Listeneradd
31.下列的( )原始類型在使用流時可以互換。
A.byte和boolean
B.char和int
C.byte和char
D.String和char
32.下列關(guān)于HTML標(biāo)記的說法,正確的是( )。
A.URL getDocumentBase()返回Applet主類的URL
B.URL getCOdeBase()返回包含Applet的HTML文件的URL
C.在HTML中不說明String getParameter(stringname)的參數(shù),該方法將返回"0"
D.HTML標(biāo)記方法用于獲取HTML文件中關(guān)于Applet的信息
33.下列關(guān)于Applet的說法,正確的是( )。
A.它們能讀/寫用戶的文件系統(tǒng)
B.它們能與提供包含小程序的網(wǎng)頁的站點之內(nèi)的Internet站點聯(lián)系
C.它們能在閱讀者的系統(tǒng)上運行任何程序
D.它們能加載存儲在用戶系統(tǒng)上的程序
34.resume()方法恢復(fù)( )的執(zhí)行。
A.通過調(diào)用stop()方法而停止的線程
B.通過調(diào)用sleep()方法而停止運行的線程
C.通過調(diào)用wait()方法而停止運行的線程
D.通過調(diào)用suspend()方法而停止運行的線程
35.下列方法中能完成主類實例初始化工作的是( )。
A.start()
B.stop()
C.ink()
D.paint()
36.下面的( )關(guān)鍵字通常用來對對象加鎖,從而使得對對象的訪問是排他的。
A.serialize
B.transient
C.synchronized
D.static
37.下列程序中,若從鍵盤中輸入的是大寫字母C,則程序輸出的結(jié)果是( )。
Importjava.io.*;
public class Exam{
public static void main(String args[]){
int ch=0;
System.out.println("輸入一個字符:");
try{
ch=System.in.read();
charch_A=’A’,ch_Z=’Z’;
int delta c=(int)ch A+(int)ch Z-ch;
syStem. out.println("編碼后的字符為:"+(char)delta_c);
}
catch(IOException e){
e.printStackTrace();
}
}
}
A.C
B.Y
C.X
D.字母C的ASCIl碼的整型值
38.下面的程序執(zhí)行后,屏幕上顯示的應(yīng)是( )。
public class Exam{
public static void main(String[]args){
char charl[]=(’t’,’e’,’s’,’t’};
char char2[]=(’t’,’e’,’s’,’t’,’l’};
String sl=newString(charl);
String s2=newString(char2,0,4);
System.out.println(sl.equals(s2));
}
}
A.true
B.false
C.test
D.編譯錯誤
39.以下( )命令能為遠(yuǎn)程對象生成stub和skeleton。
A.rmiregistry
B.serialver
C.rmic
D.rmid
40.Java程序與數(shù)據(jù)庫的連接機制是( )。
A.ODBC
B.JDBC
C.ODBCAPI
D.SQL/CLI