當前位置:首頁 » 編程語言 » java考試試題

java考試試題

發布時間: 2022-05-13 16:36:22

1. 關於java考試試題(簡答題部分)

21:抽象方法是必須實現的方法。就象動物都要呼吸。但是魚用鰓呼吸,豬用肺呼吸。
動物類要有呼吸方法。怎麼呼吸就是子類的事了。
現在有很多討論和建議提倡用interface代替abstract類,兩者從理論上可以做一般性的混用,但是在實際應用中,他們還是有一定區別的。抽象類一般作為公共的父類為子類的擴展提供基礎,這里的擴展包括了屬性上和行為上的。而介面一般來說不考慮屬性,只考慮方法,使得子類可以自由的填補或者擴展介面所定義的方法,就像JAVA王子所說的事件中的適配器就是一個很好的應用。
用一個簡單的例子,比如說一個教師,我們把它作為一個抽象類,有自己的屬性,比如說年齡,教育程度,教師編號等等,而教師也是分很多種類的,我們就可以繼承教師類而擴展特有的種類屬性,而普遍屬性已經直接繼承了下來。
而介面呢~還是拿教師做例子,教師的行為很多,除了和普通人相同的以外,還有職業相關的行為,比如改考卷,講課等等,我們把這些行為定義成無body的方法,作為一個集合,它是一個interface。而教師張三李四的各自行為特點又有不同,那麼他們就可以擴展自己的行為body。從這點意義上來說,interface偏重於行為。
總之,在許多情況下,介面確實可以代替抽象類,如果你不需要刻意表達屬性上的繼承的話。
23:在Java 1.0中,圖形用戶介面(GUI)庫最初的設計目標是讓程序員構建一個通用的GUI,使其在所有平台上都能正常顯示。
但遺憾的是,這個目標並未達到。事實上,Java 1.0版的「抽象Windows工具包」(AWT)產生的是在各系統看來都同樣欠佳的圖形用戶介面。除此之外,它還限制我們只能使用四種字體,並且不能訪問操作系統中現有的高級GUI元素。同時,Jave1.0版的AWT編程模型也不是面向對象的,極不成熟。這類情況在Java1.1版的AWT事件模型中得到了很好的改進,例如:更加清晰、面向對象的編程、遵循Java Beans的範例,以及一個可輕松創建可視編程環境的編程組件模型。Java1.2為老的Java 1.0 AWT添加了Java基礎類(AWT),這是一個被稱為「Swing」的GUI的一部分。豐富的、易於使用和理解的Java Beans能經過拖放操作(像手工編程一樣的好),創建出能使程序員滿意的GUI。軟體業的「3次修訂版」規則看來對於程序設計語言也是成立的(一個產品除非經過第3次修訂,否則不會盡如人意)。
24:通過URLConnection對URL裡面所包含的資源進行利用。比如得到URL中的參數、得到一個cookie文件,製作蜘蛛爬蟲等等。具體要看他下面的方法。
25:A:小應用程序只能在與Java兼容的容器中運行,可以嵌入在HTML網頁內,在網路上發布,當網頁被瀏覽時,在瀏覽器中運行。小應用程序的運行還受到嚴格的安全限制,例如它不能訪問用戶計算機上的文件。Java應用程序沒有這些限制,也不支持網頁嵌入和下載運行。

B:小應用程序和應用程序在代碼編寫上也有很大的差異。一個小應用程序必須定義成一個Applet類的子類,應用程序可以是Applet類的子類,也可以不是。應用程序必須在一個類中定義一個main()方法,該方法代表應用程序的入口。而小應用程序不必定義main()方法,它的執行由Applet類中定義的多個方法控制。
22和26,直接在可視化窗口裡拖拽。代碼我在此就不寫了。

2. java期末考試題目

第一個什麼平方根的,數學沒學好,不知道用if()怎麼算,倒是可以用方法Math.sqrt()
//2222222222222
importjava.util.Scanner;
publicclassTest2{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("輸入一個年份,判斷是閏年還是平年:");
intyear=sc.nextInt();
if(year%4==0&&year%100!=0||year%400==0){//判斷閏年一般的規律為:四年一閏,百年不閏,四百年再閏
System.out.println(year+"年是閏年。");
}else{
System.out.println(year+"年是平年。");
}
}
}

