Java語言入門基礎(chǔ)_第1頁
Java語言入門基礎(chǔ)_第2頁
Java語言入門基礎(chǔ)_第3頁
Java語言入門基礎(chǔ)_第4頁
Java語言入門基礎(chǔ)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第2章Java語言基礎(chǔ)1. 標示符和關(guān)鍵字在定義和使用方而有何區(qū)別?【答】宦義方而:標示符是用戶泄義的、以字母開頭的字母數(shù)字序列,關(guān)鍵字是由Java語 言泄義的、具有特定含義的英文單詞。使用方面:標示符用于命冬變量、常量、類、對象等元素,每一個關(guān)鍵字都有特泄的含 義,不能被賦予別的含義。2. Java語言的基本數(shù)拯類型有哪些?引用數(shù)據(jù)類型有哪些?【答】基本數(shù)據(jù)類型有:整數(shù)類型byte、short、int、long,浮點數(shù)類型float、double,字符 類型char,布爾類型boolean;引用數(shù)據(jù)類型包括數(shù)組(array)、類(class)和接口(interface)3. 試分析基本數(shù)據(jù)類

2、型與引用數(shù)據(jù)類型的主要特點,并說明使用這兩種變量有哪些差別? 【答】基本數(shù)據(jù)類型的變量保存數(shù)據(jù)值,而引用數(shù)據(jù)類型的變量保存地址。4. 算術(shù)運算、關(guān)系運算、邏輯運算和位運算各有哪些運算符?【答】算術(shù)運算:單目運算符有+ (正)、-(負)、+ (自增)、一一(自減),雙目運算符 有+ (加)、(減)、* (乘)、/ (除)、% (取余)關(guān)系運算:=(等于)、!=(不等于)、 (大于)、 (小于)、=(大于等于)、=(小 于等于)都是雙目運算邏輯運算:&(與)、I (或)、?。ǚ牵耍ó惢颍?、& (條件與)、II (條件或),貝中!是 單目運算,其它都是雙目運算位運算: (非)、& (與)、I (

3、或)、八(異或)、 (左移位)、 (右移位)、 (無 符號移位)5. 程序中為什么需要常雖和變量?聲明常量或變呈:時,為什么必須給出英所屬的數(shù)據(jù)類型? 【答】在程序中使用的數(shù)據(jù)大多需要經(jīng)常變化,用常量值表示顯然不夠,因此每一種算法語言都提供常量和變量來存儲數(shù)據(jù)。為了確左常雖或變量的數(shù)據(jù)性質(zhì)、取值范圍、以及它們占用的內(nèi)存單元的字節(jié)數(shù)和它 們參加的合法運算和操作。6. 什么是變量的作用域,聲明變量時,如何確立變量的作用域?【答】變量的作用域是指其作用范圍。變量聲明的位置決泄了它的作用域7. 設i是一個整數(shù)類型變量,寫出下列問題對應的表達式?(1)判斷i為奇數(shù)或偶數(shù);【答】i%2=0取值為true時

4、是偶數(shù),否則是奇數(shù)(2)判斷i的值是否在09之間;【答】(i0) & (i9)8. 設ch是一個字符變量,寫出下列問題對應的表達式(1)判斷ch是一個十進制的數(shù)字字符(2) 判斷ch是一個十六進制的數(shù)字字符(3) 判斷ch是一個大寫字母(4) 判斷ch是一個英文字母,不論大寫和小寫(5) 如何將一個十進制的數(shù)字字符ch轉(zhuǎn)換成對應的整數(shù)類型值(6) 如何將一個十六進制的數(shù)字字符ch轉(zhuǎn)換成對應的整數(shù)類型值9. 說明for、while.和do-while三種循環(huán)語句的特點和區(qū)別?While語句的特點:“先判斷后執(zhí)行”,當條件滿足時執(zhí)行循環(huán)體Do-while語句的特點:“先執(zhí)行后判斷”,先執(zhí)行循環(huán)體,

