自考04747Java語言程序設計(一)自學輔導資料_第1頁
自考04747Java語言程序設計(一)自學輔導資料_第2頁
自考04747Java語言程序設計(一)自學輔導資料_第3頁
自考04747Java語言程序設計(一)自學輔導資料_第4頁
自考04747Java語言程序設計(一)自學輔導資料_第5頁
已閱讀5頁,還剩54頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

59/594747Java語言程序設計(一)第一章Jave語言基礎1.1Java語言的特點領會Java語言的特點、關鍵字

1010-11.Java語言采用多種機制來保證可移植性,其中最主要的是______。虛擬機1110-11.Java語言是一種____強類型語言___語言,它約束程序員必須遵守規定編寫程序,能讓編譯器檢測出程序中盡可能多的錯誤。1.2Java應用程序和小應用程序識記 Java應用程序與小應用程序的特點和區別11.一個應用程序必須在某個類中定義的方法是______。main()1201-11.能在瀏覽器上執行的Java程序被稱為小應用程序。1.3Java程序的開發過程11.Java程序的字節碼文件的擴展名是_________。Class1001-11.Java的編譯程序先將Java源程序翻譯成與機器無關的__________。字節碼1101-11.Java源文件的擴展名是_____.java____。1210-11.如果Java源文件中有多個類,那么只能有一個__public____類。1404-11.類Testll經Java編譯程序編譯后,產生的文件是______。Test11.class1.4標識符和關鍵字簡單應用:Java程序的標識符命名規則、注釋、基本數據類型標識符可以用來標識文件名、變量名、類名、接口名和成員方法名等,其構造規則如下:標識符由Java字母和Java數字組成;首字符必須是Java字母;除去關鍵字、false、true和null;所有標識符是區分大小寫的。注釋:行注釋 //塊注釋 /*….*/文檔注釋 /**…*/1404-1.以下標識符中,不是Java語言關鍵字的是A.waitB.newC.long D.switch1.下述字符組合不能作為Java程序標識符的是()A.Aa12 B.大xC.y小 D.5x1.下面供選字符序列中,不屬于Java語言關鍵字的是()A.goto B.nullC.false D.native1.在下述字符串中,不屬于Java語言關鍵字的是(C)A.float B.newC.java D.return1110-1.下面供選字符序列中,不屬于Java語言關鍵字的是()A.throwB.synchronizedC.protect D.try1010-1.以下是關于Java語言關鍵字的敘述,其中正確的是()A.關鍵字可以用來描述類的成員類型,但是不能描述普通變量B.關鍵字由字母(包括英文字母、下劃線字符、美元字符、文字字符)和數字組成C.關鍵字不可以用作變量、方法、類或標號的標識符D.break和main都是Java語言的關鍵字0開頭表8進制常量,數字只能(0-7)1.5基本數據類型0開頭表8進制常量,數字只能(0-7)1.下列字符組合不能作為Java整型常量的是()A.078 B.0x3ACBC.5000 D.0x3ABC1.在Java語言中,用于標記回車符的轉義字符是A.\bB./bC.\n D./n1001-12.表達式¨23&18’’的值是__________。23181101-1.在Java語言中,int類型數據的長度是()A.1個字節B.2個字節C.4個字節 D.8個字節11.在Java語言中,雙精度型變量在內存中占____8______個字節。1101-l4.布爾類型數組元素的默認初值是____false_____。第2章運算和語句選擇填空簡答程序填空2.1數據運算識記: 常用運算符的定義、包聲明語句(package)和導入語句(import)領會: 條件運算和其他運算2.Java語言中數值數據的類型能自動轉換,按照從左到右的轉換次序為(B)A.byte→int→short→long→float→doubleB.byte→short→int→long→float→doubleC.byte→short→int→float→long→doubleD.short→byte→int→long→float→double1404-2.以下數據類型轉換中,必須進行強制類型轉換的是A.int→charB.short→longC.float→double D.byte→int2.以下程序代碼的輸出的結果是()intx=53;System.out.println(1.0+x/2);A.27.0 B.27.5C.1.026 D.1404-12.表達式“45&20”的十進制值是______。42.設有定義inti=6;,則執行語句“i+=i-1;’’后,i的值為A.10B.11C.121210-12.運算符‘‘<”、“*”和“&&”按優先級從高到低的順序排列為__*<&&____。21.請寫出表示條件“x=2與y=3有且只有一個成立”的Java表達式”。(x=2)!=(y=3)或(x=2&&y!=3)||(x!=2&&y!=3)12.構造一個Java表達式:y/x>5,并且x!=0。這個表達式是_________。y/x>5&&x!=01101-12.表達式-4>>l的十進制值是______-2___。(解法:-4/(2的一次冪))21.請寫出表示year年是閏年的Java表達式。閏年的條件是:每4年一個閏年,但每100年少一個閏年,每400年又增加一個閏年。(year%4==0)&&(year%4!=0)||(year%400==0)簡答12.用條件運算符構造一個表達式:goal等于10時,表達式的值為“對了!”,否則,表達式的值為“錯了!”。這個表達式是_________。1010-2.執行以下代碼,輸出結果是()intx=5,y=7,u=9,v=6;System.out.println(x>y?x+2:u>v?u-3:v+2);A.8B.62.以下程序代碼的輸出結果是()intx=73;System.out.println(x>>1);A.36B.36.5c.37 1110-2.以下程序代碼的輸出的結果是()doublex=25.6;System.out.println((int)x<<1);A.48B.50C.51D.521201-2.表達式“-1>>>1”A.-2B.231-1C.-(231-1)D.23212.在Java語言中,邏輯右移運算符為____>>>______。2.2語句簡單應用: 閱讀簡單程序的功能和輸出結果,編寫簡單的程序綜合應用: Java語言語句的書寫形式和語句的語義,算術運算符、自增自減運算符、關系運算符和邏輯運算符1210-2.以下關于Java語句的說法正確的是A.continue語句必須出現在多路按值選擇結構或循環結構中B.return語句可以出現在方法體的外面C.編譯系統會把單獨的分號看成是空語句D.break語句的作用是提早結束當前輪次循環1001-21.請寫出一段if語句,判斷一個整數n是否為偶數。如果是偶數,輸出“Yes.”;否則,輸出“No.”。If(n%2==0){System.out.println(“Yes”);}else{System.out.println(“No”);}1110-12.在Java語言中,package_____語句用于表示出現在該文件中的所有類都屬于這個程序包。1010-21.請使用for循環語句計算S=1+的值。doubles=0.0for(inti=1;s<=10;i++)s+=1.0/I;1404-21.已知變量n,請寫出使用for語句計算的代碼。1101-21.請寫一個if語句,判斷整數n是否同時滿足“被3除余2,被7除余1”1110-21.請使用for循環語句實現計算的值。2.以下程序代碼的輸出結果是()intx=10;while(x>7){System.out.print("*");x--;}A.** B.***C.* D.****1101-2.在switch語句中,switch后面括號內的表達式的類型不能是()A.byteB.longC.char D.int1010-12.程序包聲明的格式是______。12.import語句的格式是______。12、import包名.類名;1201-21.請寫出以下程序段的執行結果。intc=0,d,n=3758;while(n>0){if((d=n%l0)>c)c=d;n/=10;}System.out.println("結果="+c);執行結果:結果=821.請寫出下面程序段的執行結果。intn=90;intk=2;System.out.print(n+″=〞);while(k<=n){if(k==n){System.out.println(n);break;}elseif(n%k==0){System.out.print(k+″*″);n=n/k;)elsek++;}90=2*3*3*527.方法intmaxDigit(intn)的功能是找出十進制整數n各位中最大的一位數字。例如,n=23765,該方法的返回值是7。staticintmaxDigit(intn){intc=0,d;參考答案:n%10returnc參考答案:n%10returncd=_______;if(d>c)c=d;n/=10;}________;}27.方法intsigmaDigit(intn)的功能是求出十進制整數n的各位數字之和。例如,n=1234,該方法的返回值是10。staticintsigmaDigit(intn){intsum=0,d;while(n>0){d=n%10;_________;sum+=dn/=10;}_________;returnsum1010-27.方法booleanisPrime(intn)的功能是判斷正整數n(n>1)是否為質數。staticbooleanisPrime(intn){inti;if(n==2)returntrue;if(n%2==0)returnfalse;for(i=3;i*i<=n;i+=2)if(_________)break;if(_________)returntrue;returnfalse;}1101-27.方法intnumberOfDigits(intn)的功能是計算十進制正整數n的位數。intnumberOfDigits(intn){intc=0:do{n/=10;_________;}while(_________);returnc;}第3章面向對象編程基礎選擇填空簡答分析程序運行結果識記:類的內存模型,final、abstract、super、this的用法,Applet程序結構和執行過程。領會:抽象、對象、消息、類、繼承、封裝、接口、多態等面向對象的基本概念。簡單應用:訪問權限的設置,Applet類的init()、strart()、stop()、destroy()、paint()、repaint()等方法。綜合應用:類的聲明、成員變量(實例變量、類變量)和方法(實例方法、類方法)、構造方法、方法重載,對象的聲明、創建和使用,接口的聲明和使用。3.1面向對象的基本概念13.在面向對象語言中,對象之間的交互通過______實現。相互發送消息1110-13.在Java程序系統中,對象之間的交互通過相互發送_____消息__實現13.類是對一組相同對象的描述,類概括了同類對象的共有性質:_________。(P40)數據(屬性)和方法(函數)1404-3.以下供選擇的概念中,屬于面向對象語言重要概念和機制之一的是A.函數調用B.模塊C.繼承 D.結構化1010-13.當聯編推遲至運行時間實現時,該聯編過程稱為______。動態聯編3.在以下供選擇的概念中,不屬于面向對象語言概念的是(B)A.消息B.模塊C.繼承D.多態性1101-22.請寫出在面向對象系統中,類和對象的關系。1110-3.在以下供選擇的概念中,不屬于面向對象語言概念的是()A.類B.函數C.動態聯編 D.抽象13.在Java語言中,通過擴展原有的類,聲明新類的機制被稱為___繼承_____。3.2Java的類和對象22.請寫出在類的方法的定義之前,加上修飾字public、private的區別。Public修飾的方法為公用方法,任何類的方法都可以訪問他Private修飾的方法,本類內部可以訪問1010-3.Java語言中,只限子類或者同一包中的類的方法能訪問的訪問權限是()A.publicB.privateC.protected D.<無修飾>1201-22.什么是方法重載,如何正確區分重載?方法重載是指在一個類中定義多個有相同名字的方法。區分方法:根據這些方法或參數不同或者按順序參數的類型不同來區分。1101-13.在定義成員變量時,用關鍵字___static______修飾的是類變量。3.參照以下Java代碼,以下四個敘述中最確切的是()classA{intx;staticinty;voidfac(Strings){Syatem.out.println("字符串:"+s);}}A.x、y和s都是成員變量B.x是實例變量、y是類變量、s是局部變量C.x和y是實例變量、s是參數D.x、y和s都是實例變量1201-3.Java語言中,在類定義時用final關鍵字修飾,是指這個類()A.子類必須實現父類未實現的方法 B.沒有具體實現代碼C.必須要有實例 D.不能被繼承1210-3.不能被再繼承的類是A.final類B.abstract類C.public類 D.用戶自定義類1404-13.如果類A繼承和擴展類B,則子類A和超類B之間的關系是__isa____。1201-12.如果子類A隱藏了超類B的成員變量x,而類A的某個方法f()要引用類B的x,則引用類B的x的引用代碼可以寫成super.x。1201-14.設u和v是類A的兩個對象,則邏輯表達式“u==v”的意義是引用相同的對象。0901-32.閱讀下列程序,請寫出該程序的輸出結果。classA{intx,y;標識:類的內存模型A(inta,intb){標識:類的內存模型x=a;y=b;}}publicclasssample{publicstaticvoidmain(Stringargs[]){Apl,p2;p2=newA(12,15);p1=p2;p2.x++;System.out.println("p1.x="+p1.x);}}p1.x=133.設類U聲明,及對象u和v的定義如下:classU{intx,inty;理解引用和對象實體很重要U(inta,intb){x=a;y=b;}理解引用和對象實體很重要voidcopy(Ua){x=a.x;y=a.y;}}Uu=newU(1,2),v=newU(2,3);在以下供選擇的代碼中,可能引起系統回收內存的是()A.u.x=v.y;u.y=v.x; B.u=v;C.u.copy(v); D.v.copy(u);1010-32.閱讀下列程序,請寫出該程序的輸出結果。考點:實例變量和類變量publicclassA{intm=5;staticintn=3;publicstaticvoidmain(String[]args){Aobj1=newA();Aobj2=newA();objl.m*=2;objl.n*=4;obj2.m+=1;obj2.n+=6;System.out.println("obj1.m=''+obj1.m);System.out.println("obj1.n="+obj1.n);System.out.println("obj2.m="+obj2.m);System.out.println("obj2.n="+obj2.n);}}22.如果類Student是類Person的子類,類Undergraduate是類Student的子類,請指出以下代碼行中哪些是不合法的。繼承――父子類間的賦值兼容Personp1=newStudent();Personp2=newUndergraduate();Students1=newPerson();Students2=newUndergraduate();Undergraduateug1=newPerson();Undergraduateug2=newStudent();Objectob=newStudent();參考答案:(P57)Students1=newPerson();Undergraduateug1=newPerson();Undergraduateug2=newStudent();[解析]本題考核知識點是類之間的is-a關系。在兩個相關的類之間,可能會有is-a和has-a關系。若類A是繼承擴展類B,則子類A和超類B之間是is-a關系,即類A是一個類B。這種情況下,A類對象一定可以是B類類型,因為B類的所有成員A類也有。也就是子類對象可以是超類類型。語句Bb=newA()是正確的,Aa=newB()是錯誤的。1001-32.閱讀下列程序,請寫出該程序的輸出結果。classParent{privatevoidmethod1(){System.out.println("Parent′smethod1()");}publicvoidmethod2(){System.out.println("Parent′smethod2()");method1();}}classChildextendsParent{publicvoidmethod1(){System.out.println("Child′smethod1()");}publicstaticvoidmain(Stringargs[]){Parentp=newChild();p.method2();}此處應注意Parent此處應注意Parent類的method1()是私有方法,不能被繼承,若為public則是覆蓋則結果為Parent′smethod2()Child′smethod1()Parent′smethod2()Parent′smethod1()32.閱讀下列程序,請寫出該程序的輸出結果。考點:多重繼承子類對象的構造classTree{privateStringname;publicbooleanflower;publicintbirthYear;Tree(Stringn,booleanf,inty){name=n;flower=f;birthYear=y;}publicvoidsetName(Stringn){name=n;}publicStringgetName(){returnname;}publicvoidprintTree(Stringstr){System.out.println(str);System.out.println("Name:"+name);System.out.println("BirthYear:"+birthYear);System.out.println("Flower:"+flower);}}classPineTreeextendsTree{publicbooleanconiferous=true;PineTree(Stringn,booleanf,inty,booleanc){super(n,f,y);coniferous=c;}publicvoidprintTree(Stringstr){super,printTree(str);System.out.println("Coniferous:"+coniferous);}}classTest32{publicstaticvoidmain(String[]args){TreefOb=newTree("MayFlower",true,1980);PineTreesOb=newPineTree("Pine",false,2000,true);fOb.printTree("fOb:");sOb.printTree("sOb:");fOb:

