JAVA編程題全集(100題及答案)_第1頁
JAVA編程題全集(100題及答案)_第2頁
JAVA編程題全集(100題及答案)_第3頁
JAVA編程題全集(100題及答案)_第4頁
JAVA編程題全集(100題及答案)_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第頁Java程序設(shè)計總復(fù)習(xí)題1、編寫一個Java程序在屏幕上輸出“你好!〞?!瞤13,例1-1〕//programmepublicclassHelloworld{publicstaticvoidmain(Stringargs[]){System.out.print("你好!");2.編寫一個Java程序,用if-else語句判斷某年份是否為閏年。publicclassLeapYear{publicstaticvoidmain(Stringargs[]){intyear=2021;gth!=0)year=Integer.parseInt(args[0]);if((year%4==0&&year%100!=0)||(year%400==0))System.out.println(year+"年是閏年。");elseSystem.out.println(year+"年不是閏年。");}//if-else語句3、編寫一個Java程序在屏幕上輸出1!+2!+3!+……+10!的與?!瞤64,例2-2〕publicclassForTest{publicstaticvoidmain(Stringargs[]){inti,j,mul,sum=0;for(i=1;i<=10;i++){mul=1;for(j=1,j<=i;j++){mul=mul*j;sum=sum+mul;System.out.println(“1!+2!+3!+……+10!=〞+sum);4.〔1〕編寫一個圓類Circle,該類擁有:①一個成員變量Radius〔私有,浮點型〕;//存放圓的半徑;②兩個構(gòu)造方法Circle()//將半徑設(shè)為0Circle(doubler)//創(chuàng)立Circle對象時將半徑初始化為r③三個成員方法doublegetArea()//獲取圓的面積doublegetPerimeter()//獲取圓的周長voidshow()//將圓的半徑、周長、面積輸出到屏幕〔2〕編寫一個圓柱體類Cylinder,它繼承于上面的Circle類。還擁有:①一個成員變量doublehight〔私有,浮點型〕;//圓柱體的高;②構(gòu)造方法Cylinder(doubler,doubleh)//創(chuàng)立Circle對象時將半徑初始化為r③成員方法doublegetVolume()//獲取圓柱體的體積voidshowVolume()//將圓柱體的體積輸出到屏幕編寫應(yīng)用程序,創(chuàng)立類的對象,分別設(shè)置圓的半徑、圓柱體的高,計算并分別顯示圓半徑、圓面積、圓周長,圓柱體的體積。//ProgrammeNameclassCircle{//定義父類--園類 privatedoubleradius;//成員變量--園半徑 Circle(){//構(gòu)造方法 radius=0.0; Circle(doubler){//構(gòu)造方法 radius=r; doublegetPerimeter(){//成員方法--求園周長 return2*Math.PI*radius; doublegetArea(){//成員方法--求園面積 returnMath.PI*radius*radius; voiddisp(){//成員方法--顯示園半徑、周長、面積 System.out.println("園半徑="+radius); System.out.println("園周長="+getPerimeter()); System.out.println("園面積="+getArea()); classCylinderextendsCircle{//定義子類--圓柱類 privatedoublehight;//成員變量--園柱高 Cylinder(doubler,doubleh){//構(gòu)造方法 super(r); hight=h; publicdoublegetVol(){//成員方法--求園柱體積 returngetArea()*hight; publicvoiddispVol(){//成員方法--顯示園柱體積 System.out.println("圓柱體積="+getVol());publicclassTestCylinder{//定義主類publicstaticvoidmain(String[]args){//主程入口CircleCi=newCircle(10.0);//生成園類實例Ci.disp();//調(diào)用園類的方法CylinderCyl=newCylinder(5.0,10.0);//生成圓柱類實例Cyl.disp();//調(diào)用父類方法Cyl.dispVol();//調(diào)用子類方法5、編寫一個Java應(yīng)用程序,從鍵盤讀取用戶輸入兩個字符串,并重載3個函數(shù)分別實現(xiàn)這兩個字符串的拼接、整數(shù)相加與浮點數(shù)相加。要進(jìn)展異常處理,對輸入的不符合要求的字符串提示給用戶,不能使程序崩潰?!瞤39,例2-10,2-11〕//programmeimportjava.io.*;publicclassStrinputpublicstaticvoidmain(Stringargs[]){Strings1,s2,ss,si,sf;inti1,i2;floatf1,f2;BufferedReaderstrin=newBufferedReader(newInputStreamReader(System.in));try{System.out.print("輸入第一個字符串:");s1=strin.readLine();System.out.print("輸入第二個字符串:");s2=strin.readLine();}catch(Exceptione){System.out.println(e.getMessage());}i1=Integer.parseInt(s1);i2=Integer.parseInt(s2);f1=Float.parseFloat(s1);f2=Float.parseFloat(s2);ss=strAdd(s1,s2);si=strAdd(i1,i2);sf=strAdd(f1,f2);Sln("輸入的二個字符串相加結(jié)果為:"+ss);Sln("輸入字符串轉(zhuǎn)換為整數(shù)相加結(jié)果為:"+si);Sln("輸入字符串轉(zhuǎn)換為浮點數(shù)相加結(jié)果為:"+sf);StringstrAdd(Stringstr1,Stringstr2){returnstr1+str2;StringstrAdd(intint1,intint2){returnString.valueOf(int1+int2);StringstrAdd(floatflt1,floatflt2){returnString.valueOf(flt1+flt2);6.應(yīng)用類,編寫應(yīng)用程序,從磁盤上讀取一個Java程序,并將源程序代碼顯示在屏幕上?!脖蛔x取的文件路徑為:E:/myjava/Hello.java〕importjava.io.*;publicclassFISDemo{publicstaticvoidmain(Stringargs[]){byte[]buf=newbyte[2056];try{("e:/myjava/Hello.java");intbytes=(buf,0,2056);Stringstr=newString(buf,0,bytes);System.out.println(str);}catch(Exceptione){e.printStackTrace();7、編寫一個Java程序?qū)?dāng)100,101,102,103,104,105個數(shù)以數(shù)組的形式寫入到文件中,并以相反的順序讀出顯示在屏幕上。〔p190,例7-2〕importjava.io.*;publicclassIODemo{publicstaticvoidmain(Stringargs[]){intdata[]={100,101,102,103,104,105};intt;try{DataOutputStreamout=newDataOutputStream(new(“〞));for(inti=0;i<data.length;i++)out.WriteInt(data[i]);out.close();DataInputStreamin=newDataInputStream(new(“〞));for(inti=data.length-1;i>=0;i--){t=in.readInt(data[i]);System.out.print(“〞+t);ln();in.close();}catch(IOExceptione){System.out.println(e.getMessage());}8.利用Applet類與Runnable接口實現(xiàn)滾動字幕,其中字幕文字〔“學(xué)好Java有工作〞〕與時間間隔〔“200”importjava.awt.Color;importjava.awt.Graphics;importjavax.swing.JApplet;publicclassMoveMessageextendsJAppletimplementsRunnable{ Stringstr; inttime; privateThreadthread; publicvoidinit(){ setBackground(Color.PINK); str=getParameter("message"); StringtimeArg=getParameter("time"); time=Integer.parseInt(timeArg);; thread=newThread(this); publicvoidstart(){ thread.start(); publicvoidrun(){ intx=0; Graphicsg=getGraphics(); while(true){ try{ Thread.sleep(time); }catch(Exceptione){ e.printStackTrace(); g.clearRect(0,0,getWidth(),getHeight()); g.drawString(str,x,30); x+=2; if(x>=getWidth()) x=0;<html> <body> <Appletcode="MoveMessage.class"width=400height=60> <paramname="message"value="學(xué)好java有工作"> <paramname="time"value="200"> </Applet> </body></html>9、編寫一個Java程序?qū)崿F(xiàn)多線程,在線程中輸出線程的名字,隔300毫秒輸出一次,共輸出20次。〔p202,例8-1〕//programmenameTestThread;//聲明一個子線程類Threaddemo;classThreadDemoextendsThread{publicThreadDemo(Stringstr){super(str);publicvoidrun(){for(inti=0;i<20;i++){System.out.print(“〞+this.getName());Try{Sleep(300);}catch(InterruptedExceptione){System.out.println(e.getMessage());Return;System.out.println(“/end〞);publicclassTestThread{publicstaticvoidmain(Stringargs[]){ThreadDemothread1=newThreadDemo(“T1”ThreadDemothread2=newThreadDemo(“T2”ThreadDemothread3=newThreadDemo(“T3”thread1.start();thread2.start();thread3.start();10.編寫程序,在屏幕上顯示帶標(biāo)題的窗口,并添加一個按鈕。當(dāng)用戶單擊按鈕時,完畢程序。importjavax.swing.*;importjava.awt.event.*;publicclassButtonEventDemoextendsJPanelimplementsActionListener{protectedJButtonb1; //聲明一個按鈕對象publicButtonEventDemo(){ //構(gòu)造方法ImageIconButtonIcon=newImageIcon("images/green.png");//創(chuàng)立按鈕的圖標(biāo)對象b1=newJButton("退出按鈕",ButtonIcon); //生成按鈕對象b1.setMnemonic(KeyEvent.VK_E);//設(shè)置b1的助記符是Alt+Eb1.setToolTipText("這是退出按鈕。"); //設(shè)置按鈕提示條this.add(b1);//往面板對象中加載按鈕b1.addActionListener(this);//本類對象注冊為按鈕的事件監(jiān)聽器publicvoidactionPerformed(ActionEvente){ //按鈕事件響應(yīng)方法System.exit(0);//按b1那么退出主程序privatestaticvoidcreateGUI(){//創(chuàng)立窗體JFrame.setDefaultLookAndFeelDecorated(true);//設(shè)置java隱含觀感JFrameframe=newJFrame("按鈕測試");//生成應(yīng)用程序主窗體frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設(shè)置關(guān)閉時隱含操作ButtonEventDemoCPane=newButtonEventDemo();//生成主類對象--面板CPane.setOpaque(true);//面板要求不透明frame.setContentPane(CPane);//設(shè)置主類對象為主窗體的內(nèi)容面板frame.pack();//主窗體緊縮顯示frame.setVisible(true);//設(shè)置主窗體可見publicstaticvoidmain(String[]args){//將createGUI〔〕列入線程javax.swing.SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){createGUI();11.利用線程方法編寫JApplet程序,實現(xiàn)在瀏覽器端實時動態(tài)顯示本地系統(tǒng)時鐘importjava.applet.Applet;importjava.awt.*;importjava.text.DateFormat;importjava.util.*;publicclassWatchextendsApplet{publicvoidpaint(Graphicsg){Dated=newDate();DateFormatldf=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);//System.out.println("現(xiàn)在系統(tǒng)時間是(long):"+ldf.format(d));Stringtime=ldf.format(d).toString();g.drawString(time,100,100);try{Thread.sleep(1000);}catch(InterruptedExceptione){}repaint();<html><head><title>JavaAppletDemo</title></head><body><appletcode=〞〞width=300height=200></applet></body></html>//保存為Watch.html文件12、定義一個表示學(xué)生信息的類Student,要求如下:〔1〕類Student的成員變量:sNO表示學(xué)號;sName表示姓名;sSex表示性別;sAge表示年齡;sJava:表示Java課程成績?!?〕類Student帶參數(shù)的構(gòu)造方法:在構(gòu)造方法中通過形參完成對成員變量的賦值操作?!?〕類Student的方法成員:getNo〔〕:獲得學(xué)號;getName〔〕:獲得姓名;getSex〔〕:獲得性別;getAge〔〕獲得年齡;getJava〔〕:獲得Java課程成績根據(jù)類Student的定義,創(chuàng)立五個該類的對象,輸出每個學(xué)生的信息,計算并輸出這五個學(xué)生Java語言成績的平均值,以及計算并輸出他們Java語言成績的最大值與最小值。//PragrammenameStudent;publicclassStudent{ StringsNO,sName,sSex; intsAge,sJava; publicStudent(StringXH,StringXM,StringXB,intNL,intXF){ super(); sNO=XH; sName=XM; sSex=XB; sAge=NL; sJava=XF; publicStringgetNO(){ returnsNO; publicStringgetName(){ returnsName; publicStringgetSex(){ returnsSex; publicintgetAge(){ returnsAge; publicintgetJava(){ returnsJava; publicstaticvoidmain(String[]args){ Student[]st=newStudent[5]; st[0]=newStudent("09zc01","張三","男",19,94); st[1]=newStudent("09zc02","李四","男",20,85); st[2]=newStudent("09zc03","王五","女",18,96); st[3]=newStudent("09zc04","趙六","男",17,90); st[4]=newStudent("09zc05","楊七","女",21,88); intmax=0,min=100,sum=0; System.out.println("學(xué)生信息:"); for(inti=0;i<st.length;i++){ if(st[i].sJava<min) min=st[i].sJava; if(st[i].sJava>max) max=st[i].sJava; sum=sum+st[i].sJava; System.out.println("學(xué)生編號:"+st[i].getNO()+",姓名:"+st[i].getName()+",性別:"+st[i].getSex()+",年齡:"+st[i].getAge()+",Java課學(xué)分:"+st[i].getJava()); System.out.println(); System.out.println("共有學(xué)生:"+st.length+",平均成績:"+sum/st.length); System.out.println("最小學(xué)分:"+min+",最大學(xué)分:"+max);【程序1】

