Java程序設(shè)計案例教程(第二版)周怡、張英主編第4章-Java流程控制-課后習(xí)題答案_第1頁
Java程序設(shè)計案例教程(第二版)周怡、張英主編第4章-Java流程控制-課后習(xí)題答案_第2頁
Java程序設(shè)計案例教程(第二版)周怡、張英主編第4章-Java流程控制-課后習(xí)題答案_第3頁
Java程序設(shè)計案例教程(第二版)周怡、張英主編第4章-Java流程控制-課后習(xí)題答案_第4頁
Java程序設(shè)計案例教程(第二版)周怡、張英主編第4章-Java流程控制-課后習(xí)題答案_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

習(xí)題4一、選擇題1.下列語句執(zhí)行后的輸出結(jié)果是__A____。if(6<2*5) System.out.print("Hello");System.out.print("EveryOne");A.HelloEveryOne B.Hello C.EveryOne D.One2.下列語句執(zhí)行后,k的值是__C____。inti=6,j=8,k=10,m=7;if(i>j||m<k--)k++;elsek--;A.12 B.11 C.10 D.93.下列循環(huán)語句的循環(huán)次數(shù)是___D___。inti=5;do{System.out.println(i--);i--;}while(i!=0);A.0 B.1 C.5 D.無限4.下列代碼片段執(zhí)行之后,輸出的結(jié)果為__C___。intx=12,m=11,y=13;inttemp=x>y?x:y;temp=temp>m?temp:m;System.out.print]n(temp);A.11 B.12 C.13 D.15.下列關(guān)于switch語句的描述中,正確的是__D____。A.退出switch語句的唯一途徑是執(zhí)行break語句B.switch語句中case和default子句都可以有多個C.switch語句中case子句的語句序列中一定要包含break語句D.switch語句中default子句可以省略6.執(zhí)行for(i=1;i<=10;i++)循環(huán)后,i的值為___C___。A.1B.107.下列關(guān)于for循環(huán)和while循環(huán)的說法中__A___是正確的。A.while循環(huán)能實現(xiàn)的操作,for循環(huán)也都能實現(xiàn)B.while循環(huán)判斷條件一般是程序結(jié)果,for循環(huán)判斷條件一般是非程序結(jié)果C.兩種循環(huán)任何時候都可替換

D.兩種循環(huán)結(jié)構(gòu)中循環(huán)體都不可以為空8.給出下列的代碼,___C__行在編譯時可能會有錯誤。①

