尚学堂-第三章答案

一、选择题

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

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");    
}

Adouble x = 100;

B.char x = 100;

C.String x = “100”;

D.int x = 100;

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);
    }
}

A8

B.15

C.24

D.什么也不输出

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;
}

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

二、简答题

1. if多分支语句和switch语句的异同之处。
  异:多选择结构与switch的关系:当布尔表达式是等值判断的情况,可使用多重选择结构或switch结构, 如果布尔表达式区间判断的情况,则只能使用多重选择结构。同:都是选择结构

2. break和continue语句的作用。
  break退出当前循环,continue则是退出本次循环,直接跳到循环末尾进行下一次循环。
3. 在多重循环中,如何在内层循环中使用break跳出外层循环。
  使用标签break退出外层循环。
例:

    outLoop:    for(int i=1;i<=5;i++) {          //break标签
            for(int j=1;j<=5;j++) {
                 if(i==3)
                      break  outLoop;                 //使用break 标签
               System.out.println("i:"+i+" j:"+j);
            }      
        }         
  }

4. 方法重载的定义、作用和判断依据。
  方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。
   作用:用相同方法名,不同的含义(形参类型、形参个数、形参顺序)来表达不同的方法
  判断依据:看形参类型、形参个数、形参顺序是否相同

5. 递归的定义和优缺点。
  递归:递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。
  优点:程序简单,代码量小,易理解。
  缺点:占用大量的系统堆栈,内存耗用多。

三、编码题

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


import java.util.ArrayList; 
import java.util.Scanner;

public class Third1 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int num = scanner.nextInt();
		ArrayList<Integer> nums = new ArrayList<>();
		java.util.Collections.reverse(nums);
		
		code(num,nums);
		System.out.print("该整数的二进制数为:");
		for (Integer integer : nums) {
			System.out.print(integer);
		}
	}
	
	static void code(int num,ArrayList<Integer> nums) {
		if(num>0) {
			nums.add(num%2);
			num /= 2;
			code(num,nums);
		}	
	}
}

2. 编程求:∑1+∑2+……+∑100。


public class Third2 {
	public static void main(String[] args) {
		int sum = 0;
		for(int i=1;i<=100;i++) {
			sum += add(i);
		}
		System.out.println(sum);
	}
	
	static int add(int num) {
		if(num==1) {
			return 1;
		}else {
			return (num+add(--num));
		}	
	}
}

3. 编写递归算法程序:一列数的规则如下: 1、1、2、3、5、8、13、21、34… 求数列的第40位数是多少。


public class Third3 {
		static int i =1;
		static int inum1 =1;
		static int inum2 =1;
		public static void main(String[] args) {
		System.out.println(add(40));
	}
	
	static int add(int num) {
		if(i<num-1){
			int k = inum2;
			inum2 = inum1+inum2;
			inum1 = k;
			i++;
			add(num);
		}
		return inum2;
	}
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值