java期中考试试题1广东药学院.docx
《java期中考试试题1广东药学院.docx》由会员分享,可在线阅读,更多相关《java期中考试试题1广东药学院.docx(14页珍藏版)》请在冰豆网上搜索。
java期中考试试题1广东药学院
1、窗体上有一个Command,通过输入消息框输入两个数字,求它们的最大公约数。
方法一:
publicvoidactionPerformed(java.awt.event.ActionEvente){
intn=Integer.parseInt(JOptionPane
.showInputDialog("输入一个数:
"));
intm=Integer.parseInt(JOptionPane
.showInputDialog("输入一个数:
"));
intmax=m>n?
m:
n;
intmin=m>n?
n:
m,temp=0;
temp=m%n;
while(temp!
=0){
max=min;
max=temp;
temp=max%min;
}
JOptionPane.showMessageDialog(null,min);
}
方法二:
publicvoidactionPerformed(java.awt.event.ActionEvente){
intm=Integer.valueOf(jTextField1.getText());
intn=Integer.valueOf(jTextField2.getText());
intt,r=0;
if(n>m){
t=m;
m=n;
n=t;}
r=m%n;
while(r!
=0){
m=n;
n=r;
r=m%n;
}
jLabel.setText("最大公约数是"+n);
}
2、在一个排好序的数组中插入一个数,使得插入后还是按照从小到大的顺序排列的。
importjava.util.Arrays;
importjava.util.Random;
publicclass插数组{
publicstaticvoidmain(String[]args){
Randomrand=newRandom();
inta=0,i;
a=rand.nextInt(10)+100;
System.out.print("要插入的数是:
"+a);
int[]b;
b=newint[]{101,103,105,107,109};
System.out.print("\n原数组是:
");
for(i=0;iSystem.out.print(b[i]+"");
}//打印原本的数组
b=newint[]{101,103,105,107,109,a};//不可以用newint[6]会把原本的删除掉
Arrays.sort(b);
//对新数组进行排序(从小到大)
System.out.print("\n后来的数组是:
");
for(intk=0;kSystem.out.print(b[k]+"");//最后输出新数组
}
}
}
方法二:
importjava.util.Random;
publicclass插数组{
publicstaticvoidmain(String[]args){
Randomrand=newRandom();
inta=0,i,tem=0,mini;
a=rand.nextInt(1000);
System.out.print("要插入的数是:
"+a);
int[]b;
b=newint[]{101,103,105,107,109};
System.out.print("\n原数组是:
");
for(i=0;iSystem.out.print(b[i]+"");
}
System.out.println();
b=newint[]{101,103,105,107,109,a};
mini=5;
for(i=0;iif(b[mini]
tem=b[i];
b[i]=b[mini];
b[mini]=tem;}
}
System.out.print("后来的数组是:
");
for(intk=0;kSystem.out.print(b[k]+"");
}
}}
3、创建一个10*10的矩阵,使得其右上角的元素全为1,左下的元素全为0。
publicclass矩阵{
publicstaticvoidmain(String[]args){
int[][]a=newint[10][10];
for(inti=0;i<10;i++){
for(intj=0;j<10;j++){
if(i<=j)
a[i][j]=1;
else
a[i][j]=0;
System.out.print(a[i][j]+"");
}
System.out.println();
}
}
}
4、窗体上方一个文本框,其中有一些文字,下方有四个文本框,要求分别统计大写字母、小写字母、数字及其它符号出现的个数。
publicvoidactionPerformed(java.awt.event.ActionEvente){
Strings1=jTextField.getText();
intshuzi=0,daxie=0,xiaoxie=0,qita=0;
for(inti=0;ichars2=s1.charAt(i);
if(Character.isDigit(s2))
shuzi+=1;
elseif(Character.isLowerCase(s2))
xiaoxie+=1;
elseif(Character.isUpperCase(s2))
daxie+=1;
else
qita+=1;
}
jTextField1.setText(""+xiaoxie);
jTextField2.setText(""+daxie);
jTextField3.setText(""+shuzi);
jTextField4.setText(""+qita);
}
5、在窗体中,有一个命令按钮,单击命令按钮时,弹出输入消息框,输入一个正整数N,计算N!
。
importjavax.swing.JOptionPane;
publicclass阶乘{
publicstaticvoidmain(String[]args){
intm=Integer.parseInt(JOptionPane.showInputDialog("m"));
intjiecheng=1;
inti;
for(i=1;i<=m;i++){
jiecheng=jiecheng*i;
}
System.out.print("阶乘是:
"+jiecheng);
}
}
6、简易计算器:
在窗体上加四个Text框,分别放操作数、操作符及结果。
要求程序检查数据的合法性及给出错误提示。
操作符分别是“+”、“-”、“×”、“÷”
publicvoidactionPerformed(java.awt.event.ActionEvente){
Stringregex="^[0-9]*$";
Strings1=jTextField.getText();
Strings2=jTextField.getText();
intt1=0,t2=0;;
if(s1.matches(regex))t1=Integer.parseInt(s1);
elseJOptionPane.showMessageDialog(null,"输入有误");
if(s2.matches(regex))t2=Integer.parseInt(s1);
elseJOptionPane.showMessageDialog(null,"输入有误");
Strings=jTextField1.getText();
if(s.equals("+"))
jTextField3.setText(""+(t1+t2));
elseif(s.equals("-"))
jTextField3.setText(""+(t1-t2));
elseif(s.equals("*"))
jTextField3.setText(""+(t1*t2));
elseif(s.equals("/"))
jTextField3.setText(""+(t1/t2));
}
7、在窗体上显示如下图结果。
publicclass梯形{
publicstaticvoidmain(String[]args){
Stringstr="123456";
Stringstr1;
for(inti=1;i<=6;i++){
for(intj=1;j<=i;j++){
if(i%2==0){
str1=str.substring(0,j);
System.out.print("-"+str1+"");}
else{
str1=str.substring(0,j);
System.out.print(""+str1+"");}
}
System.out.println();
}
}
}
8、显示斐波那切数列的前20项,要求每行显示5项。
publicclass斐波那契{
publicstaticvoidmain(String[]args){
int[]a=newint[20];
inti=0;
a[0]=1;
a[1]=1;
System.out.print(a[0]+""+a[1]+"");
for(i=2;i<20;i++){
a[i]=a[i-1]+a[i-2];
System.out.print(a[i]+"");
if((i+1)%5==0)
System.out.println();
}
}
}
9、随机产生10个100以内的整数,求最大值和最小值。
importjava.util.Random;
publicclass随机产生整数{
publicstaticvoidmain(String[]args){
Randomrand=newRandom();
int[]i=newint[10];
i[0]=rand.nextInt(90)+10;
inta=i[0],max=0,min=i[0];
for(a=0;ai[a]=rand.nextInt(90)+10;
System.out.print(i[a]+"");
if(i[a]>max)max=i[a];
if(i[a]}
System.out.println("\n最大值是:
"+max);
System.out.println("最小值是:
"+min);
}
}
10、试着编写程序,求1到100以内所有素数个数
publicclass素数{
publicstaticvoidmain(String[]args){
for(inti=1;i<=100;i++){
intj=2;
while(j
if(i%j==0)
break;
j++;
}
if(j==i){
intk=0;
k++;
System.out.print(j+"");
if(k%10==0)
System.out.println();
}
}
}
}
11、圆周率是一个非常重要的数学常量,这是一个无理数,即一个无限不循环小数。
自古至今,人们提出了很多方法来计算Pi的值。
现在有这样一种计算方法:
π/4=1-1/3+1/5-1/7+…-1/i
…一直到1/i的绝对值小于0.0000001为止,求Pi。
publicclassPI{
publicstaticvoidmain(String[]args){
inti=1,n=0;
doublepi=0.0;
do{
pi+=4*Math.pow(-1,i+1)/(2*i-1);
i+=1;
n++;
}while(Math.abs((Math.pow(-1,i+1))/(2*i-1))>=0.0000001);
System.out.print(pi);
}
}
12、编写一程序,找出100到1000内的所有回文数,所谓回文数,就是正读和反读都是一样的数,例如:
131,121,1221等
publicclasshuiwenshu{
publicstaticvoidmain(String[]args){
for(inti=100;i<=1000;i++){
if((int)i/100==i%10)
System.out.println(i+"是回文数");
}
}
}
13、给定一组数(10个),求最小的那个数的序号。
importjava.util.Random;
publicclass求最小下标{
publicstaticvoidmain(String[]args){
Randomrand=newRandom();
int[]a=newint[10];
inti,min=0;
for(i=0;ia[i]=rand.nextInt(99);
System.out.print(a[i]+"");
if(a[i]}
System.out.print("\n最小值的序号是:
"+min);
}
}
14、随机生成一组0到99之间的数(10个),请按照从小到大的顺序进行排序。
importjava.util.Random;
publicclass排序{
publicstaticvoidmain(String[]args){
Randomrand=newRandom();
int[]a=newint[10];
for(inti=0;ia[i]=rand.nextInt(99);
}System.out.print("排序之前的顺序是:
");
intlen=a.length;
for(inti=0;iSystem.out.print(a[i]+"");
}
intiTemp=0;
for(inti=0;ifor(intj=0;jif(a[i]iTemp=a[i];
a[i]=a[j];
a[j]=iTemp;
}
}
}
System.out.print("\n排序之后的顺序是:
");
for(inti=0;iSystem.out.print(a[i]+"");
}
}
}
15、随机产生10个不重复的100-400的随机数,存放在数组中,并显示结果。
publicclass不重复{
publicstaticvoidmain(String[]args){
int[]arr=newint[10];
for(inti=0;i<10;i++){
arr[i]=(int)(Math.random()*300+100);
for(intj=0;j
if(arr[j]==arr[i]){
i--;
break;
}
}
}
for(inti=0;i<10;i++)
System.out.print(arr[i]+"");
}
}