5、在判斷條件是否滿足 For語句的特點:“先判斷后執(zhí)行X但for語句將循環(huán)控制變量初始值、循環(huán)條件和變 量的變化規(guī)律都以表達式形式寫在循環(huán)體之前。10. 分別用for, while, do-while三種循環(huán)語句計算一個正數(shù)的階乘(1 )for (i=Li=10,i+) int Sum=loSum=Sum*io (2) inti=Lwhile (i=10) int Sum=loSum=Sum*ioi+o int i=Sum=lodoSum=Sum*ioi+o )while(i=10)o11輸出以下數(shù)字的形式:(DO00001 1101220123K解答采用二重循環(huán)的程序如下。public cla

6、ss Phalanxpublic static void main(String argsJ)int n=4o階數(shù)for (int i=0 ivn。i+)for (int j=0a jvn j+)Systeniout.print(N ”+(0?:%System.out.printlnOo(2)輸出下列形式的數(shù)字三角陣(當n=4時)。1121123211234321K解答習采用二重循環(huán)的程序如下。public class Towerpublic static void main(String argsJ)int n=4o行數(shù)for (int i=lo iv=m i+)for(intj=lo j=

7、n-i. j+)前導空格System. ouLprim(”)。for (int j=l0 j0o j-)System, out. print ”+j)。System.out.printlnOo12. 下列程序希望用for語句求出1】1累加和并顯示,請問程序有錯誤嗎?錯在哪里?輸出 結(jié)果i和s的值分別是多少?int i=Ln=10,s=0ofor(i=Li=nj+)0s+=ioSystem.out.pointlnCSum= 1+n+=+s)有錯誤,正確的如下int i=l ji=10,s=0ofor(i=Li=nj+)s+=ioSystem.out.pointlnCSum= 1+n+=+s)。1

8、3. 編程驗證哥徳巴赫猜想。哥徳巴赫猜想:(1) 任何大于2的偶數(shù)都可以表示為2個素數(shù)之和,如16=3+13, 16=5+11(2) 任何大于5的奇數(shù)都可以表示為3個素數(shù)之和,如11=2+2+7.11=3+3+5E解答1程序如下。public class Goldbachstatic final int MAX=30。數(shù)據(jù)范用/存放素數(shù)的一維數(shù)組素數(shù)個數(shù),即數(shù)組的實際元素個數(shù)輸出n的哥徳巴赫算式static int prime=nullo static int number。public Goldbach(int n) if (prime=null) init()oif (n%2=0)偶數(shù)in

9、t i=0owhile (inumber & primei=n/2)(if (isPrime(n-primei) System.out.print(n+,=H+primei+,+,+(n-primei)+H )o i+else奇數(shù)int i=0owhile (inumber & primei=n/3)intj=i,如果j=0,則會出現(xiàn)重復的算式while (jnuniber & primej=n/3)if (isPrime(n-primei)-prime|j)System.out.print(n+n=,l+primei+H+,+primej+,+,+(n-primei-primej)+, j卄

10、“i+。)System.out.println()o已知的最小素數(shù)素數(shù)個數(shù)/下一個素數(shù)應存放的數(shù)組下標位置從最小奇數(shù)開始測試,所有偶數(shù)不需測試public static void init()prime = new int30o prime0=2o number=l int i=loint k=3o初始化數(shù)組,篩選法求素數(shù)doint j=0owhile (jnumber) & (k % primej!=O)用已知素數(shù) primcj測試 kj+ok是素數(shù)將k添加到數(shù)組prime中測試下一個奇數(shù)是否是if (j=number)primei=ka i+o number+u k+=2。素數(shù))while

11、(kMAX)o output()opublic static void output()輸出素數(shù)System.out.printlnCAll primes in 2-H+MAX+n are:)for (int i=0o ivnumber。i+)System, out. prim(” H+primei)o if(i+l)%10=0)System.out.println()o/每行寫 10 個數(shù))System.out.println(Knnumbcr=M+number)0public static boolean isPrime(int k) 判斷 k 是否為素數(shù),即在 prime 中查找 k 值

12、 boolean yes=falseoint i=0awhile (!yes & i=numbcr & primei=k)if (primei=k)yes=trueoelse i+oreturn yeso public static void main(String argsJ)for(int i=4o iGoldbach.MAX0 i+=2)new Goldbach(i)ofor(int i=7o iGoldbach.MAXo i+=2) new Goldbach(i)o程序運行結(jié)果如下:All primes in 2-30 are:235711number=10偶數(shù)4=2+26=3+38=

13、3+510=3+710=5+512=5+714=3+1114=7+716=3+1316=5+1118=5+1318=7+1120=3+1720=7+1322=3+1922=5+1724=5+1924=7+1726=3+2326=7+1928=5+2328=11+17奇數(shù)7=2+2+39=2+2+59=3+3+311=2+2+711=3+3+513=3+3+715=2+2+1115=3+5+717=2+2+1317=3+3+1119=3+3+1319=3+5+1121=2+2+1721=3+5+1323=2+2+1923=3+3+1725=3+3+1925=3+5+1727=2+2+2327=3

14、+5+1929=3+3+2329=3+7+19不能有重復表達式,例如19=3+3+1319=3+5+1121=2+2+1721=3+5+1321=7+7+71317 19 23 2922=11+1124=11+1326=13+1315=5+5+517=5+5+721=3+7+1121=5+5+1123=3+7+1323=5+5+1325=5+7+1325=7+7+1127=3+7+1727=5+5+1729=5+5+1929=5+7+1719=5+3+1121=3+7+1121=5+3+1321=7+7+723=5+7+1127=7+7+1321=5+5+1121=7+3+1114. Java