題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一對兔子,假設(shè)兔子都不死,問每個月的兔子總數(shù)為多少?

//這是一個菲波拉契數(shù)列問題

publicclasslianxi01{

publicstaticvoidmain(String[]args){

System.out.println("第1個月的兔子對數(shù):

1");

System.out.println("第2個月的兔子對數(shù):

1");

intf1=1,f2=1,f,M=24;

for(inti=3;i<=M;i++){

f=f2;

f2=f1+f2;

f1=f;

System.out.println("第"+i+"個月的兔子對數(shù):"+f2);

}

}

}【程序2】

題目:判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。

程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2到sqrt(這個數(shù)),如果能被整除,那么說明此數(shù)不是素數(shù),反之是素數(shù)。

publicclasslianxi02{

publicstaticvoidmain(String[]args){

intcount=0;

for(inti=101;i<200;i+=2){

booleanb=false;

for(intj=2;j<=Math.sqrt(i);j++)

{

if(i%j==0){b=false;break;}

else

{b=true;}

}

if(b==true){count++;System.out.println(i);}

}

System.out.println("素數(shù)個數(shù)是:"+count);

}

}【程序3】

題目:打印出所有的"水仙花數(shù)",所謂"水仙花數(shù)"是指一個三位數(shù),其各位數(shù)字立方與等于該數(shù)本身。例如:153是一個"水仙花數(shù)",因為153=1的三次方+5的三次方+3的三次方。

publicclasslianxi03{

publicstaticvoidmain(String[]args){

intb1,b2,b3;

for(intm=101;m<1000;m++){

b3=m/100;

b2=m%100/10;

b1=m%

10;

if((b3*b3*b3+b2*b2*b2+b1*b1*b1)==m){

System.out.println(m+"是一個水仙花數(shù)");}

}

}

}

【程序4】

題目:將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出90=2*3*3*5。

程序分析:對n進(jìn)展分解質(zhì)因數(shù),應(yīng)先找到一個最小的質(zhì)數(shù)k,然后按下述步驟完成:

(1)如果這個質(zhì)數(shù)恰等于n,那么說明分解質(zhì)因數(shù)的過程已經(jīng)完畢,打印出即可。

(2)如果n<>k,但n能被k整除,那么應(yīng)打印出k的值,并用n除以k的商,作為新的正整數(shù)你n,重復(fù)執(zhí)行第一步。

(3)如果n不能被k整除,那么用k+1作為k的值,重復(fù)執(zhí)行第一步。

importjava.util.*;

public

class

lianxi04{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System.in);

System.out.print("請鍵入一個正整數(shù):

");

int

n

=s.nextInt();

intk=2;

System.out.print(n+"=");

while(k<=n){

if(k==n){System.out.println(n);break;}

elseif(n%k==0){System.out.print(k+"*");n=n/k;}

else

k++;

}

}

}

【程序5】

題目:利用條件運(yùn)算符的嵌套來完成此題:學(xué)習(xí)成績>=90分的同學(xué)用A表示,60-89分之間的用B表示,60分以下的用C表示。

importjava.util.*;

publicclasslianxi05{

publicstaticvoidmain(String[]args){

intx;

chargrade;

Scanners=newScanner(System.in);

System.out.print("請輸入一個成績:");

x=s.nextInt();

grade=x>=90?'A'

:x>=60?'B'

:'C';

System.out.println("等級為:"+grade);

}

}

【程序6】

題目:輸入兩個正整數(shù)m與n,求其最大公約數(shù)與最小公倍數(shù)。

/**在循環(huán)中,只要除數(shù)不等于0,用較大數(shù)除以較小的數(shù),將小的一個數(shù)作為下一輪循環(huán)的大數(shù),取得的余數(shù)作為下一輪循環(huán)的較小的數(shù),如此循環(huán)直到較小的數(shù)的值為0,返回較大的數(shù),此數(shù)即為最大公約數(shù),最小公倍數(shù)為兩數(shù)之積除以最大公約數(shù)。*/

importjava.util.*;

public

class

lianxi06

{

publicstaticvoidmain(String[]args){

int

a,b,m;

Scanners=newScanner(System.in);

System.out.print("鍵入一個整數(shù):");

a=s.nextInt();

System.out.print("再鍵入一個整數(shù):");

b=s.nextInt();

deffcd=newdeff();

m=cd.deff(a,b);

intn=a*b/m;

System.out.println("最大公約數(shù):"+m);

System.out.println("最小公倍數(shù):"+n);

}

}

classdeff{

publicintdeff(intx,inty){

intt;

if(x<y){

t=x;

x=y;

y=t;

}

while(y!=0){

if(x==y)returnx;

else{

intk=x%y;

x=y;

y=k;

}

}

returnx;

}

}

【程序7】

題目:輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字與其它字符的個數(shù)。

importjava.util.*;

publicclasslianxi07{

publicstaticvoidmain(String[]args){

intdigital=0;

intcharacter=0;

intother=0;

intblank=0;

char[]ch=null;

Scannersc=newScanner(System.in);

Strings=sc.nextLine();

ch=s.toCharArray();

for(inti=0;i<ch.length;i++){

if(ch>='0'&&ch<='9'){

digital++;

}elseif((ch>='a'&&ch<='z')||ch>'A'&&ch<='Z'){

character++;

}elseif(ch==''){

blank++;

}else{

other++;

}

}

System.out.println("數(shù)字個數(shù):"+digital);

System.out.println("英文字母個數(shù):"+character);

System.out.println("空格個數(shù):"+blank);

System.out.println("其他字符個數(shù):"+other);【程序8】

題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數(shù)字。例如2+22+222+2222+22222(此時共有5個數(shù)相加),幾個數(shù)相加有鍵盤控制。

importjava.util.*;

publicclasslianxi08{

publicstaticvoidmain(String[]args){

longa,b=0,sum=0;

Scanners=newScanner(System.in);

System.out.print("輸入數(shù)字a的值:");

a=s.nextInt();

System.out.print("輸入相加的項數(shù):");

intn=s.nextInt();

inti=0;

while(i<n){

b=b+a;

sum=sum+b;

a=a*10;

++i;

}

System.out.println(sum);

}

}

【程序9】

題目:一個數(shù)如果恰好等于它的因子之與,這個數(shù)就稱為"完數(shù)"。例如6=1+2+3.編程

找出1000以內(nèi)的所有完數(shù)。

publicclasslianxi09{

publicstaticvoidmain(String[]args){

System.out.println("1到1000的完數(shù)有:");

for(inti=1;i<1000;i++){

intt=0;

for(intj=1;j<=i/2;j++){

if(i%j==0){

t=t+j;

}

}

if(t==i){

System.out.print(i+"

");

}

}

}【程序10】

題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在

第10次落地時,共經(jīng)過多少米?第10次反彈多高?

publicclasslianxi10{

publicstaticvoidmain(String[]args){

doubleh=100,s=100;

for(inti=1;i<10;i++){

s=s+h;

h=h/2;

}

System.out.println("經(jīng)過路程:"+s);

System.out.println("反彈高度:"+h/2);

}

}

【程序11】

題目:有1、2、3、4四個數(shù)字,能組成多少個互不一樣且無重復(fù)數(shù)字的三位數(shù)?都是多少?

publicclasslianxi11{

publicstaticvoidmain(String[]args){

intcount=0;

for(intx=1;x<5;x++){

for(inty=1;y<5;y++){

for(intz=1;z<5;z++){

if(x!=y&&y!=z&&x!=z){

count++;

System.out.println(x*100+y*10+z);

}

}

}

}

System.out.println("共有"+count+"個三位數(shù)");

}

}

【程序12】

題目:企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(I)低于或等于10萬元時,獎金可提10%;利潤高于10萬元,低于20萬元時,低于10萬元的局部按10%提成,高于10萬元的局部,可可提成7.5%;20萬到40萬之間時,高于20萬元的局部,可提成5%;40萬到60萬之間時高于40萬元的局部,可提成3%;60萬到100萬之間時,高于60萬元的局部,可提成1.5%,高于100萬元時,超過100萬元的局部按1%提成,從鍵盤輸入當(dāng)月利潤,求應(yīng)發(fā)放獎金總數(shù)?

importjava.util.*;

publicclasslianxi12{

publicstaticvoidmain(String[]args){

doublex=0,y=0;

System.out.print("輸入當(dāng)月利潤〔萬〕:");

Scanners=newScanner(System.in);

x=s.nextInt();

if(x>0&&x<=10){

y=x*0.1;

}elseif(x>10&&x<=20){

y=10*0.1+(x-10)*0.075;

}elseif(x>20&&x<=40){

y=10*0.1+10*0.075+(x-20)*0.05;

}elseif(x>40&&x<=60){

y=10*0.1+10*0.075+20*0.05+(x-40)*0.03;

}elseif(x>60&&x<=100){

y=20*0.175+20*0.05+20*0.03+(x-60)*0.015;

}elseif(x>100){

y=20*0.175+40*0.08+40*0.015+(x-100)*0.01;

}

System.out.println("應(yīng)該提取的獎金是"+y+"萬");

}

}【程序13】

題目:一個整數(shù),它加上100后是一個完全平方數(shù),再加上168又是一個完全平方數(shù),請問該數(shù)是多少?

publicclasslianxi13{

publicstaticvoidmain(String[]args){

for(intx=1;x<100000;x++){

if(Math.sqrt(x+100)%1==0){

if(Math.sqrt(x+268)%1==0){

System.out.println(x+"加100是一個完全平方數(shù),再加168又是一個完全平方數(shù)");

}

}

}

}

}

/*按題意循環(huán)應(yīng)該從-100開場〔整數(shù)包括正整數(shù)、負(fù)整數(shù)、零〕,這樣會多一個滿足條件的數(shù)-99。

但是我看到大局部人解這道題目時都把題中的“整數(shù)〞理解成正整數(shù),我也就隨大流了。*/

【程序14】

題目:輸入某年某月某日,判斷這一天是這一年的第幾天?

importjava.util.*;

publicclasslianxi14{

publicstaticvoidmain(String[]args){

intyear,month,day;

intdays=0;

intd=0;

inte;

inputfymd=newinput();

do{

e=0;

System.out.print("輸入年:");

year=fymd.input();

System.out.print("輸入月:");

month=fymd.input();

System.out.print("輸入天:");

day=fymd.input();

if(year<0||month<0||month>12||day<0||day>31){

System.out.println("輸入錯誤,請重新輸入!");

e=1;

}

}while(e==1);

for(inti=1;i<month;i++){

switch(i){

case1:

case3:

case5:

case7:

case8:

case10:

case12:

days=31;

break;

case4:

case6:

case9:

case11:

days=30;

break;

case2:

if((year%400==0)||(year%4==0&&year%100!=0)){

days=29;

}else{

days=28;

}

break;

}

d+=days;

}

System.out.println(year+"-"+month+"-"+day+"是這年的第"+(d+day)+"天。");

}

}

classinput{

publicintinput(){

intvalue=0;

Scanners=newScanner(System.in);

value=s.nextInt();

returnvalue;

}

}【程序15】

題目:輸入三個整數(shù)x,y,z,請把這三個數(shù)由小到大輸出。

importjava.util.*;

publicclasslianxi15{

publicstaticvoidmain(String[]args){

inputfnc=newinput();

intx=0,y=0,z=0;

System.out.print("輸入第一個數(shù)字:");

x=fnc.input();

System.out.print("輸入第二個數(shù)字:");

y=fnc.input();

System.out.print("輸入第三個數(shù)字:");

z=fnc.input();

if(x>y){

intt=x;

x=y;

y=t;

}

if(x>z){

intt=x;

x=z;

z=t;

}

if(y>z){

intt=y;

y=z;

z=t;

}

System.out.println("三個數(shù)字由小到大排列為:"+x+""+y+""+z);

}

}

classinput{

publicintinput(){

intvalue=0;

Scanners=newScanner(System.in);

value=s.nextInt();

returnvalue;

}

}

【程序16】

題目:輸出9*9口訣。

publicclasslianxi16{

publicstaticvoidmain(String[]args){

for(inti=1;i<10;i++){

for(intj=1;j<=i;j++){

System.out.print(j+"*"+i+"="+j*i+"

");

if(j*i<10){System.out.print("");}

}

System.out.println();

}

}

}

【程序17】

題目:猴子吃桃問題:猴子第一天摘下假設(shè)干個桃子,當(dāng)即吃了一半,還不癮,又多吃了一個

第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下

的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。

publicclasslianxi17{

publicstaticvoidmain(String[]args){

intx=1;

for(inti=2;i<=10;i++){

x=(x+1)*2;

}

System.out.println("猴子第一天摘了"+x+"個桃子");

}

}【程序18】

題目:兩個乒乓球隊進(jìn)展比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不與x比,c說他不與x,z比,請編程序找出三隊賽手的名單。

publicclasslianxi18{staticchar[]m={'a','b','c'};

staticchar[]n={'x','y','z'};publicstaticvoidmain(String[]args){

for(inti=0;i<m.length;i++){

for(intj=0;j<n.length;j++){

if(m[i]=='a'&&n[j]=='x'){

continue;}elseif(m[i]=='a'&&n[j]=='y'){

continue;

}elseif((m[i]=='c'&&n[j]=='x')

||(m[i]=='c'&&n[j]=='z')){

continue;

}elseif((m[i]=='b'&&n[j]=='z')

||(m[i]=='b'&&n[j]=='y')){

continue;

}else

System.out.println(m[i]+"vs"+n[j]);【程序19】

題目:打印出如下列圖案〔菱形〕

*

***

*****

*******

*****

***

*

publicclasslianxi19{

publicstaticvoidmain(String[]args){

intH=7,W=7;//高與寬必須是相等的奇數(shù)

for(inti=0;i<(H+1)/2;i++){

for(intj=0;j<W/2-i;j++){

System.out.print("");

}

for(intk=1;k<(i+1)*2;k++){

System.out.print('*');

}

System.out.println();

}

for(inti=1;i<=H/2;i++){

for(intj=1;j<=i;j++){

System.out.print("");

}

for(intk=1;k<=W-2*i;k++){

System.out.print('*');

}

System.out.println();

}

}

}【程序20】

題目:有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數(shù)列的前20項之與。

publicclasslianxi20{

publicstaticvoidmain(String[]args){

intx=2,y=1,t;

doublesum=0;

for(inti=1;i<=20;i++){

sum=sum+(double)x/y;

t=y;

y=x;

x=y+t;

}

System.out.println("前20項相加之與是:"+sum);

}

}【程序21】

題目:求1+2!+3!+...+20!的與

publicclasslianxi21{

publicstaticvoidmain(String[]args){

longsum=0;

longfac=1;

for(inti=1;i<=20;i++){

fac=fac*i;

sum+=fac;

}

System.out.println(sum);

}【程序22】

題目:利用遞歸方法求5!。

publicclasslianxi22{

publicstaticvoidmain(String[]args){

intn=5;

recfr=newrec();

System.out.println(n+"!="+fr.rec(n));

}

}

classrec{

publiclongrec(intn){

longvalue=0;

if(n==1){

value=1;

}else

{

value=n*rec(n-1);

}

returnvalue;

}

}【程序23】

題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數(shù),他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后問第一個人,他說是10歲。請問第五個人多大?

publicclasslianxi23{

publicstaticvoidmain(String[]args){

intage=10;

for(inti=2;i<=5;i++){

age=age+2;

}

System.out.println(age);

}

}【程序24】

題目:給一個不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。

//使用了長整型最多輸入18位

importjava.util.*;

publicclasslianxi24{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System.in);

System.out.print("請輸入一個正整數(shù):");

longa=s.nextLong();

Stringss=Long.toString(a);

char[]ch=ss.toCharArray();

intj=ch.length;

System.out.println(a+"是一個"+j+"位數(shù)。");

System.out.print("按逆序輸出是:");

for(inti=j-1;i>=0;i--){

System.out.print(ch[i]);

}

}

}

【程序25】

題目:一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個位與萬位一樣,十位與千位一樣。

importjava.util.*;

publicclasslianxi25{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System.in);

inta;

do{

System.out.print("請輸入一個5位正整數(shù):");

a=s.nextInt();

}while(a<10000||a>99999);

Stringss=String.valueOf(a);

char[]ch=ss.toCharArray();

if(ch[0]==ch[4]&&ch[1]==ch[3]){

System.out.println("這是一個回文數(shù)");}

else{System.out.println("這不是一個回文數(shù)");}

}

}

//這個更好,不限位數(shù)

importjava.util.*;

publicclasslianxi25a{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System.in);

booleanis=true;

System.out.print("請輸入一個正整數(shù):");

longa=s.nextLong();

Stringss=Long.toString(a);

char[]ch=ss.toCharArray();

intj=ch.length;

for(inti=0;i<j/2;i++){

if(ch[i]!=ch[j-i-1]){is=false;}

}

if(is==true){System.out.println("這是一個回文數(shù)");}

else{System.out.println("這不是一個回文數(shù)");}

}

}

【程序26】

題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,那么繼續(xù)

判斷第二個字母。

importjava.util.*;

publicclasslianxi26{

publicstaticvoidmain(String[]args){

getChartw=newgetChar();

System.out.println("請輸入星期的第一個大寫字母:");

charch=tw.getChar();

switch(ch){

case'M':

System.out.println("Monday");

break;

case'W':

System.out.println("Wednesday");

break;

case'F':

System.out.println("Friday");

break;

case'T':{

System.out.println("請輸入星期的第二個字母:");

charch2=tw.getChar();

if(ch2=='U'){System.out.println("Tuesday");}

elseif(ch2=='H'){System.out.println("Thursday");}

else{System.out.println("無此寫法!");

}

};

break;

case'S':{

System.out.println("請輸入星期的第二個字母:");

charch2=tw.getChar();

if(ch2=='U'){System.out.println("Sunday");}

elseif(ch2=='A'){System.out.println("Saturday");}

else{System.out.println("無此寫法!");

}

};

break;

default:System.out.println("無此寫法!");

}

}

}

classgetChar{

publicchargetChar(){

Scanners=newScanner(System.in);

Stringstr=s.nextLine();

charch=str.charAt(0);

if(ch<'A'||ch>'Z'){

System.out.println("輸入錯誤,請重新輸入");

ch=getChar();

}

returnch;

}

}

【程序27】

題目:求100之內(nèi)的素數(shù)

//使用除sqrt(n)的方法求出的素數(shù)不包括2與3

publicclasslianxi27{

publicstaticvoidmain(String[]args){

booleanb=false;

System.out.print(2+"");

System.out.print(3+"");

for(inti=3;i<100;i+=2){

for(intj=2;j<=Math.sqrt(i);j++){

if(i%j==0){b=false;

break;

}else{b=true;}

}

if(b==true){System.out.print(i+"");}

}

}

}

//該程序使用除1位素數(shù)得2位方法,運(yùn)行效率高通用性差。

publicclasslianxi27a{

publicstaticvoidmain(String[]args){

int[]a=newint[]{2,3,5,7};

for(intj=0;j<4;j++)System.out.print(a[j]+"");

booleanb=false;

for(inti=11;i<100;i+=2){

for(intj=0;j<4;j++){

if(i%a[j]==0){b=false;

break;

}else{b=true;}

}

if(b==true){System.out.print(i+"");}

}

}

}

【程序28】

題目:對10個數(shù)進(jìn)展排序

importjava.util.*;

publicclasslianxi28{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System.in);

int[]a=newint[10];

System.out.println("請輸入10個整數(shù):");

for(inti=0;i<10;i++){

a[i]=s.nextInt();

}

for(inti=0;i<10;i++){

for(intj=i+1;j<10;j++){

if(a[i]>a[j]){

intt=a[i];

a[i]=a[j];

a[j]=t;

}

}

}

for(inti=0;i<10;i++){

System.out.print(a[i]+"");

}

}

}

【程序29】

題目:求一個3*3矩陣對角線元素之與

importjava.util.*;

publicclasslianxi29{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System.in);

int[][]a=newint[3][3];

System.out.println("請輸入9個整數(shù):");

for(inti=0;i<3;i++){

for(intj=0;j<3;j++){

a[i][j]=s.nextInt();

}

}

System.out.println("輸入的3*3矩陣是:");

for(inti=0;i<3;i++){

for(intj=0;j<3;j++){

System.out.print(a[i][j]+"");

}

System.out.println();

}

intsum=0;

for(inti=0;i<3;i++){

for(intj=0;j<3;j++){

if(i==j){

sum+=a[i][j];

}

}

}

System.out.println("對角線之與是:"+sum);

}

}

【程序30】

題目:有一個已經(jīng)排好序的數(shù)組?,F(xiàn)輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中。

//此程序不好,沒有使用折半查找插入

importjava.util.*;

publicclasslianxi30{

publicstaticvoidmain(String[]args)

溫馨提示

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

評論

0/150

提交評論