版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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
g
=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
c
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
r
=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
c
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
c
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
e
=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
c
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
c
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
c
void
main(String[]a
rgs){?double
n1=
1;??doubl
e
n2
=1;??doubl
ef
raction =n1/n2;doubleSn=0;?for(inti= 0;i<20;i++){?? doublet
1
= 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
c
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[]
B
[]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
b
=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
c
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
c
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 未来职业发展规划概述
- 《喜看稻菽千重浪 记首届国家最高科技奖获得者袁隆平》袁隆平的农业科技推广的策略课件
- 三级锅炉考试题及答案
- 学校网络安全与意识形态安全管理方案
- 药品不良事件监测试题及答案
- 广东省汕头市龙湖区2026年中考一模英语试题附答案
- 药品检验三基三严考试题库及答案
- 药品生产企业法律法规及质量管理规范岗前培训试题及答案
- 医疗废物收集试题及答案
- 网络助学平台考试试题及答案
- 2025年度社工《社会工作实务》考试题库(附答案)
- GB/T 15072.4-2025贵金属合金化学分析方法第4部分:钯含量的测定
- 安全防护用品使用培训课件
- 5年(2021-2025)高考1年模拟化学真题分类汇编专题12 化工流程综合题(北京专用)(解析版)(北京专用)
- 心电图试题及答案-心电图试题50题及答案
- 《管理学》(第二版)课件全套 高教版马工程 第0-16章 绪论 - 组织变革与创新
- 缝纫术语详细讲解
- 肿瘤品种医药代表业绩汇报
- 矿业可持续供应链管理-洞察及研究
- 英语口语课件自我介绍
- 幼儿园中医知识课件
评论
0/150
提交评论