Java語(yǔ)言程序設(shè)計(jì)試題及答案(八)
學(xué)好Java語(yǔ)言程序設(shè)計(jì)對(duì)掌握電腦能力是有很大幫助的,同學(xué)們要努力去學(xué)好Java語(yǔ)言程序設(shè)計(jì)哦,下面是陽(yáng)光網(wǎng)小編給大家整理的Java語(yǔ)言程序設(shè)計(jì)試題及答案,歡迎大家學(xué)習(xí)參考。
Java語(yǔ)言程序設(shè)計(jì)試題及答案(八)
一、單項(xiàng)選擇題(本大題共10小題,每小題1分,共10分) 在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)
。錯(cuò)選、多選或未選均無(wú)分。
1. Java中實(shí)現(xiàn)輸入/輸出操作的類庫(kù)在() (1分)
A:java.io包中
B:java.input包中
C:java.output包中
D:java.lang.io包中
2. 以下程序代碼的輸出結(jié)果是()
System.out.println(100/8); (1分)
A:12.5
B:12
C:4
D:0
3. 在Java程序中聲明一個(gè)數(shù)組,錯(cuò)誤的是() (1分)
A:int a[];
B:int a[][];
C:float a[10];
D:float [ ]a[ ];
4. 在Java程序中有定義:int x[][]=new int[4][5];則x.length和x[3].length的值分別是() (1分)
A:4和5
B:5和4
C:4和3
D:5和3
5. 下列關(guān)于線程的說(shuō)法正確的是() (1分)
A:一個(gè)線程被創(chuàng)建,它就立即開始運(yùn)行
B:使用start()方法可以使一個(gè)線程立即開始運(yùn)行
C:當(dāng)一個(gè)線程因?yàn)閾屜葯C(jī)制而停止運(yùn)行時(shí),它被放在可運(yùn)行隊(duì)列的前面
D:一個(gè)正在運(yùn)行的線程可能因?yàn)槟承┣闆r而進(jìn)入阻塞狀態(tài)
6. 下列屬于合法的Java標(biāo)識(shí)符是() (1分)
A:_cat
B:5books
C:+static
D:-3.14159
7. 在Java語(yǔ)言中,把按鈕button的標(biāo)題文字設(shè)置為“第一個(gè)按鈕”的方法是() (1分)
A:button.SetText("第一個(gè)按鈕")
B:button.GetText("第一個(gè)按鈕")
C:button.SetLabel("第一個(gè)按鈕")
D:button.GetLabel("第一個(gè)按鈕")
8. Java組件可以使用Toolkit提供的靜態(tài)方法獲得一個(gè)缺省的Toolkit對(duì)象,并用它加載圖像,這個(gè)靜態(tài)方法是() (1分)
A:getImage(String name)
B:getImage(URL url)
C:getDefaultToolkit()
D:getToolkit()
9. 定義一個(gè)使用接口Java.lang.Runnable的類,必須要實(shí)現(xiàn)的方法是() (1分)
A:start()
B:run()
C:init()
D:paint()
10. 以下是創(chuàng)建File對(duì)象的代碼,錯(cuò)誤的是() (1分)
A:File f1=new File("/mydir/myfile.txt");
B:File f2=new File("/mydir","myfile.txt");
C:File f3=new File("\\mydir\\myfile.txt");
D:File f4=new File("\mydir\myfile.txt");
二、填空題(本大題共10小題,每小題2分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。
1. 如果有一個(gè)類MyFrame是JFrame的子類,能夠被不同包中的類所使用,請(qǐng)寫出該類的聲明頭部: 。 (2分)
2. 在Java程序中,要?jiǎng)?chuàng)建一個(gè)10行20列的文本區(qū),可以采用的構(gòu)造方法是。 (2分)
3. 布局是把容器劃分成若干行和列的網(wǎng)格狀,行數(shù)和列數(shù)由程序控制,組件放在網(wǎng)格的小格子中。 (2分)
4. 在Java語(yǔ)言中,位異或運(yùn)算的運(yùn)算符為。 (2分)
5. 端口號(hào)與IP地址的組合稱為。 (2分)
6. Java小程序要播放一個(gè)與程序文件在一起的名為mymusic.au的音樂文件,小程序中應(yīng)用先創(chuàng)建AudioClip對(duì)象,若對(duì)象名為myClip,則創(chuàng)建對(duì)象
myClip的代碼為。 (2分)
7. 在Java語(yǔ)言中,定義一個(gè)接口,在接口名前面需要關(guān)鍵字。 (2分)
8. Java程序?qū)崿F(xiàn)多線程應(yīng)用的途徑之一是:定義一個(gè)實(shí)現(xiàn)接口的類,并在類中提供該接口的所有方法。 (2分)
9. 以下程序代碼的輸出結(jié)果為:。
String s1="abc",s2="ab",s3;
s3=s2.concat("c");
System.out.println(s1==s3); (2分)
10. 采用緩沖式輸入時(shí),可以對(duì)BufferedReader對(duì)象使用方法按行讀取文件中的內(nèi)容。 (2分)
三、程序填空題(本大題共5小題,每空2分,共20分)
1. 下列應(yīng)用程序,產(chǎn)生兩個(gè)組合框,一個(gè)可以選擇月份,一個(gè)可以選擇2000~2009年之間的年份。
import javax.swing.*;
public class Class31002 extends JFrame
{
JComboBox monthBox=new JComboBox();
public Class31002()
{
super("Expiration Date");
setSize(240,90);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane=new JPanel();
JLabel exp=new JLabel("Expiration Date:");
for (int i=0;i<13;i++) monthBox.addItem(" "+i);
for(int i=2000;i<2010;i++) yearBox.addItem(" "+i);
pane.add(exp);
pane.add(monthBox);
setContentPane(pane);
}
public static void main(String[]arg)
{
new Class31002().setVisible(true);
}
} (2分)
2. 求出所有滿足下列條件的二位數(shù):將此二位數(shù)的個(gè)位數(shù)字與十位數(shù)字進(jìn)行交換,可得到一個(gè)新的數(shù),要求新數(shù)與原數(shù)之和小于100。
int i,j,x,y;
for(i=10;i<100;i++)
{
j=10*x+y;
if(i+j<100)
System.out.print(i+" ");
} (2分)
3. 以下程序的功能是:生成菜單條(menubar)、菜單(menu)和菜單項(xiàng)(item1,item2)對(duì)象,有 “文件”菜單,“文件”菜單中有“新建”,“保存”
菜單項(xiàng)。
import javax.swing.*;
public class Class2903
{
public Class2903()
{
JFrame myWin=new JFrame();
JMenuBar menubar=new JMenuBar();
JMenuItem item1=new JMenuItem("新建");
JMenuItem item2=new JMenuItem("保存");
myWin.setJMenuBar(menubar);
menu.add(item1);
menu.add(item2);
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myWin.setBounds(100,100,200,200);
myWin.setVisible(true);
}
public static void main(String[]args)
{
new Class2903();
}
} (2分)
4. 小應(yīng)用程序運(yùn)行結(jié)果如下:紅色方塊在文字上從左向右循環(huán)移動(dòng)。
import java.applet.*;
import java.awt.*;
public class Class3004 extends Applet
{
int i=1;
public void{setBackground(Color.yellow);}
public void paint(Graphics g)
{
i+=8;if(i>160)i=1;
g.;
g.fillRect(i,10,20,20);
g.drawString("我正在學(xué)習(xí)Java繪圖!",1,25);
try{Thread.sleep(100);}
catch(InterruptedException e){}
repaint();
}
} (2分)
5. 以下小應(yīng)用程序運(yùn)行后顯示一幅圖片。
import java.applet.*;
import java.awt.*;
public class Class3005 extends Applet
{
Image myImg;
public void start()
{
myImg=(getCodeBase(),"myImg.jpg");
}
public void paint(Graphics g)
{
g.(myImg,0,0,this);
}
} (2分)
四、程序分析題(本大題共5小題,每小題4分,共20分)
1. 閱讀下面程序,寫出程序運(yùn)行結(jié)果。
class A
{
B obj;
A()
{
obj=new B();
obj.print();
System.out.println("AAA");
}
class B
{
public void print()
{System.out.println("BBB");}
}
}
public class Class3202
{
public static void main(String arg[])
{A obj=new A();}
} (4分)
2. 閱讀下列程序,寫出程序運(yùn)行結(jié)果。
interface Computable
{
final int MAX=100;
int f(int x);
int g(int x,int y);
}
class Aa implements Computable
{
int no;
public int f(int x)
{
int sum=0;
for(int i=1;i<=x;i++)sum=sum+i;
return sum;
}
public int g(int x,int y){return x*y;}
}
class Bb implements Computable
{
int no;
public int f(int x)
{
int sum=0;
for(int i=1;i<=x;i++)sum=sum+i*i;
return sum;
}
public int g(int x,int y){return x+y;}
}
public class Class3204
{
public static void main(String[] args)
{
Aa li;Bb tom;
li=new Aa();li.no=851898;
tom=new Bb();tom.no=951899;
System.out.print("Li的編號(hào)"+li.no+","+li.MAX);
System.out.println(","+li.f(3)+","+li.g(3,4));
System.out.print("Tom的編號(hào)"+tom.no+","+tom.MAX);
System.out.print(","+tom.f(3)+","+tom.g(3,4));
}
} (4分)
3. 閱讀下列程序,寫出程序運(yùn)行結(jié)果。
import java.util.*;
public class Class3304
{
public static void main(String[] args)
{
String s1="public,static?void,main";
StringTokenizer pas1=new StringTokenizer(s1,"? ,");
int n1=pas1.countTokens();
System.out.println(n1);
while(pas1.hasMoreTokens())
{
String s=pas1.nextToken();
System.out.println(s);
}
}
} (4分)
4. 閱讀下列程序,寫出程序功能。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Class3404 implements ActionListener
{
JButton butt[]=new JButton[3];
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals("One"))
butt[1].setEnabled(false);
if(e.getActionCommand().equals("Three"))
butt[1].setEnabled(true);
}
public Class3404()
{
JFrame my=new JFrame("Class3404");
Container con=my.getContentPane();
con.setBackground(Color.red);
con.setLayout(new FlowLayout());
String str[]={"One","Two","Three"};
for(int i=0;i<3;i++)
{
butt[i]=new JButton(str[i]);
con.add(butt[i]);
butt[i].addActionListener(this);
}
my.setBounds(100,100,600,300);
my.setVisible(true);
}
public static void main(String[]args)
{
new Class3404();
}
} (4分)
5. 閱讀下列程序,寫出程序功能。
import javax.swing.*;
public class C3501
{
public static void main(String[] args)
{
JFrame myWin=new JFrame("C3501");
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar jmb=new JMenuBar();
myWin.setJMenuBar(jmb);
myWin.setBounds(100,200,300,300);
JMenu jm=new JMenu("AAA");
jmb.add(jm);
JMenuItem jmi=new JMenuItem("AA1");
jm.add(jmi);
JMenu jm2=new JMenu("AA2");
jm.add(jm2);
JMenuItem jmi2=new JMenuItem("AA21");
jm2.add(jmi2);
myWin.setVisible(true);
}
}
(4分)
五、程序設(shè)計(jì)題(本大題共2小題,每小題6分,共12分)
1. 編寫編寫一個(gè)方法array3701(),要求該方法有一個(gè)元素類型為int的數(shù)組參數(shù),方法返回一個(gè)新數(shù)組,新數(shù)組的長(zhǎng)度與參數(shù)數(shù)組的長(zhǎng)度相同
,而新數(shù)組元素的值和參數(shù)數(shù)組各元素的`值首尾顛倒。 (6分)
2. 編寫一個(gè)方法f3701(),要求該方法有一個(gè)字符串參數(shù)s,方法的功能是統(tǒng)計(jì)s中連續(xù)相同的字符構(gòu)成的子串的最大長(zhǎng)度,方法返回這個(gè)最大
長(zhǎng)度值,若沒有,則返回1。
例如s="103300002222223333",其中連續(xù)相同的字符構(gòu)成的子串有4個(gè),長(zhǎng)度依次為2、4、6、4,則最大長(zhǎng)度為6。 (6分)
六、簡(jiǎn)答題(本大題共6小題,每小題3分,共18分)
1. Java.awt.event包中用來(lái)檢測(cè)并對(duì)事件做出反應(yīng)的模型包括哪三個(gè)組成元素? (3分)
2. 接口有與類相似的基本形式,接口有常量定義和方法定義,但沒有方法的實(shí)現(xiàn)代碼,接口中給出某種特定功能的一組方法的規(guī)范,方法
的規(guī)范主要包括哪些? (3分)
3. 請(qǐng)寫出為8位字節(jié)流數(shù)據(jù)和16位字符流數(shù)據(jù)分別提供讀和寫操作的類。 (3分)
4. 某Java程序要使用文件輸入輸出流,請(qǐng)寫出該程序所需要的import語(yǔ)句。 (3分)
5. 閱讀下面程序,如果在橫線上分別填寫①i=m②i=b③i=p.a④i=p.change(100)四個(gè)賦值語(yǔ)句,有哪些不合法?請(qǐng)寫出原因。
class Class2201
{
private int a;
public int change(int m){return m;}
}
public class Class22 extends Person
{
public int b;
public static void main(String[]args)
{
Class2201 p=new Class2201();
Class22 t=new Class22();
int i;
___;
}
} (3分)
6. 文本框處理程序的基本內(nèi)容有哪幾個(gè)方面? (3分)
參考答案
一、單項(xiàng)選擇題 (本大題共10小題,每小題1分,共10分) 在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫在題后的括號(hào)內(nèi)
。錯(cuò)選、多選或未選均無(wú)分。
1:參考答案:A
參考解析:(P175)
試題內(nèi)容:
Java中實(shí)現(xiàn)輸入/輸出操作的類庫(kù)在()
A:java.io包中
B:java.input包中
C:java.output包中
D:java.lang.io包中
2:參考答案:B
參考解析:(P14)“/”為除法運(yùn)算符,當(dāng)除數(shù)和被除數(shù)均為整數(shù)類型時(shí),結(jié)果也是整數(shù)類型。
試題內(nèi)容:
以下程序代碼的輸出結(jié)果是()
System.out.println(100/8);
A:12.5
B:12
C:4
D:0
3:參考答案:C
參考解析:(P69)數(shù)組聲明中不得指定大小,可以在聲明時(shí)創(chuàng)建指定大小:float a[]=new float[10]。
試題內(nèi)容:
在Java程序中聲明一個(gè)數(shù)組,錯(cuò)誤的是()
A:int a[];
B:int a[][];
C:float a[10];
D:float [ ]a[ ];
4:參考答案:A
參考解析:(P72)前者是二維數(shù)組的子數(shù)組的個(gè)數(shù)為4,后者是指定子數(shù)組的元素的個(gè)數(shù),本題每個(gè)子數(shù)組的元素個(gè)數(shù)都為5。如果定義的是非平衡數(shù)
組,則每個(gè)子數(shù)組個(gè)數(shù)可能會(huì)不同。
試題內(nèi)容:
在Java程序中有定義:int x[][]=new int[4][5];則x.length和x[3].length的值分別是()
A:4和5
B:5和4
C:4和3
D:5和3
5:參考答案:D
參考解析:(P159)一個(gè)線程被創(chuàng)建后處于新建狀態(tài),它還沒有啟動(dòng),它可以被啟動(dòng)或終止。當(dāng)調(diào)用了start()方法后,線程處于就緒狀態(tài),具備了運(yùn)行
的條件,但還是沒有進(jìn)入運(yùn)行狀態(tài)。當(dāng)一個(gè)線程因?yàn)閾屜葯C(jī)制而停止運(yùn)行時(shí),它應(yīng)被放在可運(yùn)行隊(duì)列的后面而不是前面。
試題內(nèi)容:
下列關(guān)于線程的說(shuō)法正確的是()
A:一個(gè)線程被創(chuàng)建,它就立即開始運(yùn)行
B:使用start()方法可以使一個(gè)線程立即開始運(yùn)行
C:當(dāng)一個(gè)線程因?yàn)閾屜葯C(jī)制而停止運(yùn)行時(shí),它被放在可運(yùn)行隊(duì)列的前面
D:一個(gè)正在運(yùn)行的線程可能因?yàn)槟承┣闆r而進(jìn)入阻塞狀態(tài)
6:參考答案:A
參考解析:(P8)標(biāo)識(shí)符只能由字母、下劃線、美元字符、文字字符和數(shù)字組成,不能由數(shù)字開頭。B答案數(shù)字開頭,C答案中使用了+號(hào),D答案使用
了-號(hào),加減號(hào)不能組成標(biāo)識(shí)符。
試題內(nèi)容:
下列屬于合法的Java標(biāo)識(shí)符是()
A:_cat
B:5books
C:+static
D:-3.14159
7:參考答案:C
參考解析:(P92)
試題內(nèi)容:
在Java語(yǔ)言中,把按鈕button的標(biāo)題文字設(shè)置為“第一個(gè)按鈕”的方法是()
A:button.SetText("第一個(gè)按鈕")
B:button.GetText("第一個(gè)按鈕")
C:button.SetLabel("第一個(gè)按鈕")
D:button.GetLabel("第一個(gè)按鈕")
8:參考答案:C
參考解析:(P150)Java組件可以使用Toolkit提供的靜態(tài)方法getDefaultToolkit()獲得一個(gè)缺省的Toolkit對(duì)象,并用它加載圖像。此時(shí),載入圖像的代碼
可以這樣寫:
URL url=new URL(http://www.uvw.com/image.gif);
Image img=Toolkit.getDefaultToolkit().getImage(url);
試題內(nèi)容:
Java組件可以使用Toolkit提供的靜態(tài)方法獲得一個(gè)缺省的Toolkit對(duì)象,并用它加載圖像,這個(gè)靜態(tài)方法是()
A:getImage(String name)
B:getImage(URL url)
C:getDefaultToolkit()
D:getToolkit()
9:參考答案:B
參考解析:(P163)Java.lang.Runnable接口只有run()方法需要實(shí)現(xiàn)。一個(gè)實(shí)現(xiàn)Runnable接口的類實(shí)際上定義了一個(gè)在主線程之外的新線程的操作。
試題內(nèi)容:
定義一個(gè)使用接口Java.lang.Runnable的類,必須要實(shí)現(xiàn)的方法是()
A:start()
B:run()
C:init()
D:paint()
10:參考答案:D
參考解析:(P175)“\”要用轉(zhuǎn)義字符表示,即“\\\”。
試題內(nèi)容:
以下是創(chuàng)建File對(duì)象的代碼,錯(cuò)誤的是()
A:File f1=new File("/mydir/myfile.txt");
B:File f2=new File("/mydir","myfile.txt");
C:File f3=new File("\\mydir\\myfile.txt");
D:File f4=new File("\mydir\myfile.txt");
二、填空題 (本大題共10小題,每小題2分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。
1:參考答案:(P49)public class MyFrame extends JFrame
試題內(nèi)容:
如果有一個(gè)類MyFrame是JFrame的子類,能夠被不同包中的類所使用,請(qǐng)寫出該類的聲明頭部:_____ 。
2:參考答案:(P104)JTextArea(10,20)
試題內(nèi)容:
在Java程序中,要?jiǎng)?chuàng)建一個(gè)10行20列的文本區(qū),可以采用的構(gòu)造方法是_____。
3:參考答案:(P98)GridLayout
試題內(nèi)容:
_____布局是把容器劃分成若干行和列的網(wǎng)格狀,行數(shù)和列數(shù)由程序控制,組件放在網(wǎng)格的小格子中。
4:參考答案:(P18)^
試題內(nèi)容:
在Java語(yǔ)言中,位異或運(yùn)算的運(yùn)算符為_____。
5:參考答案:(P195)網(wǎng)絡(luò)套接字(socket)
試題內(nèi)容:
端口號(hào)與IP地址的組合稱為_____。
6:參考答案:(P154)AudioClip myClip=getAudioClip(getCodeBase(),"mymusic.au");
試題內(nèi)容:
Java小程序要播放一個(gè)與程序文件在一起的名為mymusic.au的音樂文件,小程序中應(yīng)用先創(chuàng)建AudioClip對(duì)象,若對(duì)象名為myClip,則創(chuàng)建對(duì)
象myClip的代碼為_____。
7:參考答案:(P59)interface
[解析]定義接口需要使用interface關(guān)鍵字,實(shí)現(xiàn)接口需要使用implements關(guān)鍵字,一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,相當(dāng)于有了多個(gè)超類,可以實(shí)現(xiàn)有
控制的多重繼承。Java本身不支持使用關(guān)鍵字extends進(jìn)行多重繼承。
試題內(nèi)容:
在Java語(yǔ)言中,定義一個(gè)接口,在接口名前面需要_____關(guān)鍵字。
8:參考答案:(P161)Runnable
[解析]Java程序?qū)崿F(xiàn)多線程應(yīng)用有兩種途徑:一是繼承Thread類聲明Thread子類,用Thread子類創(chuàng)建線程對(duì)象。二是在類中實(shí)現(xiàn)Runnable接口,
在類中提供Runnable接口的run()方法。
試題內(nèi)容:
Java程序?qū)崿F(xiàn)多線程應(yīng)用的途徑之一是:定義一個(gè)實(shí)現(xiàn)_____接口的類,并在類中提供該接口的所有方法。
9:參考答案:(P75)false
[解析]==在字符串中使用,比較的是兩個(gè)對(duì)象是否相同,而不是對(duì)象的內(nèi)容。要比較內(nèi)容應(yīng)使用s1.equals(s3)這種方法,它的值為true。本題s1和
s3是不同的對(duì)象,s1是在編譯時(shí)就已產(chǎn)生的字符串“abc”的引用,而s3是在運(yùn)行后才生成的字符串“abc”的引用,很明顯,s1和s3是兩個(gè)不同對(duì)象
的引用,只是不同對(duì)象的內(nèi)容相同。
試題內(nèi)容:
以下程序代碼的輸出結(jié)果為:_____。
String s1="abc",s2="ab",s3;
s3=s2.concat("c");
System.out.println(s1==s3);
10:參考答案:(P178)readLine()
試題內(nèi)容:
采用緩沖式輸入時(shí),可以對(duì)BufferedReader對(duì)象使用_____方法按行讀取文件中的內(nèi)容。
三、程序填空題 (本大題共5小題,每空2分,共20分)
1:參考答案:JComboBox yearBox=new JComboBox();
pane.add(yearBox)
,
試題內(nèi)容:
下列應(yīng)用程序,產(chǎn)生兩個(gè)組合框,一個(gè)可以選擇月份,一個(gè)可以選擇2000~2009年之間的年份。
import javax.swing.*;
public class Class31002 extends JFrame
{
JComboBox monthBox=new JComboBox();
_____
public Class31002()
{
super("Expiration Date");
setSize(240,90);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane=new JPanel();
JLabel exp=new JLabel("Expiration Date:");
for (int i=0;i<13;i++) monthBox.addItem(" "+i);
for(int i=2000;i<2010;i++) yearBox.addItem(" "+i);
pane.add(exp);
pane.add(monthBox);
_____
setContentPane(pane);
}
public static void main(String[]arg)
{
new Class31002().setVisible(true);
}
}
2:參考答案:x=i%10;
y=i/10;
,
試題內(nèi)容:
求出所有滿足下列條件的二位數(shù):將此二位數(shù)的個(gè)位數(shù)字與十位數(shù)字進(jìn)行交換,可得到一個(gè)新的數(shù),要求新數(shù)與原數(shù)之和小于100。
int i,j,x,y;
for(i=10;i<100;i++)
{
_____
_____
j=10*x+y;
if(i+j<100)
System.out.print(i+" ");
}
3:參考答案:JMenu menu=new JMenu("文件");
menubar.add(menu);
,
試題內(nèi)容:
以下程序的功能是:生成菜單條(menubar)、菜單(menu)和菜單項(xiàng)(item1,item2)對(duì)象,有 “文件”菜單,“文件”菜單中有“新建”,“
保存”菜單項(xiàng)。
import javax.swing.*;
public class Class2903
{
public Class2903()
{
JFrame myWin=new JFrame();
JMenuBar menubar=new JMenuBar();
_____
JMenuItem item1=new JMenuItem("新建");
JMenuItem item2=new JMenuItem("保存");
myWin.setJMenuBar(menubar);
_____
menu.add(item1);
menu.add(item2);
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myWin.setBounds(100,100,200,200);
myWin.setVisible(true);
}
public static void main(String[]args)
{
new Class2903();
}
}
4:參考答案:init()或者start()
setColor(Color.red)
,
試題內(nèi)容:
小應(yīng)用程序運(yùn)行結(jié)果如下:紅色方塊在文字上從左向右循環(huán)移動(dòng)。
import java.applet.*;
import java.awt.*;
public class Class3004 extends Applet
{
int i=1;
public void_____{setBackground(Color.yellow);}
public void paint(Graphics g)
{
i+=8;if(i>160)i=1;
g._____;
g.fillRect(i,10,20,20);
g.drawString("我正在學(xué)習(xí)Java繪圖!",1,25);
try{Thread.sleep(100);}
catch(InterruptedException e){}
repaint();
}
}
5:參考答案:getImage
drawImage
,
試題內(nèi)容:
以下小應(yīng)用程序運(yùn)行后顯示一幅圖片。
import java.applet.*;
import java.awt.*;
public class Class3005 extends Applet
{
Image myImg;
public void start()
{
myImg=_____(getCodeBase(),"myImg.jpg");
}
public void paint(Graphics g)
{
g._____(myImg,0,0,this);
}
}
四、程序分析題 (本大題共5小題,每小題4分,共20分)
1:參考答案:程序運(yùn)行結(jié)果:
BBB
AAA
試題內(nèi)容:
閱讀下面程序,寫出程序運(yùn)行結(jié)果。
class A
{
B obj;
A()
{
obj=new B();
obj.print();
System.out.println("AAA");
}
class B
{
public void print()
{System.out.println("BBB");}
}
}
public class Class3202
{
public static void main(String arg[])
{A obj=new A();}
}
2:參考答案:運(yùn)行結(jié)果:
Li的編號(hào)851898,100,6,12
Tom的編號(hào)951899,100,14,7
試題內(nèi)容:
閱讀下列程序,寫出程序運(yùn)行結(jié)果。
interface Computable
{
final int MAX=100;
int f(int x);
int g(int x,int y);
}
class Aa implements Computable
{
int no;
public int f(int x)
{
int sum=0;
for(int i=1;i<=x;i++)sum=sum+i;
return sum;
}
public int g(int x,int y){return x*y;}
}
class Bb implements Computable
{
int no;
public int f(int x)
{
int sum=0;
for(int i=1;i<=x;i++)sum=sum+i*i;
return sum;
}
public int g(int x,int y){return x+y;}
}
public class Class3204
{
public static void main(String[] args)
{
Aa li;Bb tom;
li=new Aa();li.no=851898;
tom=new Bb();tom.no=951899;
System.out.print("Li的編號(hào)"+li.no+","+li.MAX);
System.out.println(","+li.f(3)+","+li.g(3,4));
System.out.print("Tom的編號(hào)"+tom.no+","+tom.MAX);
System.out.print(","+tom.f(3)+","+tom.g(3,4));
}
}
3:參考答案:運(yùn)行結(jié)果:
4
public
static
void
main
試題內(nèi)容:
閱讀下列程序,寫出程序運(yùn)行結(jié)果。
import java.util.*;
public class Class3304
{
public static void main(String[] args)
{
String s1="public,static?void,main";
StringTokenizer pas1=new StringTokenizer(s1,"? ,");
int n1=pas1.countTokens();
System.out.println(n1);
while(pas1.hasMoreTokens())
{
String s=pas1.nextToken();
System.out.println(s);
}
}
}
4:參考答案:紅色窗口(Class3404)中上方有三個(gè)按鈕一字排開,單擊第一個(gè)按鈕(One)會(huì)使第二個(gè)按鈕(Two)變?yōu)椴豢捎脿?/p>
態(tài)即變?yōu)榛疑瑔螕舻谌齻(gè)按鈕(Three)會(huì)使第二個(gè)按鈕變?yōu)榭捎脿顟B(tài)。
試題內(nèi)容:
閱讀下列程序,寫出程序功能。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Class3404 implements ActionListener
{
JButton butt[]=new JButton[3];
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals("One"))
butt[1].setEnabled(false);
if(e.getActionCommand().equals("Three"))
butt[1].setEnabled(true);
}
public Class3404()
{
JFrame my=new JFrame("Class3404");
Container con=my.getContentPane();
con.setBackground(Color.red);
con.setLayout(new FlowLayout());
String str[]={"One","Two","Three"};
for(int i=0;i<3;i++)
{
butt[i]=new JButton(str[i]);
con.add(butt[i]);
butt[i].addActionListener(this);
}
my.setBounds(100,100,600,300);
my.setVisible(true);
}
public static void main(String[]args)
{
new Class3404();
}
}
5:參考答案:程序功能:應(yīng)用程序窗口生成一個(gè)下拉菜單,菜單名是AAA,有兩個(gè)菜單項(xiàng)AA1和AA2,其中AA2有子菜單,子菜單中有一個(gè)菜
單項(xiàng)AA21。
試題內(nèi)容:
閱讀下列程序,寫出程序功能。
import javax.swing.*;
public class C3501
{
public static void main(String[] args)
{
JFrame myWin=new JFrame("C3501");
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar jmb=new JMenuBar();
myWin.setJMenuBar(jmb);
myWin.setBounds(100,200,300,300);
JMenu jm=new JMenu("AAA");
jmb.add(jm);
JMenuItem jmi=new JMenuItem("AA1");
jm.add(jmi);
JMenu jm2=new JMenu("AA2");
jm.add(jm2);
JMenuItem jmi2=new JMenuItem("AA21");
jm2.add(jmi2);
myWin.setVisible(true);
}
}
五、程序設(shè)計(jì)題 (本大題共2小題,每小題6分,共12分)
1:參考答案:int[] array3701(int a[])
{
int x[]=new int[a.length];
for(int i=0;i
{
x[i]=a[a.length-1-i];
}
return x;
}
[解析]完整的Java程序如下:
public class Class3701
{
static int[] array3701(int a[])
{
int x[]=new int[a.length];
for(int i=0;i
{
x[i]=a[a.length-1-i];
}
return x;
}
public static void main(String[] args)
{
int a[]={1,2,3,4};
a=array3701(a);
for(int i=0;i
System.out.print(a[i]+" ");
}
}
輸出結(jié)果為:4321
試題內(nèi)容:
編寫編寫一個(gè)方法array3701(),要求該方法有一個(gè)元素類型為int的數(shù)組參數(shù),方法返回一個(gè)新數(shù)組,新數(shù)組的長(zhǎng)度與參數(shù)數(shù)組的長(zhǎng)度相同,
而新數(shù)組元素的值和參數(shù)數(shù)組各元素的值首尾顛倒。
2:參考答案:int f3701(String s)
{
int m=1,n=0;
byte ss[]=s.getBytes();
for(int i=1;i
{
if(ss[i]==ss[i-1])
m++;
else
{
if(m>n)n=m;
m=1;
}
}
return n;
}
試題內(nèi)容:
編寫一個(gè)方法f3701(),要求該方法有一個(gè)字符串參數(shù)s,方法的功能是統(tǒng)計(jì)s中連續(xù)相同的字符構(gòu)成的子串的最大長(zhǎng)度,方法返回這個(gè)最大長(zhǎng)
度值,若沒有,則返回1。
例如s="103300002222223333",其中連續(xù)相同的字符構(gòu)成的子串有4個(gè),長(zhǎng)度依次為2、4、6、4,則最大長(zhǎng)度為6。
六、簡(jiǎn)答題 (本大題共6小題,每小題3分,共18分)
1:參考答案:(P87)
(1)源對(duì)象:事件“發(fā)生”在這個(gè)組件上,它與一組“偵聽”該事件的對(duì)象保持著聯(lián)系。
(2)監(jiān)視器對(duì)象:是一個(gè)實(shí)現(xiàn)預(yù)定義接口的類的一個(gè)對(duì)象,該對(duì)象的類要提供對(duì)發(fā)生的事件作處理的方法。
(3)事件對(duì)象:它包含描述當(dāng)事件發(fā)生時(shí)從源對(duì)象傳遞給監(jiān)視器對(duì)象的特定事件的信息,它將作為參數(shù)傳遞給處理事件的
方法。
試題內(nèi)容:
Java.awt.event包中用來(lái)檢測(cè)并對(duì)事件做出反應(yīng)的模型包括哪三個(gè)組成元素?
2:參考答案:(P50)方法的名稱,方法的返回值類型,方法的參數(shù)個(gè)數(shù)與參數(shù)類型。
試題內(nèi)容:
接口有與類相似的基本形式,接口有常量定義和方法定義,但沒有方法的實(shí)現(xiàn)代碼,接口中給出某種特定功能的一組方法的規(guī)范,方法的
規(guī)范主要包括哪些?
3:參考答案:(P175)
為8位字節(jié)流數(shù)據(jù)提供讀和寫操作的類是FileInputStream類和FileOutputStream類。
為16位字符流數(shù)據(jù)提供讀和寫操作的類FileReader類和FileWriter類。
試題內(nèi)容:
請(qǐng)寫出為8位字節(jié)流數(shù)據(jù)和16位字符流數(shù)據(jù)分別提供讀和寫操作的類。
4:參考答案:(P175)import java.io.*;
試題內(nèi)容:
某Java程序要使用文件輸入輸出流,請(qǐng)寫出該程序所需要的import語(yǔ)句。
5:參考答案:(P48)
①不合法:m在Class22中沒有聲明過(guò),不能使用。
②不合法:b是非靜態(tài)成員,不能在靜態(tài)方法main()中使用。
③不合法:a是Class2201類的private成員,不能在Class2201類外直接訪問(wèn)。
④合法。
試題內(nèi)容:
閱讀下面程序,如果在橫線上分別填寫①i=m②i=b③i=p.a④i=p.change(100)四個(gè)賦值語(yǔ)句,有哪些不合法?請(qǐng)寫出原因。
class Class2201
{
private int a;
public int change(int m){return m;}
}
public class Class22 extends Person
{
public int b;
public static void main(String[]args)
{
Class2201 p=new Class2201();
Class22 t=new Class22();
int i;
___;
}
}
6:參考答案:(P102)
(1)聲明一個(gè)文本框名;
(2)建立一個(gè)文本框?qū)ο?
(3)將文本框?qū)ο蠹尤氲侥硞(gè)容器;
(4)對(duì)需要控制的文本框?qū)ο笞?cè)監(jiān)視器,監(jiān)聽文本框的輸入結(jié)束事件;
(5)一個(gè)處理文本框事件的方法,完成對(duì)截獲事件進(jìn)行判斷和處理。
試題內(nèi)容:
文本框處理程序的基本內(nèi)容有哪幾個(gè)方面?
【Java語(yǔ)言程序設(shè)計(jì)試題及答案(八)】相關(guān)文章:
1.Java語(yǔ)言程序設(shè)計(jì)試題及答案
2.Java語(yǔ)言程序設(shè)計(jì)模擬試題及答案
3.Java語(yǔ)言程序設(shè)計(jì)試題及答案(六)
4.Java語(yǔ)言程序設(shè)計(jì)試題及答案(九)