Java期末复习
题型:
-
程序设计题,每题8分,共5题利用Java完成一些基本算法的设计与实现,涉及Java基本语法、面向对象技术、异常、输入输出、多线程
-
程序阅读题,每题10分,共3题阅读程序回答问题,包括输出结果、修改程序等,涉及Java基本语法、面向对象技术、异常等。
-
综合应用题,每题15分,共2题利用Java面向对象技术对具体业务场景进行设计。
主要考察知识点Java基本语法 (利用Java完成一些基本算法的设计与实现),面向对象(类定义、新建、成员变量、成员方法、main方法、重写和重载、抽象类和接口、继承与多态)、异常(try catch、throws/throw、自定义异常)、输入输出(文件的读写操作)、多线程(Thread、Runnable 接口,run方法)
程序设计题
第二份作业前13题与递归部分,最后两节课的课上代码
题1:将源文件的内容复制到目标文件中,实现文件复制的功能。
public static void fileCopy(String src, String dsc) throws Exception {
DataInputStream dis = new DataInputStream(new FileInputStream(src));
DataOutputStream dos = new DataOutputStream(new FileOutputStream(dsc));
byte[] buf = new byte[4 * 1024 * 1024]; // 4MB的缓冲区
int n;
while ((n = dis.read(buf)) != -1) {
dos.write(buf, 0, n);
}
dis.close();
dos.close();
}
题2:生成十个随机数,在屏幕上输出,求和,求平均值,求最大值。
import java.io.FileOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Random;
public class RandomData {
public static void main(String[] args) throws IOException {
DataOutputStream dos = new DataOutputStream(new FileOutputStream("d:/data.dat"));
Random r = new Random();
int sum = 0;
int max = Integer.MIN_VALUE;
for (int i = 1; i <= 10; i++) {
int v = r.nextInt(100) + 1;
dos.writeInt(v);
System.out.println("Number " + i + ": " + v);
// 更新和与最大值
sum += v;
if (v > max) {
max = v;
}
}
// 计算平均值
double average = (double) sum / 10;
// 输出结果
System.out.println("Sum: " + sum);
System.out.println("Average: " + average);
System.out.println("Max: " + max);
dos.close();
}
}
题3:创建两个线程,每个线程打印:-1,-2,-3… -10
public class Ain extends Thread {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("-" + i + "--" + getName());
}
}
}
public class TestThread {
public static void main(String[] args) {
new Ain().start();
new Ain().start();
}
}
题4:数位分解
public class NumberExtractor {
public static void main(String[] args) {
int number = 1234; // 假设我们要处理的数字是1234
// 抽取个位数字
int ones = number % 10;
System.out.println("个位数字: " + ones); // 输出: 个位数字: 4
// 抽取十位数字
int tens = (number / 10) % 10;
System.out.println("十位数字: " + tens); // 输出: 十位数字: 2
// 如果数字小于100,则百位为0
// 但为了完整性,我们仍然可以抽取(对于大于或等于100的数字)
int hundreds = (number / 100) % 10;
System.out.println("百位数字: " + hundreds); // 输出: 百位数字: 1
// 如果需要处理千位或更大的数字,可以继续使用类似的方法
}
}
题5:奇偶数判断
import java.util.Scanner;
public class OddOrEvenChecker{
public static void main(String[] args){
Scanner scn = new Scanner(System.in);
int i = scn.nextInt();
// 判断整数是奇数还是偶数
if (number % 2 == 0) {
System.out.println(number + " 是偶数。");
} else {
System.out.println(number + " 是奇数。");
}
// 关闭Scanner对象
scanner.close();
}
}
题6:使用递归实现如下的方法:
s(n)=s(n-1)+n 当n>0时
s(0)=0 当n=0时
程序设计要求:
1)设计实现递归方法,完成s(n)的功能。
2)在public static void main(String[] args)方法中,通过Scanner类读入一个整数值,如:100,然后通过调用1)定义的递归方法,向这个方法传入刚