一、單項選擇題(本大題共10個小題,每小題2分,共20分)
1.下列用來編譯Java源文件為字節碼文件的工具是( ???)。
A.java ?????????????????????????B.javadoc
C.jar ??????????????????????????D.javac
2.Java中關于構造方法描述錯誤的是( ???)。
A.構造方法沒有返回值類型 ???????????????
??B.構造方法和類名相同
C.沒有自定義構造方法時,JVM提供默認的無參的構造方法
D.每一個類都一定有無參構造方法
3.下面關于類方法和實例方法的描述,錯誤的是( ???)。
A.使用關鍵字static修飾的方法是類方法
B.類方法可以調用類方法也可以調用對象方法
C.實例方法也稱為對象方法,可以調用其他類方法也可以調用其他對象方法
D.類方法中不能使用this關鍵字
4.下列敘述,正確的是( ???)。
A.匿名類不可以訪問其所屬類的成員
B.匿名內部類有類名
C.局部類是類聲明,而匿名類是表達式
D.可以將一個類放在另外一個屬性的定義內部
5.下面關于接口的描述中,錯誤的是( ???)。
A.一個類只允許實現一個接口
B.定義接口使用的關鍵字是interface
C.在實現接口的類中通常要給出接口中定義的抽象方法的具體實現
D.接口中的方法是抽象方法
6.下列哪個接口是Collection的子接口?( ???)。
A. List接口 ???????????B. Map接口
C. Iterator接口 ???????D. 以上都不是
7.下列哪一項不屬于Swing的頂層容器?( ???)。
A.JApplet ????????????B. JTree ????????
C. JDialog ????????????D.JFrame
8.為了給JButton按鈕b注冊ActionEvent事件的監視器listen,下列說法正確的是( ???)。
A.b.addActionListener(listen) ??B.b.addItemListener(listen)
C.b.addKeyListener(listen) ?????D.b.addWindowListener(listen)
9.下列流中哪個不屬于字節流( ???)。
A.FileInputStream ????????????????B.BufferedInputStream ????
C.FilterInputStream ?????????????D.InputStreamReader
10.下列方法中,java.net.ServerSocket類用于接收客戶端請求的方法是( ???)。
A. get( ) ????????????????B. accept( )
C. receive( ) ????????????D. connect( )
二、填空題(本大題共5個小題,每空2分,共 10?分)
1.使用Iterator遍歷集合時,可以調用????????????方法判斷是否存在下一個元素,若存在下一個元素,則調用next()方法取出該元素。
2.Java語言在聲明方法時,使用???????關鍵字聲明方法中拋出的異常類型。
3.在Java GUI編程中,javax.swing包中??????????????是對單行文本進行編輯的組件。
4.Java語言中為了類的對象支持序列化,該類的定義中必須實現?????????接口。
5.在實現多線程的程序時,可以通過繼承??????????類和實現Runnable接口來創建線程。
三、判斷題(本大題共5?個小題,每小題 2?分,共10分,對的打“√”,錯的打“×”)
1.用final修飾的類不能被繼承。( ???)?
2.一個Java源程序可有多個類,但只僅有一個public類,而且源程序名與public類名相同。 ?( ???) ??????????????????
3.啟動多線程必須調用start()方法, 如果調用run方法則沒有啟動新的線程。???( ???)? ????????????????????????????????
4.自定義表格類中的model部分應實現的接口是TableModelable。??( ???)?
5.Java中,Reader和Writer 是以字符為數據讀寫單位的輸入輸出流的基類。??( ???)?
四、改錯題(本大題共2?個小題,每小題5?分,共 10?分)
1.//使用類求兩個整數之和
class Computer{ ?
??/***************************/ ?
????void add(int x,int y){
???????return x+y;
????}
}
public class E_3 {
????public static void main(String args[]){
???????Computer com = new Computer();
???????int m = 100;
???????int n = 200;
/*************************************/
???????int result = add(m,n);
???????System.out.println(result);
????}
}
???????????????????????????改成?????????????????????????????, ???????????????????????????
???????????????????????????改成?????????????????????????????。??
2.//使用文件字節流讀文件的內容
import java.io.*;
public class TestDemo{
???public static void main(String args[]) {
??????int n=-1;
??????byte [] a=new byte[100];
??????try{ ?File f=new File("Test.txt");
/*************************************************/
?????????InputStream in = new ?InputStream(f);
?/**********************************************/
??????????while((n=in.read(a,0,100))!=-1) {
???????????????String s=new String (a,0,n);
???????????????System.out.print(s);
????????????}
????????????in.close();
??????}
??????catch(IOException e) {
???????????System.out.println("File read Error"+e);
??????}
???}
}
?????????????????????????????改成??????????????????????????????。
五、程序閱讀題(本大題共3個小題,每小題 5分,共15?分)
1.寫出程序的運行結果
public class TestDemo{
????public static void main(String args[]){
????????String str="JAVA高端技術";
????????System.out.println(str.replaceAll("Java".toUpperCase(),"JavaEE"));
????}
}
程序的輸出是:?????????????????????????????????????????。
2.寫出程序的運行結果
import java.util.Map;
import java.util.TreeMap;
public class TreeMapExample{
????public static void main(String[] args) {
????????TreeMap<Integer, String> map = new TreeMap<>();
????????map.put(1, "Google");
????????map.put(3, "Facebook");
????????map.put(2, "Apple");
????????for (Map.Entry<Integer, String> entry : map.entrySet()) {
????????????System.out.print(entry.getKey() + ":" + entry.getValue());
????????}
????}
}
程序的輸出是:?????????????????????????????????????????。??????????????????
3.寫出程序的功能。
import java.io.*;
public class ReadWrite {
public static void main(String[] args) throws IOException {
InputStreamReader inReader=new InputStreamReader(System.in);
BufferedReader bStream=new BufferedReader(inReader);
FileOutputStream fWrite=new FileOutputStream("E:\\student.txt",true);
String rString;
do {
System.out.println("\n Please enter:");
System.out.flush();
rString=bStream.readLine();
System.out.println("Hello User>This is:");
fWrite.write(rString.getBytes());
System.out.println(">"+rString);
}while(rString.length()!=0);
}
}
程序的功能是:??????????????????????????????????????????????????。
六、程序填空題(本大題共2個小題,每空3分,共15?分)
1.統計生成的整數中0,1,2...,20的出現的次數,并輸出統計的結果。
public?class Count{
public static void main(String[] args) {
int c[]=new int[21];
int i,ran;
for(i=0;i<c.length;i++) {
???(1) ????????;
}
for(i=0;i<10000;i++) {
ran=(int)(Math.random()*20+0.5);
????????(2) ??????????????;
}
for(i=0;i<c.length;i++) {
System.out.println(i+"出現的次數是:"+c[i]);
}
}
}
- ?定義一個Usb接口,在接口中定義抽象方法connect(),然后分別定義Mouse類去實現Usb接口中的connect() 方法。要求以ConnectUsb類為測試類。在測試類中,定義一個靜態方法,然后將形參類型設置為接口類型,在方法體中通過接口引用調用connect() 方法。
??????(3) ????Usb {
????void connect();
}
class Mouse ?????(4) ??????????Usb {
????public void connect() {
????????System.out.println("鼠標已連接usb接口");
????}
}
public class ConnectUsb {
????public static void main(String[] args) {
????????Mouse mouse = new Mouse();
???????????????(5) ????????????????????;
???????????}
????public static void invoke_port(Usb usb) {
????????usb.connect();
????}
}
七、編程題(本大題共2個小題,每小題 10??分,共20??分)
1.一個完整的Java Application 程序。包含MyRectangle類及Test類,具體要求如下:
(1)類 MyRectangle:
屬性width: double類型,表示矩形的長
height: double類型,表示矩形的高
方法MyRectangle(double w, double h):構造函數
double getArea()方法:求一個矩形的面積
double getPerimeter()方法:求一個矩形的周長
(2)Test類作為主類要完成測試功能
生成MyRectangle對象
2.編程實現多態:編寫Java程序,定義一個抽象Animal類,再創建子類Dog類和Cat類,另處再創建一個Student類,并完成圖示功能。