Java 程序设计试题
考试时间: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) 使用循环实现
(3) 输出格式:1,1,2,3,5(每行5个数字)
(4) 禁止使用递归
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)
{}
参考答案:地址