Java語言程序設(shè)計試題附參考答案
Java語言程序設(shè)計詳細介紹了Java語言的基本概念和編程方法,同時深入介紹了Java的高級特性。以下是由陽光網(wǎng)小編整理關(guān)于Java語言程序設(shè)計試題的內(nèi)容,希望大家喜歡!
Java語言程序設(shè)計試題附參考答案
一、單項選擇題(本大題共10小題,每小題1分,共10分) 在每小題列出的四個備選項中只有一個是符合題目要求
的,請將其代碼填寫在題后的括號內(nèi)。錯選、多選或未選均無分。
1. 如果發(fā)生多個線程形成一個等待環(huán),這樣,所有線程都陷入相互等待的狀態(tài)。這種循環(huán)等待現(xiàn)象稱為() (1分)
A:互斥
B:同步
C:死鎖
D:臨界
2. 下面有關(guān)臨界段敘述錯誤的是() (1分)
A:多線程互斥使用共享資源的程序段被稱為臨界段
B:臨界段是一種加鎖機制,與多線程共享資源有關(guān)
C:臨界段的作用是在任何時該一個共享資源只能供一個線程使用
D:如果一個線程已進入某個共享資源的臨界段,且還沒有使用結(jié)束,其他進程可搶占這個共享的資源
3. 以下程序代碼的輸出結(jié)果是()
int x=100;
System.out.println("5.5"+x%8); (1分)
A:5.512
B:5.512.5
C:18
D:5.54
4. 在Java程序中有代碼如下:
System.out.println(
(new StringTokenizer("I am a student","a")).countTokens());
則輸出結(jié)果為() (1分)
A:I am a student
B:2
C:3
D:4
5. 為8位字節(jié)流數(shù)據(jù)提供讀操作支持的類是() (1分)
A:FileInputStream
B:FileOutputStrem
C:FileReader
D:FileWriter
6. 下列有關(guān)抽象類及抽象方法的敘述錯誤的是() (1分)
A:使用final修飾的類是抽象類
B:使用abstract修飾的方法是抽象方法
C:抽象類必須被繼承才能使用,抽象類不可能有實例
D:抽象類可以沒有抽象方法,但有抽象方法的類一定是抽象類
7. 在編寫Java程序訪問數(shù)據(jù)庫的過程中,用來處理驅(qū)動程序的加載和建立新數(shù)據(jù)庫連接的類是() (1分)
A:DriverManager類
B:Statement類
C:Connection類
D:ResultSet類
8. 在Java語言中執(zhí)行如下語句后,i和j的值分別為()
int i=10;int j=++i; (1分)
A:11和11
B:10和10
C:10和11
D:11和10
9. 包含當事件發(fā)生時從源傳遞給監(jiān)視器的特定事件信息的對象是() (1分)
A:事件對象
B:源對象
C:監(jiān)視器對象
D:接口
10. 在Java程序中有如下設(shè)置:setBackground(Color.blue);g.setXORMode(Color.red); g.setColor(Color.blue);g.drawLine(300,300,500,
500);則線的顏色是() (1分)
A:藍色
B:紅色
C:黃色
D:綠色
二、填空題(本大題共10小題,每小題2分,共20分)請在每小題的空格中填上正確答案。錯填、不填均無分。
1. 為選擇框(JCheckBox)對象設(shè)定監(jiān)視器的方法是:。 (2分)
2. 使用ResultSet對象的方法可將數(shù)據(jù)表游針移到插入位置,輸入數(shù)據(jù)后,用方法insertRow()插入記錄。 (2分)
3. 題中橫線處答案為: (2分)
4. 列表的選擇模型有單選和多選兩種,設(shè)置列表選擇模型的方法是。 (2分)
5. 多線程互斥使用共享資源的程序段,稱為,它是一種加鎖機制,與多線程共享資源有關(guān),它的作用是在任何時該一個共享資源只能供一個線程使
用。 (2分)
6. 流在某些應(yīng)用中,不希望順序讀寫流,而是需要采用隨機訪問方式,文件隨機訪問可利用類來實現(xiàn)。 (2分)
7. 創(chuàng)建java.net包中URL對象可能會產(chǎn)生異常。 (2分)
8. 以下代碼的輸出結(jié)果是。
System.out.println(5>4||3<4); (2分)
9. Java語言中需要采用隨機方式對文件進行讀寫,可利用類來實現(xiàn)。 (2分)
10. 在Java語言中,package語句必須出現(xiàn)在程序文件的。 (2分)
三、程序填空題(本大題共5小題,每空2分,共20分)
1. 某程序的界面包含了兩個按鈕button1和button2,一個文本框text。要求實現(xiàn)當點擊button1時,文本框中顯示“請認真做題!”;當點擊button2
時,文本框中內(nèi)容消失。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Class2801 extends JFrame
{
JButton butt1,butt2;
JTextField text1;
JFrame myWin;
public Class2801(String s)
{
myWin=new JFrame(s);
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//關(guān)閉窗口時,整個應(yīng)用程序關(guān)閉。若省略,關(guān)閉窗口時程序不終止,相當于setVisible
(false)
Container con=myWin.getContentPane();
con.setLayout(new FlowLayout(FlowLayout.LEFT));
butt1=new JButton("b1");
butt2=new JButton("b2");
butt1.addActionListener(this);
butt2.addActionListener(this);
con.add(butt1);con.add(butt2);
text1=new JTextField(20);
con.add(text1);
myWin.pack();
myWin.setVisible(true);
}
public static void main(String[] args)
{
Class2801 my=new Class2801("Class2801");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==butt1)
text1.setText("請認真做題!");
else
;
}
} (2分)
2. 以下是生成菜單項對象,以及菜單項選擇事件處理方法的代碼。要求當菜單項singingItem被選中時,在文本框text中輸出“唱歌菜單項被選中!”
的字樣。
…………
singingItem=new("唱歌");//生成菜單項對象
…………
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==singingItem)
{
text.setText(e.()+"菜單項被選中!");
}
} (2分)
3. 回文整數(shù)是指正讀和反讀都一樣的整數(shù)。方法f2705(int n)的功能是判斷十進制整數(shù)n是否為回文整數(shù)。例如:n=123321,該方法返回值為true;
n=123,該方法返回值為false。
boolean f2705(int n)
{
Integer M=n;
String s=;
int i=0;
while(i<s.length()/2)
{
String s1,s2;
s1=s.substring(i,i+1);
s2=s.substring(s.length()-i-1,s.length()-i);
if(!())break;
i++;
}
if (i<s.length()/2) return false;
else return true;
} (2分)
4. 程序運行結(jié)果如下圖:五個按鈕按照緊湊方式顯示在窗口中。
import java.awt.*;
import javax.swing.*;
public class Class2805
{
public static void main(String[] args)
{
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myWin.setBounds(100,200,400,200);
Container con=myWin.getContentPane();
con.setBackground(Color.red);
con.setLayout(new FlowLayout());
JButton button[]=new JButton[5];
for(int i=0;i<5;i++)
{
button[i]=new JButton("第"+(i+1)+"個按鈕");
con.add(button[i]);
}
myWin.setVisible(true);
}
} (2分)
5. 下面小應(yīng)用程序?qū)崿F(xiàn)在一個文本框中輸入整數(shù)后回車,另一個文本框中顯示這個整數(shù)的平方。
import javax.swing.*;
import java.applet.*;
import java.awt.event.*;
public class C2802 extends Applet
{
static JTextField text1,text2;
CC c=new CC();
public void init()
{
text1=new JTextField(10);
text2=new JTextField(20);
add(text1);add(text2);
}
}
class CC implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==C2802.text1)
{
long n=;
C2802.text2.setText(n*n+"");
}
}
} (2分)
四、程序分析題(本大題共5小題,每小題4分,共20分)
1. 寫出下面程序的運行結(jié)果。
public class Class34ThreadTest
{
public static void main(String args[])
{
Hello h=new Hello();
Thread t=new Thread(h);
t.start();
}
}
class Hello implements Runnable
{
int i;
public void run()
{
while(true)
{
System.out.println("Hello"+i++);
if(i==5) break;
}
}
} (4分)
2. 閱讀程序,畫出程序運行后的界面并寫出程序的功能。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Class3601 implements AdjustmentListener
{
JScrollBar myBar;
JLabel label;
public Class3601(String s)
{
JFrame myWin=new JFrame(s);
Container con=myWin.getContentPane();
con.setLayout(new GridLayout(2,1));
myBar=new JScrollBar(JScrollBar.HORIZONTAL,5,20,0,300);
label=new JLabel(""+myBar.getValue(),JLabel.CENTER);
myBar.addAdjustmentListener(this);
con.add(label);
con.add(myBar);
myWin.setSize(300,100);
myWin.setVisible(true);
}
public void adjustmentValueChanged(AdjustmentEvent e)
{
label.setText(""+e.getAdjustable().getValue());
}
public static void main(String[] args)
{
new Class3601("Class3601");
}
} (4分)
3. 閱讀程序,畫出程序運行后初始界面并寫出程序功能。
import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Class3503 implements ActionListener
{
JButton button1,button2;
JLabel label;
JTextArea textA;
JTextField text;
int n;
public Class3503()
{
JFrame myWin=new JFrame("Class3503");
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container con=myWin.getContentPane();
con.setLayout(new FlowLayout());
textA=new JTextArea("",5,10);
JScrollPane jsp=new JScrollPane(textA);
con.add(jsp);
button1=new JButton("sum");
button2=new JButton("ave");
button1.addActionListener(this);
button2.addActionListener(this);
con.add(button1);con.add(button2);
label=new JLabel("計算結(jié)果:");
con.add(label);
text=new JTextField(10);
con.add(text);
myWin.setBounds(300,300,600,200);
myWin.setVisible(true);
}
int sum()
{
String str=textA.getText();
StringTokenizer tokens=new StringTokenizer(str);
n=tokens.countTokens();
int s=0;
for(int i=0;i<n;i++)
{
String t=tokens.nextToken();
s+=Integer.parseInt(t);
}
return s;
}
float avg()
{
return (float)sum()/n;
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button1)
{
label.setText("輸入數(shù)的和");
text.setText(""+sum());
}
if(e.getSource()==button2)
{
label.setText("輸入數(shù)的平均值");
text.setText(""+avg());
}
}
public static void main(String[] args)
{
new Class3503();
}
} (4分)
4. 閱讀下列程序,寫出程序運行結(jié)果。
public class Class3305
{
public static void main(String args[])
{
byte b[]=new byte[10];
for(int k=0;k<10;k++)
b[k]=(byte)(k+48);
String s1=new String(b);String s2=new String(b,3,6);
String s3=new String("ABC");String s4=new String("JAVA程序");
byte c[]=s3.getBytes();byte d[]=s4.getBytes();
System.out.println(s2);
System.out.println(s3);
System.out.println(c.length);
System.out.println(d.length);
}
} (4分)
5. 閱讀下列程序,寫出程序運行結(jié)果。
import java.util.StringTokenizer;
public class C3301
{
public static void main(String[] args)
{
String ss="public static void main";
StringTokenizer pas=new StringTokenizer(ss," ");
int n=pas.countTokens();
System.out.println(n);
String s=pas.nextToken();
for(pas.nextToken();pas.hasMoreTokens();s=pas.nextToken())
System.out.println(s);
}
}
(4分)
五、程序設(shè)計題(本大題共2小題,每小題6分,共12分)
1. 設(shè)計一個應(yīng)用程序,求整數(shù)文件intfile1.txt中各行整數(shù)的和,并把和存入到另一個文件intfile2.txt中。設(shè)整數(shù)文件中全是整數(shù),整數(shù)序列被
分成行,各行整數(shù)個數(shù)不等且用空格分隔。要求程序?qū)⑽募懈餍姓麛?shù)的和輸出在另一個文件中。 (6分)
2. 一個Java小應(yīng)用程序,界面有兩個文本框、一個文本區(qū)和一個按鈕,兩個文本框用于輸入整數(shù),文本區(qū)用于輸出結(jié)果。按鈕表示求兩個整
數(shù)之間的素數(shù)。當兩個文本框輸入整數(shù)后,點擊相應(yīng)按鈕,程序就將兩個整數(shù)之間的所有素數(shù)用空格隔開每5個一行輸出在文本區(qū)中。以下是程序的
大部分,其中監(jiān)視按鈕事件的方法未給出,試編寫處理按鈕事件的方法。
注:這里是給定部分的程序,你要編寫的是actionPerformed(ActionEvent e)方法。
import java.applet.*;
import javax.swing.*;
import java.awt.event.*;
class MyPanel extends JPanel
{
JTextField text1,text2;
JTextArea textA;
JButton button;
MyPanel()
{
text1=new JTextField(10);
text2=new JTextField(10);
textA=new JTextArea(10,10);
button=new JButton("求兩個整數(shù)之間的素數(shù)");
add(text1);add(text2);add(button);add(textA);
}
}
public class C3802 extends Applet implements ActionListener
{
MyPanel panel;
public void init()
{
setSize(600,200);panel=new MyPanel();add(panel);
panel.button.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
//這里是你要編寫的代碼
}
} (6分)
六、簡答題(本大題共6小題,每小題3分,共18分)
1. 設(shè)有整型變量x和y的值分別為5和110。請指出執(zhí)行了下面循環(huán)語句后,變量x和y的值分別是多少?
do{x=y/x;y=y-x;}while(y>=1); (3分)
2. 能將類同時聲明為abstract和final嗎?為什么? (3分)
3. 請寫出一條語句,能夠繪制一條垂直線段,上端點坐標為(200,300),長為100像素。設(shè)調(diào)用的對象是類型為Graphics的g。 (3分)
4. 如果類A1是類A0的子類,類A2是類A1的子類,請指出以下代碼行中哪些是不合法的?
①A0 p1=new A1();
、贏0 p2=new A2();
、跘1 p3=new A0();
④A1 p4=new A2();
、軦2 p5=new A0();
⑥A2 p6=new A1();
、逴bject ob=new A1(); (3分)
5. 請寫出一條Java語句,要求建立一個文件對象f,其對應(yīng)的磁盤文件是“d:\gzq.txt”。 (3分)
6. 使用Java語言進行數(shù)據(jù)庫操作,刪除數(shù)據(jù)表記錄有哪三種方案? (3分)
Java語言程序設(shè)計試題參考答案
一、單項選擇題 (本大題共10小題,每小題1分,共10分) 在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代碼填寫在題后的括號內(nèi)
。錯選、多選或未選均無分。
1:參考答案:C
參考解析:(P171)在互斥同步機制的實現(xiàn)中,稍有不當,就可能產(chǎn)生死鎖。Java語言對死鎖問題沒有特別處理,只能由用戶在編程時注意。Java技術(shù)
既不能發(fā)現(xiàn)死鎖也不能避免死鎖。防止死鎖的有效方法是:①線程因為某個條件未滿足,不能讓其繼續(xù)占有資源;②如果由多個對象需要互斥訪問
,應(yīng)確定線程獲得鎖的順序,并保證整個程序以相反的順序釋放鎖。
試題內(nèi)容:
如果發(fā)生多個線程形成一個等待環(huán),這樣,所有線程都陷入相互等待的狀態(tài)。這種循環(huán)等待現(xiàn)象稱為()
A:互斥
B:同步
C:死鎖
D:臨界
2:參考答案:D
參考解析:(P167)如果一個線程已進入某個共享資源的臨界段,且還沒有使用結(jié)束,其他進程必須等待。
試題內(nèi)容:
下面有關(guān)臨界段敘述錯誤的是()
A:多線程互斥使用共享資源的.程序段被稱為臨界段
B:臨界段是一種加鎖機制,與多線程共享資源有關(guān)
C:臨界段的作用是在任何時該一個共享資源只能供一個線程使用
D:如果一個線程已進入某個共享資源的臨界段,且還沒有使用結(jié)束,其他進程可搶占這個共享的資源
3:參考答案:D
參考解析:(P14)百分號運算為求余運算符,但是和前面字符串進行的是連接運算。
試題內(nèi)容:
以下程序代碼的輸出結(jié)果是()
int x=100;
System.out.println("5.5"+x%8);
A:5.512
B:5.512.5
C:18
D:5.54
4:參考答案:C
參考解析:(P77)StringTokenizer用于對單詞的分析,本題是用?a?作為分隔,這樣句子"I am a student"被分隔為三部分。countTokens()方法得到3。
試題內(nèi)容:
在Java程序中有代碼如下:
System.out.println(
(new StringTokenizer("I am a student","a")).countTokens());
則輸出結(jié)果為()
A:I am a student
B:2
C:3
D:4
5:參考答案:A
參考解析:(P175)
試題內(nèi)容:
為8位字節(jié)流數(shù)據(jù)提供讀操作支持的類是()
A:FileInputStream
B:FileOutputStrem
C:FileReader
D:FileWriter
6:參考答案:A
參考解析:(P54)本題考核知識點是Java抽象類及抽象方法。抽象類和抽象方法都是使用abstract進行修飾。抽象類只聲明一個模板,沒有具體實現(xiàn)的
代碼,只有它的子類才可能有實際意義。抽象方法只能出現(xiàn)在抽象類中,抽象方法在抽象類中只聲明了一個方法頭部就用分號結(jié)束了,沒有實現(xiàn)方
法功能的代碼。使用final修飾的類、方法和變量都是不可以再改變的。final類不能被繼承,final方法不能被子類的方法覆蓋,final變量相當于一個常
量。
試題內(nèi)容:
下列有關(guān)抽象類及抽象方法的敘述錯誤的是()
A:使用final修飾的類是抽象類
B:使用abstract修飾的方法是抽象方法
C:抽象類必須被繼承才能使用,抽象類不可能有實例
D:抽象類可以沒有抽象方法,但有抽象方法的類一定是抽象類
7:參考答案:A
參考解析:(P201)本題考核知識點是DriverManager類。DriverManager類處理驅(qū)動程序的加載和建立新數(shù)據(jù)連接;Statement類用于在指定的連接中處
理SQL語句;Connection類用于處理與特定數(shù)據(jù)庫的連接;ResultSet類用于處理SQL語句執(zhí)行后的查詢結(jié)果。
試題內(nèi)容:
在編寫Java程序訪問數(shù)據(jù)庫的過程中,用來處理驅(qū)動程序的加載和建立新數(shù)據(jù)庫連接的類是()
A:DriverManager類
B:Statement類
C:Connection類
D:ResultSet類
8:參考答案:A
參考解析:(P14)j=++i;++運算符在前,則表示先運算;變量i在后,則后使用。先運算++i,這時i的值變?yōu)?1,后使用把i賦值給j,j也是11。這里的運算
指自增運算。若是j=i++;++運算符在后,則后運算;變量i在前,則表示先使用。先使用,這時i的值是10,使用是把i賦值給j,j也是10,然后i再運算
,i變?yōu)?1。結(jié)果為11和10。自減運算是一樣的,如果把++i或i++放到更復雜的式子中也是一樣的規(guī)律。
試題內(nèi)容:
在Java語言中執(zhí)行如下語句后,i和j的值分別為()
int i=10;int j=++i;
A:11和11
B:10和10
C:10和11
D:11和10
9:參考答案:A
參考解析:(P87)例如:當用戶點擊Button對象對應(yīng)的按鈕時,系統(tǒng)就將一個ActionEvent事件對象從事件激發(fā)對象傳遞到監(jiān)視器。ActionEvent對象包
含的信息有事件發(fā)生在哪一個按鈕上以及有關(guān)事件的其他信息。
試題內(nèi)容:
包含當事件發(fā)生時從源傳遞給監(jiān)視器的特定事件信息的對象是()
A:事件對象
B:源對象
C:監(jiān)視器對象
D:接口
10:參考答案:B
參考解析:(P140)本題考核知識點是繪圖模式。繪圖模式設(shè)置為異或模式后,用背景色繪圖將出現(xiàn)異或模式設(shè)置的顏色。
試題內(nèi)容:
在Java程序中有如下設(shè)置:setBackground(Color.blue);g.setXORMode(Color.red); g.setColor(Color.blue);g.drawLine(300,300,500,500);則線的顏色是()
A:藍色
B:紅色
C:黃色
D:綠色
二、填空題 (本大題共10小題,每小題2分,共20分)請在每小題的空格中填上正確答案。錯填、不填均無分。
1:參考答案:(P111)addItemListener(ItemListener I)
試題內(nèi)容:
為選擇框(JCheckBox)對象設(shè)定監(jiān)視器的方法是:_____。
2:參考答案:(P207)moveToInserRow()
試題內(nèi)容:
使用ResultSet對象的_____方法可將數(shù)據(jù)表游針移到插入位置,輸入數(shù)據(jù)后,用方法insertRow()插入記錄。
3:參考答案:(P70)5
試題內(nèi)容:
題中橫線處答案為:_____
4:參考答案:(P115)setSelectionMode()
試題內(nèi)容:
列表的選擇模型有單選和多選兩種,設(shè)置列表選擇模型的方法是_____。
5:參考答案:(P167)臨界段
試題內(nèi)容:
多線程互斥使用共享資源的程序段,稱為_____,它是一種加鎖機制,與多線程共享資源有關(guān),它的作用是在任何時該一個共享資源只能供
一個線程使用。
6:參考答案:(P180)RandomAccessFile
試題內(nèi)容:
流在某些應(yīng)用中,不希望順序讀寫流,而是需要采用隨機訪問方式,文件隨機訪問可利用_____類來實現(xiàn)。
7:參考答案:MalformedURLException
[解析](P191)創(chuàng)建java.net包中URL對象可能會產(chǎn)生MalformedURLException異常,所以,創(chuàng)建URL對象的代碼應(yīng)出現(xiàn)在
try...catch語句塊中,以便能捕捉網(wǎng)址錯誤異常
試題內(nèi)容:
創(chuàng)建java.net包中URL對象可能會產(chǎn)生_____異常。
8:參考答案:(P15)true
試題內(nèi)容:
以下代碼的輸出結(jié)果是_____。
System.out.println(5>4||3<4);
9:參考答案:(P180)RandomAccessFile
試題內(nèi)容:
Java語言中需要采用隨機方式對文件進行讀寫,可利用_____類來實現(xiàn)。
10:參考答案:(P31)起始行
試題內(nèi)容:
在Java語言中,package語句必須出現(xiàn)在程序文件的_____。
三、程序填空題 (本大題共5小題,每空2分,共20分)
1:參考答案:implements ActionListener
text1.setText("")
,
試題內(nèi)容:
某程序的界面包含了兩個按鈕button1和button2,一個文本框text。要求實現(xiàn)當點擊button1時,文本框中顯示“請認真做題!”;當點擊
button2時,文本框中內(nèi)容消失。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Class2801 extends JFrame_____
{
JButton butt1,butt2;
JTextField text1;
JFrame myWin;
public Class2801(String s)
{
myWin=new JFrame(s);
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//關(guān)閉窗口時,整個應(yīng)用程序關(guān)閉。若省略,關(guān)閉窗口時程序不終止,相當于setVisible(false)
Container con=myWin.getContentPane();
con.setLayout(new FlowLayout(FlowLayout.LEFT));
butt1=new JButton("b1");
butt2=new JButton("b2");
butt1.addActionListener(this);
butt2.addActionListener(this);
con.add(butt1);con.add(butt2);
text1=new JTextField(20);
con.add(text1);
myWin.pack();
myWin.setVisible(true);
}
public static void main(String[] args)
{
Class2801 my=new Class2801("Class2801");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==butt1)
text1.setText("請認真做題!");
else
_____;
}
}
2:參考答案:JMenuItem
getActionCommand
,
試題內(nèi)容:
以下是生成菜單項對象,以及菜單項選擇事件處理方法的代碼。要求當菜單項singingItem被選中時,在文本框text中輸出“唱歌菜單項被選
中!”的字樣。
…………
singingItem=new_____("唱歌");//生成菜單項對象
…………
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==singingItem)
{
text.setText(e._____()+"菜單項被選中!");
}
}
3:參考答案:M.toString()
s1.equals(s2)
,
試題內(nèi)容:
回文整數(shù)是指正讀和反讀都一樣的整數(shù)。方法f2705(int n)的功能是判斷十進制整數(shù)n是否為回文整數(shù)。例如:n=123321,該方法返回值為
true;n=123,該方法返回值為false。
boolean f2705(int n)
{
Integer M=n;
String s=_____;
int i=0;
while(i<s.length()/2)
{
String s1,s2;
s1=s.substring(i,i+1);
s2=s.substring(s.length()-i-1,s.length()-i);
if(!(_____))break;
i++;
}
if (i<s.length()/2) return false;
else return true;
}
4:參考答案:JFrame myWin=new JFrame("Class2805");
myWin.pack();
,
試題內(nèi)容:
程序運行結(jié)果如下圖:五個按鈕按照緊湊方式顯示在窗口中。
import java.awt.*;
import javax.swing.*;
public class Class2805
{
public static void main(String[] args)
{
_____
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myWin.setBounds(100,200,400,200);
Container con=myWin.getContentPane();
con.setBackground(Color.red);
con.setLayout(new FlowLayout());
JButton button[]=new JButton[5];
for(int i=0;i<5;i++)
{
button[i]=new JButton("第"+(i+1)+"個按鈕");
con.add(button[i]);
}
_____
myWin.setVisible(true);
}
}
5:參考答案:text1.addActionListener(c);
Long.parseLong(C2802.text1.getText())
,
試題內(nèi)容:
下面小應(yīng)用程序?qū)崿F(xiàn)在一個文本框中輸入整數(shù)后回車,另一個文本框中顯示這個整數(shù)的平方。
import javax.swing.*;
import java.applet.*;
import java.awt.event.*;
public class C2802 extends Applet
{
static JTextField text1,text2;
CC c=new CC();
public void init()
{
text1=new JTextField(10);
text2=new JTextField(20);
add(text1);add(text2);
_____
}
}
class CC implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==C2802.text1)
{
long n=_____;
C2802.text2.setText(n*n+"");
}
}
}
四、程序分析題 (本大題共5小題,每小題4分,共20分)
1:參考答案:輸出結(jié)果為:
Hello0
Hello1
Hello2
Hello3
Hello4
試題內(nèi)容:
寫出下面程序的運行結(jié)果。
public class Class34ThreadTest
{
public static void main(String args[])
{
Hello h=new Hello();
Thread t=new Thread(h);
t.start();
}
}
class Hello implements Runnable
{
int i;
public void run()
{
while(true)
{
System.out.println("Hello"+i++);
if(i==5) break;
}
}
}
2:參考答案:程序運行后的界面如下:
程序的功能是:拖動滑塊,在上面的標簽中間顯示滑塊的當前值,范圍為0~280。
試題內(nèi)容:
閱讀程序,畫出程序運行后的界面并寫出程序的功能。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Class3601 implements AdjustmentListener
{
JScrollBar myBar;
JLabel label;
public Class3601(String s)
{
JFrame myWin=new JFrame(s);
Container con=myWin.getContentPane();
con.setLayout(new GridLayout(2,1));
myBar=new JScrollBar(JScrollBar.HORIZONTAL,5,20,0,300);
label=new JLabel(""+myBar.getValue(),JLabel.CENTER);
myBar.addAdjustmentListener(this);
con.add(label);
con.add(myBar);
myWin.setSize(300,100);
myWin.setVisible(true);
}
public void adjustmentValueChanged(AdjustmentEvent e)
{
label.setText(""+e.getAdjustable().getValue());
}
public static void main(String[] args)
{
new Class3601("Class3601");
}
}
3:參考答案:程序運行后初始界面如下:
程序功能:在左邊設(shè)有滾動條的文本區(qū)輸入若干整數(shù),單擊sum按鈕,“計算結(jié)果”標簽顯示“輸入數(shù)的和”并在右邊文
本框中顯示輸入數(shù)的和,;單擊ave按鈕,“計算結(jié)果”標簽顯示“輸入數(shù)的平均值”并在右邊文本框中顯示輸入數(shù)的平
均值。
試題內(nèi)容:
閱讀程序,畫出程序運行后初始界面并寫出程序功能。
import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Class3503 implements ActionListener
{
JButton button1,button2;
JLabel label;
JTextArea textA;
JTextField text;
int n;
public Class3503()
{
JFrame myWin=new JFrame("Class3503");
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container con=myWin.getContentPane();
con.setLayout(new FlowLayout());
textA=new JTextArea("",5,10);
JScrollPane jsp=new JScrollPane(textA);
con.add(jsp);
button1=new JButton("sum");
button2=new JButton("ave");
button1.addActionListener(this);
button2.addActionListener(this);
con.add(button1);con.add(button2);
label=new JLabel("計算結(jié)果:");
con.add(label);
text=new JTextField(10);
con.add(text);
myWin.setBounds(300,300,600,200);
myWin.setVisible(true);
}
int sum()
{
String str=textA.getText();
StringTokenizer tokens=new StringTokenizer(str);
n=tokens.countTokens();
int s=0;
for(int i=0;i<n;i++)
{
String t=tokens.nextToken();
s+=Integer.parseInt(t);
}
return s;
}
float avg()
{
return (float)sum()/n;
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button1)
{
label.setText("輸入數(shù)的和");
text.setText(""+sum());
}
if(e.getSource()==button2)
{
label.setText("輸入數(shù)的平均值");
text.setText(""+avg());
}
}
public static void main(String[] args)
{
new Class3503();
}
}
4:參考答案:程序運行結(jié)果:
345678
ABC
3
8
試題內(nèi)容:
閱讀下列程序,寫出程序運行結(jié)果。
public class Class3305
{
public static void main(String args[])
{
byte b[]=new byte[10];
for(int k=0;k<10;k++)
b[k]=(byte)(k+48);
String s1=new String(b);String s2=new String(b,3,6);
String s3=new String("ABC");String s4=new String("JAVA程序");
byte c[]=s3.getBytes();byte d[]=s4.getBytes();
System.out.println(s2);
System.out.println(s3);
System.out.println(c.length);
System.out.println(d.length);
}
}
5:參考答案:運行結(jié)果:
4
static
void
試題內(nèi)容:
閱讀下列程序,寫出程序運行結(jié)果。
import java.util.StringTokenizer;
public class C3301
{
public static void main(String[] args)
{
String ss="public static void main";
StringTokenizer pas=new StringTokenizer(ss," ");
int n=pas.countTokens();
System.out.println(n);
String s=pas.nextToken();
for(pas.nextToken();pas.hasMoreTokens();s=pas.nextToken())
System.out.println(s);
}
}
五、程序設(shè)計題 (本大題共2小題,每小題6分,共12分)
1:參考答案:程序如下:
import java.io.*;
import java.util.*;
public class Class3803
{
public static void main(String[] args)
{
RandomAccessFile in,out;
try
{
in=new RandomAccessFile("intfile1.txt","r");
out=new RandomAccessFile("intfile2.txt","rw");
String s;
while((s=in.readLine())!=null)
{
StringTokenizer token=new StringTokenizer(s);
long sum=0;
while(token.hasMoreTokens())
{
sum+=Integer.parseInt(token.nextToken());
}
out.writeLong(sum);
}
in.close();out.close();
}
catch(FileNotFoundException e)
{System.out.println("文件找不到!"+e);}
catch(IOException e)
{System.out.println("文件讀寫錯!"+e);}
}
}
試題內(nèi)容:
設(shè)計一個應(yīng)用程序,求整數(shù)文件intfile1.txt中各行整數(shù)的和,并把和存入到另一個文件intfile2.txt中。設(shè)整數(shù)文件中全是整數(shù),整數(shù)序列被分
成行,各行整數(shù)個數(shù)不等且用空格分隔。要求程序?qū)⑽募懈餍姓麛?shù)的和輸出在另一個文件中。
2:參考答案:long m,n;
m=Long.parseLong(panel.text1.getText());
n=Long.parseLong(panel.text2.getText());
if (m>n)
{long t=m;m=n;n=t;}
panel.textA.setText("");
int i=0;
for(long i=m;i<=n;i++)
{
long j;
for(j=2;j<i;j++)
if (i%j==0)break;
if(j==i)
{
panel.textA.append(" "+i);
i++;
if(i%5==0)
panel.textA.append("\n");
}
}
試題內(nèi)容:
一個Java小應(yīng)用程序,界面有兩個文本框、一個文本區(qū)和一個按鈕,兩個文本框用于輸入整數(shù),文本區(qū)用于輸出結(jié)果。按鈕表示求兩個整數(shù)
之間的素數(shù)。當兩個文本框輸入整數(shù)后,點擊相應(yīng)按鈕,程序就將兩個整數(shù)之間的所有素數(shù)用空格隔開每5個一行輸出在文本區(qū)中。以下是程序的大
部分,其中監(jiān)視按鈕事件的方法未給出,試編寫處理按鈕事件的方法。
注:這里是給定部分的程序,你要編寫的是actionPerformed(ActionEvent e)方法。
import java.applet.*;
import javax.swing.*;
import java.awt.event.*;
class MyPanel extends JPanel
{
JTextField text1,text2;
JTextArea textA;
JButton button;
MyPanel()
{
text1=new JTextField(10);
text2=new JTextField(10);
textA=new JTextArea(10,10);
button=new JButton("求兩個整數(shù)之間的素數(shù)");
add(text1);add(text2);add(button);add(textA);
}
}
public class C3802 extends Applet implements ActionListener
{
MyPanel panel;
public void init()
{
setSize(600,200);panel=new MyPanel();add(panel);
panel.button.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
//這里是你要編寫的代碼
}
}
六、簡答題 (本大題共6小題,每小題3分,共18分)
1:參考答案:(P35)x=18,y=0
試題內(nèi)容:
設(shè)有整型變量x和y的值分別為5和110。請指出執(zhí)行了下面循環(huán)語句后,變量x和y的值分別是多少?
do{x=y/x;y=y-x;}while(y>=1);
2:參考答案:(P54)不能。Final類是不能被再繼承的類,即它不能再有子類。而abstract類稱為抽象類,抽象類只聲明一種模板,
是沒有具體實現(xiàn)代碼的類,只有它的子類才可能是有實際意義的類,所有抽象類必須被繼承,必須有子類,然后在子類
中可以實現(xiàn)超類的抽象方法,否則不可能有實例。所以abstract和final不可能同時用來修飾一個類。
試題內(nèi)容:
能將類同時聲明為abstract和final嗎?為什么?
3:參考答案:(P140)g.drawLine(200,300,200,400)
試題內(nèi)容:
請寫出一條語句,能夠繪制一條垂直線段,上端點坐標為(200,300),長為100像素。設(shè)調(diào)用的對象是類型為Graphics的g。
4:參考答案:(P51)③⑤⑥不合法。
試題內(nèi)容:
如果類A1是類A0的子類,類A2是類A1的子類,請指出以下代碼行中哪些是不合法的?
①A0 p1=new A1();
、贏0 p2=new A2();
、跘1 p3=new A0();
、蹵1 p4=new A2();
、軦2 p5=new A0();
、轆2 p6=new A1();
、逴bject ob=new A1();
5:參考答案:(P175)File f=new File("d:\\gzq.txt");
試題內(nèi)容:
請寫出一條Java語句,要求建立一個文件對象f,其對應(yīng)的磁盤文件是“d:\gzq.txt”。
6:參考答案:(P208)
(1)使用Statement對象;
(2)使用ResultSet對象;
(3)使用PrepareStatement對象。
【Java語言程序設(shè)計試題附參考答案】相關(guān)文章: