Java語(yǔ)言程序設(shè)計(jì)試題附參考答案
Java語(yǔ)言程序設(shè)計(jì)詳細(xì)介紹了Java語(yǔ)言的基本概念和編程方法,同時(shí)深入介紹了Java的高級(jí)特性。以下是由陽(yáng)光網(wǎng)小編整理關(guān)于Java語(yǔ)言程序設(shè)計(jì)試題的內(nèi)容,希望大家喜歡!
Java語(yǔ)言程序設(shè)計(jì)試題附參考答案
一、單項(xiàng)選擇題(本大題共10小題,每小題1分,共10分) 在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求
的,請(qǐng)將其代碼填寫(xiě)在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無(wú)分。
1. 如果發(fā)生多個(gè)線(xiàn)程形成一個(gè)等待環(huán),這樣,所有線(xiàn)程都陷入相互等待的狀態(tài)。這種循環(huán)等待現(xiàn)象稱(chēng)為() (1分)
A:互斥
B:同步
C:死鎖
D:臨界
2. 下面有關(guān)臨界段敘述錯(cuò)誤的是() (1分)
A:多線(xiàn)程互斥使用共享資源的程序段被稱(chēng)為臨界段
B:臨界段是一種加鎖機(jī)制,與多線(xiàn)程共享資源有關(guān)
C:臨界段的作用是在任何時(shí)該一個(gè)共享資源只能供一個(gè)線(xiàn)程使用
D:如果一個(gè)線(xiàn)程已進(jìn)入某個(gè)共享資源的臨界段,且還沒(méi)有使用結(jié)束,其他進(jìn)程可搶占這個(gè)共享的資源
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ù)提供讀操作支持的類(lèi)是() (1分)
A:FileInputStream
B:FileOutputStrem
C:FileReader
D:FileWriter
6. 下列有關(guān)抽象類(lèi)及抽象方法的敘述錯(cuò)誤的是() (1分)
A:使用final修飾的類(lèi)是抽象類(lèi)
B:使用abstract修飾的方法是抽象方法
C:抽象類(lèi)必須被繼承才能使用,抽象類(lèi)不可能有實(shí)例
D:抽象類(lèi)可以沒(méi)有抽象方法,但有抽象方法的類(lèi)一定是抽象類(lèi)
7. 在編寫(xiě)Java程序訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的過(guò)程中,用來(lái)處理驅(qū)動(dòng)程序的加載和建立新數(shù)據(jù)庫(kù)連接的類(lèi)是() (1分)
A:DriverManager類(lèi)
B:Statement類(lèi)
C:Connection類(lèi)
D:ResultSet類(lèi)
8. 在Java語(yǔ)言中執(zhí)行如下語(yǔ)句后,i和j的值分別為()
int i=10;int j=++i; (1分)
A:11和11
B:10和10
C:10和11
D:11和10
9. 包含當(dāng)事件發(fā)生時(shí)從源傳遞給監(jiān)視器的特定事件信息的對(duì)象是() (1分)
A:事件對(duì)象
B:源對(duì)象
C:監(jiān)視器對(duì)象
D:接口
10. 在Java程序中有如下設(shè)置:setBackground(Color.blue);g.setXORMode(Color.red); g.setColor(Color.blue);g.drawLine(300,300,500,
500);則線(xiàn)的顏色是() (1分)
A:藍(lán)色
B:紅色
C:黃色
D:綠色
二、填空題(本大題共10小題,每小題2分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。
1. 為選擇框(JCheckBox)對(duì)象設(shè)定監(jiān)視器的方法是:。 (2分)
2. 使用ResultSet對(duì)象的方法可將數(shù)據(jù)表游針移到插入位置,輸入數(shù)據(jù)后,用方法insertRow()插入記錄。 (2分)
3. 題中橫線(xiàn)處答案為: (2分)
4. 列表的選擇模型有單選和多選兩種,設(shè)置列表選擇模型的方法是。 (2分)
5. 多線(xiàn)程互斥使用共享資源的程序段,稱(chēng)為,它是一種加鎖機(jī)制,與多線(xiàn)程共享資源有關(guān),它的作用是在任何時(shí)該一個(gè)共享資源只能供一個(gè)線(xiàn)程使
用。 (2分)
6. 流在某些應(yīng)用中,不希望順序讀寫(xiě)流,而是需要采用隨機(jī)訪(fǎng)問(wèn)方式,文件隨機(jī)訪(fǎng)問(wèn)可利用類(lèi)來(lái)實(shí)現(xiàn)。 (2分)
7. 創(chuàng)建java.net包中URL對(duì)象可能會(huì)產(chǎn)生異常。 (2分)
8. 以下代碼的輸出結(jié)果是。
System.out.println(5>4||3<4); (2分)
9. Java語(yǔ)言中需要采用隨機(jī)方式對(duì)文件進(jìn)行讀寫(xiě),可利用類(lèi)來(lái)實(shí)現(xiàn)。 (2分)
10. 在Java語(yǔ)言中,package語(yǔ)句必須出現(xiàn)在程序文件的。 (2分)
三、程序填空題(本大題共5小題,每空2分,共20分)
1. 某程序的界面包含了兩個(gè)按鈕button1和button2,一個(gè)文本框text。要求實(shí)現(xiàn)當(dāng)點(diǎn)擊button1時(shí),文本框中顯示“請(qǐng)認(rèn)真做題!”;當(dāng)點(diǎn)擊button2
時(shí),文本框中內(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)閉窗口時(shí),整個(gè)應(yīng)用程序關(guān)閉。若省略,關(guān)閉窗口時(shí)程序不終止,相當(dāng)于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("請(qǐng)認(rèn)真做題!");
else
;
}
} (2分)
2. 以下是生成菜單項(xiàng)對(duì)象,以及菜單項(xiàng)選擇事件處理方法的代碼。要求當(dāng)菜單項(xiàng)singingItem被選中時(shí),在文本框text中輸出“唱歌菜單項(xiàng)被選中!”
的字樣。
…………
singingItem=new("唱歌");//生成菜單項(xiàng)對(duì)象
…………
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==singingItem)
{
text.setText(e.()+"菜單項(xiàng)被選中!");
}
} (2分)
3. 回文整數(shù)是指正讀和反讀都一樣的整數(shù)。方法f2705(int n)的功能是判斷十進(jì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. 程序運(yùn)行結(jié)果如下圖:五個(gè)按鈕按照緊湊方式顯示在窗口中。
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)+"個(gè)按鈕");
con.add(button[i]);
}
myWin.setVisible(true);
}
} (2分)
5. 下面小應(yīng)用程序?qū)崿F(xiàn)在一個(gè)文本框中輸入整數(shù)后回車(chē),另一個(gè)文本框中顯示這個(gè)整數(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. 寫(xiě)出下面程序的運(yùn)行結(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. 閱讀程序,畫(huà)出程序運(yùn)行后的界面并寫(xiě)出程序的功能。
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. 閱讀程序,畫(huà)出程序運(yùn)行后初始界面并寫(xiě)出程序功能。
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("計(jì)算結(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. 閱讀下列程序,寫(xiě)出程序運(yùn)行結(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. 閱讀下列程序,寫(xiě)出程序運(yùn)行結(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è)計(jì)題(本大題共2小題,每小題6分,共12分)
1. 設(shè)計(jì)一個(gè)應(yīng)用程序,求整數(shù)文件intfile1.txt中各行整數(shù)的和,并把和存入到另一個(gè)文件intfile2.txt中。設(shè)整數(shù)文件中全是整數(shù),整數(shù)序列被
分成行,各行整數(shù)個(gè)數(shù)不等且用空格分隔。要求程序?qū)⑽募懈餍姓麛?shù)的和輸出在另一個(gè)文件中。 (6分)
2. 一個(gè)Java小應(yīng)用程序,界面有兩個(gè)文本框、一個(gè)文本區(qū)和一個(gè)按鈕,兩個(gè)文本框用于輸入整數(shù),文本區(qū)用于輸出結(jié)果。按鈕表示求兩個(gè)整
數(shù)之間的素?cái)?shù)。當(dāng)兩個(gè)文本框輸入整數(shù)后,點(diǎn)擊相應(yīng)按鈕,程序就將兩個(gè)整數(shù)之間的所有素?cái)?shù)用空格隔開(kāi)每5個(gè)一行輸出在文本區(qū)中。以下是程序的
大部分,其中監(jiān)視按鈕事件的方法未給出,試編寫(xiě)處理按鈕事件的方法。
注:這里是給定部分的程序,你要編寫(xiě)的是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("求兩個(gè)整數(shù)之間的素?cái)?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)
{
//這里是你要編寫(xiě)的代碼
}
} (6分)
六、簡(jiǎn)答題(本大題共6小題,每小題3分,共18分)
1. 設(shè)有整型變量x和y的值分別為5和110。請(qǐng)指出執(zhí)行了下面循環(huán)語(yǔ)句后,變量x和y的值分別是多少?
do{x=y/x;y=y-x;}while(y>=1); (3分)
2. 能將類(lèi)同時(shí)聲明為abstract和final嗎?為什么? (3分)
3. 請(qǐng)寫(xiě)出一條語(yǔ)句,能夠繪制一條垂直線(xiàn)段,上端點(diǎn)坐標(biāo)為(200,300),長(zhǎng)為100像素。設(shè)調(diào)用的對(duì)象是類(lèi)型為Graphics的g。 (3分)
4. 如果類(lèi)A1是類(lèi)A0的子類(lèi),類(lèi)A2是類(lèi)A1的子類(lèi),請(qǐng)指出以下代碼行中哪些是不合法的?
①A0 p1=new A1();
②A0 p2=new A2();
③A1 p3=new A0();
④A1 p4=new A2();
⑤A2 p5=new A0();
⑥A2 p6=new A1();
⑦Object ob=new A1(); (3分)
5. 請(qǐng)寫(xiě)出一條Java語(yǔ)句,要求建立一個(gè)文件對(duì)象f,其對(duì)應(yīng)的磁盤(pán)文件是“d:\gzq.txt”。 (3分)
6. 使用Java語(yǔ)言進(jìn)行數(shù)據(jù)庫(kù)操作,刪除數(shù)據(jù)表記錄有哪三種方案? (3分)
Java語(yǔ)言程序設(shè)計(jì)試題參考答案
一、單項(xiàng)選擇題 (本大題共10小題,每小題1分,共10分) 在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫(xiě)在題后的括號(hào)內(nèi)
。錯(cuò)選、多選或未選均無(wú)分。
1:參考答案:C
參考解析:(P171)在互斥同步機(jī)制的實(shí)現(xiàn)中,稍有不當(dāng),就可能產(chǎn)生死鎖。Java語(yǔ)言對(duì)死鎖問(wèn)題沒(méi)有特別處理,只能由用戶(hù)在編程時(shí)注意。Java技術(shù)
既不能發(fā)現(xiàn)死鎖也不能避免死鎖。防止死鎖的有效方法是:①線(xiàn)程因?yàn)槟硞(gè)條件未滿(mǎn)足,不能讓其繼續(xù)占有資源;②如果由多個(gè)對(duì)象需要互斥訪(fǎng)問(wèn)
,應(yīng)確定線(xiàn)程獲得鎖的順序,并保證整個(gè)程序以相反的順序釋放鎖。
試題內(nèi)容:
如果發(fā)生多個(gè)線(xiàn)程形成一個(gè)等待環(huán),這樣,所有線(xiàn)程都陷入相互等待的狀態(tài)。這種循環(huán)等待現(xiàn)象稱(chēng)為()
A:互斥
B:同步
C:死鎖
D:臨界
2:參考答案:D
參考解析:(P167)如果一個(gè)線(xiàn)程已進(jìn)入某個(gè)共享資源的臨界段,且還沒(méi)有使用結(jié)束,其他進(jìn)程必須等待。
試題內(nèi)容:
下面有關(guān)臨界段敘述錯(cuò)誤的是()
A:多線(xiàn)程互斥使用共享資源的.程序段被稱(chēng)為臨界段
B:臨界段是一種加鎖機(jī)制,與多線(xiàn)程共享資源有關(guān)
C:臨界段的作用是在任何時(shí)該一個(gè)共享資源只能供一個(gè)線(xiàn)程使用
D:如果一個(gè)線(xiàn)程已進(jìn)入某個(gè)共享資源的臨界段,且還沒(méi)有使用結(jié)束,其他進(jìn)程可搶占這個(gè)共享的資源
3:參考答案:D
參考解析:(P14)百分號(hào)運(yùn)算為求余運(yùn)算符,但是和前面字符串進(jìn)行的是連接運(yùn)算。
試題內(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用于對(duì)單詞的分析,本題是用?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ù)提供讀操作支持的類(lèi)是()
A:FileInputStream
B:FileOutputStrem
C:FileReader
D:FileWriter
6:參考答案:A
參考解析:(P54)本題考核知識(shí)點(diǎn)是Java抽象類(lèi)及抽象方法。抽象類(lèi)和抽象方法都是使用abstract進(jìn)行修飾。抽象類(lèi)只聲明一個(gè)模板,沒(méi)有具體實(shí)現(xiàn)的
代碼,只有它的子類(lèi)才可能有實(shí)際意義。抽象方法只能出現(xiàn)在抽象類(lèi)中,抽象方法在抽象類(lèi)中只聲明了一個(gè)方法頭部就用分號(hào)結(jié)束了,沒(méi)有實(shí)現(xiàn)方
法功能的代碼。使用final修飾的類(lèi)、方法和變量都是不可以再改變的。final類(lèi)不能被繼承,final方法不能被子類(lèi)的方法覆蓋,final變量相當(dāng)于一個(gè)常
量。
試題內(nèi)容:
下列有關(guān)抽象類(lèi)及抽象方法的敘述錯(cuò)誤的是()
A:使用final修飾的類(lèi)是抽象類(lèi)
B:使用abstract修飾的方法是抽象方法
C:抽象類(lèi)必須被繼承才能使用,抽象類(lèi)不可能有實(shí)例
D:抽象類(lèi)可以沒(méi)有抽象方法,但有抽象方法的類(lèi)一定是抽象類(lèi)
7:參考答案:A
參考解析:(P201)本題考核知識(shí)點(diǎn)是DriverManager類(lèi)。DriverManager類(lèi)處理驅(qū)動(dòng)程序的加載和建立新數(shù)據(jù)連接;Statement類(lèi)用于在指定的連接中處
理SQL語(yǔ)句;Connection類(lèi)用于處理與特定數(shù)據(jù)庫(kù)的連接;ResultSet類(lèi)用于處理SQL語(yǔ)句執(zhí)行后的查詢(xún)結(jié)果。
試題內(nèi)容:
在編寫(xiě)Java程序訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的過(guò)程中,用來(lái)處理驅(qū)動(dòng)程序的加載和建立新數(shù)據(jù)庫(kù)連接的類(lèi)是()
A:DriverManager類(lèi)
B:Statement類(lèi)
C:Connection類(lèi)
D:ResultSet類(lèi)
8:參考答案:A
參考解析:(P14)j=++i;++運(yùn)算符在前,則表示先運(yùn)算;變量i在后,則后使用。先運(yùn)算++i,這時(shí)i的值變?yōu)?1,后使用把i賦值給j,j也是11。這里的運(yùn)算
指自增運(yùn)算。若是j=i++;++運(yùn)算符在后,則后運(yùn)算;變量i在前,則表示先使用。先使用,這時(shí)i的值是10,使用是把i賦值給j,j也是10,然后i再運(yùn)算
,i變?yōu)?1。結(jié)果為11和10。自減運(yùn)算是一樣的,如果把++i或i++放到更復(fù)雜的式子中也是一樣的規(guī)律。
試題內(nèi)容:
在Java語(yǔ)言中執(zhí)行如下語(yǔ)句后,i和j的值分別為()
int i=10;int j=++i;
A:11和11
B:10和10
C:10和11
D:11和10
9:參考答案:A
參考解析:(P87)例如:當(dāng)用戶(hù)點(diǎn)擊Button對(duì)象對(duì)應(yīng)的按鈕時(shí),系統(tǒng)就將一個(gè)ActionEvent事件對(duì)象從事件激發(fā)對(duì)象傳遞到監(jiān)視器。ActionEvent對(duì)象包
含的信息有事件發(fā)生在哪一個(gè)按鈕上以及有關(guān)事件的其他信息。
試題內(nèi)容:
包含當(dāng)事件發(fā)生時(shí)從源傳遞給監(jiān)視器的特定事件信息的對(duì)象是()
A:事件對(duì)象
B:源對(duì)象
C:監(jiān)視器對(duì)象
D:接口
10:參考答案:B
參考解析:(P140)本題考核知識(shí)點(diǎn)是繪圖模式。繪圖模式設(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);則線(xiàn)的顏色是()
A:藍(lán)色
B:紅色
C:黃色
D:綠色
二、填空題 (本大題共10小題,每小題2分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。
1:參考答案:(P111)addItemListener(ItemListener I)
試題內(nèi)容:
為選擇框(JCheckBox)對(duì)象設(shè)定監(jiān)視器的方法是:_____。
2:參考答案:(P207)moveToInserRow()
試題內(nèi)容:
使用ResultSet對(duì)象的_____方法可將數(shù)據(jù)表游針移到插入位置,輸入數(shù)據(jù)后,用方法insertRow()插入記錄。
3:參考答案:(P70)5
試題內(nèi)容:
題中橫線(xiàn)處答案為:_____
4:參考答案:(P115)setSelectionMode()
試題內(nèi)容:
列表的選擇模型有單選和多選兩種,設(shè)置列表選擇模型的方法是_____。
5:參考答案:(P167)臨界段
試題內(nèi)容:
多線(xiàn)程互斥使用共享資源的程序段,稱(chēng)為_(kāi)____,它是一種加鎖機(jī)制,與多線(xiàn)程共享資源有關(guān),它的作用是在任何時(shí)該一個(gè)共享資源只能供
一個(gè)線(xiàn)程使用。
6:參考答案:(P180)RandomAccessFile
試題內(nèi)容:
流在某些應(yīng)用中,不希望順序讀寫(xiě)流,而是需要采用隨機(jī)訪(fǎng)問(wèn)方式,文件隨機(jī)訪(fǎng)問(wèn)可利用_____類(lèi)來(lái)實(shí)現(xiàn)。
7:參考答案:MalformedURLException
[解析](P191)創(chuàng)建java.net包中URL對(duì)象可能會(huì)產(chǎn)生MalformedURLException異常,所以,創(chuàng)建URL對(duì)象的代碼應(yīng)出現(xiàn)在
try...catch語(yǔ)句塊中,以便能捕捉網(wǎng)址錯(cuò)誤異常
試題內(nèi)容:
創(chuàng)建java.net包中URL對(duì)象可能會(huì)產(chǎn)生_____異常。
8:參考答案:(P15)true
試題內(nèi)容:
以下代碼的輸出結(jié)果是_____。
System.out.println(5>4||3<4);
9:參考答案:(P180)RandomAccessFile
試題內(nèi)容:
Java語(yǔ)言中需要采用隨機(jī)方式對(duì)文件進(jìn)行讀寫(xiě),可利用_____類(lèi)來(lái)實(shí)現(xiàn)。
10:參考答案:(P31)起始行
試題內(nèi)容:
在Java語(yǔ)言中,package語(yǔ)句必須出現(xiàn)在程序文件的_____。
三、程序填空題 (本大題共5小題,每空2分,共20分)
1:參考答案:implements ActionListener
text1.setText("")
,
試題內(nèi)容:
某程序的界面包含了兩個(gè)按鈕button1和button2,一個(gè)文本框text。要求實(shí)現(xiàn)當(dāng)點(diǎn)擊button1時(shí),文本框中顯示“請(qǐng)認(rèn)真做題!”;當(dāng)點(diǎn)擊
button2時(shí),文本框中內(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)閉窗口時(shí),整個(gè)應(yīng)用程序關(guān)閉。若省略,關(guān)閉窗口時(shí)程序不終止,相當(dāng)于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("請(qǐng)認(rèn)真做題!");
else
_____;
}
}
2:參考答案:JMenuItem
getActionCommand
,
試題內(nèi)容:
以下是生成菜單項(xiàng)對(duì)象,以及菜單項(xiàng)選擇事件處理方法的代碼。要求當(dāng)菜單項(xiàng)singingItem被選中時(shí),在文本框text中輸出“唱歌菜單項(xiàng)被選
中!”的字樣。
…………
singingItem=new_____("唱歌");//生成菜單項(xiàng)對(duì)象
…………
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==singingItem)
{
text.setText(e._____()+"菜單項(xiàng)被選中!");
}
}
3:參考答案:M.toString()
s1.equals(s2)
,
試題內(nèi)容:
回文整數(shù)是指正讀和反讀都一樣的整數(shù)。方法f2705(int n)的功能是判斷十進(jì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)容:
程序運(yùn)行結(jié)果如下圖:五個(gè)按鈕按照緊湊方式顯示在窗口中。
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)+"個(gè)按鈕");
con.add(button[i]);
}
_____
myWin.setVisible(true);
}
}
5:參考答案:text1.addActionListener(c);
Long.parseLong(C2802.text1.getText())
,
試題內(nèi)容:
下面小應(yīng)用程序?qū)崿F(xiàn)在一個(gè)文本框中輸入整數(shù)后回車(chē),另一個(gè)文本框中顯示這個(gè)整數(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)容:
寫(xiě)出下面程序的運(yùn)行結(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:參考答案:程序運(yùn)行后的界面如下:
程序的功能是:拖動(dòng)滑塊,在上面的標(biāo)簽中間顯示滑塊的當(dāng)前值,范圍為0~280。
試題內(nèi)容:
閱讀程序,畫(huà)出程序運(yùn)行后的界面并寫(xiě)出程序的功能。
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:參考答案:程序運(yùn)行后初始界面如下:
程序功能:在左邊設(shè)有滾動(dòng)條的文本區(qū)輸入若干整數(shù),單擊sum按鈕,“計(jì)算結(jié)果”標(biāo)簽顯示“輸入數(shù)的和”并在右邊文
本框中顯示輸入數(shù)的和,;單擊ave按鈕,“計(jì)算結(jié)果”標(biāo)簽顯示“輸入數(shù)的平均值”并在右邊文本框中顯示輸入數(shù)的平
均值。
試題內(nèi)容:
閱讀程序,畫(huà)出程序運(yùn)行后初始界面并寫(xiě)出程序功能。
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("計(jì)算結(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:參考答案:程序運(yùn)行結(jié)果:
345678
ABC
3
8
試題內(nèi)容:
閱讀下列程序,寫(xiě)出程序運(yùn)行結(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:參考答案:運(yùn)行結(jié)果:
4
static
void
試題內(nèi)容:
閱讀下列程序,寫(xiě)出程序運(yùn)行結(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è)計(jì)題 (本大題共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("文件讀寫(xiě)錯(cuò)!"+e);}
}
}
試題內(nèi)容:
設(shè)計(jì)一個(gè)應(yīng)用程序,求整數(shù)文件intfile1.txt中各行整數(shù)的和,并把和存入到另一個(gè)文件intfile2.txt中。設(shè)整數(shù)文件中全是整數(shù),整數(shù)序列被分
成行,各行整數(shù)個(gè)數(shù)不等且用空格分隔。要求程序?qū)⑽募懈餍姓麛?shù)的和輸出在另一個(gè)文件中。
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)容:
一個(gè)Java小應(yīng)用程序,界面有兩個(gè)文本框、一個(gè)文本區(qū)和一個(gè)按鈕,兩個(gè)文本框用于輸入整數(shù),文本區(qū)用于輸出結(jié)果。按鈕表示求兩個(gè)整數(shù)
之間的素?cái)?shù)。當(dāng)兩個(gè)文本框輸入整數(shù)后,點(diǎn)擊相應(yīng)按鈕,程序就將兩個(gè)整數(shù)之間的所有素?cái)?shù)用空格隔開(kāi)每5個(gè)一行輸出在文本區(qū)中。以下是程序的大
部分,其中監(jiān)視按鈕事件的方法未給出,試編寫(xiě)處理按鈕事件的方法。
注:這里是給定部分的程序,你要編寫(xiě)的是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("求兩個(gè)整數(shù)之間的素?cái)?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)
{
//這里是你要編寫(xiě)的代碼
}
}
六、簡(jiǎn)答題 (本大題共6小題,每小題3分,共18分)
1:參考答案:(P35)x=18,y=0
試題內(nèi)容:
設(shè)有整型變量x和y的值分別為5和110。請(qǐng)指出執(zhí)行了下面循環(huán)語(yǔ)句后,變量x和y的值分別是多少?
do{x=y/x;y=y-x;}while(y>=1);
2:參考答案:(P54)不能。Final類(lèi)是不能被再繼承的類(lèi),即它不能再有子類(lèi)。而abstract類(lèi)稱(chēng)為抽象類(lèi),抽象類(lèi)只聲明一種模板,
是沒(méi)有具體實(shí)現(xiàn)代碼的類(lèi),只有它的子類(lèi)才可能是有實(shí)際意義的類(lèi),所有抽象類(lèi)必須被繼承,必須有子類(lèi),然后在子類(lèi)
中可以實(shí)現(xiàn)超類(lèi)的抽象方法,否則不可能有實(shí)例。所以abstract和final不可能同時(shí)用來(lái)修飾一個(gè)類(lèi)。
試題內(nèi)容:
能將類(lèi)同時(shí)聲明為abstract和final嗎?為什么?
3:參考答案:(P140)g.drawLine(200,300,200,400)
試題內(nèi)容:
請(qǐng)寫(xiě)出一條語(yǔ)句,能夠繪制一條垂直線(xiàn)段,上端點(diǎn)坐標(biāo)為(200,300),長(zhǎng)為100像素。設(shè)調(diào)用的對(duì)象是類(lèi)型為Graphics的g。
4:參考答案:(P51)③⑤⑥不合法。
試題內(nèi)容:
如果類(lèi)A1是類(lèi)A0的子類(lèi),類(lèi)A2是類(lèi)A1的子類(lèi),請(qǐng)指出以下代碼行中哪些是不合法的?
①A0 p1=new A1();
②A0 p2=new A2();
③A1 p3=new A0();
④A1 p4=new A2();
⑤A2 p5=new A0();
⑥A2 p6=new A1();
⑦Object ob=new A1();
5:參考答案:(P175)File f=new File("d:\\gzq.txt");
試題內(nèi)容:
請(qǐng)寫(xiě)出一條Java語(yǔ)句,要求建立一個(gè)文件對(duì)象f,其對(duì)應(yīng)的磁盤(pán)文件是“d:\gzq.txt”。
6:參考答案:(P208)
(1)使用Statement對(duì)象;
(2)使用ResultSet對(duì)象;
(3)使用PrepareStatement對(duì)象。
【Java語(yǔ)言程序設(shè)計(jì)試題附參考答案】相關(guān)文章:
1.Java語(yǔ)言程序設(shè)計(jì)試題及答案
4.Java語(yǔ)言程序設(shè)計(jì)模擬試題及答案
5.Java語(yǔ)言程序設(shè)計(jì)試題及答案(六)
6.Java語(yǔ)言程序設(shè)計(jì)試題及答案(八)