Java基础编程题(含答案)_第1页
Java基础编程题(含答案)_第2页
Java基础编程题(含答案)_第3页
Java基础编程题(含答案)_第4页
Java基础编程题(含答案)_第5页
已阅读5页,还剩35页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

50道JAVA基础编程练习题【程序1】题目:古典问题:有一对兔子 ,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死 ,问每个月得兔子对数为多少?程序分析: 兔子得规律为数列 1,1,2,3,5,8,13,21、、、、publicclassProg1{publicstaticvoid main(String[]args){?int n=10;System、out、println("第”+n+”个月兔子总数为” +fun(n));?}privatestaticintfun(int n){??if(n==1|| n==2)return1;elsereturnfun(n-1)+fun(n-2);?}}【程序2】题目:判断 101-200之间有多少个素数 ,并输出所有素数。程序分析:判断素数得方法 :用一个数分别去除 2到sqrt(这个数),如果能被整除,则表明此数不就是素数,反之就是素数 .public classProg2{?public static voidmain (String[] args){ntm=1;? intn=100 0;??intco unt =0;//统计素数个数??for(int i=m;i<n;i++){if(isPrime(i)){????count++;?? System、out、print(i+" ");if(count%10==0){System、

out、printl

n();?

?}???}}?

?System、out、println(System、out、print

);ln("在”+m

+"与"+n+"之间共有

"+count+"

个素数");?}?//判断素数priva

testa

tic

boolean

isPrime(intn

){?

booleanfl

ag

=tru

e;?

if(n==1)?flag= false;else{?for(inti=2;i<=Math、sqrt(n);i++){?? if(

(n%i)==0

||

n==1){??

fla

=false

;break;}else? flag= true;}?}returnf

lag;?}}【程序

3】题目:打印出所有得"水仙花数”,所谓”水仙花数"就是指一个三位数, 其各位数字立方与等于该数本身。例如:153就是一个”水仙花数 ",因为153=1得三次方+5得三次方 +3得三次方。程序分析:利用for循环控制 100-999个数,每个数分解出个位 ,十位,百位。public

clas

sProg3{?public

static voidmain(String []for(inti=100;i〈1000;

args){i++){if(is

Lotus(i))?

Syste

m、out、print

(i+"

”)

;}System、out、println();?}/判断水仙花数privatest

atic

boolean isLotus(

int

lotus){?int

m=

0;?intn=

lotus;?int

sum=0

;?m=n/100;n -=m*100;??sum =m*m*m;m=n/10;n-=m*10;sum+=m*m*m+n*n*n;if(sum==lotus)???returntru e;?else?returnfalse;}}【程序4】题目:将一个正整数分解质因数。例如:输入 90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小得质数k ,然后按下述步骤完成:如果这个质数恰等于n,则说明分解质因数得过程已经结束,打印出即可。(2)如果 n<〉k,但 n能被k整除,则应打印出 k得值,并用 n除以k得商,作为新得正整数n,重复执行第一步.(3)如果n不能被 k整除,则用k+1作为k得值,重复执行第一步。publicclassP

rog4{publi

static

voidmain

(String[

arg

s){??intn=13;?depose(n);}rivatestaticvoiddepose(intn){??for

?System、out、print( n+”=");(inti =2;i〈n+1;i++) {??while(n%i==0&&n!=i){?n/=i;? System、out、print( i+”*”);?}???if(n==i){System、out、printl n(i);??break;}}}}【程序5】题目:利用条件运算符得嵌套来完成此题:学习成绩 >=90分得同学用 A表示,60-89分之间得用B表示 ,60分以下得用 C表示。程序分析:(a〉b)?a:b这就是条件运算符得基本例子。publicclassProg5{ublicstaticvoidmain(String[]args){intn=-1;??try{?n=Integer、parseInt(args[0]);}catch(ArrayIndexOutOfBoundsExceptione){System、out、println(”请输入成绩");?return;}??grade(n);}//成绩等级计算private static void grade(intn){f(n>100||n〈0)System、out、println(”输入无效");else{? Stringstr = (n〉=90)?"分,属于A等”:((n〉60)?”分,属于 B等":"分,属于C等");System、out、println(n+str);}?}}【程序6】题目:输入两个正整数 m与n,求其最大公约数与最小公倍数。程序分析:利用辗除法。public class Prog6{publicstaticvoid main(String[] args){intm,n;??try{?

m=

Integer、parseInt(a

rgs[0]);???n=

Integer、parseInt(args[1]);?}catch(ArrayIndexOutOfB

oundsExceptione)