//3333333333333
importjava.util.Scanner;
publicclassTest3{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.println("請輸入學生的考分,按回車查詢考分等級");
floatscore=sc.nextFloat();
Stringscore_class=null;
if(score>=0&&score<60){
score_class="不及格";
}elseif(score<70){
score_class="及格";
}elseif(score<80){
score_class="中等";
}elseif(score<90){
score_class="良好";
}elseif(score<=100){
score_class="優秀";
}else{
System.out.println("請輸入合法考分(0--100),請重新啟動查詢!");
System.exit(0);
}
System.out.println("該生成績:"+score+",等級為:"+score_class);
}
}

//44444444444444
importjava.util.Arrays;
importjava.util.Scanner;
publicclassTest4{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
int[]arr=newint[3];
System.out.println("請輸入3個整數,讓電腦判斷大小後,從小到大輸出");
for(inti=0;i<3;i++){
System.out.println("請輸入第"+(i+1)+"個數大小:");
arr[i]=sc.nextInt();
}
Arrays.sort(arr);
System.out.println("重新排序後,從小到大的順序是:");
for(intx:arr){
System.out.print(x+"");
}
}
}

//555555555555555
publicclassTest5{
publicstaticvoidmain(String[]args){
intsum=0;
for(inti=1;i<=100;i++){
sum+=i;
}
System.out.println("1+2+3+4+...+100的和是:"+sum);
}
}
//6666666666666666
publicclassTest6{
publicstaticvoidmain(String[]args){
System.out.println("九九乘法表");
for(inti=1;i<=9;i++){
for(intj=1;j<=9;j++){
System.out.print(i+"*"+j+"="+i*j+" ");
}
System.out.println();
}
}
}
//777777777777777777
publicclassTest7{
publicstaticvoidmain(String[]args){

for(inti=1;i<5;i++){
for(intj=1;j<5;j++){
System.out.print("*");
}
System.out.println();
}
}
}

//88888888888888888888
publicclassTest8{
publicstaticvoidmain(String[]args){
intn=4;
for(inti=1;i<=n;i++){
for(intj=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
}
}

//9999999999999999
publicclassTest9{
publicstaticvoidmain(String[]args){
for(inti=1;i<=4;i++){
for(intj=1;j<=i;j++){
System.out.print("*");
}
System.out.println();
}
//注意下面只有3行
for(inti=1;i<=3;i++){
for(intj=3-i;j>=0;j--){
System.out.print("*");
}
System.out.println();
}
}
}
//10101010101010
publicclassTest10{
publicstaticvoidmain(String[]args){
System.out.println("現在一數組arr[10]={1,3,5,2,82,6,7,0,12,4}"+
"找出最大的數的位置並輸出到屏幕");
int[]arr={1,3,5,2,82,6,7,0,12,4};
intmax=arr[0];
intindex=0;
for(inti=0;i<arr.length;i++){
if(arr[i]>max){
index=i;
max=arr[i];
}
}
System.out.println("經過查找,該數組中最大值是:"+max+",在數組中第"+(index+1)+"個位置");
}
}

////////////1111111111
/*
*素數:只有除以1和它本身時能整除,除以其它任何自然數都不能整除
*/
publicclassTest11{
publicstaticvoidmain(String[]args){
System.out.println("101-200之間素數:");
for(inti=101;i<=200;i++){
intj=1;
intcount=0;
//計數,當一個數隊在1至本數之前有第3個數可以整除,則不是素數
for(intk=1;k<=i;k++){
if(i%k==0){
count++;
}
}
if(count<3){
System.out.print(i+"");
}

}

}
}
//1212121212
publicclassTest12{
publicstaticvoidmain(String[]args){
System.out.println("列印水仙花數:");
for(intnum=100;num<=999;num++){
intge=num%10;
intshi=(num/10)%10;
int=num/100;

if((Math.pow(ge,3)+Math.pow(shi,3)+Math.pow(,3))==num){
System.out.print(num+"");
}
}
}
}

3. java考試選擇題

2、D
3、B
4、A
5、D
6、D
7、D
8、C
9、A
10、A
11、A
12、C
13、B
14、D
15、B

4. Java考試題

c a b b c c b a b d d
d

5. JAVA考試題

1、請問 」2」 、』2』、2之間有什麼不同?並回答下面程序的輸出結果是什麼? (提示:『2』的ASCII碼值是50 )(8分)
答:"2"是字元串,'2'算字元。2是數字。
class test
{
public static void main(String[] args)
{
int a=2;
int b='2';
System.out.println (a+a);
System.out.println (a+b);
}
} 輸出結果為:4
52

2、你認為java、C、C++他們之間有沒有聯系和區別?和C、C++相比,java有哪些優點?(10分)
答:java是以c及c++為基礎的。許多地方沿用了它們的思想。但最主要的,java是完全面向對象的編程,而c是面向過程,c+則不完全是面向對象。java相對說來,編程更方便,安全,結構,模塊化強,易於移植,跨平台性好等。
3、下面兩段代碼具有多處錯誤,請找出你認為錯誤的地方,作上標記,並說明為何出錯。如果你認為該行沒有錯誤,請打上√ (12分)
i)public int search (int 錯[10] number) 1、 引用時只能是類型不能帶值{
number錯 = new int[10]; 2、 數組沒有下標
for (int i=0;i<number.length;i++) 3、對
{
number[i]=number[i-1]+number[i+1]錯; 4、數組在i+1在i=number.length-1是超界
return number; 5、對
}
}

ii)
class MyclassOne
{
public final int A=365;
public int b;
private float c;
private void myMethodOne(int a)
{
b=a;
}
public float myMethodTwo()
{
return 36;
}
}

class MyClassMain
{
public static void main(String[] args)
{
MyClassOne w1=new MyClassOne();
w1.A=12; 6、錯誤,試圖給final型再次賦值
w1.b=12; 7、對Myclassone中b賦值
w1.c=12; 8、對myclassone float c賦值
w1.myMethodOne(12); 9、調用myclassone的mymethodone形參為int的方法,
w1.myMethodOne(); 10、調用myclassone的mymethodone無形參的方法System.out.println(w1.myMethodTwo(12)); 11、輸出myclassone的mymethodtwo(12)值
w1.c=w1.myMethodTwo(); 12讓c引用mymethodtwo方法
}
}

請簡要說明下面程序的功能
1) public class Sum ( 5分 )
{ public static void main( String args[ ])
{ double sum = 0.0 ;
for ( int i = 1 ; i <= 100 ; i + + )
sum += 1.0/(double) i ;
System.out.println( "sum="+sum );
}
} 功能為 求出1/1+1/2+1/3+1/4….+1/100的和
程序設計:(10分)
編寫一個java程序。要求該程序能夠具有以下功能:
定義一個坐標類coord。坐標類coord必須滿足如下要求:
a)coord類含有兩部分數據:橫坐標x和縱坐標y。x和y的類型都是int類型。
b)coord類的方法有:
coord( ) : 構造函數,將橫坐標和縱坐標的值都賦值為0
coord( int x , int y ) : 構造函數,形參 x 為橫坐標的初值,y為縱坐標的初值。
coord coordAdd(int x, int y) : 將當前坐標對象與形參的值相加,所得的結果仍是一個坐標,返回給此方法的調用者。
(提示:可以將兩個坐標相加定義為橫坐標和橫坐標相加,縱坐標和縱坐標相加。例如(1,2)+(3,4)=((1+3),(2+4))=(4,6))

public class Coord {
int x=100;
int y=200;
public Coord(){
this.x=0;this.y=0;
}
public Coord(int x,int y) {
x=this.x;y=this.y;
}
void coordAdd(int x,int y){
this.x+=x;
this.y+=y;

}
public static void main (String[] args) {

}

}
程序設計:(10分)
請編寫一個java程序,利用該程序計算並輸出 1+2+3+……+100的值
Sum.java

public class Sum {

public Sum() {
int sum=0;
for(int i=1;i<=100;i++)
sum+=i;
System.out.println("1+2+3+...100="+sum);
}
public static void main (String[] args) {
new Sum();
}

}
OK??

6. JAVA語言考試填空題。

1 .java .class
2 父類
3 javac 位元組碼
4 JAVA JAVA文件
6 public static void main()
7 double boolean char

7. java 考試選擇題

