尚学堂Java300答案解析 第三章

一、选择题

1.分析如下Java代码,编译运行的输出结果是( )。(选择一项)

	public static void main(String[ ] args) {
	    boolean a=true;
	    boolean b=false;
	    if (!(a&&b)) {
	        System.out.print("!(a&&b)");
	    }else if (!(a||b)) {
	        System.out.println("!(a||b)");
	    }else {
	        System.out.println("ab");
	    }
	}

A.!(a&&b)
B.!(a||b)
C.ab
D.!(a||b)ab

答案:A

2.下列选项中关于变量x的定义,( )可使以下switch语句编译通过。(选择二项)

 	switch(x) {
 	    case 100 :
 	        System.out.println("One hundred");
 	        break;
 	    case 200 :              
 	        System.out.println("Two hundred");                 
 	        break;
 	    case 300 :
 	        System.out.println( "Three hundred");
 	        break;
 	    default :
 	        System.out.println( "default");    
 	}

A.double x = 100;
B.char x = 100;
C.String x = “100”;
D.int x = 100;

答案:DC
解析:switch语句中case标签在JDK1.5之前必须是整数(long类型除外)或者枚举,不能是字符串,在JDK1.7之后允许使用字符串(String)。

3.给定如下Java代码,编译运行的结果是( )。(选择一项)

 	public class Test {  
 	    public static void main(String[] args) {
 	        int sum=0;
	        for(int i=1;i<10;i++){
 	            do{
 	                i++;
 	                if(i%2!=0)
 	                    sum+=i;
 	            }while(i<6);
 	        }
 	        System.out.println(sum);
 	    }
 	}

A.8
B.15
C.24
D.什么也不输出

答案:A
解析:sum = 0+3+5
  
4.以下选项中添加到代码中横线处会出现错误的是( )。(选择二项)

 	public class Test {
	    public float aMethod(float a, float b) {
 	        return 0;  
 	    }                                       
 	}

A.

 	public float  aMethod(float a, float b, float c) {
 	        return 0;
 	}

B.

 	public float  aMethod(float c, float d) {
	        return 0;
 	}

C.

 	public int  aMethod(int a, int b) {
 	    return 0;
 	}

D.

 	private int  aMethod(float a, float b) {
 	    return 0;
 	}

答案:BD
解析:方法的重载
构成方法重载的条件:
1.不同的含义:形参类型、形参个数、形参顺序不同
2.只有返回值不同不构成方法的重载
3.只有形参的名称不同,不构成方法的重载
  
5.以下关于方法调用的代码的执行结果是( )。(选择一项)

 	public class Test {
 	    public static void main(String args[]) {
 	        int i = 99;
 	        mb_operate(i);
 	        System.out.print(i + 100);
 	    }
 	    static void mb_operate(int i) {
 	        i += 100;
 	    }
 	}

A.99
B.199
C.299
D.99100

答案:B
解析:形参不影响实参的值

二、简答题

1. if多分支语句和switch语句的异同之处。
相同点:都是用来处理多分支条件的结构。
不同点:switch语句只能处理等值条件判断的情况,而且条件只能是整型变量或字符型变量或字符串类型变量。

2. break和continue语句的作用。
break跳出循环,continue结束本次循环,直接进入下一层循环

3. 在多重循环中,如何在内层循环中使用break跳出外层循环。
使用标签
在外层循环前加标签,然后break <标签>

4. 方法重载的定义、作用和判断依据。
方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。
重载的方法,实际是完全不同的方法,只是名称相同而已!
构成方法重载的条件:
1.不同的含义:形参类型、形参个数、形参顺序不同
2.只有返回值不同不构成方法的重载
3.只有形参的名称不同,不构成方法的重载

5. 递归的定义和优缺点。
递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。
简单的程序是递归的优点之一。但是递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多,所以在使用递归时要慎重。

三、编码题

  1. 从键盘输入某个十进制整数数,转换成对应的二进制整数并输出。
import java.util.Scanner;

public class test1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入一个十进制整数:");
		int number;
		number = scanner.nextInt();
		int number1 = number;
		long output = 0;
		long i = 1;
		while(number > 0) {
			output = output + (number % 2) * i;
			number = number / 2;
			i = i * 10;
		}
		System.out.println(number1 + "对应的二进制数为:" + output);
	}
}
  1. 编程求:∑1+∑2+……+∑100。
public class TEST2 {
	public static void main(String[] args) {
		long sum = 0;
		for(int i = 1;i <= 100;i++) {
			sum = sum + sum(i);
		}
		System.out.println("结果为:" + sum);
	}
	static long sum (int x) {
		long sum = 0;
		for(int i = 1; i <= x;i++) {
			sum = sum + i;
		}
		return sum;
	}
}
  1. 编写递归算法程序:一列数的规则如下: 1、1、2、3、5、8、13、21、34… 求数列的第40位数是多少。
public class test3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		long result;
		result = digui(40);
		System.out.println("第40位数为:" + result);

	}
	static long digui(int n) {
		long result;
		if(n == 1 || n == 2) {
			result = 1;
		}
		else {
			result = digui(n-1) + digui(n-2);
		}
		return result;
	}

}

你可能感兴趣的:(尚学堂Java300答案解析 第三章)