java基础题及答案Word文档格式.docx
《java基础题及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《java基础题及答案Word文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
![java基础题及答案Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/26/37a4e900-3888-4d5b-9801-7c4c4671a13e/37a4e900-3888-4d5b-9801-7c4c4671a13e1.gif)
max=random[0];
for(intk=0;
k<
k++){
if(random[k]>
max){
max=random[k];
最大值为:
+max);
}
*
**
***
****
for(inti=1;
=4;
for(intj=1;
=4-i;
j++)
System.out.print("
for(intk=1;
=i;
*"
System.out.println();
打印出图案:
*
*****
*******
for(intj=1;
j<
=i*2-1;
j++){
for(inti=4;
i>
0;
i--){
=7;
intj;
j=i>
4?
15-2*i:
2*i-1;
for(;
j>
j--){
publicclassshijian{
if(i>
4)
j=15-2*i;
else
j=2*i-1;
j--){
if(i<
7/2+1)
j=2*(7-i)+1;
/**【程序1】
*题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一
*对兔子,假如兔子都不死,问每个月的兔子总数为多少?
*1.程序分析:
兔子的规律为数列1,1,2,3,5,8,13,21....
publicclassTest1{
publicstaticintrabit(intn){
if(n==1||n==2)
{
return1;
}elseif(n>
=3){
return(rabit(n-1))+(rabit(n-2));
return0;
for(inti=1;
i<
=12;
i++){
第"
+i+"
个月兔子对数为:
+rabit(i));
/*【程序2】
判断101-200之间有多少个素数,并输出所有素数。
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数
publicclassTest2{
publicstaticvoidmain(String[]args){
101到200间的素数有:
for(inti=101;
=200;
booleanflag=true;
for(intj=2;
=Math.sqrt(i);
if(i%j==0){
flag=false;
break;
if(flag==true){
System.out.print(i+"
continue;
/*【程序3】
打印出所有的"
水仙花数"
,所谓"
是指一个三位数,其各位数字立方和等于该数本身。
例如:
*153是一个"
,因为153=1的三次方+5的三次方+3的三次方。
利用for循环控制100-999个数,每个数分解出个位,十位,百位。
publicclassTest3{
for(inti=100;
999;
intg=(i%100)%10;
ints=(i%100)/10;
intb=(i/100);
if(g*g*g+s*s*s+b*b*b==i){
System.out.println(i);
/*【程序4】
将一个正整数分解质因数。
输入90,打印出90=2*3*3*5。
*程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
*
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
*
(2)如果n<
>
k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
*(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
publicstaticvoidmain(String[]args){
intk=2;
请输入一个数:
Scannerinput=newScanner(System.in);
intnum=input.nextInt();
if(num<
=1){
输入的数无效"
return;
if(num==k){
System.out.println(num+"
="
+"
1*"
+num);
}else{
System.out.print(num+"
=1"
while(num>
=k){
if(num%k==0){
//判断取余的数是否为0,如果是的话刚打印出k的值;
+k);
num=num/k;
k=k+1;
//如果说num与K取余不为0话,就K执行+1;
/*【程序5】
利用条件运算符的嵌套来完成此题:
学习成绩>
=90分的同学用A表示,60-89分之间的用B表示,60分以下
*的用C表示。
(a>
b)?
a:
b这是条件运算符的基本例子。
publicclassTest5{
System.out.println("
pleaseinputascore:
java.util.Scannerinput=newjava.util.Scanner(System.in);
intscore=input.nextInt();
intx=score/10;
switch(x){
case9:
A"
case8:
B"
case7:
C"
case6:
D"
default:
E"
/*【程序6】
输入两个正整数m和n,求其最大公约数和最小公倍数。
利用辗除法。
publicclassTest6{
//求最大公约数
publicstaticintgy(intm,intn){
while(m%n!
=0){
inttemp=m%n;
m=n;
n=temp;
returnn;
//求最小公倍数
publicstaticintgb(intm,intn){
returnm*n/gy(m,n);
publicstaticvoidmain(String[]args){
Scannerin=newScanner(System.in);
请输入第一个整数:
intm=in.nextInt();
请输入第二个整数:
intn=in.nextInt();
System.out.println(m+"
"
+n+"
的最大公约数是:
+gy(m,n));
最小公倍数是:
+gb(m,n));
}
/*【程序7】
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
利用while语句,条件为输入的字符不为'
\n'
.
publicclassTest7{
publicstaticvoidmain(String[]args){
inti=0;
intj=0;
intk=0;
intm=0;
请输入一行字符:
Stringstr=in.next();
for(intn=0;
n<
str.length();
n++){
//str.length()来决定位数!
elseif(zf=='
'
)//判断空格时有错误
j++;
elseif(zf>
='
0'
&
zf<
9'
)
k++;
m++;
英文字母的个数是:
+i);
空格的个数是:
+j);
数字的个数是:
其他字符的个数是:
+m);
/*【程序8】
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),
*几个数相加有键盘控制。
关键是计算出每一项的值。
intsum=0;
intb=0;
请输入需要相加的数:
请输入几位数相加:
inta=input.nextInt();
=a;
sum=sum*10+num;
b+=sum;
if(i==a){
System.out.print(sum+"
System.out.print(b);
/*【程序9】
*题目:
一个数如果恰好等于它的因子之和,这个数就称为"
完数"
。
例如6=1+2+3.编程找出1000以内的所有完
*数。
*/
publicclassTest9
{
publicstaticvoidmain(String[]args)
intsum;
for(inti=2;
1000;
i++)
sum=0;
=i/2;
if(i%j==0)
sum+=j;
if(sum==i)
完数有:
/*【程序10】
一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在第10次落地时,共经过多
*少米?
第10次反弹多高?
publicclassTest10
publicstaticfinaldoublestartLong=100;
//求小球第n次落地时经过的距离
publicstaticdoubleballLeng(intn)
if(n<
=0)
小球没有落地!
doubleballLong=startLong;
doubletemp=startLong;
n;
ballLong=(ballLong/2);
temp+=ballLong*2;
returntemp;
//求小球第n次反弹了多高
publicstaticdoublereboundLong(intn)
if(n==1)
returnstartLong/2;
return(ballLeng(n)-ballLeng(n-1))/4;
//为什么除4
//求当小球停止跳动时,小球跳动了多少次数
publicstaticvoidzeroRebound()
intm=2;
while(m>
=2)
if((ballLeng(m)-ballLeng(m-1))/4==0)
System.out.println(m);
System.out.println(ballLeng(10));
System.out.println(reboundLong(10));
zeroRebound();
/*【程序11】
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?
都是多少?
*1.程序分析:
可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
publicclassTest11{
publicstaticvoidmain(String[]args){
intcount=0;
5;
k++)
if(i!
=j&
i!
=k&
j!
=k)
count++;
System.out.println(i*100+j*10+k);
由1,2,3,4共可以组成"
+count+"
个互不相同且无重复数字的三位数!
/*【程序12】
题目:
企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;
利润高于10万元,低于20万
元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;
20万到40万之间时,高于20万元的部
分,可