11. 代碼如下:
1. public class WhileExm {
2. public static void main (String []args) {
3. int x= 1, y = 6;
4. while (y--) {x--;}
5. system.out.printIn(「x=」 + x 「y =」 + y);
6. }
7. }
結果是什麼? E
A. The output is x = 6 y = 0
B. The output is x = 7 y = 0
C. The output is x = 6 y = -1
D. The output is x = 7 y = -1
E. 編譯失敗
12. 代碼如下:
1. public class Foo {
2. private int val;
3. public foo(int v) (val = v;) }
4. public static void main (String [] args) {
5. Foo a = new Foo (10);
6. Foo b = new Foo (10);
7. Foo c = a;
8. int d = 10;
9. double e = 10.0;
10. }
11. }
下面哪個邏輯表達式為真? A E
A. (a ==c) B. (b ==d) C. (a ==b) D. (b ==c) E. (d ==10.0)

13. 代碼如下:
1. int i=1, j=0;
2. switch(i) {
3. case 2:
4. j+=6;
5. case 4:
6. j+=1;
7. case 1:
8. j +=2;
9. case 0:
10 . j +=4;
11. }
最終j的值是什麼? E
A. 0 B. 1 C. 2 D. 4 E. 6
14. char的數值范圍是多少? C
A. 0 . . . 32767 B. 0 . . . 65535 C. –256 . . . 255 D. –32768 . . . 32767
E. Range is platform dependent.
15. 下面關於變數及其范圍的陳述哪些是對的?A B C
A. 實例變數是類的成員變數。
B. 實例變數用關鍵字static聲明。
C. 在方法中定義的局部變數在該方法被執行時創建
D. 局部變數在使用前必須被初始化。
16. 有關構造方法,下列敘述正確是? D
A. 默認的構造方法初始化方法變數。
B. 默認的構造方法初始化了在類中聲明的實例變數。
C. 假如一個類缺少沒有參數的構造方法,但是有其它的構造方法,則編譯器生成一個預設的構造方法。
D. 編譯器只有當一個類沒有其它的構造方法時才生成預設的構造方法。

17. 關於被保護訪問控制符protected修飾的成員變數,以下說法正確的是( B )
A.可以被三種類所引用:該類自身、與它在同一個包中的其他類、在其他包中的該類的子類
B.可以被兩種類訪問和引用:該類本身、該類的所有子類
C.只能被該類自身所訪問和修改
D.只能被同一個包中的類訪問
18. 關於被私有保護訪問控制符private protected修飾的成員變數,以下說法正確的是( C )
A.可以被三種類所引用:該類自身、與它在同一個包中的其他類、在其他包中的該類的子類
B.可以被兩種類訪問和引用:該類本身、該類的所有子類
C.只能被該類自身所訪問和修改
D.只能被同一個包中的類訪問
19. 關於被私有訪問控制符private修飾的成員變數,以下說法正確的是( C )
A.可以被三種類所引用:該類自身、與它在同一個包中的其他類、在其他包中的該類的子類
B.可以被兩種類訪問和引用:該類本身、該類的所有子類
C.只能被該類自身所訪問和修改
D.只能被同一個包中的類訪問
20. 下述說法中,錯誤的是 D
A.Java中,方法的重載是指多個方法可以共享同一個名字
B.Java中,用abstract修飾的類稱為抽象類,它不能實例化
C.Java中,介面不包含成員變數和方法實現
D.Java中,構造方法可以有返回值

熱點內容
校園網可以搭建伺服器地址 發布:2025-05-11 04:54:40 瀏覽:784
noip演算法 發布:2025-05-11 04:53:51 瀏覽:50
有什麼我的世界伺服器啟動器 發布:2025-05-11 04:50:41 瀏覽:295
寫shell腳本 發布:2025-05-11 04:37:41 瀏覽:935
電腦伺服器打開有什麼用 發布:2025-05-11 04:36:49 瀏覽:98
sqlserver2008查詢時間 發布:2025-05-11 04:15:28 瀏覽:386
安卓孤膽車神被封號怎麼解封 發布:2025-05-11 04:05:22 瀏覽:940
高壓洗車泡沫怎麼配置 發布:2025-05-11 04:00:47 瀏覽:547
騰訊輕量伺服器怎麼使用 發布:2025-05-11 03:52:46 瀏覽:174
4位密碼組合有多少種至少有一個0 發布:2025-05-11 03:44:03 瀏覽:338