java基礎(chǔ)練習(xí)題及答案_第1頁(yè)
java基礎(chǔ)練習(xí)題及答案_第2頁(yè)
java基礎(chǔ)練習(xí)題及答案_第3頁(yè)
java基礎(chǔ)練習(xí)題及答案_第4頁(yè)
java基礎(chǔ)練習(xí)題及答案_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

【程序1】題目:古典問(wèn)題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一

對(duì)兔子,假如兔子都不死,問(wèn)每個(gè)月的兔子總數(shù)為多少?剛開(kāi)始真的無(wú)從下手,這么難的,怎么可以說(shuō)是基礎(chǔ)呢,感覺(jué)這些應(yīng)該是邏輯分析很強(qiáng)的,第一個(gè)月只有一對(duì)兔子,第二個(gè)月還是只有一對(duì)兔子,第三個(gè)月,就有兩對(duì)了,第四個(gè)月3對(duì),第五個(gè)月5對(duì),第六個(gè)月8對(duì),第七個(gè)月是13對(duì)。。。。。。規(guī)律出來(lái)了,你們發(fā)了沒(méi)?[java]

public

class

Example1{

public

static

void

main(String

args[]){

//i是表示月份的,這里計(jì)算了36個(gè)月,也就是三年,兔子的數(shù)量

int

i;

long

arr[]=new

long[36];

//這個(gè)數(shù)組時(shí)用來(lái)計(jì)算每月有兔子的對(duì)數(shù)

arr[0]=arr[1]=1;

"第1個(gè)月有兔子1對(duì)"+",

"+"總數(shù)是"+2);

"第2個(gè)月有兔子1對(duì)"+",

"+"總數(shù)是"+2);

for(i=2;i<=35;i++){

arr[i]=arr[i-1]+arr[i-2];

"第"+i+"個(gè)月有兔子"+arr[i]+"對(duì)"+",

"+"總數(shù)是"+2*arr[i]);

//規(guī)律是

每個(gè)數(shù)字都是前面兩個(gè)數(shù)字之和

}

}

}

OK,用時(shí)45分鐘。

【程序2】

題目:判斷101-200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)。

素?cái)?shù)又叫質(zhì)數(shù),就是除了1和它本身之外,再也沒(méi)有整數(shù)能被它整除的數(shù)。也就是素?cái)?shù)只有兩個(gè)因子。[java]

public

class

Example2

{

public

static

void

main(String

args[]){

int

i,j,n,m,x;

//n是用來(lái)存儲(chǔ)余數(shù)的;m是用來(lái)統(tǒng)計(jì)具體一個(gè)數(shù)的因子;

n=0;m=0;x=0;

//x是用來(lái)統(tǒng)計(jì)101~200之前素?cái)?shù)的個(gè)數(shù)

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

//兩重循環(huán)

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

n=i%j;

//去余數(shù),如果余數(shù)為零,就是該數(shù)的因子

if(n==0)

{

m=m+1;

}

//統(tǒng)計(jì)某數(shù)有多少個(gè)因子

}

if(m==2"

");

x=x+1;}

//如果某數(shù)的因子只有兩個(gè),那它就一定是素?cái)?shù),那這個(gè)數(shù)就應(yīng)該輸出

m=0;

//一定要清零,不然會(huì)繼續(xù)累加

}

"在101~200之間一共有素?cái)?shù):"+x+"個(gè)");

}

}

我好笨啊,這題我做了兩個(gè)鐘頭,最終還是解決了。加油

【程序3】

題目:打印出所有的"水仙花數(shù)",所謂"水仙花數(shù)"是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:

153是一個(gè)"水仙花數(shù)",因?yàn)?53=1的三次方+5的三次方+3的三次方。想當(dāng)年,做這些題都是網(wǎng)上找答案,如今事過(guò)境遷,不會(huì)也得會(huì)。[java]

public

class

Example3