Name:MayFlower

BirthYear:1980

Flower:true(2分)

sOb:

Name:Pine

BirthYear:2000

Flower:false

Coniferous:true(2分)}fOb:

Name:MayFlower

BirthYear:1980

Flower:true(2分)

sOb:

Name:Pine

BirthYear:2000

Flower:false

Coniferous:true(2分)}3.以下關于抽象類及抽象方法的說法中,不正確的是A.抽象方法只能出現在抽象類中 B.抽象類必須有抽象方法C.有抽象方法的類一定是抽象類 D.抽象方法沒有實現的代碼13.在類聲明之前用_________修飾,聲明類是不能被再繼承的類,即它不能再有子類。Final3.Java語言中,在類定義時用final關鍵字修飾,是指這個類()A.不能被繼承 B.在子類的方法中不能被調用C.能被別的程序自由調用 D.不能被子類的方法覆蓋1001-13.如果類A某個成員變量的類型是類B,則類A和類B之間是__________關系。(P57)Has-a3.3接口1001-22.請寫出接口定義的一般形式。(P59)1404-22.請寫出接口體中可能包含的內容。1101-3.以下關于接口的敘述中,正確的是()A.所有的接口都是公共接口,可被所有的類和接口使用B.一個類通過使用關鍵字interface聲明自己使用一個或多個接口C.接口中所有的變量都默認為publicabstract屬性D.接口體中不提供方法的實現1201-13.接口有與類相似的基本形式,它有常量定義和方法定義,但沒有方法的實現代碼。3.4基本類3.5Java小應用程序基礎標識:小應用程序與Applet類的關系,小應用程序結構和執行過程簡單應用:Applet類的init()、strart()、stop()、destroy()、paint()、repaint()等方法。11.一個小應用程序必須定義成一個_________。Applet(JApplet)類的子類1010-22.請寫出Applet類中init()方法的功能創建所需要的對象,設置初始狀態,裝載圖像,設計對數等22.為了系統安全,對JavaApplet小應用程序有什么限制?30.某小應用程序實現幻燈片放映。小應用程序的init()方法將幻燈片讀入數組中存儲和注冊鼠標監視器。程序運行時,單擊鼠標,就順序變換放映幻燈片的序號。這里給出的是其中的paint()方法和mousePressed()方法。paint()方法需要Graphics類型參數,當單擊鼠標時,要在paint()方法中再次顯示圖片,可以調用repaint()方法,使程序先清除paint()運行的結果,再運行paint();也可以調用update()方法,該方法會使系統自動調用repaint()方法。finalintnumber=30;//假定幻燈片有30張paint()方法需要Graphics類型參數,當單擊鼠標時,要在paint()方法中再次顯示圖片,可以調用repaint()方法,使程序先清除paint()運行的結果,再運行paint();也可以調用update()方法,該方法會使系統自動調用repaint()方法。intcount=0;Image[]pic=newImage[number];publicvoidpaint(______gc){if((pic[count])!=null)gc.drawImage(pic[count],10,10,pic[count].getWidth(this),pic[count].getHeight(this),this);}publicvoidmousePressed(MouseEvente){count=(count+1)%number;//循環逐張顯示__________;}32.閱讀下列程序,請寫出該程序的輸出結果。importjava.applet.*;importjava.awt.*;classPoint{intx,y;Point(intxx,intyy){x=xx;y=yy;}Point(Pointp){x=p.x;y=p.y;}voidm(intdx,intdy){x+=dx;y+=dy;}}classCircleextendsPoint{intr;Circle(Pointp,intrr){super(p);r=rr;}floatc(){return3.14f*2.0f*r;}floata(){return3.14f*r*r;}}publicclasssampleextendsApplet{Circleyuan;Pointd;參考答案:yuanCircle62.8(2分)yuanArea314.0(2分)參考答案:yuanCircle62.8(2分)yuanArea314.0(2分)publicvoidpaint(Graphicsg){g.drawString("yuanCircle"+(int)(yuan.c()*100.0)/100.0,5,20);g.drawString("yuanArea"+(int)(yuan.a()*100.0)/100.0,5,40);}

}第4章數組和字符串簡單應用:非平衡的多維數組的創建,StringTokenizer類的用法,字符串與字節數組之間的轉換,對象的字符串表示綜合應用:一維數組、二維數組、字符串的聲明和創建,字符串的常用處理方法,字符串與基本數據類型之間的轉換4.1數組1210-14.數組名如同對象名一樣,是一種__________。23.請寫出聲明int類型的二維數組intArr的三種形式。IntintArr[][]Int[][]intArrInt[]intArr[]1110-14.數組每個元素按存儲順序對應一個下標,下標從___0____開始順序編號4.在下述Java語言語句中,錯誤的創建數組的方法是(D)A.intintArray[];intArray=newint[5];B.intintArray[]=newint[5];C.int[]intArray={1,2,3,4,5};D.intintArray[5]={1,2,3,4.5};1404-4.以下Java程序代碼中,能正確創建數組的是A.intmyArray[];myArray[]=newint[5];B.intmyArray[]=newmy(5);C.int[]myArray={1,2,3,4,5};D.intmyArray[5]={1,2,3,4,5};1201-23.請寫出定義一個包含2個子數組的二維整型數組對象aArr的代碼,其中第一個子數組有5個元素,第二個子數組有3個元素。intaArr[][]=newint[2][];aArr[0]=newint[5];aArr[1]=newint[3];14.設有數組a和b的定義如下:int[]a={1,2,3};int[]b={4,5,6}……執行以下代碼“a=b;”,除了完成賦值操作之外,引起系統額外要做的工作是_________。(P45)回收內存(引用類型)0901-33.閱讀下列程序,請寫出調用pascal(4)的輸出結果。staticvoidpascal(intn){intpas[];pas=newint[n];pas[0]=1;System.out.println(pas[0]);for(inti=2;i<=n;i++){/*由存儲在pas中的原來內容生成新內容*/pas[i-l]=1;1111111211331pas[j]=pas[j]+pas[j-1];for(intj=0;j<i;j++)System.out.print(pas[j]+"");System.out.println();}}0910-33.閱讀下列程序,請寫出該程序的輸出結果。引用參數傳遞classTest33{staticvoids(intb[],intk){inti,j,t;for(i=1;i<k;i++){for(t=b[i],j=i-1;j>=0&&t<b[j];j--)b[j+l]=b[j];b[j+1]=t;}}publicstaticvoidmain(String[]args){inti,a[]={6,12,7,11,5};s(a,5);for(i=0;i<a.length;i++)System.out.print(a[i]+"");System.out.Println();}}56711121010-33.閱讀下列程序,請寫出該程序的輸出結果。classTest33{staticintmerger(int[]a,int[]b,int[]c){inti=0,j=0,k=0;while(i<a.length&&j<b.length){if(a[i]<b[j])c[k++]=a[i++];elsec[k++]=b[j++];}while(i<a.length)c[k++]=a[i++];123569while(j<b.length)c[k++]=b[j++];123569returnk;}publicstaticvoidmain(String[]args){inta[]={3,6,9};intb[]={1,2,5};int[]c=newint[100];intp=merger(a,b,c);for(intk=0;k<p;k++)System.out.print(c[k]+(k<p-1?"":"\n"));}}0910-27.方法intsigmaEvenNum(int[]a)的功能是求已知數組中偶數的個數。staticintsigmaEvenNum(int[]a){ints=0;for(inti=0;______;i++){if(______)s++;}returns;}1001-27.方法voidmoveOddForword(inta[])的功能是將數組中的所有奇數移到所有偶數之前。voidmoveOddForword(inta[]){for(inti=0,odd=0;___i<a.length_____;i++)if(___a[i]%2==0_____){intt=a[i];a[i]=a[odd];a[odd]=t;odd++;}}1010-4.設有數組定義int[][]x={{1,2},{3,4,5},{6},{}};,則x.length的值為()A.3B.4C.60901-37.編寫數組復制方法。該方法從已知平衡的兩維數組的左下角復制出一個非平衡的三角二維數組。設復制數組方法的模型為:publicstaticdouble[][]leftDownConer(double[][]anArray)publicstaticdouble[][]leftDownConer(double[][]anArray){ intl1=anArray.length; intl2=anArray[0].length; doubletemp[][]; if(l1<=l2){ temp=newdouble[l1][]; for(inti=0;i<l1;i++){ temp[i]=newdouble[i+1]; for(intj=0;j<i+1;j++) temp[i][j]=anArray[i][j]; } returntemp; }else{ temp=newdouble[l2][]; for(inti=0;i<l2;i++){ temp[i]=newdouble[i+1]; for(intj=0;j<i+1;j++) temp[i][j]=anArray[l1-l2+i][j]; } returntemp; } }0910-37.編寫方法intsearchMaxNumIndex(int[]a),尋找已知數組中最大數的下標并返回。 intsearchMaxNumIndex(int[]a){

inti,maxIndex;(1分)

for(i=maxIndex=0;i<a.length;i++){(2分)

if(a[i]>a[maxIndex])(1分)

maxIndex=i;(1分)

}

returnmaxIndex;(1分)

}37.編寫一個方法halfArray(),要求該方法有一個元素類型為int的數組參數,方法返回一個新數組,新數組的長度與參數數組的長度相同,而新數組元素的值是參數數組各元素的一半。(6分)[解析]本題考核知識點是面向對象程序設計中的方法設計。編寫方法,需要確定方法名,已給出halfArray;再確定參數個數及類型,要求是一個int型數組參數即halfArray(int[]);再就是確定方法返回值類型,要求返回一個新數組,新數組元素類型要確定下來,根據題意,新數組元素是參數數組相應元素的一半,這一半應該可能是小數,所以方法頭應該為

