国产在线精品一级A片-国产另类欧美-国产精品va在线观看一-我要找美国一级片黄色|www.zheinei.com

Java語言程序設計試題及答案

時間:2017-04-20 12:45:15 java試題 我要投稿

Java語言程序設計試題及答案

  Java語言程序設計全書從Java語言的基本特點入手,詳細介紹了Java語言的基本概念和編程方法,同時深入介紹了Java的高級特性。以下是由陽光網小編整理關于Java語言程序設計試題的內容,希望大家喜歡!

Java語言程序設計試題及答案

  Java語言程序設計試題及答案

  一、單項選擇題(本大題共10小題,每小題1分,共10分) 在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代碼填寫在題后的括號內。錯選、多選或未選均無分。

  1. 下列正確的句子是() (1分)

  A:float 3.14;

  B:byte i=225;

  C:int k=33L;

  D:int p[][];

  2. 當使用FileInputStream類中的read()方法時,如果沒有讀入一個字節數據時,返回值為()

  A:0

  B:-1

  C:true

  D:false

  3. 能夠支持 javadoc 命令的文檔注釋形式是() (1分)

  A:/**...//

  B:/*...*/

  C://

  D:/**...*/

  4. 以下程序代碼的輸出結果是()

  int x=100;

  System.out.println(5.5+x/8); (1分)

  A:18

  B:17.5

  C:9.5

  D:5.512

  5. 當用戶在文件對話框中選擇了文件并按下了“打開/保存”按鈕后,程序可利用一個方法取得文件對象,并針對這個對象使用getName()取得文件名,使用getPath()取得文件的路徑,則這個方法是() (1分)

  A:getFile()

  B:getSelectFile()

  C:getSelectedFile()

  D:getDescription()

  6. 在 Java 中,表示換行符的轉義字符是() (1分)

  A:A

  B:B

  C:C

  D:D

  7. 一個實現Runnabel接口的類必須要實現的方法是() (1分)

  A:start()

  B:run()

  C:sleep()

  D:init()

  8. 下列有關Java的敘述錯誤的是() (1分)

  A:強類型語言

  B:與平臺無關

  C:可以使用漢字變量名

  D:不檢查數組下標越界

  9. 下列有關數組的敘述錯誤的是() (1分)

  A:數組是將一組相同類型的數據順序存儲,組成一種復合數據類型

  B:在Java語言中,數組是一種引用類型,數組名如同對象名一樣,是一種引用

  C:對于多維數組,從最高維開始,可以對每一維分配不等長的空間

  D:在Java語言中,數組元素可以互相賦值,而數組名不能直接賦值

  10. 當線程A使用某個對象,而此對象又需要線程B修改后才能符合A線程的需要,這時線程A就要等待線程B完成修改工作,這種現象稱為() (1分)

  A:線程的同步

  B:線程的互斥

  C:線程的調度

  D:線程的就緒

  二、填空題(本大題共10小題,每小題2分,共20分)請在每小題的空格中填上正確答案。錯填、不填均無分。

  1. 在switch 語句中,通過語句退出 switch 語句,使程序從整個 switch 語句后面的第一條語句處開始執行。 (2分)break

  2. 在 Java 中所有實現的多維數組,實際上是由一維數組構成的。 (2分)

  3. 為實現線程同步,Java語言提供了notify()、notifyAll()和Sycgised()三個方法供線程在臨界段中使用。 (2分)

  4. Java語言使用Unicode字符集,共有65536個字符。 (2分)

  5. 閏年的條件是:每4年一個閏年,但每100年少一個閏年,每400年又增加一個閏年。如果年份用整數類型變量y表示,則y年是閏年的條件用邏輯表達式可描述為。 (2分)

  y%4&&y!%100||y%400

  6. Java語言中,邏輯類型用boolean關鍵字標識,也稱布爾類型。 (2分)

  7. Java程序能實現多線程并行執行,為了讓一個線程暫停執行,其他線程有機會被執行,可對要暫停的線程執行wait()方法。 (2分)

  8. Java應用程序和小應用程序都由一個或多個擴展名為的class文件組成。 (2分)

  9. 將顯示區域按行、列劃分成一個個大小相等的格子,組件依次放入這些格子中。GridLayout (2分)

  10. 鍵盤事件的接口是。keyListener (2分)

  三、程序填空題(本大題共5小題,每空2分,共20分)

  1. 下面小應用程序啟動后自動播放一個聲音文件“1.wav”。

  import java.applet.*;

  public class Class3001 extends Applet

  {

  public void start()

  {

  =getAudioClip(getCodeBase(),"1.wav");

  clip.;

  }

  } (2分)

  2. 下列程序的功能是每隔一秒鐘輸出一個字符串“Hello!”。

  public class C3101 implements Runnable

  {

  public static void main(String args[])

  {

  C3101 t=new C3101();

  Thread tt=new Thread(t);

  tt.start();

  }

  public void run()

  {

  for(int i=0;i<10;i++)

  {

  try{sleep(1000);

  }catch(Exception e){e.printStackTrace();}

  System.out.println("Hello");

  }

  }

  } (2分)

  3. 設計一個JFrame窗口,窗口中心有一個文本區。另有4個菜單,每個菜單都有菜單項,每個菜單項都對應有快捷鍵,選擇某個菜單項時,窗口中心的文本區顯示相應信息。

  import java.awt.*;

  import java.awt.event.*;

  import javax.swing.*;

  public class C2902 implements ActionListener

  {

  JTextField text=new JTextField(20);

  String t[]={"文件","編輯","格式","幫助"};

  Menu menu[]=new Menu[4];

  String s[]={"打開","保存","復制","粘貼","字體","段落","小助手","關于"};

  MenuItem jmi[]=new MenuItem[8];

  C2902()

  {

  JFrame myWin=new JFrame("Ex0606");

  myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  Container con=myWin.getContentPane();

  con.add(text,"Center");

  text.setEditable(false);

  myWin.setMenuBar(jmb);

  int i;

  for(i=0;i<4;i++)//生成四個菜單

  {

  menu[i]=new Menu(t[i]);

  jmb.add(menu[i]);

  }

  for(i=0;i<8;i++)//每個菜單中放兩個菜單項

  {

  jmi[i]=new MenuItem(s[i]);

  menu[i/2].add(jmi[i]);

  jmi[i].addActionListener(this);

  jmi[i].(new MenuShortcut(65+i));//設快捷鍵

  }

  myWin.setBounds(300,200,400,200);

  myWin.setVisible(true);

  }

  public void actionPerformed(ActionEvent e)

  {

  text.setText("你選擇了:"+e.getActionCommand()+"菜單項.");

  }

  public static void main(String[] args)

  {

  new C2902();

  }

  } (2分)

  4. 下面應用程序,繪制一個紅色五角星。請完成程序。

  import java.awt.*;

  import javax.swing.*;

  class MyPanel extends JPanel

  {

  public void

  {

  int r=100;

  int x1=100,

  x2=(int)(r*(1-Math.cos((18*Math.PI)/180))),

  x3=(int)(r*(1+Math.cos((18*Math.PI)/180))),

  x4=(int)(r*(1-Math.cos((54*Math.PI)/180))),

  x5=(int)(r*(1+Math.cos((54*Math.PI)/180))),

  y1=0,

  y2=(int)(r*(1-Math.sin((18*Math.PI)/180))),

  y3=(int)(r*(1-Math.sin((18*Math.PI)/180))),

  y4=(int)(r*(1+Math.sin((54*Math.PI)/180))),

  y5=(int)(r*(1+Math.sin((54*Math.PI)/180)));

  g.drawOval(0,0,200,200);

  g.drawLine(x4,y4,x1,y1);g.drawLine(x1,y1,x5,y5);

  g.drawLine(x5,y5,x2,y2);g.drawLine(x2,y2,x3,y3);

  g.drawLine(x3,y3,x4,y4);

  }

  }

  public class C3002 extends JFrame

  {

  C3002()

  {

  super("C3002");

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  getContentPane().add(new MyPanel());

  setSize(210,242);

  setVisible(true);

  }

  public static void main(String[] args)

  {

  new C3002();

  }

  } (2分)

  5. 下面程序運行后,連續輸出20個相同的單詞。請完成程序。

  public class C3102

  {

  public static void main(String args[])

  {

  t.start();

  }

  }

  class Hello implements Runnable

  {

  int i=0;

  public void run()

  {

  while()

  {

  System.out.print(i+":Hello");

  }

  }

  } (2分)

  四、程序分析題(本大題共5小題,每小題4分,共20分)

  1. 寫出下面程序的運行結果。

  public class Test extends TT

  {

  public static void main(String args[])

  {

  Test t=new Test("Tom.");

  }

  public Test(String s)

  {

  super(s);

  System.out.print("How are you?");

  }

  public Test()

  {

  this("I am Jack.");

  }

  }

  class TT

  {

  public TT()

  {

  System.out.print("Hi!");

  }

  public TT(String s)

  {

  this();

  System.out.print("I am "+s);

  }

  } (4分)

  2. 閱讀下面程序,寫出程序功能。

  import java.applet.*;import java.awt.*;

  public class Class3602 extends Applet implements Runnable

  {

  Thread redBall,blueBall;Graphics redPen,bluePen;

  int blueSeta=0,redSeta=0;

  public void init()

  {

  setSize(250,200);

  redBall=new Thread(this);blueBall=new Thread(this);

  redPen=getGraphics();bluePen=getGraphics();

  redPen.setColor(Color.red);bluePen.setColor(Color.blue);

  setBackground(Color.gray);

  }

  public void start()

  {

  redBall.start();blueBall.start();

  }

  public void run()

  {

  int x,y;

  while(true)

  {

  if(Thread.currentThread()==redBall)

  {

  x=(int)(80.0*Math.cos(3.1415926/180.0*redSeta));

  y=(int)(80.0*Math.sin(3.1415926/180.0*redSeta));

  redPen.setColor(Color.gray);

  redPen.fillOval(100+x,100+y,10,10);

  redSeta +=3;

  if(redSeta>=360) redSeta=0;

  x=(int)(80.0*Math.cos(3.1415926/180.0*redSeta));

  y=(int)(80.0*Math.sin(3.1415926/180.0*redSeta));

  redPen.setColor(Color.red);

  redPen.fillOval(100+x,100+y,10,10);

  try {redBall.sleep(20);}

  catch(InterruptedException e){}

  }

  else if (Thread.currentThread()==blueBall)

  {

  x=(int)(80.0*Math.cos(3.1415926/180.0*blueSeta));

  y=(int)(80.0*Math.sin(3.1415926/180.0*blueSeta));

  bluePen.setColor(Color.gray);

  bluePen.fillOval(150+x,100+y,10,10);

  blueSeta-=3;

  if(blueSeta<=-360) blueSeta=0;

  x=(int)(80.0*Math.cos(3.1415926/180.0*blueSeta));

  y=(int)(80.0*Math.sin(3.1415926/180.0*blueSeta));

  bluePen.setColor(Color.blue);

  bluePen.fillOval(150+x,100+y,10,10);

  try {blueBall.sleep(40);}

  catch(InterruptedException e){}

  }

  }

  }

  } (4分)

  3. 閱讀下列程序,寫出運行結果。

  public class Class3205

  {

  public static void main(String[] args)

  {

  String str1="abc";

  String str2="Abc";

  String str3="abc";

  String str4=new String("abc");

  System.out.println(str1==str2);

  System.out.println(str1.equals(str2));

  System.out.println(str1==str3);

  System.out.println(str1.equals(str3));

  System.out.println(str1==str4);

  System.out.println(str1.equals(str4));

  }

  } (4分)

  4. 閱讀下列程序,寫出程序功能。

  import java.awt.*;

  import java.awt.event.*;

  import javax.swing.*;

  public class Class3505 implements AdjustmentListener

  {

  JScrollBar js;

  JLabel label;

  int size=20;

  public Class3505()

  {

  JFrame myWin=new JFrame("Class3505");

  myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  myWin.setBounds(200,200,400,400);

  Container con=myWin.getContentPane();

  js=new JScrollBar(JScrollBar.HORIZONTAL,20,10,1,210);

  js.setSize(new Dimension(395,50));

  js.addAdjustmentListener(this);

  con.add(js);

  label=new JLabel("Class3505");

  con.add(label);

  myWin.setVisible(true);

  }

  public void adjustmentValueChanged(AdjustmentEvent e)

  {

  size=e.getValue();

  Font f=new Font(label.getFont().getName(),

  label.getFont().getStyle(),size);

  label.setFont(f);

  }

  public static void main(String[]args)

  {

  new Class3505();

  }

  } (4分)

  5. 閱讀下面程序,寫出程序運行結果。

  class printer

  {

  synchronized void printchar(char ch)

  {

  for (int i=1;i<=3;i++)System.out.print(ch);

  System.out.println();

  }

  }

  class printerThread extends Thread

  {

  printer ptr;

  char ch;

  printerThread(printer ptr,char ch)

  {

  this.ptr=ptr;

  this.ch=ch;

  }

  public void run()

  {

  for (int i=1; i<=3;i++)ptr.printchar(ch);

  }

  }

  public class Class3605

  {

  public static void main(String[] args)

  {

  printer ptr=new printer();

  printerThread pt1=new printerThread(ptr,?A?);

  printerThread pt2=new printerThread(ptr,?B?);

  pt1.start();

  pt2.start();

  }

  } (4分)

  五、程序設計題(本大題共2小題,每小題6分,共12分)

  1. 編寫一個小應用程序,在小應用程序中有兩個線程,一個負責模仿圓轉運動,另一個模仿橢圓運動。已給出部分代碼,請完成程序。

  import java.awt.*;

  import java.applet.*;

  public class Class3804 extends Applet implements Runnable

  {

  Thread thread1,thread2;

  Graphics g;

  public void init()

  {

  setSize(500,500);

  setBackground(Color.gray);

  g=getGraphics();

  g.setColor(Color.red);

  g.setXORMode(Color.blue);

  thread1=new Thread(this);

  thread2=new Thread(this);

  }

  public void start()

  {

  thread1.start();

  thread2.start();

  }

  public void run()

  {

  int x=0,y=0;

  while(true)

  {

  //這里是你要編寫的代碼

  }

  }

  } (6分)

  2. 編寫一個方法hex3705(),要求將一個以字符串(如有字母用大寫)形式表示的十六進制數轉換十進制正整數,其中字符串為方法參數,正整數為返回值。 (6分)

  六、簡答題(本大題共6小題,每小題3分,共18分)

  1. 請寫出:提供緩沖式輸出的類、采用緩沖輸出時如果想立即寫入文件就調用的方法。 (3分)

  2. 在以下類的聲明中,指出哪些是錯誤的以及錯誤的原因?

  ①class Class22 extends Class2201,Class2202{......}

  ②public abstract class Class22{......}

  ③abstract final class Class22{......}

  ④abstract public class Class22{......}

  ⑤public abstract class String{......}

  ⑥public final class Class22 extends implement interface1{......} (3分)

  3. 文件隨機訪問應該利用什么類來實現?創建此類對象的代碼應該能捕獲什么類型的異常? (3分)

  4. 用一個Java語句完成下面的要求:

  先將整型變量a的值加1,再把它加到變量b中。 (3分)

  5. 用一個Java語句完成下面的要求:

  先把變量a與b的差賦值給變量c,再把變量b的值減1。 (3分)

  6. 請寫一條語句,實現用預定的顏色填充一個突出顯示的矩形色塊,其中矩形左上角坐標為(200,100),右下角坐標為(400,500),調用的是類型為Graphics的g對象。 (3分)

  Java語言程序設計試題答案

  一、單項選擇題 (本大題共10小題,每小題1分,共10分) 在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代碼填寫在題后的括號內。錯選、多選或未選均無分。

  1:參考答案:D

  參考解析:(P71)聲明二維數組的一般形式有以下3種:

  ①類型 數組名 [][]

  ②類型 [][] 數組名

  ③類型 [] 數組名 []

  試題內容:

  下列正確的'句子是()

  A:float 3.14;

  B:byte i=225;【-128,127】

  C:int k=33L;

  D:int p[][];

  2:參考答案:B

  參考解析:(P176)read()方法的返回值類型為int型,用-1表示流在讀之前已結束。

  試題內容:

  當使用FileInputStream類中的read()方法時,如果沒有讀入一個字節數據時,返回值為()

  A:0

  B:-1

  C:true

  D:false

  3:參考答案:D

  參考解析:(P6)/**……*/這種注釋是文檔注釋,文檔注釋能被實用程序javadoc接受,由它能自動生成程序的HTML文檔。

  試題內容:

  能夠支持 javadoc 命令的文檔注釋形式是()

  A:/**...//

  B:/*...*/

  C://

  D:/**...*/

  4:參考答案:B

  參考解析:(P14)Java程序中的類只能繼承一個類,這種繼承稱為單繼承。Java語言雖不允許一個類繼承多個類,但允許一個類實現多個接口。接口有與類相似的基本形式。

  試題內容:

  以下程序代碼的輸出結果是()

  int x=100;

  System.out.println(5.5+x/8);

  A:18

  B:17.5

  C:9.5

  D:5.512

  5:參考答案:C

  參考解析:(P182)

  試題內容:

  當用戶在文件對話框中選擇了文件并按下了“打開/保存”按鈕后,程序可利用一個方法取得文件對象,并針對這個對象使用getName()取得文件名,使用getPath()取得文件的路徑,則這個方法是()

  A:getFile()

  B:getSelectFile()

  C:getSelectedFile()

  D:getDescription()

  6:參考答案:A

  參考解析:(P9)

  試題內容:

  在 Java 中,表示換行符的轉義字符是()

  A:A

  B:B

  C:C

  D:D

  7:參考答案:B

  參考解析:(P163)本題考核知識點是Runnable接口的使用。實現一個接口必須實現接口中的所有方法,而Runnable接口只有一個方法run()。

  試題內容:

  一個實現Runnabel接口的類必須要實現的方法是()

  A:start()

  B:run()

  C:sleep()

  D:init()

  8:參考答案:D

  參考解析:(P3)

  試題內容:

  下列有關Java的敘述錯誤的是()

  A:強類型語言

  B:與平臺無關

  C:可以使用漢字變量名

  D:不檢查數組下標越界

  9:參考答案:D

  參考解析:(P70)數組是一種引用類型,一個數組名在不同時間可引用不同的數組,數組名之間可以賦值。

  試題內容:

  下列有關數組的敘述錯誤的是()

  A:數組是將一組相同類型的數據順序存儲,組成一種復合數據類型

  B:在Java語言中,數組是一種引用類型,數組名如同對象名一樣,是一種引用

  C:對于多維數組,從最高維開始,可以對每一維分配不等長的空間

  D:在Java語言中,數組元素可以互相賦值,而數組名不能直接賦值

  10:參考答案:A

  參考解析:(P168)

  試題內容:

  當線程A使用某個對象,而此對象又需要線程B修改后才能符合A線程的需要,這時線程A就要等待線程B完成修改工作,這種現象稱為()

  A:線程的同步

  B:線程的互斥

  C:線程的調度

  D:線程的就緒

  二、填空題 (本大題共10小題,每小題2分,共20分)請在每小題的空格中填上正確答案。錯填、不填均無分。

  1:參考答案:(P23)break

  試題內容:

  在switch 語句中,通過_____語句退出 switch 語句,使程序從整個 switch 語句后面的第一條語句處開始執行。

  2:參考答案:(P71)數組的數組

  試題內容:

  在 Java 中所有實現的多維數組,實際上是由一維數組構成的_____。

  3:參考答案:(P168)wait()

  試題內容:

  為實現線程同步,Java語言提供了notify()、notifyAll()和_____三個方法供線程在臨界段中使用。

  4:參考答案:(P7)65536

  試題內容:

  Java語言使用Unicode字符集,共有_____個字符。

  5:參考答案:(P16)(y%4==0&&y%100!=0)||y%400==0

  試題內容:

  閏年的條件是:每4年一個閏年,但每100年少一個閏年,每400年又增加一個閏年。如果年份用整數類型變量y表示,則y年是閏年的條件用邏輯表達式可描述為_____。

  6:參考答案:(P8)Boolean

  試題內容:

  Java語言中,邏輯類型用關鍵字_____標識,也稱布爾類型。

  7:參考答案:(P161)sleep()

  試題內容:

  Java程序能實現多線程并行執行,為了讓一個線程暫停執行,其他線程有機會被執行,可對要暫停的線程執行_____方法。

  8:參考答案:(P11).class

  [解析]Java程序的擴展名為“.class”,源程序的擴展名為“.java”。

  試題內容:

  Java應用程序和小應用程序都由一個或多個擴展名為_____的文件組成。

  9:參考答案:(P98)GridLayout

  [解析]常用的布局類:FlowLayout為依次放置組件;BorderLayout將組件放置在邊界上; CardLayout將組件像撲克牌一樣疊放,而每次只能顯示其中的一個組件;GridLayout將顯示區域按行、列劃分成一個個大小相等的格子,組件依次放入這些格子中;GridBagLayout能進行更精細的位置控制。

  試題內容:

  _____將顯示區域按行、列劃分成一個個大小相等的格子,組件依次放入這些格子中。

  10:參考答案:(P132)KeyListener

  [解析]鍵盤事件的接口是KeyListener,注冊鍵盤事件監視器的方法是addKeyListener(監視器)。實現KeyListener接口的方法有3個:

  (1)keyPressed(KeyEvent e),鍵盤上某個鍵被按下。

  (2)keyReleased(KeyEvent e),鍵盤上某下鍵被按下后,又釋放。

  (3)keyTyped(KeyEvent e),keyPressed和keyReleased兩方法的組合

  試題內容:

  鍵盤事件的接口是_____。

下一頁更多有關“Java語言程序設計試題及答案”的內容