整理JAVA习题文档格式.docx
《整理JAVA习题文档格式.docx》由会员分享,可在线阅读,更多相关《整理JAVA习题文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
![整理JAVA习题文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/28/eb6c25d1-e695-49df-9088-e7dafa42c766/eb6c25d1-e695-49df-9088-e7dafa42c7661.gif)
+cha+"
\n积是:
+ji+"
\n商是:
+shang);
JOptionPane.showMessageDialog(null,"
+shang,
"
Results"
JOptionPane.PLAIN_MESSAGE);
System.exit(0);
//terminateapplicationwithwindow
}//endmethodmain
}//endclassAddition
实验3
1、编写一个应用程序,要求用户输入一个圆的半径(double类型),然后计算并输出圆的直径、周长、面积等信息。
(把一个字符串转换为double类型数据的方法为Double.parseDouble(Strings))
importjava.text.DecimalFormat;
publicclassP3_1
{
publicstaticvoidmain(Stringargs[])
Stringr;
r=JOptionPane.showInputDialog("
请输入一个圆的半径:
);
doubleradius;
radius=Double.parseDouble(r);
doublezhijing,l,s;
finaldoubleP=Math.PI;
zhijing=2*radius;
l=2*P*radius;
s=P*Math.pow(radius,2);
DecimalFormatf=newDecimalFormat("
0.00"
//System.out.println("
圆的半径是:
+radius+"
\n"
+"
直径是:
+zhijing+"
\n周长是:
+f.format(l)+"
\n面积是:
+f.format(s));
JOptionPane.showMessageDialog(null,"
+f.format(s),
"
显示结果"
JOptionPane.INFORMATION_MESSAGE);
}
}
2、编写一个应用程序,要求用户输入两个整数,然后输出两个整数中的最大值。
publicclassP3_2
Strings1,s2;
s1=JOptionPane.showInputDialog("
请输入第一个整数:
s2=JOptionPane.showInputDialog("
请输入第二个整数:
intn1,n2;
n1=Integer.parseInt(s1);
n2=Integer.parseInt(s2);
intmax;
max=n1>
n2?
n1:
n2;
System.out.println(n1+"
和"
+n2+"
的最大值是:
+max);
}实验四
1、输入一个年份,一个月份(使用一个BufferedReader),判断该年该月有多少天(使用switch,注意要判断2月是多少天)
importjava.io.*;
publicclassP4_1
publicstaticvoidmain(Stringargs[])throwsIOException
intyear,month;
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
System.out.print("
请输入一个年份:
s1=br.readLine();
System.out.print("
请输入一个月份:
s2=br.readLine();
year=Integer.parseInt(s1);
month=Integer.parseInt(s2);
switch(month)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12:
System.out.println(year+"
年"
+month+"
月"
有31天"
break;
case4:
case6:
case9:
case11:
有30天"
case2:
if((year%4==0&
&
year%100!
=0)||(year%400==0))
System.out.println(year+"
有29天"
else
有28天"
default:
System.out.println("
你输入的月份是错误的!
}
2、如果一个数按反向顺序放置后仍然与原数相等,称为回文数(如:
12321)。
编程:
输入一个5位数,判断此数是否为回文数。
publicclassP4_2
请输入一个5位数:
Strings1=br.readLine();
intn=Integer.parseInt(s1);
intn1,n2,n3,n4,n5;
n1=n/10000;
//n2=(n-10000*n1)/1000;
n2=n%10000/1000;
n3=n%1000/100;
n4=n%100/10;
n5=n%10;
if(n1==n5&
n2==n4)
System.out.println(n+"
是回文数。
else
不是回文数。
实验5
3、求S=a+aa+aaa+…+aaaa…a之值,其中a是一个数字。
例如:
2+22+222+2222+22222(此时n=5),a和n要求用户由键盘输入。
(有规律的式子求和,注意找到前后两项之间的关系,该题中后一项等于前一项的10倍加a)
publicclassP5_1
请输入一个1-9的数字:
请输入项数:
inta,n;
a=Integer.parseInt(s1);
n=Integer.parseInt(s2);
intp=0,sum=0;
for(inti=1;
i<
=n;
i++)
p=p*10+a;
sum+=p;
for(intj=1;
j<
=i;
j++)
{
System.out.print(a);
}
if(i<
n)
System.out.print("
elseif(i==n)
="
System.out.println(sum);
4.编写一个应用程序,要求用户输入5个整数(使用循环结构),输出这五个整数的最大值和最小值。
publicclassP5_2
Strings;
intmax=Integer.MIN_VALUE,min=Integer.MAX_VALUE;
inti=1;
while(i<
=5)
System.out.print("
请输入一个整数:
s=br.readLine();
intn=Integer.parseInt(s);
if(n>
max)
max=n;
if(n<
min)
min=n;
i++;
System.out.println("
max="
+max+"
min="
+min);
实验六
1、编程:
输入一个字符串,按相反顺序输出该字符串。
如输入abcd,输出dcba。
要求:
(1)按相反顺序输出该字符串的过程编写为方法;
(2)用户输入一个字符串后,按回车输出结果后,用户还能够继续输入新的字符串(直到输入0停止)
备注:
判断一个字符串s和“0”是否相等不能用运算符“==”或“!
=”,应该使用方法s.equals(“0”),如果s和“0”相等,则该方法返回true,否则该方法返回false。
publicclassP6_1
publicstaticStringreverse2(Stringa)
intn=a.length();
Strings="
;
for(inti=n-1;
i>
=0;
i--)
s+=a.charAt(i);
returns;
publicstaticvoidreverse(Stringa)
System.out.print(a.charAt(i));
System.out.println();
{
do
请输入一个字符串:
if(s.equals("
0"
))
else
P6_1.reverse(s);
}while(s.equals("
)==false);
2、编写一个静态方法用于求任意两个正整数的最大公约数,调用此方法求16和24的最大公约数。
求最大公约数使用辗转相除法,我国古代数学家秦九韶1247年在《数书九章》中记载了此方法,其处理过程如下:
(1)提供两个数m和n
(2)以n除m,求得余数r(r=m%n)
(3)判断r是否为0,若r=0,此时的n值即为最大公约数,计算结束。
若r≠0,更新被除数和除数,n送m(即m=n),r送n(即n=r),转到
(2)。
publicclassP6_2
publicstaticintfactor(intn,intm)
intr=m%n;
while(r!
=0)
m=n;
n=r;
r=m%n;
returnn;
{
intn=P6_2.factor(16,24);
System.out.println(n);
}实验七
1,编写递归方法gcd,返回x和y的最大公约数。
x和y的最大公约数方法gcd的递归定义如下:
如果y等于0,则gcd(x,y)就是x;
否则,gcd(x,y)就等于gcd(y,x%y),其中“%”是求模运算符。
publicclassP7_1
publicstaticintgcd(intx,inty)
if(y==0)
returnx;
returngcd(y,x%y);
intk=10,m=80;
intn=gcd(k,m);
}
2,编写递归方法getPower(intx,inty),用于计算x的y次幂,在main主方法中调用它求2的10次幂。
publicclassP7_2
publicstaticintgetPower(intx,inty)
if(y==1)
returnx*getPower(x,y-1);
System.out.println(P7_2.getPower(2,10));
3、n从键盘输入,n是一个小于10的数。
编写一个方法publicstaticvoidshuChu(intn)用循环语句输出如下图所示的n行三角形图形。
提示:
使用字母的ACSII码输出该字母,字母A对应65,字母B对应66……
A
BBB
CCCCC
DDDDDDD
importjava.io.*;
publicclassP7_3
publicstaticvoidshuChu(intn)
=n-i;
=2*i-1;
System.out.print((char)(64+i));
System.out.println();
请输入n的值:
Strings=br.readLine();
intn=Integer.parseInt(s);
P7_3.shuChu(n);
}实验八
1、定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68},计算并输出学生的平均成绩。
(要求:
计算平均成绩的过程定义为方法)
publicclassP8_1
staticdoubleave(intn[])
intsum=0;
for(inti=0;
n.length;
sum=sum+n[i];
doublea=(double)(sum)/n.length;
returnDouble.parseDouble(f.format(a));
intscore[]={72,89,65,58,87,91,53,82,71,93,76,68};
System.out.println(P8_1.ave(score));
2、定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68},统计各成绩等级(90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为E)学生人数,并将其放入到数组count中,其中:
count[0]存E级的人数,count[1]存D级的人数,……,count[4]存A级的人数。
(提示:
注意要找到各分数段同数组count的下标的关系)publicclassP8_2
intscore[]={72,89,65,58,87,91,53,82,71,93,76,68};
intcount[]=newint[5];
score.length;
if(score[i]==100)
count[4]++;
elseif(score[i]<
60)
count[0]++;
count[score[i]/10-5]++;
count.length;
System.out.println((char)(69-i)+"
\t"
+count[i]);
3、从键盘输入10个整数,将奇数和偶数分别存入到两个不同的数组中,并按奇数、偶数交替的顺序输出这两个数组中的所有数据(先交替输出,如果奇数个数多,则再输出剩下的奇数,如果偶数个数多,则再输出剩下的偶数)。
(提示与要求:
(1)定义一个数组存储从键盘输入的10个整数,先判断这10个整数中奇数和偶数的个数,才能定义存储奇数和偶数的数组的长度;
(2)把分拣奇数和偶数并交替输出的过程定义为方法)
publicclassP8_3
publicstaticvoidoutput(intn[])
inteven[],odd[];
inta=0,b=0;
if(n[i]%2==0)
a++;
b++;
even=newint[a];
odd=newint[b];
intj=0,k=0;
even[j]=n[i];
j++;
}
odd[k]=n[i];
k++;
}
if(b<
a)
for(inti=0;
b;