[解析]本題考核知識點是面向對象程序設計中的方法設計。編寫方法,需要確定方法名,已給出halfArray;再確定參數個數及類型,要求是一個int型數組參數即halfArray(int[]);再就是確定方法返回值類型,要求返回一個新數組,新數組元素類型要確定下來,根據題意,新數組元素是參數數組相應元素的一半,這一半應該可能是小數,所以方法頭應該為

float[]halfArray(int[])而不應該是int[]halfAray(int[]),方法體中的一半也應該是除以2.0。并轉換成float類型,方法體定義的數組b也應該是float類型。或者返回值類型和數組b的類型都定義成double類型。float[]halfArray(int[]a){(1分)float[]b=newint[a.length];(2分)for(intk=0;k<a.length;k++){(2分)b[k]=float(a[k]/2.0);}returnb;(1分)}4.2字符串1001-14.Java語言提供了兩個用于處理字符串的類,它們是__________。String\StringBuffer14.設有兩個字符串對象str1和str2,則表達式“strl==str2”的意義是判別字符串strl和str2______。是否引用同一個對象1404-14.Java語言提供的用于處理不可改變的字符串類是______。String4.設有以下代碼:Stringsl="123";Strings2="123";Strings3=newString("123");則表達式s1==s2和s1==s3的值分別是()A.true,true B.false,falseC.true,false D.false,true14.已知字節數組b,取由b[i]開始至b[j](其中j≥i≥0)結束的字節字符構造一個字符串s,其語句為:Strings=newString(__b,I,j________);。14.設有字符串定義:Strings="ABCDABCD";則表達式s.indexOf("B")的值是_________。11101-4.以下代碼段的輸出結果是()Strings="JavaWorld";System.out.print(s.indexOf("a",4));A.-1B.OC.1D.41210-4.已知Strings="ABCDEFGHIJABC",以下說法錯誤的是A.s.indexOf("C")等于2 B.s.indexOf("EFG",2)等于4C.s.indexOf("A",7)等于10 D.s.indexOf("D",4)等于34.執行下列程序語句后,b的值是Stringa=〃Hello〃;Stringb=a.substring(1,3);A.elB.HeC.ellD.Hel1110-4.在Java語言中,能夠實現字符串連接的方法是()A.Stringsubstring(intstartpoint) B.Stringconcat(Strings)C.Stringreplace(charold,charnew) D.Stringtrim()1201-4.表達式"java程序設計".1ength()的值是()A.0B.12C.81201-15.要獲得對象的字符串表示,調用的方法是StringtoString()。1010-37.請編寫方法intcountNum(Stringstr),該方法的功能是統計已知字符串str中數字的個數。例如,countNum("A42B83C2D")的返回值是5。33.閱讀下列程序,請寫出該程序的功能。參考答案:程序獲得當前日期,將日期的字符串表示輸出;(2分)截取日期字符串中從第11位開始到字母‘參考答案:程序獲得當前日期,將日期的字符串表示輸出;(2分)截取日期字符串中從第11位開始到字母‘C’之前的部分字符串,并輸出。(2分)publicclassClass1{publicstaticvoidmain(Srtingargs[]){Datedate1=newDate();System.out.println(datel);Stringt=datel.toString();intendPos=t.indexOf(`C');t=t.substring(11,endPos);System.outprintln(t);}}4.以下是關于字符串運算的代碼,執行該代碼段的輸出結果是()Strings=″0123456789″,sl,s2;sl=s.substring(2);s2=s.substring(2,5);System.out.println(s1+s2);A.0122345 B.234567892345C.012234 D.23456789234java.util.StringTokenizer類用來把字符串分解為標記。4.需要分析字符串,并將字符串分解成可被獨立使用的單詞,可使用java.util包中的類是()A.String B.StringBufferC.StringTokenizer D.stringTokenizer1001-33.閱讀下列程序,請寫出該程序的功能。importjava.util.*;importjavax.swing.*;publicclassTest33{publicstaticvoidmain(Stringargs[]){Stringstr=(String)JOptionPane.showInputDialog(null,″請輸入信息″,″輸入對話框″,JOptionPane.PLAIN_MESSAGE,null,null,null);StringTokenizerpas=newStringTokenizer(str,″,″);intn=pas.countTokens();System.out.println(″輸入的信息有單詞:″+n+″個,全部單詞如下:″);while(pas.hasMoreTokens()){Strings=pas.nextToken();System.out.println(s);}})答:在輸入對話框中輸入文字,并以多好作為分割符輸出單詞個數,及各個單詞1010-14.使用默認字節字符對應表,將字符串轉化為字節數組的方法是______。getBytes()1001-37.請編寫方法voidstrReverse(Stringstr),該方法的功能是輸出一個新字符串,新字符串字符排列順序與原字符串str的字符排列順序相反。例如,strReverse(″ABCD″)所輸出的結果是″DCBA″。請使用字符串與字節數組的相互轉換方法進行設計。答:publicstaticvoidstrReverse(Stringstr){ byte[]s=str.getBytes(); Stringt=""; for(inti=s.length-1;i>=0;i--){ t+=(char)s[i]; } System.out.println(t);}第五章圖形界面設計(一)創建框架窗口的方法,設計標簽、按鈕和按鈕事件的處理方法面板,布局設計,文本框和文本區數據輸入和輸出的方法5.1圖形界面設計基礎領會:AWT和Swing的基礎知識,組件和容器,事件驅動的概念5.能夠直接添加組件的Swing容器是A.JFrameB.JDialogC.JWindow DJPanel1404-5.某Java程序的類A要利用Swing創建框架窗口,則A需要繼承的類是A.JWindowB.JFrameC.JDialog D.JApplet5.以下關于AWT與Swing之間關系的敘述,正確的是()A.Swing是AWT的提高和擴展B.在寫GUI程序時,AWT和Swing不能同時使用C.AWT和Swing在不同的平臺上都有相同的表示D.AWT中的類是從Swing繼承的15.一個基于Swing的應用程序可能在任何平臺上都會有相同的______。外觀與風格1010-5.在以下Swing的類中,屬于容器的是()A.JappletB.JbuttonC.JTextArea D.JMenu1101-5.以下不屬于AWT庫中定義的類是()A.ComponentB.ContainerC.ImagesD.Graphics1101-23.請寫出JFrame、Frame以及Window這三個類的繼承關系(按照從父類到子類順序排列)。Window>frame>jframe1110-5.在以下供選擇的容器類中,屬于頂層容器的是()A.JDialogB.JPanelC.JScrollPane D.JToolBar1210-5.以下Swing提供的GUI組件類和容器類中,不屬于頂層容器的是A.JFrameB.JAppletC.JDialog D.JMenu2框架窗口綜合應用:聲明JFrame的子類和創建JFrame窗口5.要為程序的子窗口設定一個由字符串s指定的名字,可以采用的代碼是()A.JFrame(s) B.window(s)C.newJFrame(s) D.super(s)5.在Swing中,它的子類能用來創建框架窗口的類是(B)A.JWindowB.JFrameC.JDialog D.JApplet1110-15.用Swing編寫GUI程序時,通常用__Jframe__類派生的子類創建窗口對象。24.請寫出在JFrame框架窗口對象中添加組件的步驟。5.3標簽、按鈕和按鈕事件簡單應用:聲明和創建按鈕標簽綜合應用:聲明和創建按鈕和按鈕事件的處理1210-15.為了讓監視器與事件對象關聯起來,需要對事件對象做__監視器注冊____,告訴系統事件對象的監視器。1404-23.請寫出對事件對象作監視器注冊的作用。1110-22.請寫出Java語言中編寫事件處理程序的兩種方案。1110-23.請寫出代碼段,用來創建一個標簽對象lbl,顯示文字為“Java”,背景色設為綠色。15.在實現接口ActionListener的方法actionPerformed()中,常用的有兩個獲得事件源的方法,它們是getActionCommand()和_________。getSource()1404-15.要使得已注冊的按鈕對象暫時不響應事件,需使用的方法是______。setEnabled()1001-15.某程序用代碼“JTextFieldtext=newJTextField();”創建了一個文本框,并對這個文本框注冊了監視器,則在監視器處理方法actionPerformed(ActionEvente)中,判定是在這個文本框上發生事件的條件表達式是__________。e.getSource()==text1001-23.請寫出Java語言編寫事件處理程序的兩種主要方案。(P87)28.某程序的界面包含一個文本區text1、一個文本框text2和一個按鈕button。實現在文本區中輸入整數序列后,點擊按鈕,程序響應按鈕事件,累計文本區輸入的整數序列,并將總和輸出在文本框中。這里給出的是其中相應按鈕事件的方法。publicvoidactionPerformed(ActionEvente){intsum;if(e.getSource()==button){Strings=text1.________;//獲取text1中的信息StringTokenizerfenxi=newStringTokenizer(s,",,,\n");intn=fenxi.countTokens();doublea[]=newdouble[n];參考答案:

getText()

參考答案:

getText()

sum+=a[i]或sum=sum+a[i]Stringtemp=fenxi.nextToken();a[i]=Double.valueOf(temp).doubleValue();}sum=0;for(inti=0;i<n;i++){__________;}text2.setText(""+sum);//刷新顯示。}0910-28.某小應用程序窗口包含有文本區dispArea,以及一個帶文字“追加”的按鈕。當點擊這個按鈕時,程序彈出一個輸入信息的對話框,并將對話框中輸入的內容追加到文本區中。以下是其中相應“追加”按鈕事件的方法。publicvoidactionPerformed(ActionEvente){if(e.______.equals("追加")){Stringresult=(String)JOptionPane.showInputDialog(null,"請輸入信息","輸入對話框",JOptionPane.PLAIN_MESSAGE,null,null,null);dispArea.______(result+"");getActionCommand()

getActionCommand()

append}1010-28.某小應用程序窗口中有一個文本框,一個8行10列的文本區以及一個按鈕,點擊這個按鈕時,在文本框中輸入的內容會追加到文本區中。importjava.applet.*;importjavax.swing.*;importjava,awt.event.*;publicclassTextAPPextendsAppletimplementsActionListener{JTextFieldinput;JTextAreadisplay;JButtonappend;publicvoidinit(){input=newJTextField(10);display=new;append=newJButton("追加");add(input);add(display);add(append);input.requestFocus();display.setLineWrap(true);append.addActionListener(this);}publicvoidactionPerformed(ActionEvente),{display.(input.getText()+"");}}5.4面板綜合應用:聲明JPanel類的子類,創建JPanel對象簡單應用:聲明JScrollPane類的子類,創建JScrollPane對象1010-15.在Swing中,帶有滾動條的面板的類名是______。JScrollPane1101-15.在Swing中,面板有兩種,一種是JPanel,另一種是__JScrollPane____。5.5布局設計綜合應用:FlowLayout,BorderLayout,Cardlayout,GridLayout布局設計策略設計界面識記:null布局與setBounds方法1201-24.請寫出創建一個JPanel對象p,并為對象p設定GridLayout布局的代碼。JPanelp=newJPanel();p.setLayout(newGridLayout());15.將容器區域分成東、南、西、北、中五個區域的布局類是_BorderLayout_____。5.以下是關于FlowLayout布局組件排列順序的敘述,正確的是()A.從上到下排列 B.從左到右排列C.從下到上排列 D.從右到左排列1201-5.以下關于BorderLayout布局的敘述中,不正確的是()A.把容器內的空間劃分成5個區域 B.加入組件應該指明要放入的區域C.是框架窗口的默認布局 D.一個位置可直接放多個組件34.閱讀下列程序,請用示意圖畫出程序運行時呈現的界面。importjava.applet.*;importjava.awt*;importjavax.swing.*;classMyPanelextendsJPanel{JButtonbutton;JLabellabel;MyPanel(Strings1,Strings2){this.setLayout(newGridLayout(2,2));button=newJButton(s1);label=newJLabel(s2,JLabel.CENTER);add(button);add(label);add(newJLabel());}}publicclassClass1{publicstaticvoidmain(Stringargs[]){JFramemw=newJFrame("一個示意窗口");mw.setSize(400,250);Containercon=mw.getContentPane();con.setLayout(newBorderLayout());MyPanelpanel1,panel2;panel1=newMyPanel("按鈕1","標簽1");panel2=newMyPanel("按鈕2","標簽2");JButtonbutton=newJButton("開始按鈕");con.add(panel1,"North");con.add(panel2,"South");con.add(button,"Center");mw.setVisible(true);}}1001-34.閱讀下列程序,請用示意圖畫出程序運行時呈現的界面。importjava.applet.*;importjava.awt.*;importjavax.swing.*;classMyPanelextendsJPanel{JTextFieldtextl,text2;MyPanel(Stringsl,Strings2){textl=newJTextFieId(s1);text2=newJTextField(s2);add(text1);add(text2);}}classMySubPanelextendsMyPanel{JTextFieldtext;MySubPanel(Stringsl,Strings2,Strings3){super(s1,s2);text=newJTextField(s3);add(text);}}publicclassTest34{publicstaticvoidmain(Stringargs[]){JFramemw=newJFrame(″一個示意窗口″);mw.setSize(350,150);Containercon=mw.getContentPane();con.setLayout(newBorderLayout());MyPanelpl=newMyPanel(″文本框l″,″文本框2″);MySubPanelp2=newMySubPanel(″文本框3″,″文本框4″,″文本框5″);JTextAreatext=newJTextArea(″這里是一個文本區″);con.add(pl,″North″);con.add(p2,″South″);con.add(text,″Center″);mw.setVisible(true);}}6文本框和文本區綜合應用:聲明和創建文本框,處理文本框事件和在文本框中輸入輸出數據聲明和創建文本區域,將文本區域放置于滾動面板,在文本框中輸入輸出數據23.請寫出程序處理文本框輸入結束事件(回車)添加監視器的方法,以及監視器類必須實現的接口方法。參考答案:(P102)為對象添加監視器的方法是addActionListener;類必須實現的方法是

publicvoidactionPerformed(ActionEvente)。34.閱讀下列程序,請寫出該程序的功能。importjava.applet.*;importjavax.swing.*;importjava.awt.event.*;publicclassClasslextendsAppletimplementsActionListener{JTextFieldtext1,text2;publicvoidinit(){text1=newJTextField(10);text2=newJTextField(10);setSize(200,100);add(text1);add(text2);text1.addActionListener(this);}publicvoidactionPerformed(ActionEvente){在第一個文本框輸入數據,輸入結束(回車)后,(2分)在第二個文本框輸出該整數的平方。(2分)longn;在第一個文本框輸入數據,輸入結束(回車)后,(2分)在第二個文本框輸出該整數的平方。(2分)if(e.getSource()==text1){n=Long.parseLong(text1.getText());text2.setText(String.valueOf(n*n));}}}1010-34.閱讀下列程序,請寫出該程序的功能。importjava.awt.*;importjavax.swing.*;importjava.applet.*;importjava.awt.event.*;publicclassClasslextendsAppletimplementsActionListener{JTextFieldTextI=newJTextField(5);JTextFieldText2=newJTextField(5);JTextFieldText3=newJTextField(5);JLabelLabel1=newJLabel("Pleaseinputthreenumbers:");JLabelLabel2=newJLabel("");JButtonbut=newJButton("Start!");publicvoidinit(){setLayout(newGridLayout(6,1));add(Label1);add(Textl);add(Text2);add(Text3);add(but);add(Label2);Label2.setFont(newFont("Courier",1,20));but.addActionListener(this);}publicvoidactionPerformed(ActionEvente){inta,b,c;a=Integer.parseInt(Text1.getText());b=Integer.parselnt(Text2.getText());c=Integer.parselnt(Text3.getText());if(a+b<c||b+c<a||c+a<b){Label2.setForeground(Color.red);Label2.setFont(newFont("Courier",1,24));Label2.setText("No.");}else{Label2.setForeground(Color.blue);Label2.setFont(newFont("Courier",2,24));Label2.setText("Yes.");}}}38.一個Java小應用程序,界面有三個文本框和兩個按鈕,前兩個文本框用于輸入整數,第三個文本框用于輸出結果。兩個按鈕分別表示加和減運算。當前兩個文本框輸入整數后,點擊相應按鈕,程序就將計算結果輸出在第三個文本框中。以下是程序的大部分,其中監視按鈕事件的方法未給出,試編寫處理按鈕事件的方法。注:這里是給定部分的程序,你要編寫的是actionPerformed(ActionEvente)方法。importjava.applet.*;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;classPanel1extendsJPanel{JTextFieldtext1,text2,text3;JButtonaddButton,subButton;Panel1(){text1=newJTextField(10);text2=newJTextField(10);text3=newJTextField(10);setLayout(newGridLayout(5,1));addButton=newJButton("加");subButton=newJButton("減");add(text1);add(text2);add(text3);add(addButton);add(subButton);}}publicclassClasslextendsAppletimplementsActionListener{Pane1panel;//持有需訪問對象的引用publicvoidinit(){setSize(100,200);panel=new

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論