1、java期中考试试题1广东药学院1、窗体上有一个Command,通过输入消息框输入两个数字,求它们的最大公约数。方法一:public void actionPerformed(java.awt.event.ActionEvent e) int n = Integer.parseInt(JOptionPane .showInputDialog(输入一个数:); int m = Integer.parseInt(JOptionPane .showInputDialog(输入一个数:); int max = m n ? m : n; int min = m n ? n : m, temp = 0;
2、temp = m % n; while (temp != 0 ) max = min; max = temp; temp = max % min; JOptionPane.showMessageDialog(null, min); 方法二:public void actionPerformed(java.awt.event.ActionEvent e) int m=Integer.valueOf(jTextField1.getText(); int n=Integer.valueOf(jTextField2.getText(); int t,r=0; if (nm) t=m; m=n; n=t
3、; r=m%n; while(r!=0) m=n; n=r; r=m%n; jLabel.setText(最大公约数是+n); 2、在一个排好序的数组中插入一个数,使得插入后还是按照从小到大的顺序排列的。import java.util.Arrays;import java.util.Random;public class 插数组 public static void main(String args) Random rand = new Random(); int a = 0, i; a = rand.nextInt(10) + 100; System.out.print(要插入的数是: +
4、 a); int b; b = new int 101, 103, 105, 107, 109 ; System.out.print(n原数组是:); for (i = 0; i b.length; i+) System.out.print(bi + ); / 打印原本的数组 b = new int 101, 103, 105, 107, 109, a ;/ 不可以用new int6会把原本的删除掉 Arrays.sort(b); / 对新数组进行排序(从小到大) System.out.print(n后来的数组是:); for (int k = 0; k b.length; k+) Syste
5、m.out.print(bk + );/ 最后输出新数组 方法二:import java.util.Random; public class 插数组 public static void main(String args) Random rand = new Random(); int a = 0, i,tem = 0,mini; a = rand.nextInt(1000); System.out.print(要插入的数是: + a); int b; b=new int 101, 103, 105, 107, 109 ; System.out.print(n原数组是:); for (i =
6、0; i b.length; i+) System.out.print(bi + ); System.out.println(); b=new int 101, 103, 105, 107, 109 ,a; mini=5; for (i = 0; i b.length; i+) if (bmini bi) tem=bi; bi=bmini; bmini=tem; System.out.print(后来的数组是:); for (int k = 0; k b.length; k+) System.out.print(bk + ); 3、创建一个10*10的矩阵,使得其右上角的元素全为1,左下的元素
7、全为0。public class 矩阵 public static void main(String args) int a = new int1010; for (int i = 0; i 10; i+) for (int j = 0; j 10; j+) if (i = j) aij = 1; else aij = 0; System.out.print(aij + ); System.out.println(); 4、窗体上方一个文本框,其中有一些文字,下方有四个文本框,要求分别统计大写字母、小写字母、数字及其它符号出现的个数。public void actionPerformed(ja
8、va.awt.event.ActionEvent e) String s1 = jTextField.getText(); int shuzi = 0, daxie = 0, xiaoxie = 0, qita = 0; for (int i = 0; i s1.length(); i+) char s2 = s1.charAt(i); if (Character.isDigit(s2) shuzi += 1; else if (Character.isLowerCase(s2) xiaoxie += 1; else if (Character.isUpperCase(s2) daxie +=
9、 1; else qita += 1; jTextField1.setText( +xiaoxie); jTextField2.setText( + daxie); jTextField3.setText( + shuzi); jTextField4.setText( + qita); 5、在窗体中,有一个命令按钮,单击命令按钮时,弹出输入消息框,输入一个正整数N,计算N!。import javax.swing.JOptionPane;public class 阶乘 public static void main(String args) int m = Integer.parseInt(JO
10、ptionPane.showInputDialog(m); int jiecheng = 1; int i; for (i = 1; i = m; i+) jiecheng = jiecheng * i; System.out.print( 阶乘是: + jiecheng); 6、简易计算器:在窗体上加四个Text框,分别放操作数、操作符及结果。要求程序检查数据的合法性及给出错误提示。操作符分别是“+”、“-”、“”、“”public void actionPerformed(java.awt.event.ActionEvent e) String regex=0-9*$; String s1
11、 = jTextField.getText(); String s2 = jTextField.getText(); int t1 = 0,t2 = 0; if(s1.matches(regex)t1=Integer.parseInt(s1); else JOptionPane.showMessageDialog(null, 输入有误); if(s2.matches(regex)t2=Integer.parseInt(s1); else JOptionPane.showMessageDialog(null, 输入有误); String s = jTextField1.getText(); if
12、 (s.equals(+) jTextField3.setText( + (t1 + t2); else if (s.equals(-) jTextField3.setText( + (t1 - t2); else if (s.equals(*) jTextField3.setText( + (t1 * t2); else if (s.equals(/) jTextField3.setText( + (t1 / t2); 7、在窗体上显示如下图结果。public class 梯形 public static void main(String args) String str=123456; S
13、tring str1; for (int i = 1; i = 6; i+) for (int j = 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项。public class 斐波那契 public static void main(String args) int a = ne
14、w int20; int i = 0; a0 = 1; a1 = 1; System.out.print(a0+ +a1+ ); for (i = 2; i 20; i+) ai = ai - 1 + ai - 2; System.out.print(ai + ); if (i +1) % 5 = 0) System.out.println(); 9、随机产生10个100以内的整数,求最大值和最小值。import java.util.Random;public class 随机产生整数 public static void main(String args ) Random rand=new
15、Random(); inti=new int10; i0=rand.nextInt(90)+10; int a=i0,max=0,min=i0; for(a=0;amax)max=ia; if(iamin)min=ia; System.out.println(n最大值是:+max);System.out.println(最小值是:+min); 10、试着编写程序,求1到100以内所有素数个数public class 素数 public static void main(String args) for (int i = 1; i = 100; i+) int j = 2; while (j =
16、0.0000001); System.out.print(pi); 12、编写一程序,找出100到1000内的所有回文数,所谓回文数,就是正读和反读都是一样的数,例如:131,121,1221等public class huiwenshu public static void main(String args) for(int i=100;i=1000;i+) if(int)i/100=i%10) System.out.println(i+是回文数); 13、 给定一组数(10个),求最小的那个数的序号。import java.util.Random;public class 求最小下标 pu
17、blic static void main(String args) Random rand=new Random(); inta=new int10; int i,min=0; for( i=0;ia.length;i+) ai=rand.nextInt(99); System.out.print(ai+ ); if(aiamin)min=i; System.out.print(n最小值的序号是:+min); 14、随机生成一组0到99之间的数(10个),请按照从小到大的顺序进行排序。import java.util.Random;public class 排序 public static
18、void main(String args) Random rand=new Random(); inta=new int10; for(int i=0;ia.length;i+) ai=rand.nextInt(99); System.out.print(排序之前的顺序是:); int len = a.length; for (int i = 0; i len; i+) System.out.print(ai + ); int iTemp = 0; for (int i = 0; i len; i+) for (int j = 0; j len; j+) if (ai aj) iTemp =
19、 ai; ai = aj; aj = iTemp; System.out.print(n排序之后的顺序是:); for (int i = 0; i len; i+) System.out.print(ai + ); 15、随机产生10个不重复的100-400的随机数,存放在数组中,并显示结果。public class 不重复 public static void main(String args) int arr=new int10; for(int i=0;i10;i+) arri=(int)(Math.random()*300+100); for(int j=0;ji;j+) if(arrj=arri) i-; break; for(int i=0;i10;i+) System.out.print(arri+ );
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1