2025年計算機Java語言程序設(shè)計考試試題
無論是身處學(xué)校還是步入社會,我們或多或少都會接觸到考試題,借助考試題可以檢驗考試者是否已經(jīng)具備獲得某種資格的基本能力。大家知道什么樣的考試題才是好考試題嗎?以下是小編精心整理的計算機Java語言程序設(shè)計考試試題,歡迎大家借鑒與參考,希望對大家有所幫助。
計算機Java語言程序設(shè)計考試試題 1
一、單選題:(每題1分)下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項的標(biāo)記寫在題干后的括號內(nèi)。
1.下列語句序列執(zhí)行后,k 的值是( B )。
int m=3, n=6, k=0;
while( (m++) < ( -- n) ) ++k;
A) 0 B) 1 C) 2 D) 3
2.設(shè) i、j 為int型變量名,a 為int型數(shù)組名,以下選項中,正確的賦值語句是( B )。
A) i = i + 2 B) a[0] = 7;
C) i++ - --j; D) a(0) = 66;
3.Java語言的類間的繼承關(guān)系是( B )。
A) 多重的 B) 單重的 C) 線程的 D) 不能繼承
4.設(shè)有定義 int i = 6 ;,則執(zhí)行以下語句后,i 的值為( C )。
i += i - 1;
A) 10 B) 121 C) 11 D) 100
5.下列選項中,用于在定義子類時聲明父類名的關(guān)鍵字是( C )。
A)interface B) package C) extends D) class
6.若已定義 byte[ ] x= {11,22,33,-66} ;
其中0≤k≤3,則對x數(shù)組元素錯誤的引用是( C )。
A) x[5-3] B) x[k] C) x[k+5] D) x[0]
7.下列語句序列執(zhí)行后,ch1 的值是( B )。
char ch1=A,ch2=W;
if(ch1 + 2 < ch2 ) ++ch1;
A) A B) B C) C D) B
8.下列語句序列執(zhí)行后,i 的值是( D )。
int i=8, j=16;
if( i-1 > j ) i--; else j--;
A) 15 B) 16 C) 7 D) 8
9.下列語句序列執(zhí)行后,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.下面語句執(zhí)行后,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. 構(gòu)造函數(shù)_沒__有返回值。
2. Java語言中的浮點型數(shù)據(jù)根據(jù)數(shù)據(jù)存儲長度和數(shù)值精度的不同,進一步分為float和 ___ double _______兩種具體類型。
3. 創(chuàng)建類對象的運算符是__ new。
4. 當(dāng)整型變量n的值不能被13除盡時,其值為 false 的Java語言表達式是__n%13==0___________ 。
5. 在Java語言中,所有的數(shù)組都有一個lenght屬性,這個屬性存儲了該數(shù)組的__元素個數(shù)。
6. 定義類就是定義一種抽象的______父類______,它是所有具有一定共性的對象的抽象描述。
7. 在Java語言中,使用__平臺無關(guān)___、___java虛擬機___等技術(shù),實現(xiàn)軟件重用。
8. 表達式3/6 * 5的計算結(jié)果是____0____ 。
三、程序分析:(每題4分)
1. 下面是一個排序的程序:
import java.io.*;
public class Test56_Sort
{
public static void main(String args[ ])
{
int[] a={42,99,5,63,95,36,2,69,200,96};
System.out.println(排序前的數(shù)據(jù)序列:);
ShowArray(a);
Sort(a);
System.out.println(排序后的數(shù)據(jù)序列:);
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( );
}
}
問題: 如果將方法Sort( )中的一對注釋符(/* */)去掉,程序輸出的'結(jié)果是什么?
排序前的數(shù)據(jù)序列:
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
排序后的數(shù)據(jù)序列:
b[0]=5b[1]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200
2. 請寫下程序的輸出結(jié)果:
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);
}
}
輸出結(jié)果:
四、問答題:(每題5分,)
1. Java的接口和C++的虛類的相同和不同處。
由于Java不支持多繼承,而有可能某個類或?qū)ο笠褂梅謩e在幾個類或?qū)ο罄锩娴姆椒ɑ驅(qū)傩,現(xiàn)有的單繼承機制就不能滿足要求。與繼承相比,接口有更高的靈活性,因為接口中沒有任何實現(xiàn)代碼。當(dāng)一個類實現(xiàn)了接口以后,該類要實現(xiàn)接口里面所有的方法和屬性,并且接口里面的屬性在默認(rèn)狀態(tài)下面都是 public static,所有方法默認(rèn)情況下是public.一個類可以實現(xiàn)多個接口。
2. 垃圾回收的優(yōu)點和原理。并考慮2種回收機制。
Java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程序員最頭疼的內(nèi)存管理的問題迎刃而解,它使得Java程序員在編寫程序的時候不再需要考慮內(nèi)存管理。由于有個垃圾回收機制,Java中的對象不再有"作用域"的概念,只有對象的引用才有"作用域"。垃圾回收可以有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。垃圾回收器通常是作為一個單獨的低級別的線程運行,不可預(yù)知的情況下對內(nèi)存堆中已經(jīng)死亡的或者長時間沒有使用的對象進行清楚和回收,程序員不能實時的調(diào)用垃圾回收器對某個對象或所有對象進行垃圾回收。回收機制有分代復(fù)制垃圾回收和標(biāo)記垃圾回收,增量垃圾回收。
3,談?wù)刦inal, finally, finalize的區(qū)別。
Final-修飾符(關(guān)鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。
Finally-再異常處理時提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的 catch 子句就會執(zhí)行,然后控制就會進入 finally 塊(如果有的話)。
Finalize-方法名。Java 技術(shù)允許使用 finalize()方法在垃圾收集器將對象從內(nèi)存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調(diào)用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize()方法是在垃圾收集器刪除對象之前對這個對象調(diào)用的。
4,數(shù)組有沒有l(wèi)ength()這個方法? String有沒有l(wèi)ength()這個方法?舉例說明使用方法?
數(shù)組沒有l(wèi)ength()這個方法,有l(wèi)ength的屬性。
String有有l(wèi)ength()這個方法。
5. Java中的異常處理機制的簡單原理和應(yīng)用。
當(dāng)JAVA程序違反了JAVA的語義規(guī)則時,JAVA虛擬機就會將發(fā)生的錯誤表示為一個異常。違反語義規(guī)則包括2種情況。一種是JAVA類庫內(nèi)置的語義檢查。例如數(shù)組下標(biāo)越界,會引發(fā)IndexOutOfBoundsException;訪問null的對象時會引發(fā) NullPointerException.另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創(chuàng)建自己的異常,并自由選擇在何時用 throw關(guān)鍵字引發(fā)異常。所有的異常都是java.lang.Thowable的子類。
五、程序設(shè)計:(每題11分,共33分)
1、編程:編寫一個截取字符串的函數(shù),輸入為一個字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。 但是要保證漢字不被截半個,如"我ABC"4,應(yīng)該截為"我AB",輸入"我ABC漢DEF",6,應(yīng)該輸出為"我ABC"而不是"我ABC+漢的半個"。
2、編程求解:所有兩位整數(shù)能被3整除的數(shù)的和,以及不能被3整除的數(shù)的各位數(shù)字之和。
3、設(shè)計一個程序求解e的值。精度達到1.0e-6,
4、請設(shè)計一個對N個數(shù)進行排序的程序
計算機Java語言程序設(shè)計考試試題 2
一.選擇題(30分)
1.下列哪些情況可以終止當(dāng)前線程的運行?
a. 拋出一個異常時。
b. 當(dāng)該線程調(diào)用sleep()方法時。
c. 當(dāng)創(chuàng)建一個新線程時。(與當(dāng)前進程無關(guān))
d. 當(dāng)一個優(yōu)先級高的線程進入就緒狀態(tài)時。
2. 下面哪些為構(gòu)造函數(shù)的特性定義
a. 在類中聲明構(gòu)造函數(shù)時,名稱應(yīng)該與類名相同
b. 具有重載特性,可以建立多個相同的名稱
c. 使用類建立新對象時,會自動執(zhí)行構(gòu)造函數(shù),因此在構(gòu)造函數(shù)內(nèi)設(shè)定變量的初值或進行內(nèi)存分配
d. 以上都是
3. 關(guān)于異常處理機制的敘述哪些正確
a. catch部分捕捉到異常情況時,才會執(zhí)行finally部分
b. 當(dāng)try區(qū)段的程序發(fā)生異常時,才會執(zhí)行catch區(qū)段的程序
c. 不論程序是否發(fā)生錯誤及捕捉到異常情況,都會執(zhí)行finally部分
d. 以上都是
4. 下列關(guān)于接口的敘述中哪些是正確的
a. 接口中的數(shù)據(jù)必須設(shè)定初值(就是接口中的常量)
b. 接口中的方法都是抽象方法
c. 接口可以聲明引用
d. 以上都正確
5.Java語言中,方法的重寫(Overriding)和重載(Overloading)是多態(tài)性的不同表現(xiàn)。下邊哪些說法是對的?
A. 重寫是父類與子類之間多態(tài)性的一種表現(xiàn)。
B. 重寫是一個類中多態(tài)性的一種表現(xiàn)。
C. 重載是一個類中多態(tài)性的一種表現(xiàn)。
D. 重載是父類與子類之間多態(tài)性的一種表現(xiàn)。
6.在Struts應(yīng)用的視圖中包含哪些組件?
A. JSP
B. Servlet
C. ActionServlet
D. Action
E. 代表業(yè)務(wù)邏輯或業(yè)務(wù)數(shù)據(jù)的JavaBean
F. EJB
G. 客戶化標(biāo)簽
7. struts框架中,關(guān)于FormBean,下列哪些說法是正確的:
A FormBean是一種數(shù)據(jù)bean,主要用來封裝表單提交上來的數(shù)據(jù),并把這些數(shù)據(jù)傳遞給Action
B 在FormBean中可以對頁面上傳遞來的參數(shù)進行一下格式上的驗證,這種驗證是一種客戶端的驗證
C 用戶每次提交表單,都會產(chǎn)生一個新的FormBean實例
D 動態(tài)FormBean不能進行驗證操作
8哪些方法可以進行servlet的調(diào)試?()
A、使用打印語句; 在桌面計算機上運行服務(wù)器
B、使用Apache Log4J
C、使用IDE集成的調(diào)試器
D、直接查看HTML源碼 ????
E、返回錯誤頁面給客戶
9、下面關(guān)于servlet的功用說法正確的有哪些?()
A、讀取客戶程序發(fā)送來的顯式數(shù)據(jù)
B、讀取客戶程序發(fā)送來的隱式數(shù)據(jù)
C、生成相應(yīng)的結(jié)果
D、發(fā)送顯式的數(shù)據(jù)給客戶程序
E、發(fā)送隱式的數(shù)據(jù)給客戶程序
10、下面關(guān)于session的用法哪些是錯誤的?(
A、HttpSession session = new HttpSession();
request.getSession();
B、String haha =(String) session.getParameter(Attribute)(“haha”);
C、session.removeAttribute(“haha”);
D、session. setAttribute(“haha”,值);
11、關(guān)于說法正確的有哪些?()
A、URL的輸出在請求時入到JSP頁面中
B、不能含有影響整個頁面的JSP內(nèi)容
C、被包含文件改變后不需更改使用它的頁面
D、被包含文件更改后,需要手動地更新使用它的頁面(不需要手動更新)
12、關(guān)于bean的說法正確的有哪些?()
A、具備一個零參數(shù)(空)的構(gòu)造函數(shù)(不是必須的)
B、不應(yīng)該有公開的實例變量(字段)
C、所有的`屬性都必須通過getXxx和setXxx方法來訪問
D、布爾型的屬性使用isXxx,而非getXxx
13、下面關(guān)于MVC說法錯誤的有哪些?()
A、必須使用復(fù)雜的框架
B、使用內(nèi)建的RequestDispatcher能夠很好地實現(xiàn)MVC
C、當(dāng)其中一個組件發(fā)生變化的時候,MVC影響整個系統(tǒng)的設(shè)計
D、我們可以用MVC來處理單個請求
14、下面的標(biāo)簽中哪些是JSTL標(biāo)簽?()
15、struts框架,錯誤的是,下面那些說法正確?
A Struts中無法完成上傳功能
B Struts框架基于MVC模式
C Struts框架容易引起流程復(fù)雜、結(jié)構(gòu)不清晰等問題(清晰)
D Struts可以有效地降低項目的類文件數(shù)目
二、填空題( 5分)
1、調(diào)用函數(shù)MOD(123,10)返回值為___。
2、select round (123.67,1) from dual;這語句輸出值為______。
3、創(chuàng)建一個臨時替代變量使用的字符是_____。
4、若v_comm = 2800, X := NVL (V_comm,0) ,則X的值為____。
5、調(diào)用函數(shù)INSTR(‘Here you are’,’er’)返回值為___。
三、判斷題(10分)
1、WHERE子句限制行記錄,也可以指定限制分組結(jié)果的條件。 ()
2、具有UNIQUE約束的列不能包含多個空值。 ()
3、DATE型數(shù)據(jù)中包含著時間值。 ()
4、具有外鍵約束的列可以包含空值。 ()
5、如果在類型為4)的列中輸入“hello”,則只能存儲hell。 ()
6、含有Group by子句的查詢,其結(jié)果是排好序的。 ()
7、定義游標(biāo)時,其中的select語句不能使用order by子句。(子查詢
不能用) ()
9、觸發(fā)器一定會被激發(fā)。 、過程可以有返回值。 ()
10、instead
of觸發(fā)器只是基于視圖的。
四、寫出相應(yīng)的SQL語句(括號內(nèi)為列名)(10分)
1、查詢從事各工作(JOB)的員工人數(shù)。
2、查詢與員工SMITH在同一部門(DEPTNO)的員工的姓名(ENAME),工資(SAL)和部門。
3、查詢所有員工的姓名(ENAME),工資(SAL)和工資等級(GRADE)。
4、查詢獲得工資(SAL)最高的3個員工信息。
5、查詢所有員工的姓名(ENAME)及其主管姓名(ENAME)。
五、簡答題(15分)
1. 在PL/SQL程序中,進行用戶自定義異常處理的3個步驟是
什么?
2. 面向?qū)ο蟮奶卣饔心男┓矫?并簡要介紹
3. List、Map、Set三個接口,存取元素時,各有什么特點?
List 以特定次序來持有元素,可有重復(fù)元素。Set 無法擁有重復(fù)元素,內(nèi)部排序。Map 保存key-value值,value可多值。
4 .struts1.0和struts2.0的區(qū)別?如何控制兩種框架中的單例模式?
5. 描述一下如何在struts1.0實現(xiàn)國際化,以兩國語言(中文,英文)為例:
6.struts中怎么配置form-bean、action
7. Hibernate自帶的分頁機制是什么?如果不使用Hibernate自帶的分頁,則采用什么方式分頁?
8. hibernate中一對多配置文件返回的是什么?
9.什么樣的數(shù)據(jù)適合存放到第二級緩存中?
10你一般用spring做什么?
11項目中如何體現(xiàn)Spring中的切面編程,具體說明。
12 觸發(fā)觸發(fā)器的數(shù)據(jù)操作有哪些?
13 解釋視圖的含義以及使用視圖的好處。
14 簡述ORACLE中5種約束及其作用。
15 ORACLE中過程和函數(shù)的異同點。
六、編程題(30分)
1、創(chuàng)建一個PL/SQL塊,根據(jù)用戶輸入的編號,在emp表中查詢出該編號的員工姓名、部門號及其主管編號,要有異常處理。
2、創(chuàng)建一個PL/SQL塊,根據(jù)用戶輸入的工作,從emp表中逐條輸出從事這一工作的每位員工的編號、姓名和受雇如期,每條信息格式如下:(用游標(biāo)實現(xiàn))
編號 姓名 受雇日期
7751 JOHN 95-12-31
3、編寫一個函數(shù),用于判斷EMP表中某一工作(JOB)是否存在,若EMP表存在此工作名稱,則返回TRUE,否則返回FALSE。
4、編寫一觸發(fā)器,在EMP表執(zhí)行插入或修改前被激發(fā),此觸發(fā)器將對員工的工資(SAL)超過5000進行報錯,不能插入或修改,不超
過5000的才將員工編號、工作及當(dāng)時的日期(SYSDATE)插入UP_EMP表
(注:此表已建好,表結(jié)構(gòu)為UP_EMP(EMPNO NUMBER(4),SAL NUMBER(7,2),UDETE DATE))
5下面程序的輸出結(jié)果是多少?
importjava.util.Date;
public class Test extends Date{
public static void main(String[] args) {
new Test().test();}
public void test(){
System.out.println(super.getClass().getName());}}
6下面的程序代碼輸出的結(jié)果是多少? public class smallT
{}
public static void main(String args[]) { } public int get() { } try { } finally { } return 2 ; return 1 ; smallT t = new smallT(); int b = t.get(); System.out.println(b);
7子線程循環(huán)10次,接著主線程循環(huán)100,接著又回到子線程循環(huán)10次,接著再回到主線程又循環(huán)100,如此循環(huán)50次,請寫出程序。
8去掉一個Vector集合中重復(fù)的元素
9有一個字符串,其中包含中文字符、英文字符和數(shù)字字符,請統(tǒng)計和打印出各個字符的個數(shù)
10. xxx公司的sql面試
Table EMPLOYEES Structure:
EMPLOYEE_ID NUMBER Primary Key,
FIRST_NAME VARCHAR2(25),
LAST_NAME VARCHAR2(25),
Salary number(8,2),
HiredDate DATE,
Departmentid number(2)
Table Departments Structure:
Departmentid number(2) Primary Key,
DepartmentName VARCHAR2(25).
(1)基于上述EMPLOYEES表寫出查詢:寫出雇用日期在今年的,或者工資在[1000,2000]之間的,或者員工姓名(last_name)以’Obama’打頭的所有員工,列出這些員工的全部個人信息。
(2) 基于上述EMPLOYEES表寫出查詢:查出部門平均工資大于1800
元的部門的所有員工,列出這些員工的全部個人信息。()
(3) 基于上述EMPLOYEES表寫出查詢:查出個人工資高于其所在部門平均工資的員工,列出這些員工的全部個人信息及該員工工資高出部門平均工資百分比。
參考答案
1答案:ABD
2答案: D
3答案:BC
4答案:AB
5答案AC
6答案:A,G
7答案:A
8A B C D E
9A B C D E
10A B D
11A B C
12B D
13A C
14A B C
15A B C
16答案:C
二 填空
3 123.7 & 2800 2
三判斷
× ×√√√√×√×√
四寫出相應(yīng)的SQL語句
1Select job,count(*) from emp group by job;
2Select ename,sal,deptno from emp where deptno=(select deptno from emp where ename=’SMITH’);
3Select ename,sal,grade from emp,salgrade where sal between losal and hisal;
4Select * from (select * from emp order by sal desc) where rownum<=3;
5Select e1.ename empname,e2.ename mgrname from emp e1,emp e2 where e1.mgr=e2.empno;
五簡答
可以通過聲明和發(fā)布來截獲自定義異常。
一、在聲明部分為聲明自定義異常名。
二、在執(zhí)行部分使用 RAISE 語句顯式地發(fā)布異常。
三、在相應(yīng)的異常處理例程中引用已聲明的異常。
2(1).抽象:
抽象就是忽略一個主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。抽象并不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節(jié)。抽象包括兩個方面,一是過程抽象,二是數(shù)據(jù)抽象。
(2).繼承:
繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性, 新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實例變量,并且類可以修改或增加新的方法使之更適合特殊的需要。
(3).封裝:
封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥嬎闶加谶@個基本概念,即現(xiàn)實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。
(4). 多態(tài)性:
多態(tài)性是指允許不同類的對象對同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應(yīng)用程序函數(shù)同名問題。
List 以特定次序來持有元素,可有重復(fù)元素。Set 無法擁有重復(fù)元素,內(nèi)部排序。Map 保存key-value值,value可多值。
3List 以特定次序來持有元素,可有重復(fù)元素。Set 無法擁有重復(fù)元素,內(nèi)部排序。Map 保存key-value值,value可多值
4a、Action類:
struts1.2要求Action類繼承一個基類。struts2.0 Action要求繼承ActionSupport基類 b、線程模式
struts1.2 Action是單例模式的并且必須是線程安全的,因為僅有一個Action的實例來處理所有的請求。
單例策略限制了Struts1.2 Action能做的事情,并且開發(fā)時特別小心。Action資源必須是線程安全的或同步的。
struts2.0 Action為每一個請求產(chǎn)生一個實例,因此沒有線程安全問題。
c、Servlet依賴
struts1.2 Action依賴于Servlet API,因為當(dāng)一個Action被調(diào)用時HttpServletRequest和HttpServletResponse被傳遞給execut方法。
struts2.0 Action不依賴于容器,允許Action脫離容器單獨測試。如果需要,Struts2 Action仍
然可以訪問初始的Request和Response。
但是,其他的元素減少或者消除了直接訪問HttpServletRequest和HttpServletResponse的必要性。
d、可測性
測試struts1.2 Action的一個主要問題是execute方法暴露了Servlet API(這使得測試要依賴于容器)。一個第三方擴展:struts TestCase
提供了一套struts1.2的模擬對象來進行測試。
Struts2.0 Action可以通過初始化、設(shè)置屬性、調(diào)用方法來測試,“依賴注入”也使得測試更容易。
計算機Java語言程序設(shè)計考試試題 3
一、選擇題:(每題3分,共20題)
1. 下面關(guān)于類的說法錯誤的一項是( )。
A、類屬于Java語言中的復(fù)合數(shù)據(jù)類型 中的基本結(jié)構(gòu)單位
C、類是同種對象的集合和抽象
2. 如下所示代碼:
public class Test05_01{ }
private float a;
public static void m ( ){ }
D、類就是對象 B、對象是Java語言
如何使成員變量a被方法m( )訪問( )。
A、將private float a改為public float a
B、將private float a改為static float a
C、將private float a改為protected float a
D、將private float a改為float a
3. 下面關(guān)于類的說法有誤的一項是( )。
A、類就是對象 抽象
C、類屬于Java語言中的復(fù)合數(shù)據(jù)類型 中的基本結(jié)構(gòu)單位
D、對象是Java語言
B、類是同種對象的集合和
關(guān)于Java面向?qū)ο蟮目荚囶}。
4. 下列哪種類成員修飾符修飾的變量只能在本類中被訪問( )。
A、protected
B、default
C、private
D、public
5. 下面關(guān)于方法的說法不正確的一項是( )。
A、類的私有方法不能被其他類直接訪問。
B、Java中的構(gòu)造方法名必須和類名相同。
C、方法體是對方法的實現(xiàn),包括變量聲明和合法語句。
D、如果一個類定義了構(gòu)造方法,也可以用該類的默認(rèn)構(gòu)造方法。
6. 下列程序的運行結(jié)果是( )。
public class Test05_02 extends x{ }
B、編譯錯誤
D、運行成功,但不輸出
int ab(){ }
public static void main(String[] args) { }
Test05_02 b = new Test05_02 (); b.ab(); static int a = 10; a++;
System.out.println(a);
A、10 C、11
關(guān)于Java面向?qū)ο蟮目荚囶}。
7. 下面關(guān)于構(gòu)造方法的描述有誤的一項是( )。
A、構(gòu)造方法必須要有返回類型的聲明。
B、構(gòu)造方法和類中的方法很相似:有訪問修飾符、方法名、參數(shù)列表、方法體。
C、構(gòu)造方法當(dāng)成是一個特殊的方法,這個方法的作用就是用來產(chǎn)生一個類的實例。
D、構(gòu)造方法的方法名必須和類名完全相同。
8. 下列關(guān)于對象的說法錯誤的一項是( )。
A、對象成員是指一個對象所擁有的屬性或可以調(diào)用的方法。
B、由類生成對象,稱為類的實例化過程,一個實例可以是多個對象。
C、在創(chuàng)建類的對象時,需要使用Java的`new關(guān)鍵字。
D、在Java中要引用對象的屬性和方法,需要使用“.”操作符來實現(xiàn)。
9. 類的方法可以不包含下面哪一項( )。
A、方法的參數(shù) C、方法的名稱
B、方法的主體 D、方法的返回值類型
10. 下面關(guān)于變量說法錯誤的一項是( )。
A、對于成員變量,我們可以不需要手動的顯式初始化,因為系統(tǒng)在創(chuàng)建一個新的對象的時候,會給這些成員變量賦一個初值。
B、對于引用變量,它的默認(rèn)初值是null而非相應(yīng)的引用類型對象,也就是說,它并不是指向任何對象的首地址。
關(guān)于Java面向?qū)ο蟮目荚囶}。
C、系統(tǒng)會對全局(成員)變量指定默認(rèn)的值,也會對局部變量賦值。
D、局部變量在使用之前,必須對其進行顯式初始化。
11. 下面的各種數(shù)據(jù)類型的默認(rèn)初始化值表示錯誤的一項是( )。
A、int是0
B、float 是0.0
C、char 是‘u0000’
D、boolean是false
12. 下面哪一項不是Java的訪問控制符( )。
A、public
B、private
C、void
D、protected
13. Java語言類間的繼承關(guān)系和接口間的繼承關(guān)系分別是( )。
A、單繼承、不能繼承
C、多重繼承、單繼承
B、多重繼承、不能繼承
D、單繼承、多重繼承
14. 如果局部變量和成員變量同名,如何在局部變量作用域內(nèi)引用成
員變量( )。
A、不影響,系統(tǒng)可以自己區(qū)分
B、不能引用,必須改名,使它們的名稱不相同
C、在成員變量前加this,使用this訪問該成員變量
D、在成員變量前加super,使用super訪問該成員變量
15. 下列關(guān)于內(nèi)部類說法錯誤的一項是( )。
A、內(nèi)部類可用private或protected修飾符修飾
B、內(nèi)部類不能有自己的成員方法和成員變量
C、除static內(nèi)部類外,不能在類內(nèi)聲明static成員
D、內(nèi)部類可以作為其他類的成員,而且可訪問它所在的類的成員
16. 定義外部類時不能用到的關(guān)鍵字是( )。
A、public
B、abstract
C、protected
D、final
17. 下面說法不正確的一項是( )。
A、abstract和final能同時修飾一個類
B、抽象類既可以做父類,也可以做子類
C、聲明為final類型的方法不能在其子類中重新定義
D、抽象類中可以沒有抽象方法,有抽象方法的類一定是抽象類或接口
18. 有一個類B,下面為其構(gòu)造方法的聲明,正確的是( )。
A、void b(int x) {} C、B(int x) {}
B、void B(int x) {}
D、b(int x) {}
19. 區(qū)分類中重載方法的依據(jù)是( )。
A、不同的形參名稱
B、返回值的類型不同
D、訪問權(quán)限不同
C、形參列表的類型和順序
20. 下面說法錯誤的一項是( )。
A、在Java中,為了節(jié)省創(chuàng)建對象的時間和空間,對于一些常用的方法,會將它在內(nèi)存中緩存起來。
B、在JDK中針對各種基本數(shù)據(jù)類型分別定義相應(yīng)的引用類型,稱之為封裝類(Wrapper Classes)。
C、JDK5.0中,引入了自動裝箱/拆箱功能,可以讓我們方便的在簡單類型和對應(yīng)的封裝類型數(shù)據(jù)之間轉(zhuǎn)換。
計算機Java語言程序設(shè)計考試試題 4
選擇題
1). 下面( )是合法的標(biāo)識符。
A.$persons
B.2Users
C.*poi nt
D.this
正確答案:A
答案解析:本題考查Java 標(biāo)識符的命名,屬于考試重點內(nèi)容,應(yīng)該掌握。Java 中標(biāo)識符的命名規(guī)則是:標(biāo)識符以字母、下畫線或美元符作為首字符的字符串序列;標(biāo)識符是區(qū)分大小寫的;標(biāo)識符的字符數(shù)沒有限制。由此可見,Java 中標(biāo)識符不能以數(shù)字開頭,所以選項B錯誤;不能以“*”開頭,選項C錯誤;this 是專用標(biāo)識符,具有專門的意義和用途,選項D 錯誤,只有選項A 正確。
2). 設(shè)有一個已按各元素的值排好序的順序表(長度大于2),現(xiàn)分別用順序查找法和二分查找法查找與給定值k相等的元素,比較的次數(shù)分別是s和b,在查找不成功情況下s和b的關(guān)系是( )。
A.s =b
B.s>b
C.s
D.s>=b
正確答案:B
答案解析:順序查找的基本思想是:從表的一端開始,順序掃描線性表,依次將掃描到結(jié)點的關(guān)鍵字和給定值k進行比較,若當(dāng)前掃描到結(jié)點的關(guān)鍵字與k相等,則查找成功;若掃描結(jié)束后,仍未找到關(guān)鍵字等于k的結(jié)點,則查找失敗。二分查找法是一種效率較高的查找方法,要求線性表是有序表;舅枷胧牵菏紫葘⒋榈膋值和有序表R[O]~R[n -1]的中間位置mid上的結(jié)點的關(guān)鍵字進行比較,若相等,則查找完成;否則,若R[mi d]. key>k,則說明待查找的結(jié)點只可能在左子表R[O]~R[mi d -1]中,我們只需在左子表中繼續(xù)進行折半查找,若R[mi d]. key
3). 定義一個表示10個值為null的字符串?dāng)?shù)組,下面選項正確的是( )。
A.String []a;
B.String a[];
C.char a[10][];
D.String a[]=new String[10];
正確答案:D
答案解析:本題考查字符串?dāng)?shù)組變量的聲明。選項A和選項B的效果是一樣的,都是用來定義一個字符串?dāng)?shù)組,但沒有指明數(shù)組個數(shù),不滿足題目要求;選項C是一個二維的字符數(shù)組,在C語言中,一個二維的字符數(shù)組就可以表示一個一維的字符串?dāng)?shù)組,而在Java中,字符char是基本類型,字符串String則是以對象的形式來表示的;選項D正確,它定義了一個含有10個元素的.字符串?dāng)?shù)組,如果沒有給字符串?dāng)?shù)組賦值,則默認(rèn)為null。
4). Thread類中能運行線程的方法是( )。
A.resume()
B.start()
C.run()
D.init()
正確答案:C
答案解析:resume()是Thread類提供的用于線程控制的方法;start()是Thread類中的方法,新建的線程不會自動運行,必須調(diào)用線程的start()方法才能運行該線程;run()是Thread類中的方法,在該方法中定義了線程的具體行為,線程開始執(zhí)行時,就是從它的run()方法開始執(zhí)行的,就像Java應(yīng)用程序從main()開始、Applet從init()開始一樣;init()不是Thread類中的方法。
5). 在面向?qū)ο蟮姆椒ㄖ校粋對象請求另一個對象為其服務(wù)的方式是通過發(fā)送
A.調(diào)用語句
B.命令
C.口令
D.消息
正確答案:D
6). 下列的( )原始類型在使用流時可以互換。
A.byte和boolean
B.char和int
C.byte和char
D.String和char
正確答案:B
答案解析:本題考查Java語言中字節(jié)類型的概念。在Java語言中,byte是字節(jié)類型,用1字節(jié)表示.boolean是布爾類型,用true和false表示,它們的表示方法并不一樣,也不提供它們之間的轉(zhuǎn)換,選項A錯誤。Java內(nèi)部用整數(shù)來表示char,通?梢栽诜椒ㄕ{(diào)用和其他語句中互換使用char和int,選項B正確。char用2字節(jié)表示,byte字節(jié)類型用l字節(jié)表示,Java內(nèi)部也不允許互換使用它們,選項C錯誤。String在Java語言中是一個類,它提供對字符串的一系列操作,而char是Java語言中的一個基本類型,它不是一個類,兩者有本質(zhì)的區(qū)別,故而它們是不能互換使用的,選項D錯誤。需要注意的是,在Java語言中提供的類都是以大寫字母開頭,基本類型都用小寫字母表示。
7). 下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容是( )。
A.數(shù)據(jù)結(jié)構(gòu)
B.數(shù)據(jù)操作
C.數(shù)據(jù)查詢
D.數(shù)據(jù)約束
正確答案:C
答案解析:數(shù)據(jù)模型所描述的內(nèi)容包括三個部分
【計算機Java語言程序設(shè)計考試試題】相關(guān)文章:
計算機二級Java語言程序設(shè)計考試試題及答案10-23
2017計算機二級Java語言程序設(shè)計考試試題10-13
全國計算機二級Java語言程序設(shè)計考試試題09-28
計算機二級《Java語言程序設(shè)計》考試大綱11-16
sun認(rèn)證:java程序設(shè)計考試試題07-10