激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

《JAVA程序設計》期末考試試題

時(shí)間:2025-01-14 14:55:01 嘉璇 JAVA認證 我要投稿

《JAVA程序設計》期末考試試題

  與傳統程序不同,Sun 公司在推出 Java 之際就將其作為一種開(kāi)放的技術(shù)。Java 編程語(yǔ)言是個(gè)簡(jiǎn)單、面向對象、分布式、解釋性、健壯、安全與系統無(wú)關(guān)、可移植、高性能、多線(xiàn)程和靜態(tài)的語(yǔ)言。下面一起來(lái)看看《JAVA程序設計》期末考試試題,希望對同學(xué)們的復習有所幫助!

《JAVA程序設計》期末考試試題

  《JAVA程序設計》期末考試試題 1

  Java語(yǔ)言程序設計考試通常包括各種類(lèi)型的問(wèn)題,從基礎的語(yǔ)法和概念到復雜的編程問(wèn)題。以下是一些可能出現在考試中的試題示例:

  一、選擇題

  1. Java中用于定義類(lèi)的關(guān)鍵字是什么?

  A. class

  B. define

  C. declare

  D. function

  2. 下列哪個(gè)是Java中的訪(fǎng)問(wèn)修飾符?

  A. public

  B. global

  C. native

  D. external

  3. 在Java中,用于打印輸出到控制臺的類(lèi)是?

  A. System.out

  B. Console

  C. PrintWriter

  D. System.print

  二、填空題

  1. 在Java中,用來(lái)結束當前運行的方法是xxxxxxxxxx。

  2. Java程序的主入口點(diǎn)是方法名xxxxxxxxxx。

  三、簡(jiǎn)答題

  1. 解釋Java中的繼承以及它如何工作。

  2. 描述接口與抽象類(lèi)的區別。

  四、編程題

  1. 編寫(xiě)一個(gè)Java程序,該程序定義一個(gè)名為`Person`的類(lèi),包含兩個(gè)私有屬性`name`和`age`,以及相應的構造函數和getter/setter方法。

  2. 創(chuàng )建一個(gè)Java程序,該程序能夠計算并輸出一個(gè)整數數組的所有元素的平均值。

  3. 實(shí)現一個(gè)Java方法,該方法接受一個(gè)字符串參數,并返回一個(gè)新的字符串,其中原字符串的'所有元音字母都被替換為字符*。

  五、錯誤識別題

  給定一段Java代碼,要求考生找出代碼中的錯誤,并解釋錯誤的原因以及如何修正。

  六、案例分析題

  描述一個(gè)實(shí)際問(wèn)題(例如,銀行賬戶(hù)管理、圖書(shū)管理系統等),要求考生設計并實(shí)現相應的Java類(lèi)來(lái)解決該問(wèn)題。

  七、算法題

  編寫(xiě)一個(gè)Java方法,使用遞歸方式計算給定正整數的階乘。

  八、OOP設計題

  設計一個(gè)簡(jiǎn)單的在線(xiàn)商店系統,包括產(chǎn)品類(lèi)、購物車(chē)類(lèi)和用戶(hù)類(lèi),展示對象之間的交互和類(lèi)的繼承關(guān)系。

  這些題目涵蓋了Java程序設計的多個(gè)方面,包括基本概念、語(yǔ)法、面向對象編程、異常處理、算法和數據結構等?荚嚨碾y度和具體內容會(huì )根據課程的教學(xué)大綱和目標而有所不同。

  《JAVA程序設計》期末考試試題 2

  一、選擇題

  1、結構化程序設計主要強調的是______。

  A、程序的規模

  B、程序的易讀性

  C、程序的執行效率

  D、程序的可移植性

  結構化程序設計主要強調的是結構化程序清晰易讀,可理解性好,程序員能夠進(jìn)行逐步求精、程序證明和測試,以保證程序的正確性。

  本題答案為B。

  2、數據庫設計包括兩個(gè)方面的設計內容,它們是______。

  A、概念設計和邏輯設計

  B、模式設計和內模式設計

  C、內模式設計和物理設計

  D、結構特性設計和行為特性設計

  數據庫設計可分為概念設計與邏輯設計。

  數據庫概念設計的目的是分析數據間內在語(yǔ)義關(guān)聯(lián),在此基礎上建立一個(gè)數據的抽象模型。

  數據庫邏輯設計的主要工作是將ER圖轉換為指定的RDBMS中的關(guān)系模型。

  本題答案是A。

  3、為AB類(lèi)的一個(gè)無(wú)形式參數無(wú)返回值的方法method書(shū)寫(xiě)方法頭,使得使用類(lèi)名AB作為前綴就可以調用它,該方法頭的形式為_(kāi)_____。

  A、static void method( )

  B、public void method( )

  C、final void method( )

  D、abstract void method( )

  本題考查的是修飾符的含義。

  1、public修飾的方法可被其它類(lèi)訪(fǎng)問(wèn)或引用。

  2、abstract修飾的方法是抽象方法,抽象方法沒(méi)有方法體,要使用抽象方法,必須先實(shí)現此抽象方法。

  3、final修飾的方法不能被繼承。

  4、static修飾的.方法為靜態(tài)方法,靜態(tài)方法不需要類(lèi)的實(shí)例化就可以被類(lèi)直接調用。

  故要使得類(lèi)名AB可以直接調用method()方法,則必須在method()前用static來(lái)修飾。

  故本題答案為A。

  4、監測器接口的方法返回值的類(lèi)型是______。

  A、int

  B、String

  C、void

  D、Object

  本題考查的是監測器。

  每個(gè)事件都有自己的監測器,監測器本身是一種接口,該接口中的方法,返回值是void類(lèi)型。當要為指定的類(lèi)注冊監測器時(shí),就可以通過(guò)定在實(shí)現該接口的類(lèi)中定義該方法,這樣可以在某個(gè)事件發(fā)生后,將會(huì )自動(dòng)執行相應方法中的代碼。

  故本題答案為C。

  5、outer: for(int i=0;i<3; i++)

  inner: for(int j=0;j<2;j++)

  {

  if(j==1) continue outer;

  System.out.println(j+ "and "+i+";");

  }

  以上代碼輸出是 。

  A、0 and 0;0 and 1;0 and 2;

  B、0 and 0;1 and 0;2 and 0;

  C、1 and 0;1 and 1;1 and 2;

  D、2 and 0;2 and 1;2 and 2;

  本題考查的是多重循環(huán)。

  首先介紹一下continue語(yǔ)句的功能:continue語(yǔ)句是跳過(guò)循環(huán)體中下面尚未執行的語(yǔ)句,回到循環(huán)體的開(kāi)始,繼續下一輪的循環(huán)。

  本題程序運行過(guò)程如下:

  i=0:

  j=0 條件j==1不成立,輸出j和i,即0 and 0;

  j=1 條件j==1成立,執行continue,跳過(guò)System.out.println(j+ "and "+i+";");執行下一輪循環(huán)j=2;

  j=2 條件j<2不滿(mǎn)足,退出內層循環(huán),繼續外層循環(huán)。

  i=1:

  j=0 條件j==1不成立,輸出j和i,即0 and 1;

  j=1 條件j==1成立,執行continue,跳過(guò)System.out.println(j+ "and "+i+";");執行下一輪循環(huán)j=2;

  j=2 條件j<2不滿(mǎn)足,退出內層循環(huán),繼續外層循環(huán)。

  i=2:

  j=0 條件j==1不成立,輸出j和i,即0 and 2;

  j=1 條件j==1成立,執行continue,跳過(guò)System.out.println(j+ "and "+i+";");執行下一輪循環(huán)j=2;

  j=2 條件j<2不滿(mǎn)足,退出內層循環(huán),繼續外層循環(huán)。

  i=3:條件i<3不滿(mǎn)足,結束。

  故本題答案為A。

  二、選擇題

  編程題

  1、 編寫(xiě)一個(gè)Java Application 程序App.java,main程序輸入10個(gè)整數給數組,通過(guò)函數getMinAndMax(int a[])得到這10個(gè)整數的最大值和最小值并輸出結果。

  class App {

  static void getMinAndMax(int a[]) {

  int min,max;

  min = max = a[0];

  for(int i=1;i  if(a[i]>max)

  max=a[i];

  if(a[i]  min=a[i]; }

  System.out.println(“Array’Max Value:”+max);

  System.out.println(“Array’Min Value:”+min);

  }

  public static void main(String[] args) {

  int arr[] = {4,6,72,9,14,3,8,23,56,32};

  getMinAndMax(arr); } }

  2、編寫(xiě)一個(gè)完整的Java Application 程序。包含接口ShapeArea, Rectangle

  類(lèi),Triangle類(lèi)及Test類(lèi),具體要求如下:

 、沤涌赟hapeArea:

  double getArea(  ):

  求一個(gè)形狀的面積

  double getPerimeter (  ):

  求一個(gè)形狀的周長(cháng)

 、祁(lèi) Rectangle:實(shí)現ShapeArea接口,并有以下屬性和方法:

 、 屬性

  width: double類(lèi)型,表示矩形的長(cháng) height: double類(lèi)型,表示矩形的高

 、 方法

  Rectangle(double w, double h):構造函數

  toString(  )

  方法 :輸出矩形的描述信息,如“width=1.0,height=2.0, perimeter=6.0, area=2.0”

 、穷(lèi)Triangle:實(shí)現ShapeArea接口,并有以下屬性和方法:

 、 屬性

  x,y,z: double型,表示三角形的三條邊

  s: 周長(cháng)的1/2(注:求三角形面積公式為))(  )((zsysxss,s=(x+y+z)/2 ,開(kāi)方可用Math.sqrt(double)方法)

 、 方法

  Triangle(double x, double y, double z):

  構造函數,給三條邊和s賦初值。

  toString(  ):

  輸出矩形的描述信息,如“three sides:3.0,4.0,5.0,perimeter=12.0,area=6.0”

 、萒est類(lèi)作為主類(lèi)要完成測試功能

 、 生成Rectangle對象

 、

  調用對象的toString方法,輸出對象的描述信息

  interface ShapeArea { double getArea(  );

  double getPerimeter(  );

  }

  class Rectangle implements ShapeArea { double width,height;

  Rectangle(double w,double h) {ko width =w;

  height=h;

  }

  public void toString(  )

  {

  System.out.println("width="+width+",height="+height+", perimeter="+ getPerimeter(  )+", area="+ getArea(  ));

  }

  public double getArea(  )

  { return width*height;

  }

  public double getPerimeter(  )

  { return 2*(width+height);

  } }

  class Triangle implements ShapeArea { double x,y,z,s; Triangle(double x, double y, double z) { this.x =x; this.y=y;

  this.z=z; s = (x+y+z)/2; }

  public void toString(  )

  {

  System.out.println("Three Sides:"+x+","+y+","+z+",Perimeter="+ getPerimeter(  )+", area="+ getArea(  ));

  }

  public double getArea(  )

  {

  return Math.sqrt(s*(s-x)*(s-y)*(s-z));

  }

  public double getPerimeter(  )

  { return x+y+z;

  } }

  class test { public static void main(String[] args) { Rectangle rct = new Rectangle(4,5);

  rct.to_String(  );

  } }

  《JAVA程序設計》期末考試試題 3

  1). 下面( )是合法的標識符。

  A.$persons

  B.2Users

  C.*poi nt

  D.this

  正確答案:A

  答案解析:本題考查Java 標識符的命名,屬于考試重點(diǎn)內容,應該掌握。Java 中標識符的命名規則是:標識符以字母、下畫(huà)線(xiàn)或美元符作為首字符的字符串序列;標識符是區分大小寫(xiě)的;標識符的字符數沒(méi)有限制。由此可見(jiàn),Java 中標識符不能以數字開(kāi)頭,所以選項B錯誤;不能以“*”開(kāi)頭,選項C錯誤;this 是專(zhuān)用標識符,具有專(zhuān)門(mén)的意義和用途,選項D 錯誤,只有選項A 正確。

  2). 設有一個(gè)已按各元素的值排好序的順序表(長(cháng)度大于2),現分別用順序查找法和二分查找法查找與給定值k相等的元素,比較的次數分別是s和b,在查找不成功情況下s和b的關(guān)系是( )。

  A.s =b

  B.s>b

  C.s

  D.s>=b

  正確答案:B

  答案解析:順序查找的基本思想是:從表的一端開(kāi)始,順序掃描線(xiàn)性表,依次將掃描到結點(diǎn)的關(guān)鍵字和給定值k進(jìn)行比較,若當前掃描到結點(diǎn)的關(guān)鍵字與k相等,則查找成功;若掃描結束后,仍未找到關(guān)鍵字等于k的結點(diǎn),則查找失敗。二分查找法是一種效率較高的查找方法,要求線(xiàn)性表是有序表;舅枷胧牵菏紫葘⒋榈膋值和有序表R[O]~R[n -1]的中間位置mid上的結點(diǎn)的關(guān)鍵字進(jìn)行比較,若相等,則查找完成;否則,若R[mi d]. key>k,則說(shuō)明待查找的結點(diǎn)只可能在左子表R[O]~R[mi d -1]中,我們只需在左子表中繼續進(jìn)行折半查找,若R[mi d]. key

  3). 定義一個(gè)表示10個(gè)值為null的字符串數組,下面選項正確的是( )。

  A.String []a;

  B.String a[];

  C.char a[10][];

  D.String a[]=new String[10];

  正確答案:D

  答案解析:本題考查字符串數組變量的聲明。選項A和選項B的效果是一樣的,都是用來(lái)定義一個(gè)字符串數組,但沒(méi)有指明數組個(gè)數,不滿(mǎn)足題目要求;選項C是一個(gè)二維的字符數組,在C語(yǔ)言中,一個(gè)二維的字符數組就可以表示一個(gè)一維的字符串數組,而在Java中,字符char是基本類(lèi)型,字符串String則是以對象的形式來(lái)表示的;選項D正確,它定義了一個(gè)含有10個(gè)元素的字符串數組,如果沒(méi)有給字符串數組賦值,則默認為null。

  4). Thread類(lèi)中能運行線(xiàn)程的方法是( )。

  A.resume()

  B.start()

  C.run()

  D.init()

  正確答案:C

  答案解析:resume()是Thread類(lèi)提供的用于線(xiàn)程控制的方法;start()是Thread類(lèi)中的方法,新建的線(xiàn)程不會(huì )自動(dòng)運行,必須調用線(xiàn)程的start()方法才能運行該線(xiàn)程;run()是Thread類(lèi)中的方法,在該方法中定義了線(xiàn)程的具體行為,線(xiàn)程開(kāi)始執行時(shí),就是從它的run()方法開(kāi)始執行的,就像Java應用程序從main()開(kāi)始、Applet從init()開(kāi)始一樣;init()不是Thread類(lèi)中的方法。

  5). 在面向對象的.方法中,一個(gè)對象請求另一個(gè)對象為其服務(wù)的方式是通過(guò)發(fā)送

  A.調用語(yǔ)句

  B.命令

  C.口令

  D.消息

  正確答案:D

  6). 下列的( )原始類(lèi)型在使用流時(shí)可以互換。

  A.byte和boolean

  B.char和int

  C.byte和char

  D.String和char

  正確答案:B

  答案解析:本題考查Java語(yǔ)言中字節類(lèi)型的概念。在Java語(yǔ)言中,byte是字節類(lèi)型,用1字節表示.boolean是布爾類(lèi)型,用true和false表示,它們的表示方法并不一樣,也不提供它們之間的轉換,選項A錯誤。Java內部用整數來(lái)表示char,通?梢栽诜椒ㄕ{用和其他語(yǔ)句中互換使用char和int,選項B正確。char用2字節表示,byte字節類(lèi)型用l字節表示,Java內部也不允許互換使用它們,選項C錯誤。String在Java語(yǔ)言中是一個(gè)類(lèi),它提供對字符串的一系列操作,而char是Java語(yǔ)言中的一個(gè)基本類(lèi)型,它不是一個(gè)類(lèi),兩者有本質(zhì)的區別,故而它們是不能互換使用的,選項D錯誤。需要注意的是,在Java語(yǔ)言中提供的類(lèi)都是以大寫(xiě)字母開(kāi)頭,基本類(lèi)型都用小寫(xiě)字母表示。

  7). 下列說(shuō)法中,不屬于數據模型所描述的內容是( )。

  A.數據結構

  B.數據操作

  C.數據查詢(xún)

  D.數據約束

  正確答案:C

  答案解析:數據模型所描述的內容包括三個(gè)部分

  《JAVA程序設計》期末考試試題 4

  一、單選題:(每題1分)下列各題A)、B)、C)、D)四個(gè)選項中,只有一個(gè)選項是正確的,請將正確選項的標記寫(xiě)在題干后的括號內。

  1.下列語(yǔ)句序列執行后,k 的值是( B )。

  int m=3, n=6, k=0;

  while( (m++) < ( -- n) ) ++k;

  A) 0 B) 1 C) 2 D) 3

  2.設 i、j 為int型變量名,a 為int型數組名,以下選項中,正確的賦值語(yǔ)句是( B )。

  A) i = i + 2 B) a[0] = 7;

  C) i++ - --j; D) a(0) = 66;

  3.Java語(yǔ)言的類(lèi)間的繼承關(guān)系是( B )。

  A) 多重的 B) 單重的 C) 線(xiàn)程的 D) 不能繼承

  4.設有定義 int i = 6 ;,則執行以下語(yǔ)句后,i 的值為( C )。

  i += i - 1;

  A) 10 B) 121 C) 11 D) 100

  5.下列選項中,用于在定義子類(lèi)時(shí)聲明父類(lèi)名的關(guān)鍵字是( C )。

  A)interface B) package C) extends D) class

  6.若已定義 byte[ ] x= {11,22,33,-66} ;

  其中0≤k≤3,則對x數組元素錯誤的引用是( C )。

  A) x[5-3] B) x[k] C) x[k+5] D) x[0]

  7.下列語(yǔ)句序列執行后,ch1 的值是( B )。

  char ch1=A,ch2=W;

  if(ch1 + 2 < ch2 ) ++ch1;

  A) A B) B C) C D) B

  8.下列語(yǔ)句序列執行后,i 的值是( D )。

  int i=8, j=16;

  if( i-1 > j ) i--; else j--;

  A) 15 B) 16 C) 7 D) 8

  9.下列語(yǔ)句序列執行后,k 的值是( C )。

  int i=10, j=18, k=30;

  switch( j - i )

  { case 8 : k++;

  case 9 : k+=2;

  case 10: k+=3;

  default : k/=j;

  }

  A) 31 B) 32 C) 2 D) 33

  10.下面語(yǔ)句執行后,i 的值是( B )。

  for( int i=0, j=1; j < 5; j+=3 ) i=i+j;

  A) 4 B) 5 C) 6 D) 7

  二、填空題:(每空1分)

  1. 構造函數x沒(méi)xx有返回值。

  2. Java語(yǔ)言中的浮點(diǎn)型數據根據數據存儲長(cháng)度和數值精度的不同,進(jìn)一步分為float和 xxx double xxxxxxx兩種具體類(lèi)型。

  3. 創(chuàng )建類(lèi)對象的運算符是xx new。

  4. 當整型變量n的值不能被13除盡時(shí),其值為 false 的Java語(yǔ)言表達式是xxn%13==0xxxxxxxxxxx 。

  5. 在Java語(yǔ)言中,所有的數組都有一個(gè)lenght屬性,這個(gè)屬性存儲了該數組的xx元素個(gè)數。

  6. 定義類(lèi)就是定義一種抽象的xxxxxx父類(lèi)xxxxxx,它是所有具有一定共性的對象的抽象描述。

  7. 在Java語(yǔ)言中,使用xx平臺無(wú)關(guān)xxx、xxxjava虛擬機xxx等技術(shù),實(shí)現軟件重用。

  8. 表達式3/6 * 5的計算結果是xxxx0xxxx 。

  三、程序分析:(每題4分)

  1. 下面是一個(gè)排序的程序:

  import java.io.*;

  public class Test56xSort

  {

  public static void main(String args[ ])

  {

  int[] a={42,99,5,63,95,36,2,69,200,96};

  System.out.println(排序前的數據序列:);

  ShowArray(a);

  Sort(a);

  System.out.println(排序后的`數據序列:);

  ShowArray(a);

  }

  public static void Sort(int[] x)

  {

  int w;

  for(int i=1; i

  {

  for(int j=0; j

  if(x[j]>x[j+1])

  { w=x[j]; x[j]=x[j+1]; x[j+1]=w; }

  /* if(i==1||i==2) ShowArray(x);

  if(i==2) break; */

  }

  }

  public static void ShowArray(int b[])

  {

  for(int i=0; i

  System.out.print("b[i"+i+"]=" +b[i]);

  System.out.println( );

  }

  }

  問(wèn)題: 如果將方法Sort( )中的一對注釋符(/* */)去掉,程序輸出的結果是什么?

  排序前的數據序列:

  b[0]=42b[1]=99b[2]=5b[3]=63b[4]=95b[5]=36b[6]=2b[7]=69b[8]=200b[9]=96

  b[0]=42b[1]=5b[2]=63b[3]=95b[4]=36b[5]=2b[6]=69b[7]=99b[8]=96b[9]=200

  b[0]=5b[1]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200

  排序后的數據序列:

  b[0]=5b[1]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200

  2. 請寫(xiě)下程序的輸出結果:

  public class Test52

  {

  String str1="Hello, Java world! ";

  String str2="Hello, students!" ;

  public static void main(String args[])

  {

  System.out.print(str1);

  System.out.println(str2);

  }

  }

  輸出結果:

  四、問(wèn)答題:(每題5分,)

  1. Java的接口和C++的虛類(lèi)的相同和不同處。

  由于Java不支持多繼承,而有可能某個(gè)類(lèi)或對象要使用分別在幾個(gè)類(lèi)或對象里面的方法或屬性,現有的單繼承機制就不能滿(mǎn)足要求。與繼承相比,接口有更高的靈活性,因為接口中沒(méi)有任何實(shí)現代碼。當一個(gè)類(lèi)實(shí)現了接口以后,該類(lèi)要實(shí)現接口里面所有的方法和屬性,并且接口里面的屬性在默認狀態(tài)下面都是 public static,所有方法默認情況下是public.一個(gè)類(lèi)可以實(shí)現多個(gè)接口。

  2. 垃圾回收的優(yōu)點(diǎn)和原理。并考慮2種回收機制。

  Java語(yǔ)言中一個(gè)顯著(zhù)的特點(diǎn)就是引入了垃圾回收機制,使c++程序員最頭疼的內存管理的問(wèn)題迎刃而解,它使得Java程序員在編寫(xiě)程序的時(shí)候不再需要考慮內存管理。由于有個(gè)垃圾回收機制,Java中的對象不再有"作用域"的概念,只有對象的引用才有"作用域"。垃圾回收可以有效的防止內存泄露,有效的使用可以使用的內存。垃圾回收器通常是作為一個(gè)單獨的低級別的線(xiàn)程運行,不可預知的情況下對內存堆中已經(jīng)死亡的或者長(cháng)時(shí)間沒(méi)有使用的'對象進(jìn)行清楚和回收,程序員不能實(shí)時(shí)的調用垃圾回收器對某個(gè)對象或所有對象進(jìn)行垃圾回收;厥諜C制有分代復制垃圾回收和標記垃圾回收,增量垃圾回收。

  3,談?wù)刦inal, finally, finalize的區別。

  Final-修飾符(關(guān)鍵字)如果一個(gè)類(lèi)被聲明為final,意味著(zhù)它不能再派生出新的子類(lèi),不能作為父類(lèi)被繼承。因此一個(gè)類(lèi)不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。

  Finally-再異常處理時(shí)提供 finally 塊來(lái)執行任何清除操作。如果拋出一個(gè)異常,那么相匹配的 catch 子句就會(huì )執行,然后控制就會(huì )進(jìn)入 finally 塊(如果有的話(huà))。

  Finalize-方法名。Java 技術(shù)允許使用 finalize()方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對象沒(méi)有被引用時(shí)對這個(gè)對象調用的。它是在 Object 類(lèi)中定義的,因此所有的類(lèi)都繼承了它。子類(lèi)覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個(gè)對象調用的。

  4,數組有沒(méi)有length()這個(gè)方法? String有沒(méi)有length()這個(gè)方法?舉例說(shuō)明使用方法?

  數組沒(méi)有length()這個(gè)方法,有length的屬性。

  String有有length()這個(gè)方法。

  5. Java中的異常處理機制的簡(jiǎn)單原理和應用。

  當JAVA程序違反了JAVA的語(yǔ)義規則時(shí),JAVA虛擬機就會(huì )將發(fā)生的錯誤表示為一個(gè)異常。違反語(yǔ)義規則包括2種情況。一種是JAVA類(lèi)庫內置的語(yǔ)義檢查。例如數組下標越界,會(huì )引發(fā)IndexOutOfBoundsException;訪(fǎng)問(wèn)null的對象時(shí)會(huì )引發(fā) NullPointerException.另一種情況就是JAVA允許程序員擴展這種語(yǔ)義檢查,程序員可以創(chuàng )建自己的異常,并自由選擇在何時(shí)用 throw關(guān)鍵字引發(fā)異常。所有的異常都是java.lang.Thowable的子類(lèi)。

  五、程序設計:(每題11分,共33分)

  1、編程:編寫(xiě)一個(gè)截取字符串的函數,輸入為一個(gè)字符串和字節數,輸出為按字節截取的字符串。 但是要保證漢字不被截半個(gè),如"我ABC"4,應該截為"我AB",輸入"我ABC漢DEF",6,應該輸出為"我ABC"而不是"我ABC+漢的半個(gè)"。

  2、編程求解:所有兩位整數能被3整除的數的和,以及不能被3整除的數的各位數字之和。

  3、設計一個(gè)程序求解e的值。精度達到1.0e-6,4、請設計一個(gè)對N個(gè)數進(jìn)行排序的程序

  《JAVA程序設計》期末考試試題 5

  一、 單選題

  1、當某一線(xiàn)程正處于休眠狀態(tài),而另一個(gè)線(xiàn)程用 Thread 類(lèi)中的interrupt() 方法中斷它時(shí),拋出的異常類(lèi)型是( )。

  A) IOException B) RuntimeException

  C) InterruptedException D)ClassNotFoundException

  2、下面的程序段的功能是( )。

  File file1=new File("d:\\xxx\\yyy\\zzz");

  file1.mkdirs();

  A)在當前目錄下生成子目錄:\xxx\yyy\zzz B)生成目錄:e:\xxx\yyy\zzz

  C)在當前目錄下生成文件xxx.yyy.zzz D)以上說(shuō)法都不對

  3、應用程序的main方法中有以下語(yǔ)句,則輸出的結果是 ( )。

  Strings = "xxxxxxxxxxxxxxx#123#456#zzzzz";

  intn = s.indexOf("#");

  int k = s.indexOf("#", n+1);

  Strings2 = s.substring(n+1, k);

  System.out.println(s2);

  A) 123456 B) 123 C)xxxxxxxxxxxxxxx D) zzzzz

  4、關(guān)于下面的程序Test.java說(shuō)法正確的是( )。

  public class Test {

  Stringx="1";

  int y;

  publicstatic void main(String args[]) {

  intz=2;

  System.out.println(x+y+z);

  }

  }

  A)3 B)102 C)12 D)程序有編譯錯誤

  5、應用程序的main方法中有以下語(yǔ)句,則輸出的結果是 ( )。

  int b[][]={{1, 1, 1}, {2,2}, {3}};

  int sum=0;

  for(int i=0; i

  for(int j=0; j

  sum+=b[i][j];

  }

  }

  System.out.println("sum="+sum);

  A) 10 B)6 C) 9 D) 13

  6、應用程序的main方法中有以下語(yǔ)句,則執行后輸出的結果是 ( )。

  int[] x = {125,21,5,168,98};

  int min = x[0];

  for (int i=1; i

  if(x[i]

  min =x[i];

  }

  System.out.println(min);

  A) 125 B) 5 C) 98 D) 168

  7、應用程序的main方法中有以下語(yǔ)句,則輸出的結果是 ( )。

  Hashtable hashtable=new Hashtable();

  hashtable.put("100","aaa");

  hashtable.put("200","bbb");

  hashtable.put("300","ccc");

  System.out.println(hashtable.get("300").toString()

  +hashtable.get("200").toString()

  + hashtable.get("100").toString());

  A)aaa B) bbb C) ccc D) cccbbbaaa

  8、以下關(guān)于java異常說(shuō)法不正確的是( )。

  A) Throwable 類(lèi)是 Java 語(yǔ)言中Error類(lèi)和Exception類(lèi)的父類(lèi)。

  B)當異常對象是Exception類(lèi)(或其子類(lèi))的實(shí)例時(shí),能通過(guò) Java 虛擬機或者 throw語(yǔ)句拋出該異常對象,并能通過(guò)try…catch…finally處理。

  C)如果只用一個(gè)catch塊捕捉多個(gè)異常對象,則catch 子句中的參數類(lèi)型應是所有異常對象的父類(lèi)。

  D)以上說(shuō)法都不對。

  9、下面的程序創(chuàng )建了一個(gè)文件輸出流對象,用來(lái)向文件test.txt中輸出數據,假設程序當前目錄下不存在文件test.txt,編譯下面的程序Test.java后,將該程序運行3次,則文件test.txt 的內容是( )。

  import java.io.*;

  public class Test {

  publicstatic void main(String args[]) {

  try{

  Strings="ABCDE";

  byteb[]=s.getBytes();

  FileOutputStreamfile=new FileOutputStream("test.txt", true);

  file.write(b);

  file.close();

  }

  catch(IOExceptione) {

  System.out.println(e.toString());

  }

  }

  }

  A) ABCABC B) ABCDE C)Test D) ABCDE ABCDE ABCDE

  10、下面說(shuō)法不正確的是( )?

  A)列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。

  B)List接口是可以包含重復元素的有序集合。

  C)Set接口是不包含重復元素的集合。

  D)Map接口將鍵映射到值,鍵可以重復,但每個(gè)鍵最多只能映射一個(gè)值。

  二、多選題

  1、下面哪些關(guān)鍵字能用來(lái)控制對類(lèi)成員的訪(fǎng)問(wèn)( )?

  A) public B) protected C) private D) default

  2、下面關(guān)于Java中異常處理try塊的說(shuō)法正確的是( )?

  A) try塊后通常應有一個(gè)catch 塊,用來(lái)處理try塊中拋出的異常。

  B) catch 塊后必須有finally塊。

  C)可能拋出異常的方法調用應放在try塊中。

  D)對拋出的異常的處理必須放在try塊中

  3、線(xiàn)程對象的生命周期中,通常經(jīng)歷下面哪些狀態(tài)( )。

  A)新建 B)運行 C)就緒 D)死亡

  4、定義如下的二維數組b,下面的說(shuō)法正確的是( )。

  int b[][]={{1, 2, 3}, {4, 5},{6, 7, 8}}};

  A)b.length的值是3。 B)b[1].length的值是3。

  C)b[1][1]的值是5。 D) 二維數組b的第一行有3個(gè)元素

  5、類(lèi)B是一個(gè)抽象類(lèi),類(lèi)C是類(lèi)B的非抽象子類(lèi),下列創(chuàng )建對象x1的語(yǔ)句中正確的是( )。

  A) B x1= new B( ); B) B x1= newC( );

  C) C x1=new C(); D) C x1= new B( );

  6、下面關(guān)于進(jìn)程、線(xiàn)程的說(shuō)法正確的是( )。

  A)進(jìn)程是程序的.一次動(dòng)態(tài)執行過(guò)程。一個(gè)進(jìn)程在其執行過(guò)程中,可以產(chǎn)生多個(gè)線(xiàn)程——多線(xiàn)程,形成多條執行線(xiàn)索。

  B)線(xiàn)程是比進(jìn)程更小的執行單位,是在一個(gè)進(jìn)程中獨立的控制流,即程序內部的控制流。線(xiàn)程本身不能自動(dòng)運行,棲身于某個(gè)進(jìn)程之中,由進(jìn)程啟動(dòng)執行。

  C)Java多線(xiàn)程的運行與平臺相關(guān)。

  D)對于單處理器系統,多個(gè)線(xiàn)程分時(shí)間片獲取CPU或其他系統資源來(lái)運行。對于多處理器系統,線(xiàn)程可以分配到多個(gè)處理器中,從而真正的并發(fā)執行多任務(wù)。

  7、下面關(guān)于外部類(lèi)和內部類(lèi)成員的相互訪(fǎng)問(wèn)的規則中,正確的選項是( )。

  A)內部類(lèi)可以直接訪(fǎng)問(wèn)外部類(lèi)的成員

  B)外部類(lèi)可以直接訪(fǎng)問(wèn)內部類(lèi)的成員

  C)外部類(lèi)不能訪(fǎng)問(wèn)內部類(lèi)的成員

  D)外部類(lèi)可通過(guò)創(chuàng )建內部類(lèi)的實(shí)例來(lái)訪(fǎng)問(wèn)內部類(lèi)的成員

  三、程序閱讀題

  1、閱讀下面的程序代碼,并回答問(wèn)題(u問(wèn)3分,v問(wèn)3分,共6分)。

  String s1 = new String("abcde");

  Strings2 = new String("abcde");

  booleanb1= s1.equals(s2);

  booleanb2 = s1== s2;

  System.out.print(b1+" "+b2);

  u程序段執行后,在命令行的輸出結果如何?

  v解釋輸出(1)的結果的原因?

  答案:

  u true false

  vequals方法比較兩個(gè)字符串的內容是否相等;運算符“==”判斷兩個(gè)對象是否指向同一個(gè)引用,即是否為同一個(gè)對象。

  2、閱讀下面的程序,并回答問(wèn)題(u問(wèn)3分,v問(wèn)3分,共6分)。

  import java.io.*;

  public class Test {

  public static void main(String args[]) throws IOException {

  BufferedReader buf=new BufferedReader(

  newInputStreamReader(System.in));

  while(true) {

  String str = buf.readLine();

  if(str.equals("quit"))

  break;

  int x=Integer.parseInt(str);

  System.out.println(x*x);

  }

  }

  }

  編譯運行上面的程序:

  u從鍵盤(pán)輸入10,回車(chē)后輸出的結果如何?

  v從鍵盤(pán)輸入exit,回車(chē)后程序能正確執行嗎?為什么?

  答案:

  u100

  v不能;因為方法Integer.parseInt(str)不能將字符串“exit”轉化為整數,拋出異常。

  3、寫(xiě)出下面的程序編譯、運行后的結果(6分)。

  public class Test{

  public static void main(String args[]) {

  new Student("Tom", m, 90, 88);

  new Student("Jack", m, 66,89);

  new Student("Mary", f, 76,86);

  System.out.println("name\tsex\tchinese\tenglish");

  Student.print();

  }

  }

  class Student {

  protected String name;

  protected char sex;

  protected int chinese;

  protected int english;

  protected Student next;

  static Student list;

  Student (String name, char sex, int chinese,int english) {

  this.name=name;

  this.sex=sex;

  this.chinese=chinese;

  this.english=english;

  this.next=list;

  list=this;

  }

  static void print() {

  Student friend=list;

  if (friend==null)

  System.out.println("The listis empty.");

  else {

  do{

  System.out.println(friend.toString());

  friend=friend.next;

  }while(friend!=null);

  }

  }

  public String toString() {

  return newString(name+"\t"+sex+"\t"+chinese+"\t"+english);

  }

  }

  答案:

  name sex chinese english

  Mary f 76 86

  Jack m 66 89

  Tom m 90 88

【《JAVA程序設計》期末考試試題】相關(guān)文章:

《JAVA程序設計》期末考試試題06-01

sun認證:java程序設計考試試題07-25

大學(xué)java期末考試試題08-18

2017年java期末考試試題10-20

計算機二級Java語(yǔ)言程序設計試題11-01

2016年java期末考試試題及答案10-11

java試題及答案07-04

2017java期末考試參考試題07-31

2024年計算機Java語(yǔ)言程序設計考試試題03-13

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频