版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
參考答案
第1章
1.Java語(yǔ)言有哪些主要特點(diǎn)?
平臺(tái)獨(dú)立性
安全性
多線程
網(wǎng)絡(luò)化
面向?qū)ο?/p>
2.Java編程語(yǔ)言有哪四種不同的平臺(tái)?
Java編程語(yǔ)言有四種平臺(tái):Java標(biāo)準(zhǔn)版(JavaSE)、Java企業(yè)版(JavaEE)、Java微
型版(JavaME)和JavaFX。所有Java都由Java虛擬機(jī)(VM)和應(yīng)用程序編程接口(API)
組成。Java虛擬機(jī)是一個(gè)用于特定硬件和軟件平臺(tái)的程序,它運(yùn)行Java技術(shù)應(yīng)用程序。
API是一組軟件組件,可用于創(chuàng)建其他軟件組件或應(yīng)用程序。每個(gè)Java平臺(tái)都提供了一個(gè)
虛擬機(jī)和一個(gè)API,這使得為該平臺(tái)編寫(xiě)的應(yīng)用程序可以在具有Java編程語(yǔ)言所有優(yōu)點(diǎn)的
任何兼容系統(tǒng)上運(yùn)行:平臺(tái)獨(dú)立性、功能強(qiáng)大、穩(wěn)定性、易于開(kāi)發(fā)和安全。
JavaSE
當(dāng)大多數(shù)人想到Java編程語(yǔ)言時(shí),他們會(huì)想到JavaSEAPI,JavaSE的API提供了
Java編程語(yǔ)言的核心功能。它定義了從Java編程語(yǔ)言的基本類型和對(duì)象到用于網(wǎng)絡(luò)、安
全、數(shù)據(jù)庫(kù)訪問(wèn)、圖形用戶界面(GUI)開(kāi)發(fā)和XML解析的高級(jí)類的所有內(nèi)容。除了核心
API之外,JavaSE平臺(tái)還包括虛擬機(jī)、開(kāi)發(fā)工具、部署技術(shù)以及Java技術(shù)應(yīng)用程序中常
用的其他類庫(kù)和工具包。
JavaEE
JavaEE平臺(tái)構(gòu)建在JavaSE平臺(tái)之上。JavaEE平臺(tái)為開(kāi)發(fā)和運(yùn)行大規(guī)模、多層、可
擴(kuò)展、可靠和安全的網(wǎng)絡(luò)應(yīng)用程序提供了API和運(yùn)行時(shí)環(huán)境。
JavaME
JavaME平臺(tái)提供了一個(gè)API和一個(gè)小型虛擬機(jī),用于在小型設(shè)備(如手機(jī))上運(yùn)行
Java編程語(yǔ)言應(yīng)用程序。該API是JavaSEAPI的一個(gè)子集,以及對(duì)小型設(shè)備應(yīng)用程序開(kāi)
發(fā)有用的特殊類庫(kù)。JavaME應(yīng)用程序通常是JavaEE平臺(tái)服務(wù)的客戶端。
JavaFX
JavaFX是一個(gè)使用輕量級(jí)用戶界面API創(chuàng)建富Internet應(yīng)用程序的平臺(tái)。JavaFX應(yīng)
用程序使用硬件加速的圖形和媒體引擎來(lái)利用更高性能的客戶端和現(xiàn)代外觀以及用于連接
到網(wǎng)絡(luò)數(shù)據(jù)源的高級(jí)APLJavaFX應(yīng)用程序可能是JavaEE平臺(tái)服務(wù)的客戶端。
3.JavaApplication的開(kāi)發(fā)步驟有哪些?
JavaApplication的開(kāi)發(fā)步驟:
(1)下載JDK軟件并安裝;
(2)配置相應(yīng)的環(huán)境變量(path和classpath);
(3)編寫(xiě)Java源程序(文本編輯器或集成開(kāi)發(fā)環(huán)境IDE);
(4)編譯Java源程序,得到字節(jié)碼文件(javac*.java);
(5)執(zhí)行字節(jié)碼文件(java字節(jié)碼文件名)。
4.什么是環(huán)境變量?設(shè)置環(huán)境變量的主要目的是什么?
環(huán)境變量的配置主要是為了進(jìn)行“尋徑”,即讓程序能找到它需要的文件,所以設(shè)置的
內(nèi)容就是一些路徑。
5.不參考書(shū)本,試著編寫(xiě)一個(gè)簡(jiǎn)單的JavaApplication程序,實(shí)現(xiàn)在屏幕上輸出"Welcome
toJava”字符串,并對(duì)該程序進(jìn)行編譯和運(yùn)行。
publicclassHello{
publicstaticvoidmain(Stringargs[])
(
System.out.println("WelcometoJava");
6.編寫(xiě)一個(gè)JavaApplication程序,實(shí)現(xiàn)分行顯示字符串"Welcomet。Java”中的3個(gè)單
詞。
publicclassHello{
publicstaticvoidmain(Stringargs[])
(
System.out.println("Welcome");
Systeni.out.println("tO'*);
System.out.prinilnC'Java");
)
}
第2章
1.Java語(yǔ)言對(duì)于合法標(biāo)識(shí)符的規(guī)定是什么?指出以下哪些為合法標(biāo)識(shí)符。
aa23a*a_a$ainta%
在Java中,標(biāo)識(shí)符必須以字母、美元符號(hào)或者下劃線打頭,后接字母、數(shù)字、下劃線
或美元符號(hào)串。另外,Java語(yǔ)言對(duì)標(biāo)識(shí)符的有效字符個(gè)數(shù)基本不做限定。
合法的標(biāo)識(shí)符:aa2_a$a
2.變量的涵義是什么?變量名與變量值的關(guān)系?
在程序執(zhí)行過(guò)程中其值可以發(fā)生改變的量,稱為變量,它本質(zhì)上是內(nèi)存分配的一小塊存
儲(chǔ)空間。每個(gè)變量都必須有對(duì)應(yīng)的名稱來(lái)標(biāo)識(shí)它,即變量名,而變量空間所存放的數(shù)據(jù)則為
變量值。
3.Java語(yǔ)言提供哪些基本的數(shù)據(jù)類型,為什么要提供這些不同的數(shù)據(jù)類型?
布爾型:boolean
整型:byte、short、int以及l(fā)ong
浮點(diǎn)型(實(shí)型):float以及double
字符型:char
數(shù)據(jù)類型代表了數(shù)據(jù)的存儲(chǔ)格式和處理方式,有了數(shù)據(jù)類型,程序就能夠存儲(chǔ)和處理整
數(shù)、實(shí)數(shù)、字符以及布爾值等。
4.賦值語(yǔ)句的涵義是什么?
數(shù)據(jù)傳遞。
5.數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換的情形有哪些?如何轉(zhuǎn)換?
對(duì)于變窄轉(zhuǎn)換,如long到short、double到float,或者其他不兼容轉(zhuǎn)換:float到short、
charSOshort等,必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換。
floatf=(float)11.5;或floatf=11.5f;
shortb;
b=(short)f;
6.每一條程序語(yǔ)句都以分號(hào)結(jié)束,該分號(hào)能否用中文輸入模式下輸入的分號(hào)?為何?
不能。中英文輸入模式下輸入的分號(hào)是不同的,不但外觀不同,其存儲(chǔ)所需的空間也不
同,Java編譯器只能識(shí)別英文的分號(hào),遇到中文分號(hào)會(huì)報(bào)錯(cuò)。
7.float或double變量能否精確存儲(chǔ)0.1這個(gè)小數(shù)?為什么?
不能。float和double不僅范圍有限,精度也有限,有限的比特串不能精確表示0.1這
個(gè)重要的小數(shù)。換句話說(shuō),想精確表示0.1這個(gè)小數(shù),多少比特都不夠用。同樣,0.2、0.4
和0.8等,也都不能被精確存儲(chǔ),其根本原因是計(jì)算機(jī)采用的是二進(jìn)制格式。
第3章
1.假定乘坐飛機(jī)時(shí),每位顧客可以免費(fèi)托運(yùn)20kg以內(nèi)的行李,超過(guò)部分按每公斤收費(fèi)1.2
元,以下是相應(yīng)的計(jì)算收費(fèi)程序。該程序存在錯(cuò)誤,請(qǐng)找出其中的錯(cuò)誤。
publicclassTest
{
publicstaticvoidmain(String[]args)throwslOException
{
floatw,fee;
〃以下代碼為通過(guò)控制臺(tái)交互輸入行李重量
InputStreamReaderreader=newInputStreamReader(System.in);
BufferedReaderinput=newBufferedReader(reader);
System.out.printin("請(qǐng)輸入旅客的行李重量:");
Stringtemp=input.rea(lLine();
w=Float.parseFloat(temp);〃字符串轉(zhuǎn)換為單精度浮點(diǎn)型
fee=0;
if(w>20);
fee=(float)1.2*(w-20);
System.out.println("該旅客需交納的托運(yùn)費(fèi)用:"+fee+“元”);
)
}
缺少importjava.io.*;語(yǔ)句
2.有一條階梯,如果每步2階,則最后剩1階,如果每步3階則剩2階,每步5階則剩4
階,每步6階則剩5階,每步7階,則剛好走完。問(wèn)這條階梯最少有多少階?找出以下求
解程序的錯(cuò)誤所在。
publicclassTest
{publicstaticvoidmain(String[]args)
(
inti;
while(i%2==l&&i%3==2&&i%5==4&&i%6==5&&i%7==0)
(
i++;
System.out.println("這條階梯最少有:“+i+”階”);
)
1)變量i應(yīng)進(jìn)行初始化。
2)while循環(huán)的條件表達(dá)式應(yīng)加上“非”,才符合邏輯。
3.試用單分支結(jié)構(gòu)設(shè)計(jì)一個(gè)程序,判斷用戶輸入的值X,當(dāng)X大于零時(shí)求X值的平方根,
否則不執(zhí)行任何操作。
importjava.io.*;
importjava.lang.*;
publicclassTest
{publicstaticvoidmain(String[]args)throwslOException
(
floatx;
InputStreamReaderreader=newInputStreamReader(System.in);
BufferedReaderinput=newBufferedReader(reader);
System.out.println("請(qǐng)輸入x:n);
Stringtemp=input.readLine();
x=Float.parseFloat(temp);〃字符串轉(zhuǎn)換為單精度浮點(diǎn)型
if(x>0)
{System.out.println("平方根值M+Math.sqrt(x));}
)
)
4.從鍵盤(pán)讀入兩個(gè)字符,按照字母表的順序進(jìn)行排序,將前面的字符置于A=后面,排后
面的字符置于B=后面,比如輸入ok,應(yīng)輸出A=kB=o,請(qǐng)?jiān)O(shè)計(jì)實(shí)現(xiàn)該程序。
importjava.io.*;
publicclassTest
{publicstaticvoidmain(String[]args)throwslOException
(
charA,B,cl,c2;
cl=(char)System.in.read();;
c2=(char)System.in.read();;
if(cl>c2)
(
A=c2;
B=cl;
}
else
(
A=cl;
B=c2;
)
System.out.println。'A="+A+"B="+B);
)
)
5.用窮舉法求出3位數(shù)中百、十、個(gè)位數(shù)的立方和就是該數(shù)的數(shù)。
publicclassTest
{publicstaticvoidmain(String[]args)
(
inta,b,c,x=100;
while(x<1000)
(
a=x%10;
b=(x%100-a)/10;
c=(x-x%100)/100;
if(a*a*a+b*b*b+c*c*c==x)
{System.out.println(x);}
x+=l;
}
)
)
6.編程實(shí)現(xiàn)打印以下圖案:
*
publicclassTest
{publicstaticvoidmain(String[]args)
(
inti,j,k;//i控制行數(shù),k控制*的個(gè)數(shù),j控制空格數(shù)
for(i=l;i<=6;i++)
(
for(j=l;j<=i-l;j++)
{System.out.print('rn);}〃打印空格
for(k=1;k<=13?i*2;k++)
{System.out.print(n*M);}〃打印*號(hào)
System.out.println();〃換行
}
)
1
7.統(tǒng)計(jì)1至1萬(wàn)之間共有多少個(gè)素?cái)?shù)。
publicclassTest
{publicstaticvoidmain(String[Jargs)
{inti,j,count=0;
label:
for(i=l;i<=10000;i++)〃查找1到10000以內(nèi)的素?cái)?shù)
{for(j=2;j<i;j++)//檢驗(yàn)是否不滿足素?cái)?shù)條件
{if(i%j==0)〃不滿足
{continuelabel;}〃跳過(guò)后面不必要的檢驗(yàn)
!
count++;〃計(jì)數(shù)
)
System.out.println("個(gè)數(shù):"count);
8.打印輸出斐波納契數(shù)列的前12項(xiàng)。
斐波納契數(shù)列的前12項(xiàng)如下:
第1項(xiàng):0
第2項(xiàng):1
第3項(xiàng):1
第4項(xiàng):2
第5項(xiàng):3
第6項(xiàng):5
第7項(xiàng):8
第8項(xiàng):13
第9項(xiàng):21
第10項(xiàng):34
第11項(xiàng):55
第12項(xiàng):89
publicclassTest
{publicstaticvoidmain(String[]args)
{inti=0,j=l;
for(intk=0;k<6;k++)
(
System.out.print(i+""+j+n");
i=i+j;
j=j+j;
9.讀程序,寫(xiě)結(jié)果。
importjava.io.*;
publicclassTest
publicstaticvoidmain(String[]args)throwslOException
(
charsex='f';
switch(sex)
(
case'm':System,out.printin("男性”);
break;
case'f':System.out.printin("女性”);
case'u':System,out.printin("未知");
}
}
)
女性
未知
10.讀程序,寫(xiě)結(jié)果。
publicclassTest
{publicstaticvoidniain(String[]args)
(
inti,s=0;
for(i=l;i<=100;i++)
(
if(i%3==0)
{continue;}
s+=i;
)
System.out.println(,,s=,,+s);
)
)
s=3367
11.讀程序,寫(xiě)結(jié)果。
publicclassTest
{publicstaticvoidmain(String[]args)
(
inti,s=0;
for(i=l;i<=100;i++)
(
s+=i;
if(s>100)
{break;}
)
System.out.println(,*s=n+s);
)
)
s=105
12.個(gè)位數(shù)是6,且能被3整除的5位數(shù)共有多少個(gè)?請(qǐng)?jiān)O(shè)計(jì)并實(shí)現(xiàn)該程序。
publicclassTest
{publicstaticvoidmain(String[]args)
(
inti=10006,count=0;
while(i<100000)
{if(i%3==0)
{count++;}
i+=10;
)
System.out.println("符合條件的數(shù)共有"+count+"個(gè))
運(yùn)行結(jié)果:
符合條件的數(shù)共有3000個(gè)
13.用嵌套循環(huán)結(jié)構(gòu),設(shè)計(jì)一個(gè)模擬電子鐘的程序。
提示:定義三個(gè)變量分別代表“小時(shí)”、“分”和“秒力根據(jù)電子鐘分、秒、小時(shí)之間
的關(guān)系,采用三重循環(huán)來(lái)控制各量的增加,并由輸出語(yǔ)句將變化中的三個(gè)量分別予以輸出
顯示,即為一模擬數(shù)字電子鐘。此外,Java語(yǔ)言提供的延時(shí)方法為T(mén)hread.sleep(1000);1000
的單位為毫秒,即延時(shí)1秒。
importjava.util.*;
publicclassTest
{publicstaticvoidmain(String[]args)throwsInterruptedException
(
inthour=0,min=0,sec=0;
while(hour<24)
{
whi!e(min<60)
(
while(sec<60)
{sec++;
Thread.sleep(l000);
System.out.println(hour+”時(shí),+min+”分,+sec+”秒)
)
sec=0;
min++;
)
min=0;
hour++;
第4章
1.以下敘述中不正確的是O
A、在方法中,通過(guò)return語(yǔ)句傳回方法值
B、在一個(gè)方法中,可以執(zhí)行有多條return語(yǔ)句,并返回多個(gè)值
C、在Java中,主方法main()后的一對(duì)圓括號(hào)中也可以帶有參數(shù)
D、在Java中,調(diào)用方法可以在System,out.printin()語(yǔ)句中完成
B
2.以下正確的描述是.
A、方法的定義不可以嵌套,但方法的調(diào)用可以嵌套
B、方法的定義可以嵌套,但方法的調(diào)用不可以嵌套
C、方法的定義和方法的調(diào)用均不可以嵌套
D、方法的定義和方法的調(diào)用均可以嵌套
A
3.以下正確的說(shuō)法為.
A、在不同方法中不可以使用相同名字的變量
B、實(shí)際參數(shù)可以在被調(diào)方法中直接使用
C、在方法內(nèi)定義的任何變量只在本方法范圍內(nèi)有效
D、在方法內(nèi)的復(fù)合語(yǔ)句中定義的變量只在本方法語(yǔ)句范圍內(nèi)有效
C
4.按Java語(yǔ)言的規(guī)定,以下正確的說(shuō)法是。
A、實(shí)參不可以是常量,變量或表達(dá)式
B、形參不可以是常量,變量或表達(dá)式
C、實(shí)參與其對(duì)應(yīng)的形參占用同一個(gè)存儲(chǔ)單元
D、形參是虛擬的,不占用存儲(chǔ)單元
D
5.一個(gè)JavaApplication程序中有且只有一個(gè)方法,它是整個(gè)程序的執(zhí)行入口。
main()方法
6.方法通??梢哉J(rèn)為由兩部分組成,它們是和。
方法頭和方法體
7.讀程序?qū)懡Y(jié)果。
publicclassTest{
staticvoidm(intx9inty,intz)
{x=lll;y=222;z=333;
publicstaticvoidmain(Stringargs[])
{intx=100,y=200,z=300;
m(x,y,z);
System.out.println(nx=1*+x+11y=n+y+Hz=M+z);
)
}
x=100y=200z=300
8.編寫(xiě)一個(gè)判斷某個(gè)整數(shù)是否為素?cái)?shù)的方法。
publicbooleanprime(intx)
(
for(intj=2;j<x;j++)〃檢驗(yàn)是否滿足素?cái)?shù)條件
if(x%j==O)〃不滿足
returnfalse;
returntrue;
}
9.編寫(xiě)兩個(gè)方法,分別求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),在主方法中由鍵盤(pán)輸入兩
個(gè)整數(shù)并調(diào)用這兩個(gè)方法,最后輸出相應(yīng)的結(jié)果。
importjava.io.*;
publicclassTest
{publicstaticvoidmain(String[]args)
{inta=0;
System.out.print("請(qǐng)輸入數(shù)a:");
try(
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
a=Integer.parse!nt(br.readLine());
}catch(IOExceptione){}
intb=0;
System.out.print("請(qǐng)輸入數(shù)b:n);
try
{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
b=Integer.parseInt(br.readLine());
}catch(IOExceptione){}
if(a<=0||b<=0)
System.out.println("輸入不合法!");
System.out.println("最大公約數(shù)為:“+Gys(a,b));
System.out.println("最小公倍數(shù)為:“+Gbs(a,b));
)
publicstaticintGys(inta,intb)
intr=0;
if(a<b)
{r=a;
b=a;
a=r;}
inti=l;
while(i!=O)
{i=a%b;
a=b;
b=i;
}
returna;
)
publicstaticintGbs(inta,intb)
(
intab=a*b;
intr=0;
if(a<b)
{r=a;
b=a;
a=r;}
inti=l;
while(i!=O)
{i=a%b;
a=b;
b=i;
)
returnab/a;
)
)
10.以下程序執(zhí)行后的輸出為
publicclassTest
(
staticintml(inta,intb)
{
intc;
a+=a;
b+=b;
c=m2(a,b);
return(c*c);
)
staticintm2(inta,intb)
{
intc;
c=a*b%3;
return(c);
}
publicstaticvoidmain(String[]args)
(
intx=l,y=3,z;
z=ml(x,y);
System.out.printIn(Mz=M+z);
)
)
z=0
11.編寫(xiě)一個(gè)方法,實(shí)現(xiàn)求某個(gè)整數(shù)的各個(gè)位上的數(shù)字之和的功能。
importjava.io.*;
publicclassTest
{publicstaticvoidmain(String[]args)
{inti,a=0,s=0;
System.out.print("請(qǐng)輸入數(shù)a:”);
try(
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
a=Integer.parseInt(br.readLine());
}catch(IOExceptione){}
for(i=10;a%i!=a;i*=10)
(
s+=(a%i)/(i/10);
1
s+=a/(i/10);
System.out.printing各位數(shù)之和為“+s);
)
)
12.編寫(xiě)程序?qū)崿F(xiàn)十進(jìn)制整數(shù)到八進(jìn)制的轉(zhuǎn)換。
importjava.io.*;
publicclassTest
{publicstaticvoidmain(String[]args)
{inti,k,a=0,d,s=0;
System.out.print("請(qǐng)輸入數(shù):與;
try(
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
a=Integer.parseInt(br.readLine());
}catch(IOExceptione){}
d=a%8;
s+=d;
k=10;
for(i=64;a-d!=0;i*=8)
(
s+=(a-d)%i*8/i*k;
k*=10;
d=a%i;
)
System.out.println("八進(jìn)制數(shù)為"+s);
)
}
13.用于指出數(shù)組中某個(gè)元素的數(shù)字被叫做;數(shù)組元素之所以相關(guān),是因?yàn)樗鼈兙哂?/p>
相同的和。
下標(biāo);數(shù)組名和數(shù)據(jù)類型。
14.數(shù)組intresults[]=newint[6]所占存儲(chǔ)空間是字節(jié)。
24
15.使用兩個(gè)下標(biāo)的數(shù)組被稱為數(shù)組,假定有如下語(yǔ)句:
floatscores[][]={{1,2,3},{4,5},{6,7,8,9));
則scores.length的值為:,scores[l].length的值為:,
scores[l][l]的值為:。
二維;3;2;5。
16.從鍵盤(pán)上輸入10個(gè)雙精度浮點(diǎn)數(shù),計(jì)算出這10個(gè)數(shù)的和以及它們的平均值。要求分
別編寫(xiě)求和及求平均值的方法。
importjava.io.*;
publicclassTest
(
publicstaticvoidmain(String[Jargs)throwslOException
(
InputStreamReaderreader=newInputStreamReader(System.in);
BufferedReaderinput=newBufferedReader(reader);
Stringtemp;
doublex[]=newdoublet10];
fbr(inti=0;i<10;i++)
(
temp=input.readLine();
x[i]=Double.parseDouble(temp);
)
S(x);
Avg(x);
)
publicstaticvoidS(doublex[])
(
〃計(jì)算并輸出和
doublesum=0;
for(inti=0;i<10;i++)
(
sum+=x[i];
)
System.out.println("總和:"+sum);
)
publicstaticvoidAvg(doublex[])
I
〃計(jì)算并輸出平均數(shù)
doublesum=0;
for(inti=0;i<10;i++)
(
sum+=x[i];
)
System.out.println("平均數(shù):"+sum/l0);
)
)
17.利用數(shù)組輸入6位大學(xué)生3門(mén)課程的成績(jī),然后計(jì)算
(1)每個(gè)大學(xué)生的總分;
(2)每門(mén)課程的平均分;
importjava.io.*;
publicclassScores
publicstaticvoidmain(String[]args)throwslOException
intsum=O;〃總分
intn=6;〃學(xué)生數(shù)
Stringtemp;
InputStreamReaderreader=newInputStreamReader(System.in);
BufferedReaderinput=newBufferedReader(reader);
intx[][]=newint[6][3];
〃錄入成績(jī)
for(inti=0;i<6;i++)
(
for(intj=O;j<3;j++)
(
System.out.print((i+1)+”號(hào)同學(xué)”+(j+l)+”號(hào)課程分?jǐn)?shù)");
temp=input.readLine();
x[i][j]=Integer.parselnt(temp);
)
)
〃計(jì)算并輸出每一位同學(xué)的總分
fbr(inti=0;i<n;i++)
(
for(intj=O;j<3;j++)
(
sum+=x[i][j];
)
System.out.println((i+1)+”號(hào)同學(xué)總分:"+sum);
sum=0;
)
〃計(jì)算并輸出每一門(mén)課程的平均分
for(inti=0;i<3;i++)
(
for(intj=O;j<n;j++)
(
sum+=x[j][i];
)
System.out.println((i+1)+”號(hào)課程班級(jí)平均分:"+sum*1.0/n);
sum=0;
18.編寫(xiě)一個(gè)方法,實(shí)現(xiàn)將字符數(shù)組倒序排列,即進(jìn)行反序存放。
importjava.io.*;
publicclassTest
publicstaticvoidmain(String[]args)throwslOException
!
charc[]={','G','a','m?e','s'};
rever(c);
System.out.println(c);
)
publicstaticvoidrever(charc[])
{
chart;
for(inti=O,j=c.length-l;i<j;i++,j—)
(
t=c[i];
c[i]=c[j];
1
19.Java語(yǔ)言為什么要引入方法這種編程結(jié)構(gòu)?
提高復(fù)用度,減少程序代碼量
促進(jìn)程序結(jié)構(gòu)化,提高可讀性和可維護(hù)性
20.為什么要引入數(shù)組這種數(shù)據(jù)構(gòu)造類型?數(shù)組有哪些特點(diǎn)?Java語(yǔ)言創(chuàng)建數(shù)組的方式
有哪些?
1、為了便于處理一批同類型的數(shù)據(jù),Java語(yǔ)言引入了數(shù)組類型;
2、首先,數(shù)組中的每個(gè)元素都是相同數(shù)據(jù)類型的;其次,數(shù)組中的這些相同數(shù)據(jù)類型
元素是通過(guò)數(shù)組下標(biāo)來(lái)標(biāo)識(shí)的,并且該下標(biāo)是從0開(kāi)始的;最后,數(shù)組元素在內(nèi)存中的存放
是連續(xù)的。
3、Java語(yǔ)言規(guī)定,創(chuàng)建數(shù)組可以有兩種方式:初始化方式和new操作符方式。初始化
方式是指直接給數(shù)組的每一個(gè)元素指定一個(gè)初始值,系統(tǒng)自動(dòng)根據(jù)所給出的數(shù)據(jù)個(gè)數(shù)為數(shù)組
分配相應(yīng)的存儲(chǔ)空間,通常這樣創(chuàng)建數(shù)組的方式適用于數(shù)組元素較少的情形。對(duì)于數(shù)組比較
大的情形,即數(shù)組元素過(guò)多,用初始化方式顯然不妥,這時(shí)應(yīng)采用第二種方式,即new操
作符方式。
第5章
1.實(shí)現(xiàn)類MyClass的源碼如下:
classMyClassextendsObject{
privateintx;
privateinty;
publicMyClass(){
x=0;
y=o;
)
publicMyClass(intx,inty){
}
publicvoidshow(){
System.out.prmtln(H\nx=H+x+''y=n+y);
)
publicvoidshow(booleanflag){
if(flag)System.out.println(n\nx=M+x+My=''+y);
elseSystem.out.println(H\ny=H+y+,*x=n+x);
)
protectedvoidHnalize()throwsthrowable{
supenfinalize();
)
}
在以上的源代碼中,類MyClass的成員變量是一;構(gòu)造方法是一;對(duì)該類的一
個(gè)實(shí)例對(duì)象進(jìn)行釋放時(shí)將調(diào)用的方法是一。(多選)
(A)privateintx;
(B)privateinty;
(C)publicMyClass()
(D)publicMyClass(intx,inty)
(E)publicvoidshow()
(F)publicvoidshow(booleanflag)
(G)protectedvoidfinalize()throwsthrowable
答案:ABCDG
2.上題所定義的類MyClass的構(gòu)造方法MyClass(intx,inty)的目的是使MyClass的成
員變量privateintx,privateinty的值分別等于方法參數(shù)表中所給的值intx,inty。請(qǐng)寫(xiě)出
MyClass(intx,inty)的方法體(用兩條語(yǔ)句):
答案:this.x=xthis.y=y
3.MyClass定義同第一題。
設(shè)publicstaticvoidmain(Stringargs[])方法體如下:
{
MyClassmyclass;
myclass.shovv();
)
編譯運(yùn)行該程序?qū)?huì)有何結(jié)果?
(A)x=0y=0
(B)y=0x=0
(C)x=...y=…(x,y具體為何值是隨機(jī)的)
(D)源程序有錯(cuò)
答案:D(myclass沒(méi)有實(shí)例化)
4.MyClass聲明同第一題。
設(shè)publicstaticvoidmain(Stringargs[])方法體如下:
(
MyClassmyclass=newMyClass(5,10);
myclass.show(false);
)
編譯運(yùn)行該程序?qū)?huì)有何結(jié)果?
(A)x=0y=0
(B)x=5y=10
(C)y=10x=5
(D)y=0x=0
答案:C
5.MyClass定義同第一題。
設(shè)publicstaticvoidmain(Stringargs[])方法體如下:
(
MyClassmyclass=newMyClass(5,10);
myclass.show(false);
)
現(xiàn)在想在main方法中加上一條語(yǔ)句來(lái)釋放myclass對(duì)象,應(yīng)用下面哪條?
(A)myclass=null;
(B)free(myclass);
(C)delete(myclass);
(D)Java語(yǔ)言中不存在相應(yīng)語(yǔ)句
答案:A
6.假設(shè)已經(jīng)編寫(xiě)好了類Classi:
packagemypackage;publicclassClassi{........;)
保存在Classi.java文件中。
現(xiàn)在main方法所在的源程序MainPro.java如下:
importmypackage;
假設(shè)操作系統(tǒng)中的CLASSPATH環(huán)境變量已被設(shè)置為"c:\工作目錄”,而main方法所在
的主類MainPro.java就在c:\工作目錄下,那么,類Classi應(yīng)存放在哪個(gè)目錄中呢?
答案:c:\工作目錄'mypackage
7.定義一個(gè)學(xué)生類student,成員變量有學(xué)號(hào)、姓名、性別、年齡,方法有獲得學(xué)號(hào)、
姓名、性別、年齡;修改年齡。試編寫(xiě)Java主程序,實(shí)例化student類,并測(cè)試其方法。
答:
publicclassstudent{
privateintstu_ID;
privateStringname;
privateStringsex;
privateintold;
student(intid,Stringname,Stringsex,intold){
stu」D=id;
=name;
this.sex=sex;
this.old=old;
}
voidshow_id(){
System.out.println(HthestudentIDis:"+stu_ID);
)
voidshow_name(){
System.out.println(uthestudentnameis:"+name);
}
voidshow_sex(){
System.out.println(Hthestudentsexis:"+sex);
)
voidshow_old(){
System.out.println(,'thestudentoldis:"+old);
)
voidchange_old(intnewyear){
old=newyear;
)
publicstaticvoidmain(Stringargs[]){
studentLee=newstudent(2007070130,"LiMingn,nM",18);
Lee.show_id();
Lee.show_name();
Lee.show_sex();
Lee.show_old();
Lee.change_old(20);
Lee.show_old();
8.根據(jù)下面的要求編程實(shí)現(xiàn)復(fù)數(shù)類Complex。
⑴復(fù)數(shù)類Complex的屬性:
real代表復(fù)數(shù)的實(shí)數(shù)部分
imagin代表復(fù)數(shù)的虛數(shù)部分
(2)復(fù)數(shù)類Complex的方法:
Complex。:構(gòu)造函數(shù),將實(shí)部、虛部都置為0;
Complex(doubler,doublei):構(gòu)造函數(shù),創(chuàng)建復(fù)數(shù)對(duì)象的同時(shí)完成復(fù)數(shù)的實(shí)部、
虛部的初始化,r為實(shí)部的初值,i為虛部的初值;
getReal():獲得復(fù)數(shù)對(duì)象的實(shí)部;
getlmagin():獲得復(fù)數(shù)對(duì)象的虛部;
complexAdd(ComplexNumber):當(dāng)前復(fù)數(shù)對(duì)象與形參復(fù)數(shù)對(duì)象相加,所得的
結(jié)果也是復(fù)數(shù)值,返回給此方法的調(diào)用者;
complexMinus(ComplexNumber):當(dāng)前復(fù)數(shù)對(duì)象與形參復(fù)數(shù)對(duì)象相減,所得
的結(jié)果也是復(fù)數(shù)值,返回給此方法的調(diào)用者;
complexMulti(ComplexNumber):當(dāng)前復(fù)數(shù)對(duì)象與形參復(fù)數(shù)對(duì)象相乘,所得
的結(jié)果也是復(fù)數(shù)值,返回給此方法的調(diào)用者;
toString():把當(dāng)前復(fù)數(shù)對(duì)象的實(shí)部、虛部組合成a+bi的字符串形式,其中a
和b分別為實(shí)部和虛部的數(shù)據(jù)。
答案:
publicclassComplex{
privatedoublereal;
privatedoubleimagin;
Complex(){
real=0;
imagin=0;
)
Complex(doubler,doublei){
real=r;
imagin=i;
)
publicdoublegetReal(){
returnreal;
publicdoublegetlmagin(){
returnimagin;
publicComplexcomplexAdd(ComplexNumber))
real=real+Number.real;
imagin=imagin+Number.imagin;
returnthis;
)
publicComplexcomplexMinus(ComplexNumber){
real=real-Number,real;
imagin=imagin-Number.imagin;
returnthis;
)
publicComplexcomplexMulti(ComplexNumber){
real=real*Number.real;
imagin=imagin*Number.imagin;
returnthis;
)
publicvoidtostring(){
System.out.println(reaI+n+,'H-imagin+,,iu);
publicstaticvoidmain(Stringargs[]){
Complexa=newComplex();
Complexb=newComplex。,4);
Complexc=newComplex(2,3);
a.tostringO;
b.tostringO;
plexAdd(b);
c.tostring();
}
)
9.編寫(xiě)一個(gè)銀行賬戶類。要求存放用戶的賬號(hào)、姓名、密碼、賬戶余額等個(gè)人信息。
類的操作包括存款、取款、查詢賬戶余額、修改密碼等。創(chuàng)建此類的對(duì)象并測(cè)試相應(yīng)的操
作。
答:
importjava.util.Scanner;
publicclassBank{
privateStringaccount;〃貝長(zhǎng)號(hào)
privateStringpassword;〃密碼
privateStringname;〃姓名
privatedoublebalance;〃賬戶余額
Bank(Stringaccount,Stringname))
this.account=account;
=name;
this.balance=0.0;
this.password=Integer.toString(888888);
〃查詢賬戶余額
publicdoublegetBalance(){
returnbalance;
}
//存款
publicvoiddepositMoney(doubleamount){
this上alance=this.balance+amount;〃存入金額力口原金額
)
〃取款
publicvoidwithdrawMoney(doubleamount){
if(amount>this.balance){〃取款金額大于余額
System.out.println("余額不足!”);
)
else{
this.balance=this.balance-amount;〃原金額減去支取金額
)
}
〃修改密碼
publicvoidsetPassword(Stringpassword){
this.password=password;
)
publicstaticvoidmain(String[]args){
Bankcustomer=newBank("6666888866668888”,“Zhang");//初始化賬戶信息
customer.setPassword("123456");〃修改賬戶密碼
System.out.println("歡迎光臨模擬銀行)
Scannerscan=newScanner(System.in);
System.out.print(”請(qǐng)輸入存款金額:");
doubleamount=scan.nextDouble();
customer.depositMoney(amount);
System.out.println("當(dāng)前余額為:"+customer.getBalance()+“元”);
System.out.print(”請(qǐng)輸入取款金額:
amount=scan.nextDouble();
custome匚wilhdrawMoney(amount);
System.out.println("當(dāng)前余額為:"+customer.getBalance()+“元");
}
)
10.先在一個(gè)包中編寫(xiě)類ClassA,要求該類包括4種不同訪問(wèn)權(quán)限的成員變量和方法。
再在另一個(gè)包中編寫(xiě)類ClassB,在該類中編寫(xiě)一個(gè)方法訪問(wèn)ClassA的成員。在程序中實(shí)現(xiàn)
所有可以實(shí)現(xiàn)的訪問(wèn),并說(shuō)明所有不能訪問(wèn)的成員的原因。
答:
packageA;
publicclassClassA{
publicintpubliclnt;
intdefaultlnt;
protectedintprotectedlnt;
privateintprivatelnt;
publicvoidpublicMethod(){
System.out.println("publicMethodn);
)
voiddefaultMethod(){
System.oul.prinUn("defaukMethod”);
)
protectedvoidprotectedMethod(){
System.out.println(HprotectedMethodM);
)
privatevoidprivateMethod(){
System.out.println("privateMethod");
)
1
packageB;
importA.*;
classClassBextendsClassA{
voidaccessTest(ClassAa,ClassBb){
a.publiclnt;
a.defaultlnt;
tectedlnt;
a.privateint;
b.publiclnt;
b.defaultlnt;
tectedlnt;
b.privatelnl;
a.publicMethod();
a.defaultMethod();
tectedMethod();
a.privateMethod();
b.publicMethod();
b.defaullMethod();
tectedMethod();
b.privateMethod();
備注:上述代碼只是示意,請(qǐng)讀者自行完善,并在ClassB中添加main方法,或者再定義一
個(gè)主類。親自上機(jī)編譯、運(yùn)行一下,體驗(yàn)4種不同訪問(wèn)權(quán)限的作用。
第6章
1.B
2.C
3.接口中可以有的語(yǔ)句為;(從ABCD中多選)
一個(gè)類可以繼承―父類,實(shí)現(xiàn)—接口;一個(gè)接口可繼承一接口;(從EF中單選)
接口—繼承父類,—實(shí)現(xiàn)其它接口;實(shí)現(xiàn)某個(gè)接口的類—被該接口類型引用;(從
GH中單選)
(A)intx;
(B)inty=0;
(C)publicvoidaa();
(D)publicvoidbb(){System.out.println("hello");}
(E)僅一個(gè)
(F)一個(gè)或多個(gè)
(G)可以
(H)不可以
答案:BC;E;F;F;H;H;G
4.解釋this和super的意義和作用。
答:Java中,this
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 培訓(xùn)機(jī)構(gòu)辦學(xué)章程及制度
- 4s店維修技術(shù)培訓(xùn)制度
- 舞蹈培訓(xùn)班上課制度
- 公司外出培訓(xùn)用餐標(biāo)準(zhǔn)制度
- 培訓(xùn)機(jī)構(gòu)內(nèi)部控價(jià)制度
- 關(guān)于外部培訓(xùn)管理制度
- 武術(shù)培訓(xùn)班交費(fèi)請(qǐng)假制度
- 健康教育培訓(xùn)工作制度
- 金藍(lán)領(lǐng)培訓(xùn)項(xiàng)目制度
- 21世紀(jì)不動(dòng)產(chǎn)培訓(xùn)制度
- 直覺(jué)泵和其他思考工具
- GB/T 18109-2024凍魚(yú)
- 腎性骨病的治療與護(hù)理
- 建筑與小區(qū)管道直飲水系統(tǒng)技術(shù)規(guī)程
- 消防應(yīng)急預(yù)案電子版
- 年產(chǎn)30萬(wàn)噸木薯燃料乙醇項(xiàng)目一期工程(年產(chǎn)15萬(wàn)噸)可行性研究報(bào)告
- 肺炎性假瘤誤診為肺癌的HRCT表現(xiàn)及淺析
- 潰瘍性結(jié)腸炎中西醫(yī)結(jié)合診療指南
- (正式版)SHT 3046-2024 石油化工立式圓筒形鋼制焊接儲(chǔ)罐設(shè)計(jì)規(guī)范
- JJF 1033-2023 計(jì)量標(biāo)準(zhǔn)考核規(guī)范
- 《膽石通利膠囊新》課件
評(píng)論
0/150
提交評(píng)論