{

public

static

void

main(String

args[]){

int

a,sum;

//表示100~999

int

i,j,k;//分別表示百位、十位、各位

for(a=100;a<=999;a++){

i=a/100;

j=(a-i*100)/10;

k=a-i*100-j*10;

sum=i*i*i+j*j*j+k*k*k;

//java的運(yùn)算符,立方要這樣寫(xiě),寫(xiě)成i^3這樣,竟然運(yùn)算不出來(lái)

//如果遇到高次的話可以使用循環(huán)算出來(lái)

if(sum==a)

}

}

還是有學(xué)到點(diǎn)東西,應(yīng)該還有別的方法。那我就試試吧。

[java]

public

class

Example4

{

public

static

void

main(String

args[]){

int

sum;

int

i,j,k;//分別表示百位、十位、各位

for(i=1;i<=9;i++){

for(j=0;j<=9;j++){

for(k=0;k<=9;k++){

sum=i*i*i+j*j*j+k*k*k;

if(i*100+j*10+k==sum){

}

}

}

}

}

}

【程序4】

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

(1)如果這個(gè)質(zhì)數(shù)恰等于n,則說(shuō)明分解質(zhì)因數(shù)的過(guò)程已經(jīng)結(jié)束,打印出即可。

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

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

[java]

import

java.util.*;

public

class

Example4{

public

static

void

main(String[]

args){

int

x;

Scanner

in

=

new

Scanner(System.in);//定義從鍵盤(pán)輸入

"請(qǐng)輸入一個(gè)正整數(shù):");//提示

x

=

in.nextInt();

//將從鍵盤(pán)輸入的數(shù)賦值給x

new

PrimeSplit(x);

//匿名初始化一個(gè)對(duì)象,還有參數(shù)的構(gòu)造函數(shù)

}

}

class

PrimeSplit{

int

k

=

2;

//將最小的質(zhì)數(shù)賦值給k

public

PrimeSplit(int

x){

//小于等于1的數(shù)不可以分解

if(x<=1){

"是無(wú)效的被分解數(shù)");

}

else

if(x==2){

"分解后的質(zhì)因數(shù)為:

1*"+x);

//如果輸入的是最小質(zhì)數(shù)2,

}else

{

"分解后的質(zhì)因數(shù)為:

1");

//1是所有的正整數(shù)的質(zhì)數(shù)

while(k<=x){

//輸入的數(shù)可以被k整除

if(x%k==0){

"*"+k);

//將k添加到結(jié)果中

x

=

x/k;//除以最小質(zhì)數(shù)后重新循環(huán)

}

else{

k++;

}

}

}

}

}

【程序5】

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

的用C表示。

[java]

public

class

Example5

{

public

static

void

main(String

args[]){

int

score=90;

//分?jǐn)?shù)的值可以隨便修改

if(score>=90){

"A");

}

else

if(score>=60){

"B");

}

else{

"C");

}

}

}

【程序6】

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

[java]

public

class

Example6

{

public

static

void

main(String

args[]){

gcdlcm

a

=new

gcdlcm();

"兩數(shù)的最大公約數(shù)是:"+a.gcd(10,

16));

"兩數(shù)的最小公倍數(shù)是:"+a.lcm(16,

10));

}

}

class

gcdlcm{

int

gcd(int

m,int

n){

if(m<n){

//這個(gè)判斷是爲(wèi)了將大數(shù)放在前面

int

temp=n;

n=m;

m=temp;

}

if(m%n==0){

return

n;

}

else{

m%=n;

return

gcd(m,n);

//這裡也可以寫(xiě)成gcd(n,m),就省掉了前面的判斷了,會(huì)快一點(diǎn)

}

}

int

lcm(int

m,int

n){

int

i=1;

if(m<n){

//這個(gè)判斷是爲(wèi)了將大數(shù)放在前面

int

temp=n;

n=m;

m=temp;

}

int

lcm=m;

while(lcm%n!=0){

lcm=m*i;

i++;

}

return

lcm;

}

}

【程序7】

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

[java]

importpublic

class

Example

{

public

static

void

main(String[]

args)

{

//

TODO

Auto-generated

method

stub

int

abcCount=0;//英文字母?jìng)€(gè)數(shù)

int

spaceCount=0;//空格鍵個(gè)數(shù)

int

numCount=0;//數(shù)字個(gè)數(shù)

int

otherCount=0;//其他字符個(gè)數(shù)

Scanner

scan=new

Scanner(System.in);

String

str=scan.nextLine();

char[]

ch

=

str.toCharArray();

for(int

i=0;i<ch.length;i++){

if(Character.isLetter(ch[i])){

//判斷是否字母

abcCount++;

}

else

if(Character.isDigit(ch[i])){

//判斷是否數(shù)字

numCount++;

}

else

if(Character.isSpaceChar(ch[i])){

//判斷是否空格鍵

spaceCount++;

}

else{

//以上都不是則認(rèn)為是其他字符

otherCount++;

}

}

"字母?jìng)€(gè)數(shù):"+abcCount);

"數(shù)字個(gè)數(shù):"+numCount);

"空格個(gè)數(shù):"+spaceCount);

"其他字符個(gè)數(shù):"+otherCount);

}

}

【程序8】

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

幾個(gè)數(shù)相加有鍵盤(pán)控制。

