版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Java語言程序設(shè)計期末復(fù)習(xí)綜合練習(xí)題(帶答案)
一、選擇題。
2.main方法是JavaApplication程序執(zhí)行的入口點(diǎn),關(guān)于main方法的方法頭以下哪項
是合法的()?
A、publicstaticvoidmain()
B、publicstaticvoidmain(Stringargs[])
C、publicstaticintmain(String[]arg)
D、publicvoidmain(Stringarg[])
答:B
4.下列哪個是合法的Java標(biāo)識符?()
A、Tree&GlassesB、FirstJavaApplet
C、_$theLastOneD、273.5
答:B、C
5.JavaApplication源程序的主類是指包含有()方法的類。
A、main方法B、loSlring方法
C、init方法D、actionPerfromed方法
答:A
6.Java的字符類型采用的是Unicode編碼方案,每個Unicode碼占用()個比特
位。
A、8B、16C、32D、64
答:B
7.設(shè)a=8,則表達(dá)式a?>2的值是()。
A>1B、2C、3D、4
答:B
8.若a的值為3時,下列程序段被執(zhí)行后,c的值是多少?()
c=1;
if(a>0)if(a>3)c=2;elsec=3;elsec=4;
A、1B、2C、3I)、4
答:C
9.在編寫JavaApplication程序時,若需要使用到標(biāo)準(zhǔn)輸入輸出語句,必須在程序的開
頭寫上()語句。
A、importjava.awt.*;B、importjava.applet.Applet;
C>importjava.io.*;D、importjava.awt.Graphics;
答:C
10.對于構(gòu)造函數(shù),下列敘述正確的是()o
A、構(gòu)造函數(shù)是類的一種特殊函數(shù),它的方法名必須與類名相同。
B、構(gòu)造函數(shù)的返回類型只能是void型。
C、構(gòu)造函數(shù)的主要作用是完成對類的對象的初始化工作。
D、一般在創(chuàng)建新對象時,系統(tǒng)會自動調(diào)用構(gòu)造函數(shù)。
答:ACD
11.下面的是關(guān)于類及其修飾符的一些描述,正確的是:()。
A、abstract類只能用來派生子類,不能用來創(chuàng)建abstract類的對象。
B、final類不但可以用來派生子類,也可以用來創(chuàng)建final類的對象。
C>abstract不能與final同時修飾一個類。
D、abstract方法必須在abstract類中聲明,但abstract類定義中可以沒
有abstract方法。
答:ACD
13.若在某一個類定義中定義有如下的方法:abstractvoidperformDial();
該方法屬于()。
A、本地方法B、最終方法C、解態(tài)方法D、抽象方法
答:D
14.下列關(guān)于靜態(tài)初始化器的敘述中,哪一個是正確的?()
A、靜態(tài)初始化器是在構(gòu)造函數(shù)之前加上static修飾符。
B、靜態(tài)初始化器是對類自身進(jìn)行初始化。
C、靜態(tài)初始化器在同一個類中只能有一個。
D、靜態(tài)初始化器是在其所屬的類加載內(nèi)存時由系統(tǒng)自動調(diào)用執(zhí)行。
答:BD
15.不使用static修飾符限定的方法稱為對象(或?qū)嵗┓椒?,下列哪一個說法是正確
的?()
A、實(shí)例方法可以直接調(diào)用父類的實(shí)例方法。
B、實(shí)例方法可以直接調(diào)用父類的類方法。
C、實(shí)例方法可以直接調(diào)用其他類的實(shí)例方法.
D、實(shí)例方法可以直接調(diào)用本類的類方法。
答:BD
16.設(shè)有下面兩個類的定義:
classPerson{classStudentextendsPerson{
longid;//身份證號intscore;//入學(xué)總分
Stringname;//姓名intgetScore(){
)returnscore;
)
)
問:類Person和類Student的關(guān)系是()。
A、包含關(guān)系B、繼承關(guān)系
C、關(guān)聯(lián)關(guān)系D、無關(guān)系,上述類定義有語法錯誤
答:B、
17.設(shè)有下面的兩個類定義:
classAA{
voidShow(){System.out.printin("我喜歡Java!");
)
classBBextendsAA{
voidShowO{System,out.printin("我喜歡C++!”);
則順序執(zhí)行如下語句后輸出結(jié)果為:()
AAa;BBb;
a.Show();b.Show();
A、我喜歡Java!B、我喜歡C++!
我喜歡C++!我喜歡Java!
C、我喜歡Java!D、我喜歡C++!
我喜歡Java!我喜歡C+刊
答:A
19.在Java中,一個類可同時定義許多同名的方法,這些方法的形式參數(shù)的個數(shù)、類型
或順序各不相同,傳回的值也可以不相同。這種面向?qū)ο蟪绦蛱匦苑Q為()。
A、隱臧B、覆蓋C、重載D、Java不支持此特性
答:C
20.對于構(gòu)造函數(shù),下列敘述正確的是()。
A、構(gòu)造函數(shù)也允許重載。
B、子類無條件地繼承父類的無參構(gòu)造函數(shù)。
C、子類不允許調(diào)用父類的構(gòu)造函數(shù)。
D、在同一個類中定義的重載構(gòu)造函數(shù)可以相互調(diào)用。
答:ABD
22.設(shè)有下面兩個賦值語句:
a=Integer,parselnt(,<1024M);
b=Integer.valueOf("1024").intValue();
下述說法正確的是()。
A、a是整數(shù)類型變量,b是整數(shù)類對象。
B、a是整數(shù)類對象,b是整數(shù)類型變量。
C、a和b都是整數(shù)類對象并且它們的值相等。
D、a和b都是整數(shù)類型變量并且它們的值相等。
答:D
24.下面的語句的作用是:()。
VectorMyVector=newVector(100,50);
A、創(chuàng)建一個數(shù)組類對象MyVector,有100個元素的空間,每個元素的初值為50。
B、創(chuàng)建一個向量類對象MyVector,有100個元素的空間,每個元素的初值為50。
C、創(chuàng)建一個數(shù)組類對象MyVector,有100個元素的空間,若空間使用完時,以50
個元素空間單位遞增。
D、創(chuàng)建一個向量類對象MyVector,有100個元素的空間,若空間使用完時,以50
個元素空間單位遞增。
答:D
25.在Java中,存放字符串常量的對象屬于()類對象。
A、CharacterB、String
C、StringBufferD、Vector
答:B
31.對于子類的構(gòu)造函數(shù)說明,下列敘述中不正確的是()。
A、子類無條件地繼承父類的無參構(gòu)造函數(shù)。
B、子類可以在自己的構(gòu)造函數(shù)中使用super關(guān)鍵字來調(diào)用父類的含參數(shù)構(gòu)造函
數(shù),但這個調(diào)用語句必須是子類構(gòu)造函數(shù)的第一個可執(zhí)行語句。
C、在創(chuàng)建子類的對象時,將先執(zhí)行繼承自父類的無參構(gòu)造函數(shù),然后再執(zhí)行
自己的構(gòu)造函數(shù)。
D、子類不但可以繼承父類的無參構(gòu)造函數(shù),也可以繼承父類的有參構(gòu)造函數(shù)。
答:D
二、填空題。
2.設(shè)x=2,則表達(dá)式(x++)*3的值是。
答:6
3.若x=5,y=10,則x>y和x<=y的邏輯值分別為和。
答:false、true
4.順序執(zhí)行以下兩個語句的輸出結(jié)果是:。
Strings="我喜歡學(xué)習(xí)Java!”;
System.out.println(s.length());
答:10
5.據(jù)程序的構(gòu)成和運(yùn)行環(huán)境的不同,Java源程序分為兩大類:程
序和程序O
答:JavaApplication、JavaApplet(或Application、Applet)
6.如果一個Java源程序文件中定義有4個類,則使用Sun公司的JDK編譯器javac編
譯該源程序文件將產(chǎn)生_______個文件名與類名相同而擴(kuò)展名為的字節(jié)碼文件。
答:4、class
7.開發(fā)與運(yùn)行Java程序需要經(jīng)過的三個主要步驟為、
和O
答:編輯源程序、編譯生成字節(jié)碼、解釋運(yùn)行字節(jié)碼
9.一個JavaApplication源程序文件名為MyJavaApplication.java,如果使用Sun公司
的Java開發(fā)工具JDK編譯該源程序文件并使用其虛擬機(jī)運(yùn)算這個程序的字節(jié)碼文件,應(yīng)該
順序執(zhí)行如下兩個命令:
答:javacMyJavaApplication.java、javaMyJavaApplication
10.在Java的基本數(shù)據(jù)類型中,char型采用Unicode編碼方案,每個Unicode碼字符占
用字節(jié)內(nèi)存空間,這樣,無論是中文字符還是英文字符,每個都是占用
字節(jié)內(nèi)存空間。
答:2、2
11.在Java程序中定義的類有兩種成員:、。
答:域成員、方法成員
13.創(chuàng)建一個名為MyPackage的包的語句是,
該語句應(yīng)該放在程序的位置為:?
答:packageMyPackage;應(yīng)該在程序第一句。
14.方法是一種僅有方法頭,沒有具體方法體和操作實(shí)現(xiàn)的方法,該方法必須
在抽象類之中定義。方法是不能被當(dāng)前類的子類重新定義的方法。
答:抽象方法、最終方法(或abstract方法、final方法)
15.形式參數(shù)指的是方法被時的參數(shù)行,實(shí)際參數(shù)是方法被
時所傳遞進(jìn)去的變量或值。
答:定義、調(diào)用
16.多態(tài)是指,在Java中有
兩種多態(tài),一種是使用方法的實(shí)現(xiàn)多態(tài),另一種是使用方法的實(shí)
現(xiàn)多態(tài)。
答:一個程序中有多個同名的不同方法覆蓋重載
17.在Java程序中,通過類的定義只能實(shí)現(xiàn)_________重繼承,但通過接口的定義可
以實(shí)現(xiàn)_____________重繼承關(guān)系。
答:單、多
19.字符串分為兩大類,一類是字符串常量,使用類的對象表示;另一
類是字符串變量,使用類的對象表示。
答:String、StringBuffer
20.設(shè)有數(shù)組定義:intMyIntArray[]={10,20,30,40,50,60,70,80,90,100};
則執(zhí)行以下幾個語句后的輸出結(jié)果是o
ints=0;
for(inti=0;i<MylntArray.length;i++)
s+=MyIntArray[i];
System.out.println(s);
答:550
三、寫出下列程序完成的功能。
1.publicclassSum
{publicstaticvoidmain(Stringargs[])
{doublesum=0.0;
for(inti=1;i<=100;i++)
sum+=1.0/(double)i;
System.out.println(nsum=H+sum);
)
)
答:計算1/1+1/2+1/3+...+1/100的值。
2.importjava.io.*;
publicclassReverse
{publicstaticvoidmain(Stringargs[])
{inti,n=10;
inta[]=newint[10];
for(i=0;i<n;i++)
try(
BufferedReaderbr=newBufferedReader(
newInputStreamReader(System.in));
a[i]=Integer.parseInt(br.readLine());//輸入一個整數(shù)
}catch(lOExceptione){};
for(i=n—1;i>=0;i-----)
System.out.print(a[i]+"");
System.out.println();
答:從標(biāo)準(zhǔn)輸入(即鍵盤)讀入10個整數(shù)存入整型數(shù)組a中,然后逆序輸出這10個整數(shù)。
4.importjava.io.*;
publicclassClassi
(
publicstaticvoidmain(Stringargs[]){
inti,Max,Min;
inta[]={12,67,8,98,23,56,124,55,99,100);
Max=Min=a[0];
for(i=1;i<a.length;i++){
if(a[i]<Min)Min=a[i];
if(a[i]>Max)Max=a[i];
)
System.out.println(Max+“"+Min);
System.out.println();
)
)
答:在數(shù)組中查找并輸出最大值和最小值。
5.publicclassABC
(
publicstaticvoidmain(Stringargs[]){
inti,j;
inta[]={12,67,8,98,23,56,124,55,99,100);
for(i=0;i<a.length-1;i++){
intk=i;
for(j=i;j<a.length;j++)
if(aU]<a[k])k=j;
inttemp=a[i];
a[i]=a[k];
a[k]=temp;
}
for(i=0;i<a.length;i++)
System.out.print(a[i]+"”);
System.out.println();
)
)
答:使用選擇法對數(shù)組a的數(shù)據(jù)進(jìn)行升序排序,然后輸出排序后的結(jié)果。
6.importjava.io.*;
publicclassClassi{
publicstaticvoidmain(Stringargs[])
(
FactN=newFact(4);
System,out.println(N.fact());
)
}
classFact{
intn;
Fact(intnn){n=nn;}
intfact(){
inti,f=1;
for(i=l;i<=n;i++)
f=f*i;
returnf;
)
)
答:定義一個計算n!的類Fact,然后主類中創(chuàng)建一個對象求解4!的值。
8.importjava.io.*;
publicclassClassi{
publicstaticvoidmain(Stringargs[])
{SubClassa=newSubClass(10,3);
System.out.println(a.exp());
)
)
classSuperClass{
floatx;
intn;
SuperClass(floatxx,intnn){x=xx;n=nn;}
)
classSubClassextendsSuperClass{
SubClass(floatxx,intnn){super(xx,nn);}
floatexp(){
floats=1;
for(inti=1;i<=n;i++)s=s*x;
returns;
)
)
答:定義一個計算X”的類,然后用該類求1()3的值。
10.importjava.io.*;
publicclassabc
{publicstaticvoidmain(Stringargs[])
{SubClasssb=newSubClass();
System.out.println(sb.max());
classSuperClass
{inta=10,b=20;}
classSubClassextendsSuperClass
{intmax(){return((a>b)?a:b);}}
答:求兩個數(shù)的最大值。
四、寫出下面程序的運(yùn)行結(jié)果。
1.importjava.io.*;
publicclassabc
{publicstaticvoidmain(Stringargs[])
{ABs=newAB(',Hello!,',',IloveJAVA/');
System.out.printIn(s.toString());
)
}
classAB{
Stringsi;
Strings2;
AB(Stringstrl,Stringstr2)
{si=strl;s2=str2;}
publicStringtoString()
{returnsl+s2;}
答:Hello!IloveJAVA.
2.importjava.io.*;
publicclassabc
(
publicstaticvoidmain(Stringargs[])
{inti,s=0;
inta[]={10,20,30,40,50,60,70,80,90);
for(i=0;i<a.length;i++)
if(a[i]%3==0)s+=a[i];
System.out.printin(',s=',+s);
)
)
答:s=180
3.importjava.io.*;
publicclassabc
publicstaticvoidmain(Stringargs[])
{SubSubClassx=newSubSubClass(10,20,30);
x.show();
)
)
classSuperClass
{inta,b;
SuperClass(intaa,intbb)
{a=aa;b=bb;}
voidshow()
{System.out.println("a=n+a4-n\nb="+b);}
)
classSubClassextendsSuperClass
{intc;
SubClass(intaa,intbb,intcc)
{super(aa,bb);
c=cc;
)
)
classSubSubClassextendsSubClass
{inta;
SubSubClass(intaa,intbb,intcc)
{super(aa,bb,cc);
a=aa+bb+cc;
)
voidshow()
{System.out.println(',a=,,+a+,,\nb=,'+b+,,\nc=',+c);}
)
答:a=60
b=20
c=30
4.importjava.io.*;
publicclassabc
(
publicstaticvoidmain(Stringargs[])
(
Stringsi="Hello!”;
Strings2=newString(^^World!^');
System.out.println(s1.concat(s2));
)
)
答:HelloiWorld!
5.importjava.io.*;
publicclassABC
publicstaticvoidmain(Stringargs[])
{inti;
inta[]={11,22,33,44,55,66,77,88,99);
for(i=0;i<=a.length/2;i++)
System.out.print(a[i]+a[a.length-i-l]+"'*);
System.out.println();
)
)
答:110110110110110
6.importjava.io.*;
classParent
(
voidprintMe()
(
System,out.printin("parent");
)
)
classChildextendsParent
(
voidprintMe()
{
System,out.println(〃child〃);
)
voidprintAll()
(
super.printMe();
this.printMe();
printMe();
)
)
publicclassClassi
(
publicstaticvoidmain(Stringargs[])
(
ChildmyC=newChild();
myC.printAll();
)
)
答:parent
child
child
五、使用Java語言編寫程序。
1.編寫一個字符界面的JavaApplication程序,接受用戶從鍵盤輸入的一個正整數(shù),
然后統(tǒng)計并輸出從1到這個正整數(shù)的累加和。
答:參考程序如下:
importjava.io.*;
publicclassSUM
(
publicstaticvoidmain(String[]args)
inti,n=-l,sum=0;
while(n<l)
try(
BufferedReaderbr=
newBufteredReader(newInputStreamReader(System.in));
n=Integer.parseInt(br.readLine());
}catch(lOExceptione){);
for(i=1;i<=n;i++)sum+=i;
System.out.println(sum);
2.編寫一個字符界面的JavaApplication程序,接受用戶輸入的10個整數(shù),并輸出這
10個整數(shù)的最大值和最小值。
答:參考程序如下:
importjava.util.*;
publicclassMaxMin{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
inta[]=newint[10];
intmax;
intmin;
for(inti=0;i<=9;i++)
a[i]=input.nextlnt();
max=min=a[0];
for(inti=l;i<=9;i++)
{if(a[i]>=max)max=a[i];
if(a[i]<=min)min=a[i];}
System.out.prinlln("max="+max+“\n"+"min="+min);
4.編寫一個學(xué)生類Student,要求:
(1)學(xué)生類Student屬性有:
id:long型,代表學(xué)號
name:String類對象,代表姓名
age:int型,代表年齡
sex:boolen型,代表性別(其中:true表示男,false表示女)
phone:String類對象,代表聯(lián)系電話
(2)學(xué)生類Sludem的方法有:
Student(longi,Stringn,inta,booleans,longp)
:有參構(gòu)造函數(shù),形參表中的參數(shù)分別初始化學(xué)號、姓名、
年齡、性別和聯(lián)系電話。
intgetAge()():獲取年齡作為方法的返回值。
booleangetSex()():獲取性別作為方法的返回值。
longgetPhone():獲取聯(lián)系電話作為方法的返回值。
publicStringtoString():以姓名:聯(lián)系電話的形式作為方法的返回值。
答:參考程序段如下:
classStudent{
longid;
Stringname;
intage;
booleansex;
longphone;
Student(longitStringn,inta,booleans,longp){
id=i;
name=n;
age=a;
sex=s;
phone=p;
)
intgetAge(){returnage;}
booleangetSex(){returnsex;}
longgetPhone(){returnphone;}
publicStringtoString(){returnname+":n+phone;}
)
Java語言程序設(shè)計試題(帶答案)
課程代碼:04747
一、單項選擇題(本大題共1()小題,每小題1分,共10分)
在每小題列出的四個備選項中只有一個是符合題目要求的,請將其代碼填寫在題后的括
號內(nèi)。錯選、多選或未選均無分。
1,下列字符組合不能作為Java整型常量的是()
A.078B.0x3ACB
C.5000D.Ox3ABe
2.以下程序代碼的輸出結(jié)果是()
intx=10;
while(x>7)
{System.out.print(n*n);x—;}
A**B***
C*D****
3.設(shè)類U聲明,及對象u和v的定義如下:
classU{
intx,inty;
U(inta,intb){x=a;y=b;}
voidcopy(Ua){x=a.x;y=a.y;}
}
Uu=newU(l,2),v=newU(2,3);
在以下供選擇的代碼中,可能引起系統(tǒng)回收內(nèi)存的是()
A.u.x=v.y;u.y=v.x;B.u=v;
C.u.copy(v);D.v.copy(u);
4.設(shè)有以下代碼:
Stringsl=n123H;
Strings2=n123n;
Strings3=newString。123”);
則表達(dá)式sl==s2和sl=s3的值分別是()
A.true,trueB.false,false
C.true,falseD.false,true
5.以下關(guān)于AWT與Swing之間關(guān)系的敘述,正確的是()
A.Swing是AWT的提高和擴(kuò)展
B.在寫GUI程序時,AWT和Swing不能同時使用
C.AWT和Swing在不同的平臺上都有相同的表示
D.AWT中的類是從Swing繼承的
6.在以下Swing組件中,能為它指定布局管理器的是()
A.JScrollBar對象B.JMenuBar對象
C.JComboBox對象D.JDialog對象
7.一般的繪圖程序要定義一個JPanel子類。在JPanel子類中還要重定義一個方法,在這
個方法中調(diào)用繪圖方法,繪制各種圖形。要重定義的方法是()
A.paint()B.paintComponent()
C.repaint()D.update()
8.用Runnable接口實(shí)現(xiàn)多線程的主要工作是()
A.聲明實(shí)現(xiàn)Runnable接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,讓線程調(diào)用start。方法。
B.聲明實(shí)現(xiàn)Runnable接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,在類內(nèi)聲明線程對象,在init()
方法中創(chuàng)建新線程,啟動新線程。
C.聲明實(shí)現(xiàn)Runnable接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,在類內(nèi)聲明線程對象,在Init()
方法或start。方法中創(chuàng)建新線程,在start。方法中啟動新線程。
D.聲明實(shí)現(xiàn)Runnable接口的類,在類內(nèi)實(shí)現(xiàn)run()方法,在init()方法中創(chuàng)建新線程,在
start。方法中啟動新線程。
9.程序如果要按行輸入輸出文件的字符流,最合理的方法是采用()
A.BufferedReader類和BufferedWriter類
B.InputStream類和OutputStream類
C.FileReader類和FileWriter類
D.File_Reader類和File_Writer類
10.在編寫訪問數(shù)據(jù)庫的Java程序中,要用到DriverManager類。該類的作用是()
A.存儲查詢結(jié)果
B.處理與數(shù)據(jù)庫的連接
C.在指定的連接中處理SQL語句
D.處理驅(qū)動程序的加載和建立數(shù)據(jù)庫連接
二、填空題(本大題共10小題,每小題2分,共20分)
請在每小題的空格中填上正確答案。錯填、不填均無分。
11.Java程序的字節(jié)碼文件的擴(kuò)展名是。class
12.構(gòu)造一個Java表達(dá)式:y/x>5,并且x!=0。這個表達(dá)式是?y/x>5&&x!=0
13.在類聲明之前用修飾,聲明類是不能被再繼承的類,即它不能再有子類。
final
14.設(shè)有字符串定義:
Strings="ABCDABCD”;
則表達(dá)式s.indexOf("B")的值是。1
15.在實(shí)現(xiàn)接口ActionListener的方法actionPerformed()中,常用的有兩個獲得事件源的
方法,它們是getActionCommand。和。getSource()
16.使用單選按鈕的方法是將一些單選按鈕用對象分組,使同一組內(nèi)的單選按
鈕只允許一個被選中。ButtonGroup
17.在Java語言中,用類Font對象設(shè)置字型。如果要設(shè)置的字型是:細(xì)明體、正常風(fēng)格
(Font.PLAIN),12磅字號,構(gòu)造這樣要求的Font對象fnA的代碼是。Font
fnA=newFont(“細(xì)明體”,Font.PLAIN.12)
18.線程從阻塞狀態(tài)恢復(fù)到就緒狀態(tài),有三種途徑:自動恢復(fù)、用resume。方法恢復(fù)和用
方法恢復(fù)。notify?;騨otifyAll()
19.為普通的8位字節(jié)流文件讀和寫操作提供支持的類是oInputstream
OutputStream
20.Connection類是java.sql包中用于處理與數(shù)據(jù)庫連接的類。Connection對象是用來表
示的對象,Java程序?qū)?shù)據(jù)庫的操作都在這種對象上進(jìn)行。數(shù)據(jù)庫連接
三、簡答題(本大題共6小題,每小題3分,共18分)
21.請寫出表示year年是閏年的Java表達(dá)式。閏年的條件是:每4年一個閏年,但每100
年少一個閏年,每400年又增加一個閏年。(year%4==0)&&(year%4!=0)||(year%400=
=0)
22.請寫出在類的方法的定義之前,加上修飾字public、private的區(qū)別。
Public修飾的方法為公用方法,任何類的方法都可以訪問他
Private修飾的方法,本類內(nèi)部可以訪問
23.請寫出將文本區(qū)text放置于滾動面板jsp,并將滾動面板jsp添加到JFrame窗口
myFrame的Java語句。
TextAreatext=newTextArea();
JScrollPanejsp=newJScrollPane(text);
myFrame.getContentPane().add(jsp);
24.要用Graphics2D類的方法畫一個圖形,首先要把參數(shù)對象g強(qiáng)制轉(zhuǎn)換成Graphics2D
對象;然后,用圖形類提供的靜態(tài)方法Double。創(chuàng)建一個圖形對象;最后,以圖形對象
為參數(shù)調(diào)用Graphics2D對象的draw。方法繪制這個圖形。請寫出用這樣的方法繪制一條
線段的程序段,線段的兩個端點(diǎn)分別是(10.0,10.0)和(30.0,30.0),
Graphics2Dg2d=(Graphics2D)g;
Line2Dline=newLine2D.Double(10,20,30,40);
G2d.draw(line)
25.請寫出字符流數(shù)據(jù)與字節(jié)流數(shù)據(jù)的區(qū)別。(P.175)
26.請寫出URLConnection類在編寫Java網(wǎng)絡(luò)應(yīng)用程序中的作用。
URLConnection類完成流對象和實(shí)現(xiàn)網(wǎng)絡(luò)連接
四、程序填空題(本大題共5小題,每小題4分,共20分)
27.方法intsigmaDigit(intn)的功能是求出十進(jìn)制整數(shù)n的各位數(shù)字之和。例如,n=1234,
該方法的返回值是10o
staticintsigmaDigit(intn)
{intsum=0,d;
while(n>0){
d=n%10;
;sum+=d
n/=10;
}
;returnsum
28.以下小應(yīng)用程序能響應(yīng)鼠標(biāo)按動的事件,當(dāng)鼠標(biāo)在正文區(qū)的某個位置被點(diǎn)擊時,就在
該位置顯示一個記號“x”,程序限制最多保留最新20個位置。
importjava.applet.*;importjava.awt.*;
importjavax.swing.*;importjava.awt.event.*;
classMyPanelextendsJPanel{
publicvoidprint(Graphicsg,intx,inty)(
g.setColor(Color.red);
g.drawLine(x-5,y-5,x+5,y+5);
g.drawLine(x+5,y-5,x-5,y+5);
)
}
classMyWindowextendsJFrameimplementsMouseListener{
finalintMaxMarks=20;
intcurrentMarks=0,markCount=0;
Pointmarks[]=newPoint[MaxMarks];
MyPanelpanel;
MyWindow(){
this.setLocation(100,100);
this.setSize(300,300);
Containercon=this.getContentPane();
panel=newMyPanel();con.add(panel);
(this);addMouseListener
this.setVisible(true);
)
publicvoidpaint(Graphicsg){
inti;
g.clearRect(0,0,this.getWidth(),this.getHeight());
for(i=0;i<markCount;i++){
(g,marks[i].x,marks[i].y);print
}
)
publicvoidmousePressed(MouseEvente){}
publicvoidmouseReleased(MouseEvente){}
publicvoidmouseEntered(MouseEvente){}
publicvoidmouseExited(MouseEvente){}
publicvoidmouseClicked(MouseEvente){
marks[currentMarks]=newPoint(e.getX(),e.getY());
if(markCount<MaxMarks)markCount++;
currentMarks=(currentMarks+1)%MaxMarks;
repaint();
}
}
publicclassClassiextendsApplet{
publicvoidinit(){
MyWindowmyWndow=newMyWindow();
)
)
29.這是一個處理選擇項目事件的子窗口類。窗口中有2個選擇框,當(dāng)選中某個選擇框時,
文本框?qū)@示選擇框?qū)?yīng)的信息。
classMyWindowextendsJFrameimplementsItemListener{
JTextFieldtext;
JCheckBoxboxl,box2;
MyWindow(Strings){
;super(s)
Containercon=this.getContentPane();
this.setLocation(100,100);this.setSize(400,200);
text=newJTextField(lO);
boxl=newJCheckBox(nA計算機(jī)”,false);
box2=newJCheckBox(nB計算機(jī)”,false);
con.setLayout(newGridLayout(3,2));
con.add(newJLabel("計算機(jī)產(chǎn)品介紹”,JLabeLCENTER));
add(newJLabeI("計算機(jī)2選1*JLabeLCENTER));
con.add(box1);con.add(box2);con.add(text);
boxl.addltemListener(this);
box2.addltemListener(this);
this.setVisible(true);this.pack();
publicvoiditemStateChanged(e){ItemEvent
if(e.get!temSelectable()==boxl){
text.setText("A公司生產(chǎn)”);
}elseif(e.getItemSelectable()==box2){
text.setText("B公司生產(chǎn))
)
)
)
30.這是一個播放幻燈片的小應(yīng)用程序中的paint。方法。設(shè)幻燈片已由小應(yīng)用程序的init()
方法裝入內(nèi)存,并存放于mylmage數(shù)組中,幻燈片的張數(shù)放于變量num中,paint。方法
要播放的幻燈片號是intcurrentimage=0;
finalintnum=30;
Image[]mylmage=new[num];Image
publicvoidpaint(Graphicsg){
if((mylmage|currentlmage|)!=null)
g.(mylmage[currentlmage],10,10,drawlmage
mylmage[currentimage].getWidth(this),
mylmage[currentimage].getHeight(this),this);
)
31.以下定義的類ShareData用于管理多個線程共享數(shù)據(jù)vaL為了保證對共享數(shù)據(jù)val
修改的完整性,線程對val的操作需要互斥,類ShareData中定義的方法modiData。就是
供共享val的線程修改val的方法。程序共有20個線程共享vah有些減少val,有些增
加val。
publicclassClassi{
publicstaticvoidmain(Stringargs[]){
ShareDatamrc二newShareData(50);
Thread[|aThreadArray=newThread[20|;
System.out.println(H\t剛開始的值是:“+mrc.getVal());
System.out.println(n\t多個線程正在工作,請稍等!)
for(inti=0;i<20;i++){
intd=i%2==0?50:-30;
aThreadArray[i]=newThread(newMyMultiThreadClass(mrc,d));
aThreadArray|i].start();
)
WhileLoop:〃等待所有線程結(jié)束
while(true){
for(inti=0;i<20;i++)
if(aThreadArray[i].())continueWhileLoop;
isAlive()
break;
)
System.out.println(H\t最后的結(jié)果是:"+mrc.getVal());
}
)
classMyMultiThreadClassimplementsRunnable{
ShareDataUseinteger;intdelta;
MyMultiThreadClass(ShareDatamrc,intd){
Useinteger=mrc;delta=d;
)
publicvoidrun(){
fbr(inti=0;i<1000;i++){
Uselnteger.modiData(delta);
try{Thread.sleep(10);〃做一些其他的處理
}catch(InterruptedExceptione){}
)
)
}
classShareData{
intval;
ShareData(intinitValue){val=initValue;}
intgetVal(){returnval;}
privatevoidputVal(intv){val=v;}
voidmodiData(intd){synchronized
putVal(getVal()+d);
}
)
五、程序分析題(本大題共5小題,每小題4分,共20分)
32.閱讀下列程序,請寫出該程序的輸出結(jié)果。
classA{
intx,y;
A(inta,intb){
x=a;y=b;
)
)
publicclasssample{
publicstaticvoidmain(Stringargs[]){
Apl,p2;
p2=newA(12,15);
pl=p2;p2.x++;
System.o
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度生物質(zhì)能源項目股權(quán)分配合同范本3篇
- 2025年度風(fēng)力發(fā)電場場地平整與風(fēng)力塔安裝施工協(xié)議4篇
- 2025年度城市綠化工程苗木采購合同3篇
- 二零二五年度能源項目100%股權(quán)轉(zhuǎn)讓合同3篇
- 專業(yè)旅客出行服務(wù)協(xié)議定制版
- 2024試用期工作關(guān)系協(xié)議范本版B版
- 2025年度臨時場地租賃合同終止及場地恢復(fù)協(xié)議4篇
- 2025年度二零二五購物中心攤位租賃及營銷支持合同4篇
- 2025年度詳盡場景主播合作框架協(xié)議4篇
- 個人借款合同模板:無擔(dān)保短期資金周轉(zhuǎn)版B版
- 2024年國家危險化學(xué)品經(jīng)營單位安全生產(chǎn)考試題庫(含答案)
- 護(hù)理員技能培訓(xùn)課件
- 員工宿舍用電安全培訓(xùn)
- 家庭年度盤點(diǎn)模板
- 河南省鄭州市2023-2024學(xué)年高二上學(xué)期期末考試 數(shù)學(xué) 含答案
- 2024年資格考試-WSET二級認(rèn)證考試近5年真題集錦(頻考類試題)帶答案
- 試卷中國電子學(xué)會青少年軟件編程等級考試標(biāo)準(zhǔn)python三級練習(xí)
- 公益慈善機(jī)構(gòu)數(shù)字化轉(zhuǎn)型行業(yè)三年發(fā)展洞察報告
- 飼料廠現(xiàn)場管理類隱患排查治理清單
- 【名著閱讀】《紅巖》30題(附答案解析)
- Starter Unit 2 同步練習(xí)人教版2024七年級英語上冊
評論
0/150
提交評論