java上机题及答案docWord文档下载推荐.docx
《java上机题及答案docWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《java上机题及答案docWord文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到-个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果nok,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
⑶如果n不能被k整除,则用k+1作为k的值,重复执行第…步。
【程序5】
利用条件运算符的嵌套来完成此题:
学习成绩>
=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
(a>
b)?
a:
b这是条件运算符的基本例子。
【程序6]
输入两个正整数m和n,求其最大公约数和最小公倍数。
利用辗除法。
【程序7]
输入一■行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
利用while语句,条件为输入的字符不为、nL
【程序8】
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
关键是计算出每一项的值。
【程序9】
一个数如果恰好等于它的因子之和,这个数就称为"
完数"
。
例如6=1+2+3.编程找出1000以内的所有完数。
【程序10]
一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在第10次落地时,共经过多少米?
第10次反弹多高?
代码
publicclassIteml
{
publicstaticvoidmain(String[]args)
Num();
}
publicstaticvoidNum()
inti=l;
intj=l;
intk=l;
intsum=0;
//记录能够组成三位数的个数
intnumber;
//表示的三位数
for(i=l;
i<
5;
i++)
for(j=l;
j<
j++)
if(i==j)
continue;
//确保十位与百位数字不相同
for(k=l;
k<
k++)
if(i==k||j==k)
//确保个位与十位、百位的数字不相同
sum=sum+l;
number=i*100+j*10+k;
System.out.println(number);
)
System.out.println("
组成互不相同且无重复数字的三位数的个数为:
"
+sum);
publicclassItem2
(
System.out.print("
100到1000之间的水仙花数有:
);
for(inti=100;
1000;
if(isDaffodil⑴)
System.out.print(i+"
publicstaticbooleanisDaffodil(intn)〃判断一个三位数是否是水仙花数(
inti=n/100;
〃得到百位上的数
intj=(n-100*i)/10;
//得到十位上的数
intk=n%10;
//得到个位上的数
if(n==i*i*i+j*j*j+k*k*k)
returntrue;
else
returnfalse;
publicclassItem3
publicstaticvoidmain(String[]strs)
101到200之间的素数有:
);
for(intj=102;
200;
if(isPrime(j))
System.out.print(j+"
publicstaticbooleanisPrime(intn)〃判断一个数是否是素数
for(inti=2;
=Math.sqrt(n);
if(n%i==O)
publicclassItem4
factor(500);
publicstaticvoidfactorfintn)
forfinti=2;
n;
if(n%i==0)〃得到因子i
*"
n=n/i;
i=l;
System.out.println(n);
importjava.util.*;
publicclassItem5
intx;
Scanners=newScanner(System.in);
请输入一个成绩:
x=s.nextlnt();
Grade(x);
publicstaticvoidGrade(intx)
chargrade=x>
=90?
'
A'
:
x<
60?
C
B;
等级为:
+grade);
【程序6】
请输入一个整数:
intm=s.nextlnt();
请再输入一个整数:
intn=s.nextlnt();
System.out.println(m+"
与”+n+”的最大公约数为:
”+GCD(m,n));
与”+n+”的最小公倍数为:
+LCM(m,n));
publicstaticintGCD(intm,intn)〃求两个数的最大公约数
intmax;
intmin;
if(m>
n)
max=m;
min=n;
max=n;
min=m;
for(;
;
if(max%min==O)
returnmin;
intt=min;
min=max%min;
max=t;
publicstaticintLCM(intm,intn)〃求最小公倍数
returnm*n/GCD(m,n);
【程序7】
publicclassItem7
System.out.println();
Scannerinput=newScanner(System.in);
System.out.println(,•请输入一个字符串:
Stringstr=input.nextLine();
System.out.println(str);
StringCount(str);
publicstaticvoidStringCount(Strings)
inti=0;
〃统计字符串中字母的个数
intj=0;
〃统计字符串中数字的个数
intk=0;
〃统计字符串中空格的个数
int1=0;
〃统计字符串中其他字符的个数
chara[]=s.toCharArray();
for(intii=O;
ii<
a.length;
ii++)
intascii=a[ii];
//获取ASCII码值
//System.out.println(a[ii]);
if(ascii>
=65&
&
ascii<
=901|ascii>
=97&
=122)i=++i;
if(ascii==32)
k=++k;
=48&
=57)
j=++j;
l=a.length-i-j-k;
字母的个数为:
+i);
数字的个数为:
+j);
空格的个数为:
+k);
System.out.println(,,其他字符的个数为:
+I);
System.out.println(Sum(2,4));
publicstaticintNum(intm,intn)//n个m所表示的数
intnumber=0;
for(inti=l;
=n;
intx=m*(int)Math.pow(10,i-l);
number=x+number;
returnnumber;
publicstaticintSum(intm,intn)〃求和
sum=sum+Num(m,i);
returnsum;
publicclassItem9
i++)〃输出1000以内的完数
if(PerfectNumber(i))
publicstaticbooleanPerfectNumber(intn)〃判断一个数是否是完数(
//记录因子的和
forfinti=l;
if(n%i==0)
sum=sum+i;
if(sum==n)
publicclassItemlO
hight();
publicstaticvoidhight()
doubleh=100.0;
doublesum=h;
=10;
i++)//i表示第几次下落
sum=sum+h;
〃注意除第一次下落外,其它每次下落经过的路程为前一次下落的局度
h/=2;
System.out.println(”第10次反弹的高度为:
+h);
第10次下落共经过的距离为: