Java程序设计实用教程(第四版,叶贺亚)考试复习题-纯属个人思想

来源:互联网 发布:凯迪网络社区官网 编辑:程序博客网 时间:2024/05/18 03:14

这是我大二考试的复习资料,当时我在老师那里高培训,面对这种题目我笑了,,,不为别的就是觉得自己很简单就可以写出来,于是我就把代码部分发到博客,其他的在我的下载频道,地址点击打开链接。。



93、简答:关键字this 与 super 的用法this1)指当前对象2)调用当前对象的成员3)调用本类重载的构造方法super([参数列表])1)构造父类2)调用父类成员94、编程:判断某年是否为闰年import java.util.Scanner;public class JudgeLeepYear {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("是否是闰年:" + isLeepYear(sc.nextInt()));}public static boolean isLeepYear(int year) {return year % 400 == 0 || year % 100 != 0 && year % 4 == 0;}}95、编程:用java.lang.Math类生成10个0-99之间的随机整数,求最大最小值。public class GenerateRandom {public static void main(String[] args) {rand(10);}public static void rand(int number){for (int i = 0; i < number; i++) {System.out.print((int)(Math.random()*100)+" ");}}}96、编程: 求解1+1/2!+1/3!+``````import java.util.Scanner;public class Factories {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int fact = 1;double sum = 0;for (int i = 1; i <= n; i++) {fact *= i;sum += 1.0 / fact;}System.out.println(sum);}}97、编程:写一个矩形类(类名为:Rect),包含:①两个protected整型属性,分别代表:宽、高;②两个构造方法:一个带两个参数,一个不带参数;③两个方法:求面积area()、求周长perimeter() public class Rect {protected int width, height;public Rect(int width, int height) {this.width = width;this.height = height;}public Rect() {this(0, 0);}public int area() {return width * height;}public int perimeter() {return (width + height) * 2;}}98、编程:写一个复数类(类名为:Complex),包含:①两个protected整型属性,分别代表:实数部分、虚数部分;②两个构造方法:一个带两个参数,一个不带参数;③两个方法:求实数加法的complexAdd(Complex a)方法,能把当前复数对象的实部、虚部组合成a+bi的字符串形式的String toString( )方法;④在main( )方法中对该复数类进行如下功能验证:调用complexAdd( )方法把1+2i 和3+4i 相加产生一个新的复数4+6i,调用toString( )方法把新复数转换成字符串“4+6i”,然后用System.out.println( )方法输出该字符串。public class Complex {protected int real, imaging;public Complex() {this(0, 0);}public Complex(int real, int imaging) {this.real = real;this.imaging = imaging;}// 原地修改public void complexAdd(Complex a) {this.real += a.real;this.imaging += a.imaging;}public String toString() {return real + "+" + imaging + "i";}public static void main(String[] args) {Complex c1 = new Complex(1, 2);Complex c2 = new Complex(3, 4);c1.complexAdd(c2);System.out.println(c1.toString());// 输出4+6i}}99、编程:①创建一个自定义的框架Frame对象作为程序的主窗口;②设置窗口标题;③窗口位置(200,200)、窗口大小(240,150);④设置流布局管理;⑤添加标签、文本行及按钮组件;⑥事件响应:点击“Ok”按钮,能实现把第一个文本行中的信息显示在第二个文本行。import java.awt.Button;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.Label;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class MyFrame extends Frame {private static final long serialVersionUID = 1L;private Button btn = null;private TextField text1 = null, text2 = null;public MyFrame() {super("学生很懒!");this.setLocation(200, 200);this.setSize(240, 150);this.setLayout(new FlowLayout());this.add(new Label("文本一"));this.add(text1 = new TextField(20));this.add(new Label("文本二"));this.add(text2 = new TextField(20));this.add(btn = new Button("OK"));btn.addActionListener(new ActionListener() {// 这个地方简单点想public void actionPerformed(ActionEvent e) {String t1 = text1.getText();text2.setText(t1);}});this.setVisible(true);}public static void main(String[] args) {new MyFrame();}}100、编程:实现在TextArea中输出最后一次鼠标单击的x,y坐标和连续单击的次数。import java.awt.Frame;import java.awt.TextArea;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;public class TextAreaSystem extends Frame implements WindowListener,MouseListener {private static final long serialVersionUID = 1L;private TextArea ta = null;private int x = 0, y = 0;private int click = 0, clicks = 0;// 点击1次和点击两次public TextAreaSystem() {this.setBounds(100, 200, 300, 300);// new对象ta = new TextArea();// 添加组件this.add(ta);// this.addMouseListener(this);// 这个可以不加ta.addMouseListener(this);this.addWindowListener(this);this.setVisible(true);}public static void main(String[] args) {new TextAreaSystem();}public void windowActivated(WindowEvent arg0) {// 没用到}public void windowClosed(WindowEvent arg0) {// 没用到}public void windowClosing(WindowEvent arg0) {System.out.println("x:" + x + " ,y:" + y);System.exit(0);}public void windowDeactivated(WindowEvent arg0) {// 没用到}public void windowDeiconified(WindowEvent arg0) {// 没用到}public void windowIconified(WindowEvent arg0) {// 没用到}public void windowOpened(WindowEvent arg0) {// 没用到}public void mouseClicked(MouseEvent arg0) {// 目标// 获得鼠标点击的位置,当然他只能获得注册次监听器组件范围内的点// 注意:TextArea可以和Frame抢焦点,如果是this注册监听,那么x和y的值就是0,不会改变x = arg0.getX();y = arg0.getY();if (arg0.getClickCount() > 1) {clicks++;// 连续单机两次} else {click++;// 单击一次}// 显示信息ta.setText("最后一次单击位置: X-" + x + " , Y-" + y);ta.append("\n单击次数为:" + click);ta.append("\n双击次数为:" + clicks);}public void mouseEntered(MouseEvent arg0) {// 没用到}public void mouseExited(MouseEvent arg0) {// 没用到}public void mousePressed(MouseEvent arg0) {// 没用到}public void mouseReleased(MouseEvent arg0) {}}101、编程:以输出奇数/偶数序列线程为例,分别采用两种创建线程的方式编程实现:①继承线程Thread类;②实现Runnable接口public class Test_Run {public Test_Run() {Thread o = new Odd();Thread e = new Thread(new Even());o.start();e.start();}public static void main(String[] args) {new Test_Run();}// 奇数类private class Odd extends Thread {public void run() {for (int i = 100; i < 200; i+=2) {System.out.print(i+" ");}System.out.println("\n奇数输出完毕");}}// 偶数类private class Even implements Runnable {public void run() {for (int i = 201; i < 300; i+=2) {System.out.print(i+" ");}System.out.println("\n偶数输出完毕");}}}102、编程:由键盘输入一个整数,求出该数所有的因子,如输入12,则输出12的所有因子为1、2、3、4、6、12import java.util.Scanner;public class Divisor {// Divisor因子public static void main(String[] args) {Scanner sc = new Scanner(System.in);int factor = sc.nextInt();// factor因子for (int i = 1; i <= factor; i++) {if (factor % i == 0) {System.out.print(i + " ");}}}}103、编程:写一个程序,将[1,1000]范围内能同时被3、5整除的数输出。public class DividedExactlyByThreeAndFive {public static void main(String[] args) {int count = 0;// 这个只是为了输出好看for (int i = 1; i <= 1000; i++) {if (i % 3 == 0 || i % 5 == 0) {count++;System.out.print(i + " ");if (count % 5 == 0) {System.out.println();}}}}}104、编程:写一个字符界面的应用程序,从键盘接收用户输入的5个整数,输出其中的最大、最小值。import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JTextArea;import javax.swing.JTextField;public class UserMaxMin extends JFrame implements ActionListener {private static final long serialVersionUID = 1L;private JButton btnVerify = null;// 确认按钮// textInput表示输入文本框ta表示输出最大最小文本框private JTextField textInput = null;private JTextArea ta = null;public UserMaxMin() {super("输出最大最小值");this.setBounds(200, 100, 325, 300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.getContentPane().setBackground(Color.cyan);this.setLayout(null);// 绝对定位addModule();this.setVisible(true);}private void addModule() {// new 对象JLabel helpJLabel = new JLabel("提示:每个整数之间用英文状态下的“,”隔开。");JLabel inJLabel = new JLabel("请输入:");textInput = new JTextField(20);ta = new JTextArea();btnVerify = new JButton("确认");// 给组件绝对定位helpJLabel.setBounds(20, 5, 300, 40);inJLabel.setBounds(20, 35, 100, 40);textInput.setBounds(70, 45, 220, 20);ta.setBounds(20, 80, 220, 100);btnVerify.setBounds(100, 200, 60, 40);// ta设置属性ta.setEditable(false);ta.setText("最大值\t最小值");ta.append("\n0\t0");ta.append("\n这个输入一定要按要求,\n不然后果自负。");// btnVerify加监听btnVerify.addActionListener(this);// this添加组件this.getContentPane().add(helpJLabel);this.getContentPane().add(inJLabel);this.getContentPane().add(textInput);this.getContentPane().add(ta);this.getContentPane().add(btnVerify);}public void actionPerformed(ActionEvent arg0) {String s = textInput.getText();// 这个地方有bugString[] strs = s.split(",");if (strs.length != 5) {JOptionPane.showConfirmDialog(this, "输入非法");return;}int max = Integer.MIN_VALUE;int min = Integer.MAX_VALUE;for (int i = 0; i < strs.length; i++) {int temp = Integer.parseInt(strs[i]);if (max < temp) {max = temp;}if (min > temp) {min = temp;}}ta.setEditable(false);ta.setText("最大值\t最小值");ta.append("\n" + max + "\t" + min);ta.append("\n这个输入一定要按要求,\n不然后果自负。");}public static void main(String[] args) {new UserMaxMin();}}105、编程:用字符输入输出流,将一个文本文件从一个文件夹拷贝到另一个文件夹。import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;public class CopyFileChar {public static void main(String[] args) {// 文件内容为”恭喜你成功拷贝文件!!!“;这里不考虑放在同一个地方的情况。copyFileFromByChar("d:/ex/a/", "fileStream.txt", "d:/ex/b/");// 给文件路径名}public static void copyFileFromByChar(String dirOld, String fileName,String dirNew) {FileReader fr = null;FileWriter fw = null;BufferedReader br = null;BufferedWriter bw = null;try {fr = new FileReader(dirOld + fileName);fw = new FileWriter(dirNew + fileName);br = new BufferedReader(fr);bw = new BufferedWriter(fw);while(true){String aline = null;try {aline = br.readLine();bw.write(aline);bw.newLine();bw.flush();} catch (Exception e) {break;}}} catch (IOException e) {e.printStackTrace();} finally {// 真正做项目的关流的方法if (fr != null) {try {fr.close();} catch (IOException e) {e.printStackTrace();}}if (br != null) {try {br.close();} catch (IOException e) {e.printStackTrace();}}if (fw != null) {try {fw.close();} catch (IOException e) {e.printStackTrace();}}if (bw != null) {try {bw.close();} catch (IOException e) {e.printStackTrace();}}}}}106、编程:从键盘接收用户输入的一个姓名,输出“姓名 Welcome you!”import java.util.Scanner;public class Welcom {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String s = sc.nextLine();System.out.println(s+" Welcome you!");}}107、编程:从键盘接收用户输入的10个整数,然后以从大到小的顺序输出这些整数。import java.util.Scanner;public class TenInt {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int[] mat = new int[10];for (int i = 0; i < mat.length; i++) {mat[i] = sc.nextInt();}for (int i = 0; i < mat.length-1; i++) {for (int j = i+1; j < mat.length; j++) {if(mat[i]<mat[j]){int temp = mat[i];mat[i] = mat[j];mat[j] = temp;}}}for (int i = 0; i < mat.length; i++) {System.out.print(mat[i]+" ");}System.out.println();}}109、编写程序输出九九乘法表。public class MultiplicationTable {// MultiplicationTable九九乘法表public static void main(String[] args) {lowerTriangular();turnLlowerTriangular();System.out.println("-------------------------------------------");turnUpperTriangular();upperTriangular();}public static void upperTriangular() {// 上三角for (int i = 1; i <= 9; i++) {// 行for (int j = i; j <= 9; j++) {// 列System.out.print(i + "*" + j + "=" + (i * j) + "\t");}System.out.println();}}public static void turnUpperTriangular() {// 上三角for (int i = 9; i >= 1; i--) {// 行for (int j = i; j <= 9; j++) {// 列System.out.print(i + "*" + j + "=" + (i * j) + "\t");}System.out.println();}}public static void lowerTriangular() {// 下三角for (int i = 1; i <= 9; i++) {// 列for (int j = 1; j <= i; j++) {// 行System.out.print(j + "*" + i + "=" + (i * j) + "\t");}System.out.println();}}public static void turnLlowerTriangular() {// 下三角for (int i = 9; i >= 1; i--) {// 列for (int j = 1; j <= i; j++) {// 行System.out.print(j + "*" + i + "=" + (i * j) + "\t");}System.out.println();}}}110、能判断一个数是否为素数。import java.util.Scanner;public class Primer {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println(isPrime(sc.nextInt()));}public static boolean isPrime(int prime) {if (prime == 2 || prime == 3 || prime == 5) {return true;}for (int i = 2; i * i <= prime; i++) {// 例如25=5*5,然而5是他的因子。if (prime % i == 0) {return false;}}return true;}}111、编程:用字节输入输出流,将一个文本文件从一个文件夹拷贝到另一个文件夹。import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class CopyFile {public static void main(String[] args) {// 文件内容为”恭喜你成功拷贝文件!!!“;这里不考虑放在同一个地方的情况。copyFileFrom("d:/ex/a/", "text.java", "d:/ex/b/");// 给文件路径名}public static void copyFileFrom(String dirOld, String fileName,String dirNew) {FileInputStream fin = null;FileOutputStream fout = null;try {fin = new FileInputStream(dirOld + fileName);byte[] buffer = new byte[512];fout = new FileOutputStream(dirNew + fileName);// 这种方法才是完全拷贝,不多不少。这种字节流只有一个缺点;那就是速度慢,优点是正确性。int count = 0;while ((count = fin.read(buffer)) > 0) {fout.write(buffer, 0, count);}} catch (IOException e) {e.printStackTrace();} finally {// 真正做项目的关流的方法if (fin != null) {try {fin.close();} catch (IOException e) {e.printStackTrace();}}if (fout != null) {try {fout.close();} catch (IOException e) {e.printStackTrace();}}}}}


0 0
原创粉丝点击