{?System、out、println

(”输入有误

");?

?ret

urn;?}?max_min(m,n);?}求最大公约数与最小公倍数?pri

vate staticvoi d max_min(int

m,intn)

{??int

temp=1;?int

yshu

=1

;intbshu=m*n;if(n〈m){?temp=n;n=m;?m=temp;??}??while (m!=0){temp=n%m;?n=m;?m=temp;??}?yshu

=n

;bshu/= n;System、out、println(m+"与"+n+"得最大公约数为??System、out、println(m+”与"+n+”得最小公倍数为"

"+yshu);+bshu);}}【程序7】题目:输入一行字符 ,分别统计出其中英文字母、空格、数字与其它字符得个数 .程序分析:利用 while 语句,条件为输入得字符不为 n’、impor

tj

ava、util

、Scanner;publiccla

ssProg7

_1{?publ

icstati

cvoidmai

n(Str

ing[]

args){??System、out、print(”请输入一串字符: ");Scannerscan=newScanner(System、in);tringstr=scan、nextLine();//将一行字符转化为字符串scan、close();?count(str);?}//统计输入得字符数?private staticvoidcount(Stringstr){??String

E1=

”[\u4e0

0—\u9fa5]";//汉字StringE2

= ”[a—zA—Z]";Str

in

gE3

=

”[0-9]”;Stri

ng

E4

\s";//空格ntcountChinese=0;??intcountLetter=0;intcountNumber=0;intcountSpace=0;intcountOther=

0;??char[]arr

ay_Char=

str

、toCharArr

ay();//

将字符串转化为字符数组??String[]array_

String=

newString[array_Char、length];//

汉字只能作为字符串处理or(inti=0;i〈array_Char、length;i++)array_Strin g[i]= Stri ng、valueOf(array_Char[i ]);//遍历字符串数组中得元素?for(Strings:array_String){?if(s、matches(E1))? countChinese++;elseif(s、matches(E2))countLetter++;?elseif( s、matches(E3))countNumber++;?elseif(s、matches(E4))countSpace++;?elsecountOther++;}Syst

em、out、pri

ntln(”输入得汉字个数:

"+countChi

nese);??Syste

m、out、pri

ntln

("输入得字母个数:”

+countLetter);System、out、pri

ntln

("输入得数字个数:"

+countNumber);?

?System、out、println("输入得空格个数System、out、println(”输入得其它字符个数

:"+countSpace) ;:"+countSpace);}}importjapublic

va、util、*;class Prog7_2{public staticvoid main(String[]args){System、out、println("请输入一行字符:");Scannerscan =newScanner(System、in);? Stringst

=s

can、nextLine(

);scan

、cl

ose();co

unt(

str);}//统计输入得字符privatestati

cvoid

count

(String str){List<String>

li

st

=new

ArrayList<String>()

;?

char[]

ar

ray_Char=

str、toCharArray();?for(char

c:arr

ay_Char)?

li

st、add(String、valueOf(c));/

/将字符作为字符串添加到

list

表中?

Collections

、sort(list

);//

排序for(S

tr

ing

s:list

){?intbegin=list、indexOf(s);intend=list、lastIndexOf(s);/索引结束统计字符数if(list、get(end)==s)??Syst em、out、println (”字符‘”+s+"’有"+(end-begin+1)+"个");}}}【程序8】题目:求s=a+aa+aaa+aaaa+aa、、、a得值,其中a就是一个数字.例如2+22+222+2222+2222(此时共有5个数相加),几个数相加有键盘控制。程序分析:关键就是计算出每一项得值.importjav

a、util、

Scanner;publi

classP

rog8{publicstaticvoi dmain(String[ ]args){?System、out、print("求s=a+aa+aaa+aaaa+、、、得值,请输入

a得值:");Scannerscan=newS

canner(System、in)

、useDelimiter(”\\s

*”);//

以空格作为分隔符inta=

scan、nextInt

();??int n =scan、nextInt() ;scan、close();//关闭扫描器System、out、println(expressed(2,5)+add(2,5));}?//求与表达式?pri

vate

sta

tic Stringexpre

ssed(int

a,intn

){??String

Buffersb

=n

ewStringBuffer

();?

StringBu

ffer

subSB

=new

StringBuffer

();for(int i=1;i<n+1;i++){subSB=subSB、append(a);sb=sb、append(subSB);if(i<n)? sb= sb、append(”+");}sb、append(”=");return

sb、toString();}?//

求与priva

testlong

aticlongasum=0;

dd(int

a,int

n){??longsubSUM=0;for(inti =1;i<n+1;i++){?subSUM=subSUM*10+a;sum=sum+subSUM;}?returnsum;}}【程序9】题目:一个数如果恰好等于它得因子之与,这个数就称为 "完数"。例如6=1+2+3、编程找出 1000以内得所有完数.publicclassProg9{?public

staticintn=10

voidmain(Str000;

ing[]

args){pNumber(n);}//求完数private staticvoid pNumber(intn){?int count = 0;System、out、println(n+ ”以内得完数: ");??for(inti =1;i<n+1;i++){intsum=0;for(intj=1;j〈i/2+1;j++){if((i%j)==0){?sum+=j;?if(sum==i){System、out、print(i+"");? if ((count++)%5==0)?System、out、println();}}???}}?}}【程序10】题目:一球从100米高度自由落下,每次落地后反跳回原高度得一半 ;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?importjava、util、Scanner;ublicclassProg10{publicst

at

ic

voidmain(String

[]

args

){??System、out、p

rin

t("请输入小球落地时得高度与求解得次数:”

);?Scannerscan

=new

Scanner(System、in)

、useDelimit

er(”

\\s

");int

h=

scan、nextIn

t()

;?

int

n =scan、next

Int();?scan、clos

e();??distance(h,n)

;?}//小球从h高度落下,经privatestaticvoi

n次反弹后经过得距离与反弹得高度ddistance(inth,intn){??doublele

ngth

=0;??for(int

i=0;

i〈n;i++){length+=h;h/=2、0;}System、out、println("经过第"+n+”次反弹后,小球共经过”+length+"米,"+"第”+n+”次反弹高度为”+h +”米");}}【程序11】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字得三位数 ?都就是多少程序分析:可填在百位、十位、个位得数字都就是1、2、3、 4.组成所有得排列后再去排列.publicclassProg11{

?掉不满足条件得?public

stati

voidm

ain(String[]args

){??intcount

=0;intn=0;??for(inti=1 ;i〈5;i++){???for

(int

j=1;j<5;j++){????i

f(j==i )?

?? conti

nue;for(int

k=1;k

<5;k++){if(k!=i && k!=j){n= i*100+j*10+k;?????System、out、print(n+"") ;??if((++count)%5==0)??System、out、println();??}}???}}System、out、println();?System、out、println(”符合条件得数共:"+count+"个");?}}【程序

12】题目:企业发放得奖金根据利润提成。利润(I)低于或等于元,低于20万元时,低于10万元得部分按10%提成,高于

10万元时,奖金可提 10%;利润高于10万10万元得部分,可可提成 7、5%;20万到40万之间时,高于20万元得部分,可提成 5%;40万到 60万之间时高于4 0万元得部分,可提成 3%;60万到

100万之间时

,高于60万元得部分,可提成

1、5%,高于

100万元时,超过

100万元得部分按

1%提成,从键盘输入当月利润

I,求应发放奖金总数?程序分析:请利用数轴来分界,定位 .注意定义时需把奖金定义成长整型。import java、io、*;publicclassProg12 {public staticvo id main(String[]args){System、out、print(”请输入当前利润: ”);?longprofit =Long、parseLong(key_Input());? System、out、println("应发奖金:"+bonus(profit) );}?//接受从键盘输入得内容privates

taticStr

ingkey

_Input(){String str =nulBufferedReader

l;bufIn

=new

Buff

eredReader(n

ewI

nputStreamReader(System、in

));??try{???str=bufIn、readLine();??}catch(IOExceptione){e、printStackTrace();finally{???try{bufIn、close();? }catch(IOException e){????e、printS tackTrace();?

}??}?ret

urn

str;}?//计算奖金?privatesta

tic longbonus(longprofit

){??long

prize

=0;long profit

_sub

=pr

ofit;??if(profit >1000000){??profi t=profit_sub-1000000;??profit_sub =1000000;prize+=profit*0、01;??}?if(profi t>600000){profit=profit_sub—600000;?profit_sub=600000;??prize+=profit*0、015;?}if(profit>400000){???profit=pr ofit_ sub-400000;???profit_s ub=400000;? ?prize+=profi t*0、03;}if(profit>200000){?profit= profit _sub—200000;profit_sub=200000;?prize+=pri ze*0、05;}?if(profit >100000){profit=profit_sub-100000;??profit_sub=100000;?prize+=profit*0、075;?}prize+= profit_sub*0、1;?returnprize;}}【程序1

3】题目:一个整数,它加上10

0后就是一个完全平方数,再加上

168又就是一个完全平方数

,请问该数就是多少?程序分析:在10万以内判断

,先将该数加上1

00后再开方,再将该数加上

268后再开方

,如果开方后得结果满足如下条件,即就是结果。publiccl ass Prog13{public

staticvoidmain

(String[

]args

){??int

n=0;for(inti=0;i〈100001;i++){? ?if(ispSqrt(i+100)&& ispSqrt(i+268)) {n=i;?break;?}?}System、out、println("

所求得数就是

:”+n);}?//

判断完全平方数priva

testaticboolebooleanisp

anispSqrt(=false;

int

n)

{??for

(int

i=1

;i〈Math、sqrt(n)+1

;i++)

{???if(n==Math、pow(i,2)){?isp= true;break;?}?}returnisp;?}}【程序14】题目:输入某年某月某日,判断这一天就是这一年得第几天 ?程序分析:以

3月5日为例,应该先把前两个月得加起来,然后再加上

5天即本年得第几天

,特殊情况,闰年且输入月份大于3时需考虑多加一天

.import

java

、util

、Scanner;public

classProg14

{public

static voi

dmain(String[]args)

{??Scanner scan =new Scanner(System、in)、useDelimiter("\\D?System、out、print(”请输入当前日期 (年—月-日):");

");//

匹配非数字??inty

ear

scan

、nextInt();?intmonth=

scan、nextIn

t();??intdat

=sca

n、nextInt(

);scan、close(

);System、out、println

(”今天就是

"+year+

"年得第"

+anal

ysis(year,month,date)+"天");}?//判断天数?privatestatic

intanalysis(intyear

,in

tmonth,

intdate)

{?intn=

0;?

int[]

month_date=newint

[] {0,31,28,31,30,31,30,31,31,30,31,

30};??if((year%400)==0||((year%4)==0)&&((year%100)!=0))month_date[2]=29;?for(int i=0;i<month;i++)n+=month_date[i];?returnn+date;?}}【程序15】题目:输入三个整数

x,y,z,请把这三个数由小到大输出

.程序分析

:我们想办法把最小得数放到

x上,先将

x与y进行比较,如果

x>y则将

x与y

得值进行交换

,然后再用x与z进行比较

,如果

x>z则将

x与z得值进行交换

,这样能使

x最小。importjava

、util

、Scanner;public

cla

ssProg

15{?publicstaticv

oid

main(Strin

g[]

args){?

Scanner

scan

=new

Scanner(Syste

m、in)、useDelimiter

(”

D”);System、out、print(”请输入三个数:”);?intx=scan、nextInt();??inty=scan、nextInt();?intz=scan、nextInt();??scan、close();?System、out、println(”排序结果:”+sort(x,y,z));}?//比较两个数得大小?privatestaticStringsort(intx,inty,intz){?Strings=null;??if(x>y){intt=x;???x = y;???y=t;??}if(x>z){?? intt

=x;? ?x=

z;z=t;?}if(y〉z){? intt=z ;?z=y;?y=t;}s=x+””+y+""+z;??returns;}}【程序16】题目:输出 9*9口诀.程序分析:分行与列考虑 ,共9行9列,i 控制行,j控制列。publiccl

ass

Prog16{?publicsta

ti

cvoidmain(Strin

g[]

args){for(i

nti=1

;i〈10;i++

){?

for(

intj=1

;j〈i

+1;j++

)??System、out、print(j+"*”+i+"="+(j*i)+”");?? System、out、printl n();?}?}}【程序17】题目:猴子吃桃问题:猴子第一天摘下若干个桃子 ,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下得桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下得一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。程序分析:采取逆向思维得方法 ,从后往前推断。publicclass Prog17{publicstati cvoidmain(Strin g[]arg

s){?intm= 1;for(inti=10;i〉0;i-—)m=2*m+2;System、out、println("小猴子共摘了"+m+"桃子");?}}【程序18】题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单。有人向队员打听比赛得名单。

a说她不与

x比,c说她不与

x,z

比,请编程序找出三队赛手得名单

.impo

rtja

va、util

、Array

List;publ

icclass

Prog18{Stri

ng

a,b,c;//甲队成员?publicstati

voidmain

(String

[]

args){Str

ing[

]r

acer

={"x"

,”y","z

”};//

乙队成员Arr

ayList<Prog1

8> arrayList

newArr

ayList〈Prog18>();for

(inti

=0;i<3

;i++)??for(intj=0

;j

〈3;j++

)for(intk=0;k<3;k++){?

?Prog18pro

g18

=newPr

og18(racer[i],ra

cer[j]

,racer[k])

;if(!prog1

8、a、equals(prog18、b)&&!pr

og18、a、eq

uals

(prog18、c) && !prog18、b、equals

(prog18、c)&&?? ?!p rog18、a、equals(

"x”)

&& !prog18、c、equals("x”)&&!p

rog18、c、equals(”z"))?arrayList、add(prog18);}for(Objectobj:arrayList)? System、out、println(obj);}?//构造方法privat eProg18(String a,String b,Stri ng c){?this、a=a;this、b=b;??this、c =c;}?publicStri ng

toStri

ng(){return"a

得对手就是

"+a+”

”+”b得对手就是"

+b+"

"+

”c得对手就是"

+c;}}【程序

19】题目:打印出如下图案(菱形 )********************程序分析:先把图形分成两部分来瞧待 ,前四行一个规律 ,后三行一个规律 ,利用双重 for 循环,第一层控制行,第二层控制列。publicc

lass

Prog19{publi

stat

ic

voi

dmain(String[]

args){??intn=

5;print

Star

(n);?}打印星星privatestaticvoid printStar(intn ){打印上半部分??for(inti=0; i<n;i++){for(intj=0;j〈2*n;j++){?if(j〈n—i)?

if(j

System、out、print(”>=n-i&&j<=n+i)

”);System、out、print(”*”);}System、out、println();?}打印下半部分?for(int i=1;i 〈n;i++){?System、out、print("”);?for(intj=0;j<2*n—i;j++){??if(j<i)?System、out、print("”);?if(j>=i&&j<2*n—i-1)??? System、out、print("*") ;? }??System、out、println();??}}}【程序

20】题目:有一分数序列:

2/1,3/2,5/

3,8/5,13/8,21/13、、、求出这个数列得前

20项之与。程序分析:请抓住分子与分母得变化规律。publiccl

assPr

og20{?publi

c stati

void

main(String[]a

rgs){?double

n1=

1;??doubl

n2

=1;??doubl

ef

raction =n1/n2;doubleSn=0;?for(inti= 0;i<20;i++){?? doublet

= n1;double

t2=

n2;n1=t1+t2;??n2=t 1;fraction=n1/n2;Sn+=fr action;}?System、out、print(Sn);?}}【程序21】题目:求1+2!+3!+、、、+20!得与程序分析:此程序只就是把累加变成了累乘 .public classProg21{publicstati

voidm

ain(

St

ring[]a

rgs){??longsum=0

;for(inti=0;i<20;i++)?? sum += factorial(i+1);??System、out、println (sum);?}阶乘?private

staticl

ong

factorial(intn

){?

int

mult=

1;??for(inti= 1;i<n+1;i++)?mult* =i;returnmult;?}}【程序22】题目:利用递归方法求 5!。程序分析:递归公式: fn=fn_1*4!public

cl

assP

rog22{?publicstatic

void

main(Stri

ng[]ar

gs){Syst

em、out、println(fact

(10));?}//递归求阶乘?privatestaticl ong fact(int n){f(n==1)return1;??elsereturnfact(n-1)*n;}}【程序23】题目:有5个人坐在一起,问第五个人多少岁?她说比第 4个人大2岁。问第4个人岁数 ,她说比第3个人大2岁。问第三个人,又说比第 2人大两岁.问第2个人,说比第一个人大两岁。最后问第一个人 ,她说就是10岁.请问第五个人多大?程序分析:利用递归得方法,递归分为回推与递推两个阶段。 要想知道第五个人岁数 ,需知道第四人得岁数,依次类推,推到第一人 (10岁),再往回推。public classPr og23{publicstat icvoidmain(String[]args ){System、out、println(getAge(5,2));?}?//求第m位同志得年龄?privatestatic int getAge(intm,intn){??if(m==1)??ret urn 10;??else??ret urngetAge(m-1,n)+n;?}}【程序24】题目:给一个不多于

5位得正整数,要求:一、求它就是几位数,二、逆序打印出各位数字

.public

class

Prog24{publi

cstatic

voidmain

(String[] args){??intn?int

=Inti

eger=0;

、parseInt(

args[0]);?int[]a =newint [5];??do{??a[i]=n%10;n/=1

0;++i

;while(n!=0);System、out、print

("这就是一个”+i

+"位数,从个位起

,各位数字依次为

:"

);??for(int

j=0;j<i;j+

+)?System

、out、print

(a[j]+

”")

;?}}【程序2

5】题目:一个

5位数,判断它就是不就是回文数。即

12321就是回文数,个位与万位相同,十位与千位相同.import java、io、*;publicclas s Prog25{?public static void

main(

Stri

ng[]args){intn=0

;??System、out、print(

”请输入一个 5位数:”);??Buffer

edReaderbufin

=new BufferedReader(new

Inpu

tStreamReader(System、in));?tr

y{n=Integer、parseInt(bufin、readLine());??}catch(IOExceptione){?e、printStackTrace();? }final ly{try{?bufin、close();?}catch(IOExceptione){????e、printStackTrace();}}palin(n);}?private stat

icvoi

dpali

n(int

n)

{?intm=n;?

int[]a=new?if(n〈10000

int[5];||n>99999){System、out、println("输入得不就是5位数!”);?return;}else{or(inti=0;i<5;i++){???a[i ]=n%10;?n/=10;}if(a[0]==a[4]&&a[1]==a[3])Sy stem、out、println(m+"就是一个回文数” );elseSystem、out、println(m+ ”不就是回文数” );}}}【程序26】题目:请输入星期几得第一个字母来判断一下就是星期几 ,如果第一个字母一样 ,则继续 判断第二个字母程序分析:用情况语句比较好 ,如果第一个字母一样 ,则判断用情况语句或 if 语句判断第二个字母。import java、io、*;publicclass Prog26{?public static voidmain(String []args){? String str= newString( );

.Buff

eredRead

erbufIn

=new

Buffer

edReader(newIn

putStreamReader(Sysem、in));?System、out、print(”请输入星期得英文单词前两至四个字母): ");try{str=bufIn、readLine();}catch(I OException e){e、printStackTrace();?}fin ally{try{ufIn、close();?? }catch(IOException e){? e、printStackTrace();}}week(str);?}?privatestaticvoidweek(S

tring

str

){??intn

=-1

;if(str、trim()

、equalsI

gnoreCase("Mo")||str、tri

m()、equalsIgnoreCase("Mon")|| str、trim()、equalsIgnoreCase("Mond”))n=1;??if(str、trim()、equalsIgnoreC ase(”Tu")||sue”) || str、trim()、equalsIgnoreCase(

tr、trim"Tues”))

()、equalsIgnoreCase(

"Tn=

2;if(

str

、trim()、equalsI

gnoreCase(”We

")|

|str、trim()、equal

sIgnoreCase("Wed")

||

str

、tr

im()、equalsIgnoreCase(”Wedn"

))n=

3;??if(str、trim()、equalsIgnoreCase(”Th")||str 、trim

()、equalsIgnor

eCase("Thu") || str、trim()、equalsIgnoreCase("Thur"))n=4;??if(str、trim()、equalsIgnor eCase("Fr") ||str 、trim()、equalsIg

noreCase("Fri

”)|| str、trim()、equalsIgnoreCase("Fri d"))n=5;?if( str、trim()、equalsIgnoreCase("Sa”) ||str、trim( )、equalsIgnoreCse("Sat")||str、trim()、equalsIgnoreCase(”Satu"))n=2;if(str 、trinoreCase(”Sun")|| s

m()、equalsIgnoreCase("Su")||strtr、trim() 、equalsIgnoreCase(”Sund”))

、trim()、equals

Ign =0;??switch(n){?case1:System、out、println("星期一”);? break;case2:???System、out、println("星期二”);break;case3:? System、out、println ("星期三");???break;?case4:System、out、println(”星期四”);break;case5:? Syste m、out、printl n(”星期五");???break;case6:??Syst em、out、printl n("星期六");break;?case0:System、out、println(”星期日”);?break;default:? ?System、out、println ("输入有误!” );break;?}}}【程序27】题目:求100之内得素数publicc lassProg27{publicstatic

void

main(String

[]

args)

{int

n=

100;??System、out、print(n+"以内得素数:"for(inti=2;i 〈n+1;i++){??if(isPrime (i))?? System、out、print(i+" ");

);??}}//求素数priva

te

staticb

ooleanis

Prime(int

n){?booleanflag=t

rue;for(inti=2 ;i<Math、sqrt(n)+1 ;i++)if(n%i==0){?f lag = false;break;??}returnflag;}}【程序28】题目:对10个数进行排序程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小得与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。publicclassProg28{?publicstaticvoidmain(String[]args){??int[]a=newint[]{31,42,21,50,12,60,81,74,101,93};??for(inti=0;i〈10;i++)???for(intj=0;j<a、length-i-1;j++)???if(a[j]〉a[j+1]){????inttemp=a[j];a[j]=a[j+1];?? ?a[j+1] =temp;}??for(int i=0;i<a、length;i++)?S

ystem、out、prin

t(a[i

]+"

”);}}【程序

29】题目:求一个3*3矩阵对角线元素之与程序分析:利用双重 for 循环控制输入二维数组

,再将

a[i][i]

累加后输出

.publicc

lassProg2

9{?public

staticint[] []

voida =

main(Stnewint

ring[]args){[][] {{100,2

,3,},{

4,5,6},

{17,8,9}};?matrSum(a);?}privatest

atic

void

matr

Sum(int[

][]

a){??intsum1=0;?

intsum2=0

;?fo

r(in

ti=0;i〈a、length;i++)for

(int

j=0;j

〈a[i]

、length;j++)

{?if

(i==j)su

m1

+=a[i][j

];?

?if(j==a、len

gth-i-1)

sum2 +=

a[i][j];}System、out、println ("矩阵对角线之与分别就是: "+sum1+"与"+sum2);}}【程序30】题目:有一个已经排好序得数组 .现输入一个数,要求按原来得规律将它插入数组中。程序分析:首先判断此数就是否大于最后一个数 ,然后再考虑插入中间得数得情况, 插入后此元素之后得数 ,依次后移一个位置。importjava、util、Scanner;publicclassProg30{publicstaticvoidmain(String[]args){?int[]A=newint[]{0,8,7,5,9,1,2,4,3,12};int[]B=sort(A);?print(B);??System、out、printl

n();Sy

stem、out、pri

nt(”请输入

10个数得数组:");Scannersc

an

=n

ew

Sca

nner(System、in); ?inta=s

can、nextInt

();scan、close();int[]C= insert(a,B);print(C);}选择排序?private

staticintint[]

[]sort( int[]A ){=new int[A、length]

;?for(inti=

0;i

<A、length-1;i++){?

?int

min

= A[i]

;?

for

(int

j=i

+1;j

〈A、length;j++)

{if

(min>A[j

]){?

?inttemp=min;??? ?min=A

[j];A[j]=tem

p;?

}?B[i]

=min;}}?B[A、length-1]=A[A、length-1];returnB;?}/打印privat estatic voidprin t(int[]A){??for(inti= 0;i<A、length;i++)System、out、print(A[i]+"");?}插入数字?privatestatic int[]insert (int a,int[??int[]B= new int[A、length+1];??for(i nt i=A、length-1;i〉0;i——)

]A){if(a〉A[i]){?B[i+1]=a;? fo r(intj=0 ;j〈=i;j++)B[j]=A[j];? for (int k=i+2;k<B、length;k++)B[k]=A [k—1];break;??}returnB;?}}【程序31】题目:将一个数组逆序输出。程序分析:用第一个与最后一个交换 .public classProg31{publicstatic voidmain(String[] args){?int[] A=newint[]{1,2,3,4,5,6,7,8,9,};??print(A);System、out、println();?int[]B =revers e(A);??print(B);?}pri

vatestati

cin

t[]

reverse(int

[]

A){for

(int

i=0;i<A、length/2

;i++){inttemp=A[A、length—i-1];A[A、length-i—1]=A[i];??A[i] =temp;?}eturnA;?}priva

testa

ticv

oid

print

(int

[]

A){for(inti=0

;i〈A、

length;i++)??Sy

stem、out、prin

t(A[i

]+"

”);?}}【程序32】题目:取一个整数 a从右端开始得 4~7位。程序分析:可以这样考虑:(1)先使a右移4位。(2)设置一个低 4位全为1,其余全为0得数。可用~(~0<<4)(3)将上面二者进行&运算。importjava

、util

、Scanner;publiccl

assProg3

2{?public

static

voi

dmain(St

ri

ng[]

msg){??//

输入一个长整数??Scanner scan=new Scanner(System、in);longl=scan、nextLong();??scan、close();//以下截取字符??Str?

ingstr=Lon?char[]intn=ch

g、toSch=str、length;

tring(l );、toCharArr

ay();if

(n<7)??S

yste

m、out、prin

tln("输入得数小于

7位!");else??System、out、println("截取得4~7位数字:”+ch[n—7]+ch[n-6]+ch[n—5]+ch[n—4]);}}【程序33】题目:打印出杨辉三角形(要求打印出10行如下图)程序分析:11 11211 3 311464115 101051publicclassProg33{publicstat

ic

voidmain(String[]

args){int[][

]n=

new int[10][

21];n[0][10]

=1;??for(inti

=1;i<10

;i++

)?

for(i

nt

j=1

0-i;j<

10+i+1;

j++)? n

[i][

j]=n

[i

—1][

j-1]+n[i-1][j+

1];for(int

i=0;i<10

;i++){for(in

tj

=0;j

〈21;j++

){??? if(n[i

][j]

==0)?

System、out、print("

”);???el

se{?

?

if(n[i][j]<10)Syste m、out、print ("elseif (n[i][j]<100)

"+n[i][j]

);//空格为了美观需要?? System、out、print (”"+n[i][j]) ;else?System、out、print(n[i][j]);?}??}??System、out、println( );}}}【程序34】题目:输入3个数a,b, c,按大小顺序输出。程序分析:利用指针方法。importjava

、uti

l、Scanner;publiccl

assProg34{publics

tatic

voidmai

n(String[]

args){System、out、print(”请输入3个数:”);?

Scannersc

an

newScanner

(System、in)、useDeli

miter("\

s”);?inta

=scan、nextInt(

);??int

=s

can、nextI

nt()

;??intc= scan、nextInt ();scan、close();?if(a<b){?? intt = a;=b;? b = t;}?

if(a 〈c)intt=

{a;a=c;??c=t;}??if(b〈c){??intt=b;??b=c;?c=t;?}?System、out、println(a+"”+b+""+c);?}}【程序35】题目:输入数组,最大得与第一个元素交换 ,最小得与最后一个元素交换 ,输出数组。importjava、util、Scanner;publicclassProg35{publicstaticvoidmain(String[]args){??System、out、print(”请输入一组数:");Scannerscan=newScanner(System、in)、useDelimiter(s");?int[]a=newint[50];?intm=0;??while(scan、hasNextInt()){??a[m++]=scan、nextInt();??}scan、close();int[]b =newint[m];??for(inti=0 ;i<m;i++)?? b[i]= a[i];??for(int i=0;i〈b、length;i++ )for(intj=0;j<b、length-i—1;j++)?if(b[j]〈b[j+1]){??? ?int

temp=

b[j];?

??b[j

]=b[

j+1];????b[j+1]

=

temp;?}for(inti=0;i〈b、length;i++)??Sys

tem、out、print(b[i]+"

");}}【程序

36】题目:有n个整数,使其前面各数顺序向后移m个位置

,最后

m个数变成最前面得

m个数import

java

、util

、Scanner;publi

cclassPro

g36{publi

static

voidm

ain(String

[]

args

){?

fi

nal

intN

=10;System、out、print("请输入10个数得数组:");?Scannerscan=newScanner(System、in);??int

[]a=

newin

t[N]

;??for(inti= 0;i<a、length;i++)a[i ] =scan、nextInt();? System、out、print(”请输入一个小于

10得数:")

;?

int

m=

scan、nextInt

();scan、clo

se();?int

[] b= new int[m]int[]c=ne wintfor(inti=0;i

;[N—m];<m;i++)b[i]=a[i

];for(inti=m,j=0;i<N;i++,j++)c[j

]=

a[i

];??for(int

i=0;i〈N—m;i++)?

a[i]

=c[i

];?for

(int

i=N-m,j=0;i

<N;i++,j++)??a[i]=b[j]

;?

for(int

i=0;i

〈a、length;i++)?System、out、print (a[i]+"");?}}【程序37】题目:有n个人围成一圈,顺序排号。从第一个人开始报数

(从

1到3报数),凡报到3得人退出圈子,问最后留下得就是原来第几号得那位

.import

java、util

、Scanner;public

classPr

og37{public

staticvoi

d main(String[]a

rgs){System、out、print("请输入一个整数:”);??Scanner

scan=

new

Scanner(System、in);int

n=

scan、nextInt

();?scan、close();//定义数组变量标识某人就是否还在圈内boolean[]

isIn=

newboolean[n]

;??for(int

i=0;i

〈isI

n、l

ength;i++)?? isIn[i]

tru

e;//定义圈内人数、报数、索引??int inCount= n;intcountNum=0;intindex=0;??while(inCount〉1){?if(isIn[index]){???countNum++;???if(countNum==3){??countNum=0;?isIn[index]= false;?inCount-—;? }??}???index++;f(index==n)? index= 0;??}for(inti=0;i<n

;i++)?

if(i

sIn[i

])System、out、println(”留下得就是: "+(i+1));?}}【程序38】题目:写一个函数,求一个字符串得长度 ,在main函数中输入字符串 ,并输出其长度。import

java

、util、S

canner;public

class

Prog38{?publics

tati

void main(String[

]args){System、out、print ("请输入一串字符

:"

);?Scanner

sc

an

=new

Scanner(S

ystem、in)、useDelimit

n”);??Strings

trIn=s

can、next();?

scan、close();char[]

ch=

strIn

、toCharArray();??System、out、println

(strIn

+”共"+(ch、length—1)+"个字符”

);}}【程序39】题目:编写一个函数,输入

n为偶数时,调用函数求

1/2+1/4

+、、、+

1/n,当输入n为奇数时

,调用函数1/1+1/3+、、、+1/n(利用指针函数)mportjava、util、Scan

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论