【程序9】

題目:一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為"完數(shù)"。例如6=1+2+3.編程找出1000以內(nèi)的所有完

數(shù)。

【程序10】

題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時(shí),共經(jīng)過(guò)多

少米?第10次反彈多高?

【程序11】

題目:有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無(wú)重復(fù)數(shù)字的三位數(shù)?都是多少?

【程序12】

題目:企業(yè)發(fā)放的獎(jiǎng)金根據(jù)利潤(rùn)提成。利潤(rùn)(I)低于或等于10萬(wàn)元時(shí),獎(jiǎng)金可提10%;利潤(rùn)高于10萬(wàn)元,低于20萬(wàn)

元時(shí),低于10萬(wàn)元的部分按10%提成,高于10萬(wàn)元的部分,可可提成7.5%;20萬(wàn)到40萬(wàn)之間時(shí),高于20萬(wàn)元的部

分,可提成5%;40萬(wàn)到60萬(wàn)之間時(shí)高于40萬(wàn)元的部分,可提成3%;60萬(wàn)到100萬(wàn)之間時(shí),高于60萬(wàn)元的部分,可

提成1.5%,高于100萬(wàn)元時(shí),超過(guò)100萬(wàn)元的部分按1%提成,從鍵盤(pán)輸入當(dāng)月利潤(rùn)I,求應(yīng)發(fā)放獎(jiǎng)金總數(shù)?

【程序13】

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

【程序14】

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

【程序15】

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

【程序16】

題目:輸出9*9口訣。

【程序17】

題目:猴子吃桃問(wèn)題:猴子第一天摘下若干個(gè)桃子,當(dāng)即吃了一半,還不癮,又多吃了一個(gè)第二天早上又將剩

下的桃子吃掉一半,又多吃了一個(gè)。以后每天早上都吃了前一天剩下

的一半零一個(gè)。到第10天早上想再吃時(shí),見(jiàn)只剩下一個(gè)桃子了。求第一天共摘了多少。

【程序18】

題目:兩個(gè)乒乓球隊(duì)進(jìn)行比賽,各出三人。甲隊(duì)為a,b,c三人,乙隊(duì)為x,y,z三人。已抽簽決定比賽名單。有人向

隊(duì)員打聽(tīng)比賽的名單。a說(shuō)他不和x比,c說(shuō)他不和x,z比,請(qǐng)編程序找出三隊(duì)賽手的名單。

【程序19】

題目:打印出如下圖案(菱形)

*

***

******

********

******

***

*

【程序20】

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

【程序21】

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

【程序22】

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

【程序23】

題目:有5個(gè)人坐在一起,問(wèn)第五個(gè)人多少歲?他說(shuō)比第4個(gè)人大2歲。問(wèn)第4個(gè)人歲數(shù),他說(shuō)比第3個(gè)人大2歲。問(wèn)

第三個(gè)人,又說(shuō)比第2人大兩歲。問(wèn)第2個(gè)人,說(shuō)比第一個(gè)人大兩歲。最后問(wèn)第一個(gè)人,他說(shuō)是10歲。請(qǐng)問(wèn)第五個(gè)

人多大?

【程序24】

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

【程序25】

題目:一個(gè)5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個(gè)位與萬(wàn)位相同,十位與千位相同。

【程序26】

題目:請(qǐng)輸入星期幾的第一個(gè)字母來(lái)判斷一下是星期幾,如果第一個(gè)字母一樣,則繼續(xù)判斷第二個(gè)字母。

【程序27】

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

【程序28】

題目:對(duì)10個(gè)數(shù)進(jìn)行排序

【程序29】

題目:求一個(gè)3*3矩陣對(duì)角線元素之和

【程序30】

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

【程序31】

題目:將一個(gè)數(shù)組逆序輸出。

【程序32】

題目:取一個(gè)整數(shù)a從右端開(kāi)始的4~7位。

【程序33】

題目:打印出楊輝三角形(要求打印出10行如下圖)

1

11

121

1331

14641

15101051

【程序34】

題目:輸入3個(gè)數(shù)a,b,c,按大小順序輸出。

【程序35】

題目:輸入數(shù)組,最大的與第一個(gè)元素交換,最小的與最后一個(gè)元素交換,輸出數(shù)組。

【程序36】

題目:有n個(gè)整數(shù),使其前面各數(shù)順序向后移m個(gè)位置,最后m個(gè)數(shù)變成最前面的m個(gè)數(shù)

【程序37】

題目:有n個(gè)人圍成一圈,順序排號(hào)。從第一個(gè)人開(kāi)始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論