Java基礎——【習題一】流程式控制制練習題__Java

來源:互聯網
上載者:User
【習題一】流程式控制制練習題

1、要求使用者輸入一個年份,判斷並輸出該年份是閏年還是平年

提示:判斷閏年的條件為:(year%4==0&&year%100!=0) ||(year%400==0)

考察點:閏年的判斷條件、條件分支流程(if else)

package t1;import java.util.Scanner;public class TestYear{public static void main (String []args){System.out.print("請輸入年份:");Scanner sc=new Scanner(System.in);int i=sc.nextInt();//讀入資料if((i%4==0&&i%100!=0)||(i%400==0)){//布林運算式表示年份模4=0且模100不等於0是閏年或者年份模400等於0是閏年System.out.println(i+"是閏年。"); //列印結果 i是閏年。}else{System.out.println(i+"是平年。");//否則列印結果 i是平年。}}   /**如果是整百年(如2000,1700)要被400整除才是閏年,否則為平年(2000閏年,1700平年);如果是非整百年(如2008,2009),只要被4整除就是閏年,不能被4整除為平年(2008閏年,2009平年)。     閏年的2月有29天,平年的2月有28天。      閏年一年有366天,平年一年又365天。後邊有一個 0 或者沒有0的年份除以四,如果除盡了 ,就是閏年,後邊有兩個或者三個0的,都除以四百,能除盡了是閏年     比如1600年,就是除以四百,1900年也是除以四百,但是1600能除盡,1900不能除盡,所以1600是閏年。    */}


2、要求使用者輸入兩個整數,判斷第一個整數是否是第二個整數的倍數。

提示:使用運算子%

    考察點:模%、if語句

package t1;import java.util.Scanner;public class TestModel{public static void main (String []args){Scanner sc=new Scanner(System.in);//讀入資料System.out.print("請輸入第一個整數:");int i=sc.nextInt();//輸入第一個整數iSystem.out.print("請輸入第二個整數:");int j=sc.nextInt();//輸入第二個整數jif(i%j==0){//判斷i Mol j 是否等於0,等於0,輸出i是j的i/j倍。System.out.println(i+"是"+j+"的"+i/j+"倍。");}else{//否則輸出i不是j的倍數。System.out.println(i+"不是"+j+"的"+"倍數。");}}}



3、要求使用者輸入一個年份和一個月份,判斷(要求使用嵌套的if…else和switch分別判斷一次)該年該月有多少天。

考察點:if else、switch、閏年的判斷條件

package t1;import java.util.Scanner;public class TestDay{public static void main (String []args){Scanner sc=new Scanner(System.in);//讀入資料System.out.print("請輸入年份:");int i=sc.nextInt();//輸入年份iSystem.out.print("請輸入月份:");int j=sc.nextInt();//輸入月份jif((i%4==0&&i%100!=0)||(i%400==0)){if(j==2){System.out.println(i+"年"+j+"月有29天。");}else if(j==4||j==6||j==9||j==11){System.out.println(i+"年"+j+"月有30天。");}else{System.out.println(i+"年"+j+"月有31天。");}}else{if(j==2){System.out.println(i+"年"+j+"月有28天。");}else if(j==4||j==6||j==9||j==11){System.out.println(i+"年"+j+"月有30天。");}else{System.out.println(i+"年"+j+"月有31天。");}}System.out.print("請輸入年份:");int i1=sc.nextInt();//輸入年份i1System.out.print("請輸入月份:");int j1=sc.nextInt();//輸入月份j1switch(j1){case 1:case 3:case 5:case 7:case 8:case 10:case 12:System.out.println(i1+"年"+j1+"月有31天。");break;case 4:case 6:case 9:case 11:System.out.println(i1+"年"+j1+"月有30天。");break;case 2:if((i%4==0&&i%100!=0)||(i%400==0)){System.out.println(i1+"年"+j1+"月有29天。");}else{System.out.println(i1+"年"+j1+"月有28天。");}break;default:System.out.println("輸入有誤。");break;}}/**1、3、5、7、8、10、12,31天永不差4、6、9、11,30天2月(閏年29天,平年28天計算)一年365天閏年一年366天*/}



4、要求使用者輸入一個學生的分數(1~100),使用switch結構判斷該分數屬於什麼等級(A、B、C、D、F)。

提示:switch(score/10)

   考察點:switch語句、int

package t1;import java.util.Scanner;public class TestScore{public static void main(String []args){System.out.print("請輸入你的分數(0~100):");Scanner sc=new Scanner(System.in);//讀入資料int i=sc.nextInt();switch(i/10){//整型變數/10=整數case 10:if(i>100){System.out.println("你的成績輸入有誤。");}break;case 9:System.out.println("你的成績是A,優秀。");break;case 8:System.out.println("你的成績是B,良好。");break;case 7:System.out.println("你的成績是C,良。");break;case 6:System.out.println("你的成績是D,及格。");break;case 5:case 4:System.out.println("你的成績是E,加油啊。");break;case 3:case 2:case 1:case 0:System.out.println("你的成績是F,該努力了。");break;default:System.out.println("你的成績輸入有誤。");break;}}}



5、使用while迴圈求1~100以內所有奇數的和。

   考察點:while語句

package t1;public class TestWhile{public static void main(String []args){int i,sum;//定義兩個整型變數i,sumi=1;//初始設定變數i,初始值為1sum=0;//初始設定變數sum,初始值為0while(i<100){sum=sum+i;//sum=1+3+5+……99i=i+2;//保證加數均為奇數}System.out.println("1~100所有奇數的和為:"+sum);}}



6、使用while迴圈求式子2+22+222+2222+22222的和。p=p*10+2;

   考察點:while語句

package t1;public class TestWhile2{public static void main(String []args){int i,sum;//定義變數i,sumi=2;//初始設定變數isum=0;//初始設定變數sumwhile(i<22222){sum=sum+i*10+2;i=i*10+2;}System.out.println(sum);}}


7、請編程驗證一下“角穀猜想”:對任意的自然數,若是奇數,就對它乘以3加1;若是偶數就對它除以2;這樣得到一個新數,再按上述奇數、偶數的計算規則進行計算,一直進行下去,最終將得到1。

如對自然數11,按上述規則依次得到34、17、52、26、13、40、20、10、5、16、8、4、2、1。

    要求使用者輸入一個自然數(正整數),然後編程輸出依次變換最終得到1的過程。

提示:對自然數n

  do{

  if(){n=n*3+1}else{}

  }while(n!=1);

考察點:do { }while( );語句

package t1;import java.util.Scanner;public class TestDoWhile{//角穀猜想public static void main (String []args){Scanner sc=new Scanner(System.in);//讀入資料System.out.print("請輸入一個自然數:");int i=sc.nextInt();do{if(i%2==1){i=i*3+1;}else{i=i/2;}System.out.print(i+"、");}while(i!=1);}}


 

8、判斷並輸出500以內既能夠被3整除又能夠被6整除的整數。

考察點:for迴圈、if語句

package t1;public class Test10{public static void main(String []args){for(int i=1;i<500;i++){//for迴圈1~499if((i%3==0)&&(i%6==0)){//滿足條件System.out.print(i+" ");}}}}

 

9、使用for迴圈的嵌套編程輸出如下圖形:

*                  *

***              *** 

*****          *****   

*******      *******

*********  *********

考察點:for迴圈的嵌套

package t1;public class Test11{public static void main(String []args){int n = 10 ;for(int i=1;i<=n;i++){//第一次迴圈for(int j=1;j<=i*2-1;j++){System.out.printf("*");}//第二次迴圈for(int j=1;j<=(n-i)*4+1;j++){System.out.print(" ");}//第三次迴圈for(int j=1;j<=i*2-1;j++){System.out.print("*");}System.out.println();}}}


10、使用for迴圈的嵌套編程輸出如下圖形:

    *

   ***

  *****

 *******

*********

 *******

  *****

   ***

    *

提示:可把圖形分為上下兩部分分別輸出

考察點:for迴圈的嵌套

package t1;public class Test12{public static void main(String [] args){//分上下兩部分,每部分分塊列印圖形//上部分int n = 5 ;//圖形行數for(int i=1;i<=n;i++){//第一次迴圈,列印三角for(int j=1;j<=n-i;j++){System.out.print(" ");}//第二次迴圈,列印中間三角for(int j=1;j<=i*2-1;j++){System.out.print("*");}//第三次迴圈和第一次迴圈一樣for(int j=1;j<=n-i;j++){System.out.print(" ");}System.out.println();}//下部分int m = 5;for(int i=1;i<=m;i++){//第一次迴圈for(int j=1;j<=i;j++){System.out.print(" ");}//第二次迴圈for(int j=1;j<=2*(m-i)-1;j++){System.out.print("*");}//第三次迴圈for(int j=1;j<=i;j++){System.out.print(" ");}System.out.println();//換行}}}



11、搬磚問題:36塊磚,36人搬,男人搬4塊,女人搬3塊,兩個小孩抬1塊。

要求一次搬完,問需要男人、女人、小孩各幾人。

考察點:for迴圈的嵌套

package t1;public class Test13{public static void main(String []args){//for迴圈嵌套for(int n=0;n<=9;n++){ //假設全部是男人,需要9人for(int m=0;m<=12;m++){ //假設全部是女人,需要12人for(int x=0;x<=36;x+=2){//假設全部是小孩,最多36個,兩個小孩抬一塊磚,一次加二if((4*n+3*m+x/2==36)&&(n+m+x==36)){//找到關係式36塊磚,36個人搬System.out.println("男人:"+n+"人,女人:"+m+"人,小孩:"+x+"個。");}}}}}}


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.