Java 程序设计试题

发布于:2025-06-24 ⋅ 阅读:(16) ⋅ 点赞:(0)

​考试时间:120 分钟​
​总分:100 分​

一、选择题(每题 2 分,共 30 分)

1.以下哪个不是 Java 的关键字?
A. final
B. sizeof
C. static
D. void

2.以下代码输出结果是?

System.out.println(5 / 2);

A. 2
B. 2.5
C. 2.0
D. 编译错误

3.以下关于继承的说法正确的是:
A.子类可以继承父类的构造方法
B. 子类可以访问父类的 private 成员
C. 子类可以重写父类的私有方法
D. Java支持多继承

4.以下代码的输出是?

String a = "hello";
String b = new String("hello");
System.out.println(a == b);

A. True
B. false
C. 编译错误
D. 运行时异常

5.以下代码的输出是?

int[] arr = {1, 2, 3};
System.out.println(arr[3]);

A. 0
B. null
C. 编译错误
D. 抛出 ArrayIndexOutOfBoundsException

6.以下代码的输出是?

int x = 10;
int y = 0;
if(y >= 0  &  x / y >= 0)
{
	System.out.print(y - x);
}
else
{
	System.out.print(y + x);
}

A. 10
B. -10
C. ArithmeticException
D. 0

7.Java语言的特点不包括:
A. 面向对象
B. 平台无关性
C. 指针操作
D. 自动内存管理

8.下列代码输出结果是:

int x = 5;
int y = --x;
System.out.println(x++);
System.out.println(++x);
System.out.println(--y);

A. 4,5,6
B. 4,6,3
C. 5,6,4
D. 6,5,5

9.正确的三元运算符用法:
A. result = a > b ? true : false;
B. result = a > b ? “true” ; “false”;
C. result = a > b ? true; false;
D. result = a > b ? “true” : “false”;

10.Java内存管理采用:
A. 手动内存分配
B. 垃圾回收机制
C. 智能指针
D. 引用计数

11.下面正确的变量名是:
A. 2variable
B. public
C. _value
D. class

12.switch语句支持的数据类型不包括:
A. byte
B. String
C. boolean
D. enum

13.以下哪种不是合法的访问修饰符?
A. private
B. default
C. protected
D. public

14.以下代码的输出结果是什么?

int a = 10;
int b = 7;
System.out.println(a++ % --b);
System.out.println(++a / b);

A. 4,2
B. 3,1
C. 4,3
D. 3,3

15.以下代码的输出结果是什么?

List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for (Integer num : list) {
    if(num == 2){
        list.remove(num);
    }
}
System.out.println(list);

A. [1,2,3]
B. [2,3]
C. [1,3]
D. 运行报错

二、填空题(每空 2 分,共 20 分)

1.Java 程序运行的入口方法是_________________________。
2.使用_________________________________关键字声明包。
3.若 try 块中抛出异常,程序会跳转到______________块执行。
4.Java所有类的基类是_______________________________。
5.@Override注解的作用是 ___________________________。
6.下面方法中有________________________________处错误。

public int Run()
{
    String name;
    if(name.equals("张三"))
    {
        System.out.print("我是张三!")
    }
    double num = 0;
    int age = num;
    int times = 100 / age;
}

7.值类型存储在内存的__________________________。
8.float f = 3.14; 需要改为 float f = ______ 才能通过编译。
9.Integer和 int的自动转换称为 ___________________。
10. 判断闰年平年的代码:

private bool isLeapYear(int year)
{
    return _______________________________________;
}

三、编程题(共50分)

1.面向对象(10分)
设计Animal类:
(1) 包含name(名字) 、age(年龄)
(2) 方法: Eat 打印吃的食物, Bark: 打印动物的叫声
(3) 设计继承自Animal的狗(Dog),分别重写Eat(打印”吃骨头”)和Bark(打印”汪汪”)方法,新增方法:Use(打印”看家护院”);
(4) 设计继承自Dog的宠物狗(PetDog),重写Eat(打印”吃狗粮”)和Use(打印”陪伴主人”)方法;

2.功能实现(15分)
(1) 输入任意一段英文句子,句子只允许使用的标点符号 叹号:”!” 逗号:”,” 句号:”.”
(2) 分别统计每个字符出现的次数,打印每个字符以及最终的出现次数;
(3) 统计句子有多少个单词;
(4) 统计有多少个标点符号

3.完善写出输出斐波那契数列(1,1,2,3,5,7,11,…)指定项数(5分)
要求:
(1) 使用循环实现
(2) 输出格式:1,1,2,3,5(每行5个数字)
(3) 禁止使用递归

private void print_Fibonacci(int number)
{
    
}

4.身份信息提取(5分)
要求:
(1) 输入一个18位的身份证号
(2) 分析出出生日期,输出格式:yyyy年mm月dd日
(2) 计算出年龄,并输出年龄

5.给一个整数数组nums,其中可能包含重复元素,请你返回,所有的不重复子集(15分)

public List<List<Integer>> subsetsWithDup(int[] nums) 
{
        
}

参考答案:地址


网站公告

今日签到

点亮在社区的每一天
去签到