尚学堂java答案解析 第三章

本答案为本人个人编辑,仅供参考,如果读者发现,请私信本人或在下方评论,提醒本人修改

一.选择题

1.A

2.BD

解析:switch的的判断表达式的数据类型:byte  short   int  char,注意case里的数据是int型,所以String并不行

3.A

解析:0+3+5=8

4.BD

解析:函数重载时对返回数据类型不做检查,但形参数量或类型必须变化,B和原函数是同一函数,D中形参数据个数和类型和原函数相同

5.B

解析:非静态变量,形参并不影响实参.

二,简答题

1.https://blog.csdn.net/wendy_yuanyuan/article/details/48138413

2.break是跳出循环,continue是直接进入下一次循环

3.使用break- label,先在循环之前加入一个label标签,然后break label;

4.定义:一个类中可以有多个相同名字的方法

   作用:行为多态

   判断依据:同方法名,不同的形参个数或数据类型

5.定义:方法自身调用自身

  优点:代码简洁,可以省去很多循环

  缺点:需要消耗大量计算机资源

三.编程题

1.

import java.util.Scanner;

public class Binary {
    public static void main(String[] args) {
        int decimal;
        String Sbinary;
        int  binary;

        Scanner input = new Scanner(System.in);
        System.out.print("请输入一个整数:");
        decimal = input.nextInt();
        Sbinary = Integer.toBinaryString(decimal);
        binary  = Integer.parseInt(Sbinary);
        System.out.printf("二进制数为:%d",binary);

    }
}

2.

/**
第一种方法,简单,但没综合调用方法
*/
public class Sum {
    public static void main(String[] args) {
        int sum = 0;
        int step = 0;
        for(int i = 0; i <= 100; i++){
            step += i;
            sum += step;
        }
        System.out.println("sum:"+sum);

    }
}


/**
第二种方法,综合调用方法,还有一些static知识

*/
public class Sum {
    static int sum =0;//定义全局静态变量
    static int temp=0;
    public static void main(String[] args) {
       int i=1;
        for(;i<=100;i++){
            int t;
            t=callBack(i);
            System.out.printf("t:%d\n",t);
       }


    }
    public static int  callBack(int i){//定义静态函数
        temp=sum;
        sum=sum+i;
        System.out.printf("sum:%d \t temp:%d\t",sum,temp);
        return temp+sum;
    }
}

3.斐波那契数列,通项公式  

public class Fibonacci {
    public static void main(String[] args) {
        int before = 0;
        int now = 1;

        Recursion recursion = new Recursion();

        System.out.println("第40个数:"+recursion.Recursion(before,now));

        //方法二
                int[] nums = new int[40];
		nums[0] = nums[1] = 1; //第一个和第二个不满足通项公式
		
		for (int i = 2; i < nums.length; i++) {
			nums[i] = nums[i-1] + nums[i-2]; 
		}
		
		System.out.println("nums:"+nums[nums.length-1]);



    }
}
class Recursion{

    int i=1;

    int Recursion(int before ,int now){ 

        if(i > 40){           //第几个数
            return before;
        }

//now(下一个斐波那契数)=now(上一个斐波那契数)+before(前两个斐波那契数)
         now += before; 

//before(前一个斐波那契数)=now(新的斐波那契数)-before(前两个斐波那契数)
        before = now -before;

        i++;

         return Recursion(before , now); //递归调用
    }
}

 

全部评论

相关推荐

02-25 09:55
已编辑
门头沟学院 Java
2.4&nbsp;一面2.6&nbsp;二面2.9&nbsp;三面(hr面)2.13&nbsp;oc1.15号收到面试电话那会就开始准备,因为一开始没底所以选择推迟一段时间面试,之后开始准备八股,准备实习可能会问的东西,这期间hot100过了有六七遍,真的是做吐了快,八股也是背了忘,忘了背,面经也看了很多,虽然最后用上的只有几道题,可是谁知道会问什么呢自从大二上开始学java以来,一开始做外卖,点评,学微服务,大二下五六月时,开始投简历,哎,投了一千份了无音讯,开始怀疑自己(虽然能力确实很一般),后来去到一家小小厂,但是并不能学到什么东西,而且很多东西都很不规范,没待多久便离开,大二暑假基本上摆烂很怀疑自己,大三上因为某些原因开始继续学,期间也受到一俩个中小厂的offer,不过学校不知道为啥又不允许中小厂实习只允许大厂加上待遇不太好所以也没去,感觉自己后端能力很一般,于是便打算转战测开,学习了一些比较简单的测试理论(没有很深入的学),然后十二月又开始继续投,java和测开都投,不过好像并没有几个面试,有点打击不过并没有放弃心里还是想争一口气,一月初因为学校事比较多加上考试便有几天没有继续投,10号放假后便继续,想着放假应该很多人辞职可能机会大一点,直到接到字节的面试,心里挺激动的,总算有大厂面试了,虽然很开心,但同时压力也很大,心里真的很想很想很想进,一面前几天晚上都睡不好觉,基本上都是二三点睡六七点醒了,一面三十几分钟结束,问的都不太难,而且面试官人挺好但是有些问题问的很刁钻问到了测试的一些思想并不是理论,我不太了解这方面,但是也会给我讲一讲他的理解,但是面完很伤心觉得自己要挂了。但是幸运的是一面过了(感谢面试官),两天后二面,问的同样不算难,手撕也比较简单,但也有一两个没答出来,面试官人很好并没有追问,因为是周五进行的二面,没有立即出结果,等到周一才通知到过了,很煎熬的两天,根本睡不好,好在下周一终于通知二面过了(感谢面试官),然后约第二天三面,听别的字节同学说hr面基本上是谈薪资了,但是我的并不是,hr还问了业务相关的问题,不过问的比较浅,hr还问我好像比较紧张,而且hr明确说了还要比较一下,我说我有几家的面试都拒了就在等字节的面试,三面完后就开始等结果,这几天干啥都没什么劲,等的好煎熬,终于13号下午接到了电话通知oc了,正式邮件也同时发了,接到以后真的不敢信,很激动但更重要的是可以松一口气了,可以安心的休息一下了终于可以带着个好消息过年了,找实习也可以稍微告一段落了,虽然本人很菜,但是感谢字节收留,成为忠诚的节孝子了因为问的比较简单,面经就挑几个记得的写一下一面:1.实习项目的难点说一下2.实习中用到了哪些测试方法3.针对抖音评论设计一下测试用例4.手撕:合并两个有序数组二面:1.为什么转测开2.线程进程区别,什么场景适合用哪个3.发送一个朋友圈,从发出到别人看到,从数据流转的角度说一下会经历哪些过程4.针对抖音刷到广告视频设计测试用例5.手撕:无重复字符的最长字串
厂办龚彪:锲而不舍 金石可镂
查看8道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务