




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Java 程序設計基礎課后習題參考答案1 .關于 JavaApplication 的入口方法 main()的檢驗:main()方法的參數名是否可以改變?main()方法的參數個數是否可以改變?該方烝名是否可以改變?參考答案:(1)main()方法的參數名可以改變。(2)main()方法的參數個數不可以改變。(3)該方法名不可以改變。2 .當一個程序沒有 main()方法時,能編譯嗎?如果能編譯,能運行嗎?參考答案:當一個程序沒有 main()方法是,是可以編譯通過的,但是不能給運行,因為找不到一個主函數入口。3 .下列語句能否編譯通過?bytei=127;bytej=128;longl1=99
2、9999;longl2=9999999999;參考答案:bytei 和 longl1 可以編譯通過。而 bytej 和 10ngl2 超出自身數據類型范圍,所以編譯失敗。4 .下列語句能否編譯通過?floatf1=3.5;floatf2=3.5f;參考答案:java 中浮點型的數據在不聲明的情況下都是 double型的,如果要表示一個數據是 float 型的,必須在數據后面加上“瞰”f 因此,floatf1 無法編譯通過。5 .驗證 int 和 char,int 和 double 等類型是否可以相互轉換。參考答案:(1)char 類型可以轉換為 int 類型的,但是 int 類型無法轉換為 c
3、har 類型的;(2)int 可以轉換為 double 類型的,但是double 類型無法轉換為 int 類型的。6 .計算下列表達式,注意觀察運算符優先級規則。若有表達式是非法表達式,則指出不合法之處且進行解釋。4+5=6*2(4=5)/6(3)9%2*7/317(4)(4+5)=10%2參考答案:表達式(2)為不合法表達式,只能將值賦值給一個變量,因此其中(4=5)將 5 賦值給 4 是不合法的。7 .下列()是合法的 Java 標識符。(1) Counterl(2)$index,(3) name-7(4)_byte(5) larray(6)2i(7) try(8)integer參考答案:
4、Java 標識符由數字,字母和下劃線(_),美元符號($)組成。 在 Java 中是區分大小寫的。 而且還要求首位不能是數字。最重要的是,Java 關鍵字不能當作 Java 標識符。因此,(1)、(4)、(5)、(8)是合法標識符。8 .下列各項中定義變量及賦值不正確的是()(1) intI=32;(2) floatf=45.0;(3) doubled=45.0;參考答案:(2)不正確,選項(2)定義 float 類型時必須在數據后面加上“F 戮f9 .Java 語言中,整型常數 123 占用的存儲字節數是()1248參考答案:正確選項是(3),Java 語言中,默認整型數占用 4 個字節數。
5、10 .以下代碼的編譯運行結果是publicclassTestpublicstaticvoidmain(String 口 args)intage;age=age+1;System.out.println(theageis+age);(1)編譯通過,運行無輸出(2)編譯通過,運行結果為“theageis1”(3)編譯通過但運行時出錯(4)不能通過編譯參考答案:(4)為正確選項。Java 在使用變量前應該先初始化。11 .寫出下列表達式的運行結果(1) 6+33&6=6&124(5)7+124&12-42參考答案:(1)false;(2)6;(3)12;(4)fale;(5
6、)false;(6)5;1 .編碼驗證 i+和+i 的區別。參考答案:+i 和 i+在單獨使用時,就是 i=i+1。而 a=+i,相當于 i=i+1;a=i;(先 i=i+1,再使用 i 的值),而 a=i+,相當于a=i;i=i+1;(先使用 i 的值,再 i=i+1)。2 .寫出下面表達式的結果(1) (2)(3)(4) 參考答案11.6666666666666667223 .考慮如下的 Test.java,并指出錯誤原因。程序清單:Test.javaclassTestpublicstaticvoidmain(String 口 args)byteb=5;b=(b-2);System.out
7、.println(b);參考答案:b=(b-2);錯誤,在進行 b-2 時,運算結果類自動提升為 int,而 b 是 byte類型, 編譯的時候會報錯, 因為存在高類型數據向低類型數據轉化的風險。而byteb=5;是正確的,因為在編譯的時候就能夠確定 5 在 byte 允許的范圍內,虛擬機在編譯時做了一定的優化處理。5/35/3.05%35%-3(D(2)(3)(4)4 .考慮一下對于 ifelse語句,還有沒有更簡潔的寫法。例如:if(x0)y=x;elsey=-x;可以簡寫成什么?參考答案:y=x0?x:-x;5 .給定 N,編程實現打印 N*N 的乘法表。參考答案:publicstati
8、cvoidmain(Stringargs)for(inti=0;i9;i+)for(intj=0;ji+1;j+)b=j+1;c=a*b;System.out.print(a+*+b+=+c+);System.out.println();6 .將下列語句轉換成 Java 代碼:(1)如果 b1 為真,打印“one:否則打印“two:(2)如果 b1 為假并且 b2 為真,打印“one;否則打印“two:如果 b1 為假,并且如果 b2 為真則打印one如果 b2 為假則打印“two:否則打印“three”參考答案:(1)if(b1=true)System.out.print(one);else
9、System.out.print(two);(2)if(b1=false&b2=true)System.out.print(one);elseSystem.out.print(two);(3)if(b1=false&b2=true)System.out.print(one);elseif(b1=false&b2=false)System.out.print(two);elseSystem.out.print(three);7 .找出如下各項中的語法錯誤:(1)for(intk=0;k100;k+)System.out.println(k)(2)for(intk=0;k1
10、00;k+);System.out.println(k);(3)intk=0whilek100System.out.println(k);k+);(4)intk=0;doSystem.out.println(k);k+;whilek100;(1)for(intk=0;k100;k+)System.out.println(k);(2)for(intk=0;k100;k+)System.out.println(k);(3)intk=0;while(k100)System.out.println(k);k+;(4)intk=0;doSystem.out.println(k);k+;while(k10
11、0);8 .寫出三個不同的循環for、while 和 do-while 循環,打印出從 0(包括 0)開始直到 1000 的所有 10 的倍數。參考答案:intn=0;while(n=1000&n%10=0)System.out.print(n);n+;(2)intn=0doif(n%10=0)System.out.print(n);n+;while(n=0);if(read.hasNextInt()n=read.nextInt();if(n0)continue;break;elseread.next();for(inti=0;in;i+)for(intj=1;jn-i;j+)Syst
12、em.out.print();for(intj=0;ji*2+1;j+)System.out.print(*);for(intj=1;j=0;i-)for(intj=1;jn-i;j+)System.out.print();for(intj=0;ji*2+1;j+)System.out.print(*);for(intj=1;jn-i;j+)System.out.print();System.out.println();10 .寫出下面程序的輸出結果:publicclassTestWhilepublicstaticvoidmain(Stringargs)inta=0;while(+a=100)
13、if(a%9)=0)System.out.print(a+t);System.out.println();參考答案:9182736455463728190991 .比較 String 和 StringBuffer 的區別,并說明什么時候適合使用 StringBuffer。在 Java 中,String 被完全當成一個對象,一個 String 對象是組成這個字符串的字符序列, 加上用來操作字符串的方法。 字符串一旦被創建,就不能改變它的值。StringBuffer 類同樣能夠表示一用字符。但是,與 String 類不同,一個 StringBuffer 類能夠被修改,StringBuffer 類維
14、護的是一個字符緩沖區,在必要時它的長度能夠增長和縮短。對任何涉及修改字符串的任務,應該用StringBuffer 代替 String。2 .說明=和 equals 的區另 I,并舉例二=操作比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量在堆中存儲的地址是否相同, 即棧中的內容是否相同。equals 操作表示的是兩個變量是否是對同一個對象的引用,即堆中的內容是否相同。=比較的是兩個對象的地址,而 equals 比較的是兩個對象的內容。3 .假定s是字符串字面值“exercise找出下列表達式有語法錯誤的并改正:(1)s.charAt(hello)(2)s.indexOf(er)(3
15、)s.substring(5)(4)s.lastIndexOf(er)(5)s.length()其中(1)和(4)表達式有語法錯誤。(1)charAt(int)參數是 int 類型的;(4)lastIndexOf()中的參數應該為 int 或者String,這里的 er 既不是 int 也不是 String04 .給定一個句子,統計單詞中字母的出現次數(字母不區分大小寫,全部按照小寫計算)。參考答案:參考代碼importjava.util.Scanner;publicclasscountCharpublicstaticvoidmain(Stringargs)/輸入需要檢測的字符串System.
16、out.print(InputString:);Scannerstr0=newScanner(System.in);Strings=str0.next();System.out.println(theStringis:+s);5 =s.toLowerCase();/將字符串轉換為小寫/輸入需要統計的字符System.out.print(Inputchar:);Scannerstr1=newScanner(System.in);Strings1=str1.next();charc=s1.charAt(0);System.out.println(Inputcharis:+c);intcount=0
17、;/統計出現次數變量for(inti=0;is.length();i+)charch=s.charAt(i);if(ch=c)count+;System.out.println(Thetimesis:+count);5 .執行 Strings=newString(xyz);這一語句, 共創建幾個 String對象?參考答案:兩個。xyz本身是一個字符串對象,而newString()也會創造一個字符串對象。6 .對于語句 Strings=hello;下面那個表達式是合法的?(1)s+=5;(2)charc=s1(3)intlen=s.length;(4)Stringt=s.toLowCase;參
18、考答案:(1)為合法的。7. String和StringBuffer中的哪個方法能改變調用該方法的對象自身的值?(1)String 的 charAt()(2)String 的 replace()(3)String 的 toUpperCase()(4)StringBuffer 的 reverse()參考答案:(4)StringBuffer 的 reverse()以改變對象自身的值。8.假定 s 是字符串字面值“exercise 計算下面每個表達式的值:(1)s.charAt(5)(2)s.indexOf(er)(3)s.substring(5)(4)s.lastIndexOf(,e?)(5)s.
19、length()(Di;(2)2;(3)ise;(4)0;(5)8;9 .寫出下面程序的輸出結果:publicclassStringExamplepublicstaticvoidmain(Stringargs)Stringstr=newString(abcd);Stringstr1=abcd;Stringstr2=newString(abcd);System.out.println(str=str1);System.out.println(str=str2);System.out.println(str1=str2);System.out.println(str.equals(str1);Sy
20、stem.out.println(str.equals(str2);System.out.println(str1.equals(str2);System.out.println(str=ern();System.out.println(str1=ern();System.out.println(ern()=ern();Stringhello=hello;Stringhel=hel;Stringlo=lo;System.out.println(hello=hel+lo);System.out.println(hello=hel+lo)
21、;falsefalsefalsetruetruetruefalsetruetruetruefalse10 .編寫程序,將字符串“aabbcdef 和每個字符作加 2 操作,最后結果為“ccddefghB”參考答案:參考代碼publicclassCharpublicstaticvoidmain(Stringargs)Strings=aabbcdefg;charch=s.toCharArray();for(inti=0;ich.length;i+)chi=(char)(chi+2);)ch.toString();System.out.println(ch);)1 .編寫一個程序, 計算出前 10
22、個平方數(例如 1,4,9,16),并將這10 個數保存到一個整型數組中,將數組中的所有元素輸出到控制臺,驗證程序是否正確。要確保數組有 10 個元素,并且元素值的范圍是 1100.參考答案:publicstaticvoidmain(Stringargs)intb=newint10;for(inti=1;i11;i+)bi=i*i;)for(inti=0;i10;i+)System.out.println(ai);)2 .聲明一個數組, 其中的元素為 37,47,23,-5,19,56,然后創建一個新數組,將前一個數組的內容復制到后一個數組中。參考答案:publicstaticvoidmain
23、(Stringargs)inta=37,47,23,-5,19,56);intb=newinta.length;for(inti=0;ia.length;i+)bi=ai;)for(intj=0;jb.length;j+)System.out.print(bj+);)3 .從命令行輸入 5 個整數到數組 a 中,分別輸入 33、55、22、66 及 77。求偶數的個數及其和。參考答案:示例代碼:publicstaticvoidmain(Stringargs)inta 口=newint5;intcount=0;intsum=0;for(inti=0;ia.length;i+)System.out
24、.print(請輸入數組中的元素:);Scannerread=newScanner(System.in);ai=read.nextInt();if(i%2!=0)count+;sum=sum+ai;)System.out.println(偶數個數是:+count);System.out.println(偶數的和是:+sum);)4 .從命令行輸入一個字符串“JavaServlet 將每個字符存入 a 數組(1)大寫字母有幾個?分別是那幾個?(2)小寫字母有幾個?分別是那幾個?(3)將小寫字母轉換成大寫字母,大寫字母轉換成小寫字母。publicstaticvoidmain(Stringargs)
25、if(args0!=)StringinputString=args0;intcountLower=0;intcountUpper=0;StringstrLower=;StringstrUpper=;for(inti=0;iinputString.length();i+)charc=inputString.charAt(i);if(Character.isUpperCase(c)countUpper+;strUpper+=c+;elseif(Character.isLowerCase(c)countLower+;strLower+=c+;)System.out.println(大寫字母有+cou
26、ntUpper+”個,分別是:+strUpper);System.out.println(小寫字母有+countUpper+”個,分別是:+strLower);)5 .閱讀下面代碼:int 口 ages=newint10;System.out.println(ages9);下面關于上面兩行代碼的說法哪一個正確的?(1)編譯時發生錯誤(2)編譯通過,運行時發生錯誤,因為局部變量在沒有初始化情況下,不能使用(3)編譯通過,執行之后向控制臺輸出結果為 0(4)編譯通過,執行時提示發生數組越界的錯誤參考答案:(3)為正確選項。6 .閱讀下面代碼:publicclassAClasspublicstati
27、cvoidmain(Stringargs)String 口 msg=one,two,three,four;if(args.length=0)System.out.println(Noarguments);elseSystem.out.println(msgargs.length+arguments);下面哪個選項的說法是正確的?(1)該代碼無法編譯通過(2)不帶任何參數運行該程序時,會拋出NullPointerException 異常(3)分別帶 0 個參數、3 個參數運行該程序時,會打印Noarguments 和 twoarguments(4)分別帶 0 個參數、3 個參數運行該程序時,會打
28、印Noarguments 和 fourarguments參考答案:(4)為正確選項。6.從命令行輸入八個參數,并以氣泡法排序后保存在 a 數組中,然后再輸入一個查找鍵值 Key,按順序查找判斷該鍵值是否存在與 a 數組中。參考答案:參考代碼:publicstaticvoidmain(Stringargs)inti,j,t,temp;intarray=newint8;Systemout.println(輸入 8 個整數:);/*輸入 8 個整數*/for(i=0;iarray.length;i+)Systemout.print(請輸入:);Scannerread=newScanner(Syste
29、min.);arrayi=read.nextInt();/*冒泡排序*/for(i=0;ii;j-)if(arrayjarrayj-1)t=arrayj;arrayj=arrayj-1;arrayj-1=t;/*輸出排序后白數組元素*/for(i=0;iarray.length;i+)Systemout.print(arrayi+);Systemout.println(輸入一個整數作為鍵值 Key:);Scannerread=newScanner(Systemin.);temp=read.nextInt();for(i=0;iarray.length&temp=arrayi;i+)/*
30、在排序后的數組中查找*/if(temp=arrayi)Systemout.printf(array%d 是 您 所 找 的數.n,i);/*在數組中有可能有相等的元素*/elseif(temp!=arrayi-1)Systemout.printf(數組中沒有您想找的數.);/*數組中沒有所輸入的數*/8.現有一個長度為49的整型數組a49,不重復的將1-50之中49個數依次賦值給該數組, 編寫程序找出沒有放進該數組的是哪個數?publicstaticintfindNum(inta)intnumFound=0;Arrays.sort(a);System.out.println(Arrays.to
31、String(a);for(inti=0;i50;i+)if(ai!=(i+1)numFound=i+1;break;returnnumFound;1 .指出下面聲明中的語法錯誤(如果有)。記住,域聲明的某些部分是可選的(1)publicbooleanisEven;(2)privatebooleanisEven;(3)privatebooleanisOdd;(4)publicbooleanisOdd;(5)stringS;(6)privatebooleaneven=0;privateStrings=helloWorld;(3)和(4)均存在變量名命名錯誤;(5)string 并不是一個類型,應為 String。(6)布爾類型變量的值應該為“出或者”false,不應該為整型。(7)helloWorld 不是一個字符串, 必須用雙引號, 如: helloWorld2 .寫出下列實例變量的聲明:(1)名為 bool 的私有 boolean 型變量,初始值為真。(2)名為 str 的公共 string 型變量,初始值為“hello。(3)名為 nEmployees 的私有 int 型變量,沒有初始值。(1)privateBooleanbool=true;(2)publicStringstr=hello”;(3)privateintnEmploy
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025室內墻面涂料合同范本
- 人民醫院傳染病樓智能化提升工程項目技術規范書
- 2025混凝土廠租賃經營合同示范文本
- 2025年關于委托授權與委托合同的差異有哪些
- 2024年收費的生產服務項目資金籌措計劃書代可行性研究報告
- 2025年中國工程建設項目合同條件的特色
- 2025企業聘請勞務合同的
- 2025汽車銷售項目首付分期付款合同
- 2025橋梁混凝土澆筑工程勞務承包合同
- 《疾病常識講解》課件
- 陜西省2024年中考語文現代文閱讀真題
- 2025屆高考語文二輪復習:文言文知識點與答題技巧匯編 講義
- Unit 5 Here and now Section A Grammar 說課稿 2023-2024學年人教版英語七年級下冊
- 地下綜合管廊建設項目可行性研究報告
- 基于多源異構數據的地質知識圖譜構建與應用
- 2024年戰略規劃咨詢服務合同
- 2024年領導干部任前廉政知識考試測試題庫及答案
- 《公共資源交易主體信用評價實施指南》編制說明
- 2024年度山東省國家電網招聘之管理類測試卷(含答案)
- 煤礦防突專項設計(樣本)
- 紹興銀行社會招聘真題
評論
0/150
提交評論