15、的數(shù)組比C+的數(shù)組有哪些優(yōu)越之處?【答】Java語言不支持C卄的指針類型,對數(shù)組的操作只能按照數(shù)組方式,不能使用指針。 Java的數(shù)組都是動態(tài)數(shù)組,并且是引用數(shù)拯類型,提髙了安全性和簡單性。另外,Java語 言具有資源回收機制,能夠自動收回不再使用的資源,一般情況下程序不需要歸還數(shù)組所占的內(nèi)存空間。15. 作為引用數(shù)據(jù)類型,數(shù)組變量與基本數(shù)據(jù)類型的變量使用時有哪些區(qū)別?【答】數(shù)組變量與基本數(shù)拯類型變量不同點在于,存儲單元的分配方式不同,兩個變量之間 的賦值方式也不同。基本數(shù)據(jù)類型變量獲得存儲單元的方式是靜態(tài)的,聲明了變量后系統(tǒng)就 為變量分配了存儲單元,就可以對變量賦值。兩個變量之間的賦值是值本

16、身。數(shù)組變量的引用賦值,數(shù)組變量保存的是數(shù)組的引用,即數(shù)組占用的一片連續(xù)存儲空間 的首地址及長度特性。當聲明一個數(shù)字變量而未申請空間時,變量是未初始化的,沒有地址 及特性值。只有申請了存儲空間,才能以下標表示數(shù)組元素。16. 求一組數(shù)中的最大值和最小值?!敬稹砍绦蛉缦拢簆ublic class Zuizhi public static void main(String args)/TODO自動生成方法存根int array=new int100o for(inti=U i=30o +i)初始化數(shù)組array! ij=ioint max=array( 1 h /保存最大值 int min=arr

17、ayljo /保存最小值 for(int j=2o j=30o +j)max=Math.max(max arrayj)。 min=Mathnin(min arrayj)oSystem.out.printlnC1 該數(shù)組最大值為:M+max)oSystem.out.println(H該數(shù)組最小值為:”+min)。運行結(jié)果如下:該數(shù)組最大值為:30該數(shù)組最小值為:117. 采用一維數(shù)組輸出楊輝三角形。程序如下:public class Yanghui 1public static void main(String args)(int n=10o/n表示行數(shù)int table = new intn+

18、lo每行第1個數(shù)都為1 控制輸岀n行tableO=l ofor (int i=lo i0。j-)tablej=tablej-1 +tablej o18. 輸出下列方陣:(1)輸出如下形式的數(shù)字方陣(當】匸4時):12673581349121410111516程序如下:Public class J matPublic static void main(String args)(2)輸出如下形式的數(shù)字方陣(當1匸4時):12510436119871216151413K解答采用二維數(shù)組的程序如下。public class J matpublic static void main(String arg

19、s)int n=4oint mat = new intnnoint k=lofor (int i=0o in i+)for (int j=0o j=0o j-) matij = k+ofor (int i=0o imat.lengtho i+)for (int j=0a jmati.lengths j+)System, out. print(” u+mati|j)oSystem.out.println()o19. 找岀一個二維數(shù)組的鞍點,即該位置的元素在該行上最大, 點OK命題一個二維數(shù)組如果有鞍點,那么它只有一個鞍點。K證明反證法。設該二維數(shù)組已有一個鞍點,為則有=MiJ(1)即i行上的所有

20、元素均小于j列上的所有元素。假設有另一個鞍點Mx,y,由(1)式知= Mxj(3)Mx,y應在該列上最小,有Mx,y = Mi,y(4)根據(jù)(2)式,顯然(3)和(4)式是不可能同時成立的。 因而假設有另一個鞍點Mx,y是不成立的。由此證明。 K解答采用二維數(shù)組的程序如下。public class Dortpublic static void main(String args)intfni mat = 1.23,45,ofor (int i=0c imati+)(for (int j=0o jvmalienghc j+)System.out.printC n+matij)oSys

21、tem.out.printlnOoboolean find = falsecint row=0.int max=0owhile (!find & rowmat.length)(max=0o輸出二維數(shù)組元素i、j是行、列下標在列上最小。也可能沒有暗/輸出二維數(shù)組元素嘰j是行、列下標找到鞍點標記第1行下標/記錄為前行最大值的列下標/初始設每行第1列值最大在row行上找最大值for(intj=L jnial|row| max |)/mat| row max 為該行最大值max = j boolean yes = lruea再判斷 malrow|max是否在列上最小int j=0while (yes & jmat.length

溫馨提示

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

最新文檔

評論

0/150

提交評論