一 Java基础(40分,每题2分)
- 请选这以下代码的输出结果。
Public Base{
Base(){
System.out.println(“Base”);
}
}
public class Checket extends Base{
Checket (){
System.out.println(“Checket”);
super();
}
public static void main(String args[]){
Checket c= Checket();
}
}
- Compile time error(编译错误)
- Chercket followed by Base
- Base followed by Checket
- Runtime error(运行错误)
- 以下程序的运行结果是什么?
class Text{
public static void text(String str){
str = “World”;
}
public static void main(String args[]){
String str=”Hello”;
text(str);//临时变量在方法执行完毕之后会被回收
System.out.println(str);
}
}
- try{}里有一return语句,那么紧跟在这个try后面finally{}里的code会不在return前还是后?
- 会执行,在return前执行
- 会执行,在return后执行
- 不会执行
- 会抛出异常
- 以下代码执行后的结果是什么?
public static void main(String args[] ){
int a =5,b = 3;
if(!(a==b)&&(a==1+b++)){
}
System.out.println(a+”,”+b);
}
(5,4)
- 关于函数重载,下列说法错误的是那个?
- 重载函数的函数名必须相同
- 重载函数必须在参数个数或者类型上有所不同
- 重载函数的返回值必须相同
- 重载函数的函数体可以有所不同
- 以下代码能否编译通过?
public abstract class Person{
public void sayHello(){
}
}
- 以下代码能否编译通过?
class Person{
public abstract void sayHello();
}
- 请选择以下代码的输出结果。
abstract class Base{
abstract public void myfunc();
}
public class Abs extends Base{
public static void main(String args[]){
Abs a = new Abs();
a.amethod();
}
public void amethod(){
System.oout.println(“A method”);
}
}
- 编译正常运行输出结果为A method
- Base 类编译错误
- 代码编译正确,但运行出错
- Abs类编译错误//子类Abs要完成父类抽象类的实现
9,(单选)下列选项中关于Java中封装的说法错误的是( )。
A. 封装是将属性私有化,提供公有的方法访问私有属性
B. 属性的访问方法包括setter方法和getter方法
C. setter方法用于赋值、getter方法用于取值
D. 类的属性必须进行封装,否则无法通过编译
10,关于方法的返回值的说法,正确的是( )
A 一个方法一定不可以有返回值
B void是返回值
C 有返回值,需要定义返回值的数据类型
D 如果定义了返回类型,可以没有返回值
11, 关于抽象类和抽象方法的描述错误的是( )
A 抽象类是半成品类、没有完成的类
B 抽象方法是只有方法的定义,没有方法代码
C 抽象类能创建对象
D public abstract void f();定义了一个抽象方法
12,下面哪条语句把方法声明为抽象的公共方法?
A public abstract method();
B public abstract void method();
C public abstract void method(){}
D public void method() extends abstract;
13, 若在某一个类定义中定义有如下的方法:final void aFinalFunction( ){}则该方法属于
A 本地方法
B 静态方法
C 最终方法
D 抽象方法
14, 下面关于继承的哪些叙述是正确的?
A 在java中允许多继承。
B 在java中一个类只能实现一个接口。
C 在java中一个类不能同时继承一个类和实现一个接口。
D java的单一继承使代码更可靠。
15, 编译并运行下述程序段的结果是:
public class Test{
public static void main(String argv[]){
int[] count = new int[4];
System.out.println(count[4]);
}
}
A 编译时错误
B 运行时错误//数组下标越界异常
C 输出0
D 输出null
16, 下面选项中,不属于基本类型包装类的是?
A Integer
B Long
C Double
D Char
17, 下列选项中,哪个可以用来做超大整数运算
A Integer
B Long
C Double
D BigInteger
18, Integer类缓存数组范围是?
A [0,255]
B [-127,128]
C [-128,127]
D 以上都不对
19,程序执行的结果是( )
public class Test {
String name="Tom";
public Test(String name){
this name=name;//加了this才会把jack赋值给变量
}
public static void main(String [] args){
Test t = new Test("Jack");
System.out.println(t.name);
}
}
A. null
B. Tom
C. Jack
D. " "
20,以下程序的输出结果是:( )
public class Super {
public Super() {
System.out.println("Super ");
}
}
public class Sub extends Super{
public Sub() {
System.out.println("Sub");
}
public static void main(String[] args) {
Super fc = new Super();
Sub cc = new Sub();
}
}
A. Super
Super
Sub
- 编程题
1,题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?(15分)
package cn.tedu.homework;
import java.util.Scanner;
public class 兔子 {
public static void main(String[] args) {
System.out.println("请输入你需要的月份数");
int n =new Scanner(System.in).nextInt();
int sum = f(n);
System.out.println("第"+n+"月的兔子对数为"+sum);
}
private static int f(int n) {
if (n==1||n==2){
return 1;
}else {
return f(n-1)+f(n-2);//递归解斐波拉契数列
}
}
}
2,题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。(15分)
寻找规律解题
package cn.tedu.homework;
/**下一个的分子等于此分子分母的和
* 此分子为下一个分母
* 存在值交换*/
public class HomeWork02 {
public static void main(String[] args) {
double up =2;
double down =1;
double sum =up/down;
for (int i = 0; i < 20; i++) {
double t;
t = up+down;
down =up;
up = t;
sum+=up/down;
}
System.out.println(sum);
}
}