publicvoidmodify(){②

inti,j,k;③

i=100;④

while(i>0){⑤

j=i*2;⑥

System.out.println("Thevalueofjis"+j);⑦

k=k+1;⑧

}⑨

}A.line4 B.line6 C.line7 D.line89.執(zhí)行如下程序代碼后,變量c的值是___C____。inta=0,c=0;do{--c;a=a-1;}while(a>0);A.0 B.1C.-1D.死循環(huán)10.下列關(guān)于for語句的描述錯誤的是____A____。A.在for語句中定義的變量,可以在for語句之外的語句中使用B.循環(huán)變量的值可以由大到小變化C.for語句中的循環(huán)語句體有可能一次都不執(zhí)行D.for語句中的3個表達式都可以省略二、填空題1.在switch語句中,表達式的值必須是____整型(整型,短整型)____或者__字符型(字符型,字節(jié)型)____類型的數(shù)據(jù)。2.在__do...while______語句形式中,不論表達式的值是true還是false,循環(huán)體中的語句至少被執(zhí)行一次。3.___continue_____語句可以終止當(dāng)前一輪的循環(huán),不再執(zhí)行其下面的語句,直接進入下一輪的循環(huán);___break_____語句通可以使程序從一個語句體的內(nèi)部跳出去,繼續(xù)執(zhí)行該語句體下面的語句。4.對于下面代碼,輸出的第7個整數(shù)是___18_____,共有____9____行輸出,如果將i++改為i--,___不會_____(會/不會)出現(xiàn)編譯錯誤。 for(i=12;i<=20;i++) System.out.println(i); System.out.println();5.如果在程序執(zhí)行過程中,while語句中表達式的值始終為true,則循環(huán)體會被無數(shù)次執(zhí)行,進入到無休止的____死循環(huán)___狀態(tài)中。6.for語句的表達式1中可以并列多個表達式,但它們之間要用____逗號___隔開。7.實現(xiàn)下面的程序流程,請?zhí)羁?。if(條件1) System.out.println("A"); Elseif(條件2) System.out.println("B"); else System.out.println("C"); System.out.println(___"D"____);8.設(shè)有以下程序段,填寫適當(dāng)表達式,使程序運行時執(zhí)行3次循環(huán)體。intx=1dox+=2;System.out.println(x);Loopx<7;三、簡答題1.if語句中判斷條件是否成立的表達式一定是邏輯型的表達式嗎,為什么?答: 可以不是,但是最終結(jié)果必須是邏輯值。邏輯表達式的值是表達式中各種邏輯運算的最后值,以“1”和“0”分別代表“真”和“假”。只要最后的邏輯值為邏輯值就滿足條件。2.switch語句中,case后面的語句序列中一定要有break語句嗎?答:不一定要有break語句。break語句的作用是執(zhí)行完一個case分支后,使程序跳出switch結(jié)構(gòu)。如果沒有break語句,程序執(zhí)行完匹配的case語句序列后,還會繼續(xù)執(zhí)行后面的case子句。當(dāng)不使用break語句時,switch允許多個case子句執(zhí)行(當(dāng)多個case子句符合執(zhí)行條件且case子句中沒有使用break語句時)。3.試比較break語句與continue語句用于循環(huán)語句中的不同。答:continue語句只能用在循環(huán)語句中。它的作用是終止本次循環(huán),跳過循環(huán)體的其余部分,直接轉(zhuǎn)向循環(huán)條件判斷。對于while語句和do…while語句,continue語句執(zhí)行時,直接跳過循環(huán)體中剩余的代碼而轉(zhuǎn)到循環(huán)條件判斷處;對于for語句,continue語句執(zhí)行時,直接跳過循環(huán)體中剩余的代碼,轉(zhuǎn)到執(zhí)行表達式3,先改變循環(huán)控制變量后再進行循環(huán)條件的判斷。break語句通常用在循環(huán)語句和switch語句中。它的作用是使程序從一個語句體的內(nèi)部跳出去,繼續(xù)執(zhí)行該語句體后面的語句。例如,從switch語句的case語句中跳出,或者用來結(jié)束循環(huán)。break語句及continue語句均可用于循環(huán)語句中,對于單層循環(huán),continue語句僅結(jié)束本次循環(huán),如果循環(huán)條件仍為true,則繼續(xù)循環(huán);而break語句是結(jié)束整個循環(huán)。4.試比較while、do…while和for三種循環(huán)的異同。答:循環(huán)語句的三種形式while、do…while和for語句在表達上是等價的,也就是說任意一個循環(huán)都可以用三種形式之一實現(xiàn)。(1)while語句和do...while語句,只在while后面指定循環(huán)條件,但是需要在循環(huán)體中包括使循環(huán)趨于結(jié)束的語句,而for語句則可以在迭代語句中包含使循環(huán)趨于結(jié)束的語句。(2)用while語句和do...while語句時,對循環(huán)變量的初始化操作應(yīng)該放在while語句和do...while語句之前,而for語句則可以在初始化語句中完成。(3)while語句和do...while語句實現(xiàn)的功能相同,唯一的區(qū)別就是do…while語句先執(zhí)行后判斷,無論表達式的值是否為true,都將執(zhí)行一次循環(huán);而while語句則是首先判斷表達式的值是否為true,如果為true則執(zhí)行循環(huán)語句;否則將不執(zhí)行循環(huán)語句。(4)for循環(huán)語句一般用在對于循環(huán)次數(shù)已知的情況下,而while語句和do...while語句則一般用在對于循環(huán)次數(shù)不確定的情況下。5.分析下面3個if語句中哪兩個是等價的。if(a==b);if(c==d)a=1;elseb=1;if(a==b){if(c==d)a=1;elseb=1;}if(a==b)if(c==d)a=1;elseb=1;答:第二個和第三個是等價的。四、編程題編寫模擬計算器的程序。程序接收兩個整數(shù)和要執(zhí)行的操作,輸出類似3*8=24的結(jié)果。importjavax.swing.JOptionPane;publicclassCalculater{publicstaticvoidmain(String[]args){doublea=0.0,b=0.0;Stringstr;//String類型的變量用于接收用戶的輸入str=JOptionPane.showInputDialog("請輸入收第一個數(shù):");a=Double.parseDouble(str);str=JOptionPane.showInputDialog("請輸入第二個數(shù):");b=Double.parseDouble(str);JOptionPane.showMessageDialog(null,a+”*”+b+”=”+a*b);}}寫程序求解以下分段函數(shù)。要求輸入x的值,輸出函數(shù)y的值。importjavax.swing.JOptionPane;publicclassPiecewiseFun{ publicstaticvoidmain(String[]args){ doublex=0.0,y=0.0; Stringstr=JOptionPane.showInputDialog("請輸入x"); x=Double.parseDouble(str); if(x>-5&&x<0){ y=x; JOptionPane.showMessageDialog(null,"y="+y); } elseif(x==0){ y=x-1; JOptionPane.showMessageDialog(null,"y="+y); } elseif(x>0&&x<10){ y=x+1; JOptionPane.showMessageDialog(null,"y="+y); } else JOptionPane.showMessageDialog(null,"y="+y); }}編寫程序,求1?3+5?7+…?99+101的值。publicclassSumNum{ publicstaticvoidmain(String[]args){ intsum=0; Stringstr=""; for(inti=1,j=1;i<=101;i=i+2,j++){ if(j%2==0){ sum=sum-i; str=str+"-"+i; }else{ sum=sum+i; str=str+"+"+i; } } System.out.println(str+"="+sum); }}編程找出所有的水仙花數(shù)。(水仙花數(shù)是指一個3位數(shù),其各位數(shù)字的立方和等于其本身。例如:153是一個水仙數(shù),13+53+33=153)publicclassNarcissisticNum{ publicstaticvoidmain(String[]args){ for(inti=100;i<1000;i++){ inta=i/100;//百位 intb=(i-a*100)/10;//十位 intc=i-a*100-b*10;//個位 if((a*a*a+b*b*b+c*c*c)==i) System.out.println(a+"^3+"+b+"^3+"+c+"^3="+i); } }}編程找出比1234大的最小素數(shù)。publicclassPrimeNum{ publicstaticvoidmain(String[]args){ inti=1234; while(true){ booleanflag=true; for(intk=2;k<i;k++){ if(i%k==0){ flag=false; break; } } if(flag) break; else i=i+1; } System.out.println("比1234大的最小素數(shù)="+i); }}給定一個列表Nums={60,40,20,10,8,6,4,2,2,10,4},編程實現(xiàn)以下功能。從命令行輸入兩個數(shù),查找Nums中是否存在這兩個數(shù)之間的數(shù)。importjava.util.Scanner;publicclassSearchNum{publicstaticvoidmain(String[]args){int[]Nums={60,40,20,10,8,6,4,2};Scannersc=newScanner(System.in);System.out.println("請輸入第一個數(shù)字并回車:");intnumSearch1=sc.nextInt();System.out.println("請輸入第二個數(shù)字并回車:");intnumSearch2=sc.nextInt();sc.close();booleanflag=false;for(inti=0;i<Nums.length;i++){if(Nums[i]>=numSearch1&&Nums[i]<=numSearch2){flag=true;break;}}if(flag==true){System.out.println("列表中有符合查詢條件的數(shù)字!");}else{System.out.println("列表中沒有符合查詢條件的數(shù)字!");} }}從命令行輸入一個數(shù),查找Nums中存在多少與輸入相同的數(shù),并輸出它們在列表中的下標(biāo)位置。importjava.util.Scanner;publicclassSearchNum{publicstaticvoidmain(String[]args){int[]Nums={60,40,20,10,8,6,4,2};Scannersc=newScanner(System.in);System.out.println("請輸入您要查找的數(shù)字并回車:");intnumSearch=sc.nextInt();sc.close();booleanflag=false;IntCounter=0;for(inti=0;i<Nums.length;i++){if(Nums[i]==numSearch){Counter++;System.out.println("下標(biāo)位置:"+i);}}System.out.println("與查詢數(shù)字相同的數(shù)的個數(shù)為:"+Counter); }}修改圖4.15的冒泡排序,使得數(shù)列從大到小排列。publicclassBubbleSort{publicstaticvoidmain(String[]args){int[]arr={2,8,6,4,10};for(inti=0;i<arr.length;i++){for(intj=0;j<arr.length-i-1;j++){if(arr[j]<arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}for(intx=0;x<arr.length;x++){System.out.print(arr[x]+",");}System.out.print("\n");}}}使用遞歸方法編寫快速排序(查閱數(shù)據(jù)結(jié)構(gòu)相關(guān)書籍)。publicclassQSort{publicstaticvoidmain(String[]args){quicksortqs=newquicksort();intdata[]={44,22,2,32,54,22,88,77,99,11};qs.data=data;qs.sort(0,qs.data.length-1);qs.display();}}classquicksort{publicintdata[];privateintpartition(intsortArray[],

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論