- 相關推薦
計算機二級Java備考沖刺試題及答案
計算機二級考試難度不少,因此考生們要加強練習,下面是小編為大家整理的計算機二級Java備考沖刺試題及答案,歡迎參考~
計算機二級Java備考沖刺試題及答案 1
1、以下 不是Java中有效的關鍵字。
A、const
B、NULL
C、false
D、this
本題考查的是Java的關鍵字。
Java中常量null,false,true,new,this,const,break都是小寫。
故本題答案為B。
2、關于被私有訪問控制符private修飾的成員變量,以下說法正確的是 。
A、可以被三種類所引用:該類自身、與它在同一個包中的其他類、在其他包中的該類的子類
B、可以被兩種類訪問和引用:該類本身、該類的所有子類
C、只能被該類自身所訪問和修改
D、只能被同一個包中的類訪問
本題考查的是成員變量的修飾符。
private修飾的變量說明變量為私有訪問。只能被該類自己訪問或調用,是對成員變量的高級保護。
故本題答案為C。
3、當檢索一個壓縮文件時,首先要建立壓縮文件輸入流對象。該對象 。
A、以選中的壓縮文件為參數
B、以FileInputStream對象為參數
C、以InputStreamReader對象為參數
D、以BufferedReader對象為參數
本題考查的是壓縮文件。
在java.io包中提供了對壓縮文件進行操作的能力。它是通過壓縮文件輸入流與壓縮文件輸出流來實現的,其分別繼承自InflaterInputStream與DeflaterOutputStream。在創建壓縮文件輸入流時,其初始化參數是一個FileInputStream類的實例。
故本題答案為B。
4、計算機中的流是______ 。
A、流動的字節
B、流動的對象
C、流動的文件
D、流動的數據緩沖區
本題考查的是流的概念。
流,最早從C語言中引入的。其可以看成是一個流動的數據緩沖區。數據從數據源方向經過緩沖區流向數據的目的地。在傳送的過程中,其傳送方式是串行的。在Java中的java.io包中定義了Java中常見流的接口與類。其中包括兩個最基本的流的.抽象類,它們分別是OutputStream與InputStream。其余的流都分別從這兩個基本類中繼承而來。
故本題答案為D。
1、結構化程序設計主要強調的是______。
A、程序的規模
B、程序的易讀性
C、程序的執行效率
D、程序的可移植性
結構化程序設計主要強調的是結構化程序清晰易讀,可理解性好,程序員能夠進行逐步求精、程序證明和測試,以保證程序的正確性。
本題答案為B。
2、數據庫設計包括兩個方面的設計內容,它們是______。
A、概念設計和邏輯設計
B、模式設計和內模式設計
C、內模式設計和物理設計
D、結構特性設計和行為特性設計
數據庫設計可分為概念設計與邏輯設計。
數據庫概念設計的目的是分析數據間內在語義關聯,在此基礎上建立一個數據的抽象模型。
數據庫邏輯設計的主要工作是將ER圖轉換為指定的RDBMS中的關系模型。
本題答案是A。
3、為AB類的一個無形式參數無返回值的方法method書寫方法頭,使得使用類名AB作為前綴就可以調用它,該方法頭的形式為______。
A、static void method( )
B、public void method( )
C、final void method( )
D、abstract void method( )
本題考查的是修飾符的含義。
1、public修飾的方法可被其它類訪問或引用。
2、abstract修飾的方法是抽象方法,抽象方法沒有方法體,要使用抽象方法,必須先實現此抽象方法。
3、final修飾的方法不能被繼承。
4、static修飾的方法為靜態方法,靜態方法不需要類的實例化就可以被類直接調用。
故要使得類名AB可以直接調用method()方法,則必須在method()前用static來修飾。
故本題答案為A。
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;
本題考查的是多重循環。
首先介紹一下continue語句的功能:continue語句是跳過循環體中下面尚未執行的語句,回到循環體的開始,繼續下一輪的循環。
本題程序運行過程如下:
i=0:
j=0 條件j==1不成立,輸出j和i,即0 and 0;
j=1 條件j==1成立,執行continue,跳過System.out.println(j+ "and "+i+";");執行下一輪循環j=2;
j=2 條件j<2不滿足,退出內層循環,繼續外層循環。
i=1:
j=0 條件j==1不成立,輸出j和i,即0 and 1;
j=1 條件j==1成立,執行continue,跳過System.out.println(j+ "and "+i+";");執行下一輪循環j=2;
j=2 條件j<2不滿足,退出內層循環,繼續外層循環。
i=2:
j=0 條件j==1不成立,輸出j和i,即0 and 2;
j=1 條件j==1成立,執行continue,跳過System.out.println(j+ "and "+i+";");執行下一輪循環j=2;
j=2 條件j<2不滿足,退出內層循環,繼續外層循環。
i=3:條件i<3不滿足,結束。
故本題答案為A。
編程題
1、 編寫一個Java Application 程序App.java,main程序輸入10個整數給數組,通過函數getMinAndMax(int a[])得到這10個整數的最大值和最小值并輸出結果。
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、編寫一個完整的Java Application 程序。包含接口ShapeArea, Rectangle
類,Triangle類及Test類,具體要求如下:
⑴接口ShapeArea:
double getArea( ):
求一個形狀的面積
double getPerimeter ( ):
求一個形狀的周長
⑵類 Rectangle:實現ShapeArea接口,并有以下屬性和方法:
、 屬性
width: double類型,表示矩形的長 height: double類型,表示矩形的高
、 方法
Rectangle(double w, double h):構造函數
toString( )
方法 :輸出矩形的描述信息,如“width=1.0,height=2.0, perimeter=6.0, area=2.0”
、穷怲riangle:實現ShapeArea接口,并有以下屬性和方法:
① 屬性
x,y,z: double型,表示三角形的三條邊
s: 周長的1/2(注:求三角形面積公式為))( )((zsysxss,s=(x+y+z)/2 ,開方可用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類作為主類要完成測試功能
① 生成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( );
} }
1、下列敘述中,錯誤的是______。
A、Applet的默認布局管理器是FlowLayout
B、JApplet中增加構件是加到JApplet的內容面板上,不是直接加到JApplet中
C、JApplet的內容面板的默認布局管理器是BorderLayout
D、JApplet的內容面板的默認布局管理器是FlowLayout
本題考的是布局管理器。
向JApplet中增加構件,是把構件添加到Swing Applet的內容面板中;對JApplet設置布局管理器,是對Swing Applet的內容面板進行設置,Swing Applet的內容面板的默認布局管理器是BorderLayout,所以,JApplet的內容面板的默認布局管理器是BorderLayout;而Applet的默認布局管理器是FlowLayout。
故本題答案為D
而japplet是applet的子類
2、 護本地主機,對Applet安全限制中正確的是______。
A、Applet可加載本地庫或方法
B、Applet可讀、寫本地計算機的文件系統
C、Applet可向Applet之外的任何主機建立網絡連接
D、Applet不能運行任何本地可執行程序
許多瀏覽器為了保護本地主機,對Applet作了如下安全限制:
1、Applet不能運行任何本地可運行程序;
2、禁止加載本地庫或方法;
3、禁止讀、寫本地計算機的文件系統;
4、禁止向提供Applet之外的任何主機建立網絡連接;
5、不能讀取某些系統信息,除了Java版本號、操作系統名或版本號、文件分隔符、路徑分隔符以及行分隔符之外,Applet不能獲得與本地計算機有關的任何信息,如:用戶名、電子郵件地址等;
6、由一個Applet彈出的窗口外觀上與一個Application彈出的窗口不同,Applet彈出的窗口中將會有警告提示信息,以幫助用戶區分Applet窗口與可信的Application窗口。
故本題答案為D。
3、Java對I/O訪問所提供的同步處理機制是______。
A、字節流
B、過濾流
C、字符流
D、壓縮文件流
本題考的是過濾流。
Java對I/O訪問所提供的同步處理機制是過濾流。一般,使用一個過濾流要求首先把過濾流連接到某個I/O流上,再通過構造方法的參數去指定連接的I/O流。
故本題答案為B。
4、 Panel類的默認布局管理器是______。
A、BorderLayout
B、CardLayout
C、FlowLayout
D、GridBagLayout
本題考的是布局管理器。
FlowLayout是Panel和Applet的默認布局管理器。
故本題答案為C。
5、Java對文件類提供了許多操作方法,能獲得文件對象父路徑名的方法是______。
A、getAbsolutePath()
B、getParentFile()
C、getAbsoluteFile()
D、getName()
本題考的是File類提供的方法。
getAbsolutePath():得到一個文件的絕對路徑名;
getParentFile():得到文件對象父路徑名;
getAbsoluteFile():等價于new File(this.getAbsolutePath());
getName():得到一個不包含路徑的文件名。
故本題答案為B。
1、Swing與AWT相比新增的布局管理器是______。
A、CardLayout
B、GridLayout
C、GridBagLayout
D、BoxLayout
本題考查的是布局管理器。
Swing繼續沿用AWT中的布局管理器,包括FlowLayout、BorderLayout、CardLayout、GridLayout、GridBagLayout,另外Swing新增加了一個BoxLayout布局管理器。
故本題答案為D。
2、下列對Java特性的敘述中,錯誤的是______。
A、在編寫Java子類時可以自由地增加新方法和屬性
B、Java的Applet要求編程首先創建JFrame窗口
C、Java語言用解釋器執行字節碼
D、Java中的類一般都有自己的屬性和方法
本題考查的是Applet的概念。
Applet是能夠嵌入到HTML頁面中,并能夠在瀏覽器中運行的Java類,本身并不一定需要首先創建窗體,但可以使用JApple類來使用Swing構件。
Swing包中的JFrame類與創建窗口有關,是提供給java應用程序用來放置圖形用戶界面的一個容器。
JApplet類與JFrame一樣是頂層的Swing容器。包含Swing構件的Applet必須是JApplet的子類。
故本題答案為B。
3、閱讀下面求質數的程序
import java.lang.Math.*;
public class MorePrimesTest{
public static void main(String[] args){
long[] primes=new long[20];
primes[0]=2L;
primes[1]=3L;
long number=5L;
outer:
for(int count=2;count long limit=(long)Math.ceil(Math.sqrt((double)number));
for(int i=1;i if(number ______ primes[i]==0L){
continue outer;
}
}
primes[count++]=number;
}
for(int j=0;j long n=primes[j];
System.out.println(n);
}
}
}
在程序下劃線處填入的正確選項是______。
A、&
B、*
C、/
D、%
本題考查的是JAVA程序結構。
所謂質數或稱素數,就是一個正整數,除了本身和1以外并沒有任何其他因子。任何一個整數,可以寫成一串質數相乘的積。
程序中首先定義了包含有20個元素的長整型數組,為數組的第一,第二個元素賦值,并且還定義了一個長整型變量"long number=5L;",然后進入循環,該循環的作用是判斷當前變量number的值是否為質數,其中Math.sqrt(double x)方法的作用是求x的平方根,而Math.ceil()方法的作用是求最小的整數但不小于本身(例如:Math.ceil(3.14)則返回4),在本次循環中,需要判斷變量number與primes[i]的取余操作,如果變量number與小于自己的平方根取整且小于count的數取余數為0,則跳出循環,將number的值寫入數組中,當20個元素填滿后,程序依次輸出數組元素。
故本題答案為D。
4、在Java中,"目錄"被看作是______。
A、文件
B、流
C、數據
D、接口
本題考查的是目錄的概念。
目錄在Java中作為一種特殊文件,即文件名的列表,通過類File所提供的方法,可得到文件或目錄的描述信息(包括名字、路徑、長度、可讀、可寫等),也可以生成新文件、目錄、修改文件和目錄,查詢文件屬性,重命名文件或者刪除文件。
故本題答案為A。
5、下列帶下劃線的標識符符合Java命名約定的是______。
A、package com.Bi.hr
B、public class xyz
C、int I
D、void setCustomerName()
本題考查的是Java命名約定。
包的名字應該都是由小寫單詞組成。它們全都是小寫字母,即便中間的單詞亦是如此,所以A選項錯誤。
類名的第一個字母一定要大寫,所以B選項錯誤;
變量的第一個字母應該為小寫,所以C選項錯誤;
與屬性相對應的get、set方法為:set(get)+屬性名,屬性名第一個字母為大寫,所以D選項正確。
故本題答案為D。
6、在Java語言中,被稱為內存分配的運算符是______。
A、new
B、instance of
C、[ ]
D、( )
本題考查的是JAVA關鍵字。
Java語言中,程序為對象動態分配內存。Java中內存分配的運算符是new。
故本題答案為A。
計算機二級Java備考沖刺試題及答案 2
一、選擇題
1. 下列選項中,不屬于Java語言特點的是( )
A. 面向對象
B. 平臺無關性
C. 安全性
D. 編譯執行
答案:D。Java是解釋執行的編程語言,它先將Java源程序編譯成字節碼文件(.class文件),然后由Java虛擬機(JVM)解釋執行字節碼文件,而不是編譯執行。Java具有面向對象、平臺無關性、安全性等特點。
2. 以下標識符中,合法的Java標識符是( )
A. 3abc
B. _abc
C. -abc
D. static
答案:B。Java標識符是以字母、美元符號($)或者下劃線(_)開頭,后面可以跟字母、數字、美元符號或者下劃線的字符序列。A選項以數字開頭不合法;C選項以減號開頭不合法;D選項“static”是Java的關鍵字,不能作為標識符。
3. 以下數據類型中,占用內存空間最小的是( )
A. short
B. int
C. long
D. byte
答案:D。在Java中,byte占用1個字節(8位),short占用2個字節,int占用4個字節,long占用8個字節。
4. 下列關于Java數組的說法,正確的是( )
A. 數組的長度可以在運行時改變
B. 數組一旦創建,其元素的類型就不能改變
C. 可以使用new關鍵字創建數組,但不能直接初始化數組元素
D. 二維數組在內存中是按列存儲的
答案:B。A選項,Java數組的長度在創建后不能改變;C選項,可以在創建數組的同時初始化數組元素,例如int[] arr = {1, 2, 3};;D選項,二維數組在內存中是按行存儲的。
5. 在Java中,以下代碼的輸出結果是( )
java
public class Main {
public static void main(String[] args) {
int a = 10;
System.out.println(a++);
}
}
A. 9
B. 10
C. 11
D. 編譯錯誤
答案:B。a++是后自增運算符,先使用a的值,然后再將a的值加1。所以先輸出a的當前值10,之后a的值變為11。
6. 以下關于Java方法重載的說法,正確的是( )
A. 方法重載是指在一個類中可以定義多個同名方法,但參數列表必須不同
B. 方法重載是指在不同類中可以定義多個同名方法,參數列表可以相同
C. 方法重載的返回值類型必須不同
D. 方法重載與方法的訪問修飾符有關
答案:A。方法重載是在同一個類中定義多個同名方法,但參數的個數、類型或者順序不同。方法重載與返回值類型和訪問修飾符無關。
7. 在Java中,以下接口的定義正確的是( )
java
A. interface MyInterface {
void method();
}
B. abstract interface MyInterface {
void method();
}
C. class MyInterface {
void method();
}
D. interface MyInterface {
private void method();
}
答案:A。接口的定義使用interface關鍵字,接口中的方法默認是public abstract的,不能使用private等訪問修飾符,也不能用abstract關鍵字修飾接口本身。
8. 以下關于Java異常處理的說法,錯誤的是( )
A. try - catch塊可以捕獲并處理異常
B. 可以使用throws關鍵字在方法聲明中拋出異常
C. 所有異常都必須被捕獲和處理
D. 異常分為檢查異常和非檢查異常
答案:C。并不是所有異常都必須被捕獲和處理,非檢查異常(如RuntimeException及其子類)可以不進行捕獲和處理,但檢查異常(如IOException等)通常需要在方法中進行處理或者在方法聲明中使用throws拋出。
9. 在Java中,用于讀取文本文件的類是( )
A. FileInputStream
B. FileReader
C. BufferedReader
D. InputStreamReader
答案:B。FileReader類用于讀取字符文件,FileInputStream用于讀取字節文件,BufferedReader通常用于緩沖字符輸入流以提高讀取效率,它一般包裝FileReader等字符輸入流來使用,InputStreamReader是字節流到字符流的轉換橋梁。
10. 以下關于Java多線程的說法,正確的是( )
A. 一個Java程序只能有一個線程
B. 線程是通過繼承Thread類或者實現Runnable接口來創建的
C. 多線程可以提高程序的執行速度
D. 線程的優先級越高,就一定先執行
答案:B。A選項,一個Java程序可以有多個線程;C選項,多線程主要是為了提高程序的并發性能,不一定能提高執行速度,因為線程之間的切換等也會有開銷;D選項,線程優先級高的線程更有可能先執行,但不是一定先執行,還取決于操作系統的調度等因素。
二、程序填空題
1. 以下程序是計算1 - 100之間的整數之和,請補充完整。
java
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; ____) {
sum += i;
}
System.out.println("1 - 100的和為:" + sum);
}
}
答案:i++。在for循環中,需要在每次循環后更新循環變量i的值,使其能夠按照順序從1遞增到100,i++實現了這個功能。
2. 以下程序定義了一個方法,用于判斷一個數是否為偶數,請補充完整。
java
public class Main {
public static boolean isEven(int num) {
return ____;
}
public static void main(String[] args) {
int n = 4;
if (____) {
System.out.println(n + "是偶數");
} else {
System.out.println(n + "是奇數");
}
}
}
答案:num % 2 == 0;isEven(n)。在isEven方法中,判斷一個數是否為偶數可以通過判斷該數除以2的余數是否為0來實現,所以返回num % 2 == 0。在main方法中,調用isEven方法來判斷n是否為偶數,所以應該填寫isEven(n)。
三、程序改錯題
1. 以下程序的目的是交換兩個整數的'值,但是程序有錯誤,請改正。
java
public class Main {
public static void main(String[] args) {
int a = 10, b = 20;
a = b;
b = a;
System.out.println("a = " + a + ", b = " + b);
}
}
答案:
java
public class Main {
public static void main(String[] args) {
int a = 10, b = 20;
int temp = a;
a = b;
b = temp;
System.out.println("a = " + a + ", b = " + b);
}
}
分析:原程序中,先將b的值賦給a,此時a的值變為20,然后再將a(此時為20)的值賦給b,這樣并沒有實現交換。正確的做法是引入一個臨時變量temp,先將a的值保存到temp中,然后將b的值賦給a,最后將temp(原來a的值)賦給b。
2. 以下程序是計算一個整數數組的平均值,但是有錯誤,請改正。
java
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i + 1];
}
double average = (double)sum / arr.length;
System.out.println("平均值為:" + average);
}
}
答案:
java
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
double average = (double)sum / arr.length;
System.out.println("平均值為:" + average);
}
}
分析:在計算數組元素之和的for循環中,原程序sum += arr[i + 1];會導致數組越界訪問(當i為arr.length - 1時),并且沒有正確累加數組元素。應該將其改為sum += arr[i];,這樣才能正確地將數組中的每個元素累加到sum中。
四、程序設計題
1. 編寫一個Java程序,輸入一個整數n,計算并輸出n的階乘。
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("請輸入一個整數n: ");
int n = scanner.nextInt();
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
System.out.println(n + "的階乘是:" + result);
}
}
2. 定義一個Student類,包含姓名(name)和成績(score)兩個屬性,以及一個方法display()用于輸出學生的姓名和成績。在main方法中創建Student類的對象并調用display()方法。
java
class Student {
private String name;
private double score;
public Student(String name, double score) {
this.name = name;
this.score = score;
}
public void display() {
System.out.println("姓名:" + name + ", 成績:" + score);
}
}
public class Main {
public static void main(String[] args) {
Student student = new Student("張三", 90.5);
student.display();
}
}
【計算機二級Java備考沖刺試題及答案】相關文章:
計算機二級JAVA沖刺試題及答案02-14
2016計算機二級JAVA沖刺試題及答案02-21
Java經典筆試題(含答案)11-06
2016年計算機二級考試試題(Java)02-21
2017計算機二級考試試題與答案02-11
2016計算機二級考試練習試題及答案02-20
小升初英語沖刺試題(帶答案)02-13