2021秋招软件开发方向
    试题来源:牛客网(https://www.nowcoder.com/test/31332154/summary

    1.下述算法的时间复杂度为()
    int fact(int n) {
    if (n <= 1) return 1;
    return n * fact(n-1);
    }
    A.O(log2n)
    B.O(n)
    C.O(nlog2n)
    D.O(n^2)
    答案:B
    答案解析:这个相当于就是遍历了一遍,从N到1的值。 然后每次去乘以上次得到的值。

    2.在现代Linux 系统和 Windows 系统中,如果希望可以在任意目录下直接通过输入文件名 运行一个程序,需要把程序所在路径添加到哪个环境变量里面?( )
    A.PWD
    B.PATH
    C.SHELL
    D.EXEC
    答案:B

    3.小米有品的消费记录分别为900,512,613,700,810,若采用选择排序算法对其进行递增排序,则第三趟排序结果为 ( )
    A.900 512 613 700 810
    B.512 900 613 700 810
    C.512 613 700 900 810
    D.512 613 700 810 900
    答案:C
    答案解析:
    选择排序的思路,以由小到大排序为例,首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
    原序列:900,512,613,700,810
    第一趟排序结果:512,900,613,700,810
    第二趟排序结果:512,613,900,700,810
    第三趟排序结果:512,613,700,900,810
    第四趟排序结果:512,613,700,810,900

    4.假设有一个栈,元素依次进栈的顺序是A,B,C,D,E。下列不可能的出栈顺序是( )
    A选项: E,D,C,B,A
    B选项: A,B,C,D,E
    C选项: B,C,D,E,A
    D选项: E,A,B,C,D
    答案:D
    答案解析:↓代表进栈,↑代表出栈。
    A选项:A↓,B↓,C↓,D↓,E↓,E↑, D↑, C↑, B↑, A↑
    B选项:A↓, A↑,B↓, B↑,C↓, C↑,D↓, D↑,E↓, E↑
    C选项:A↓, B↓, B↑, C↓, C↑,D↓, D↑,E↓, E↑, A↑
    D选项:无法实现

    5.以下关于死锁,描述正确的有? ( )
    A.有序分配锁资源可以预防死锁
    B.银行家算法是用于检测死锁的
    C.剥夺死锁进程的所有资源可以解除死锁
    D.其他描述都不对
    答案:AC
    答案解析:银行家算法用于预防死锁

    6.关于主键,描述正确的是()
    A.一个表可以有多个主键
    B.主键不可以为空
    C.建立主键的同时也会建立一个唯一性索引
    D.主键可以包含多个属性,如联合主键
    答案:BCD

    7.下面对于进程和线程的叙述错误的是()
    A.地址空间:进程至少有一个线程,线程共享进程的地址空间,而进程有自己独立的地址空间
    B.进程是资源分配和拥有的单位,同一进程内的线程共享进程的资源
    C.两者均可并发执行
    D.进程是处理器调度的基本单位,但线程不是
    答案:D

    1. 下列关于继承的描述正确的是?()
      A.在Java中允许定义一个子类的引用,指向父类的对象
      B.在Java中一个子类可以继承多个抽象类,在extends关键字后依次列出用逗号隔开
      C.在Java中继承是通过extends关键字来描述的,而且只允许继承自一个直接父类
      D.在Java中抽象类之间不允许出现继承关系,所有的抽象类都相互独立
      答案:C

    9.关于Java 中的垃圾回收,下列说法错误的是:()
    A.可以使用System.gc()来显式进行垃圾回收,但是不保证能够执行
    B.因为有垃圾回收机制,所以java 不会存在内存泄漏问题
    C.GC 是 JVM内部的一个线程,回收无效对象的内存用于将来的分配
    D.创建对象时,GC就开始监控这个对象的地址,大小及使用情况
    答案:AB
    答案解析:
    调用了System.gc()只是告诉虚拟机要回收,但究竟什么时候回收由虚拟机说了算,java垃圾回收机制就是这样,一般等到内存快不够用了才回收。
    A错误我觉得是因为题意的 “但是不保证能够执行” 是指gc这条命令不保证执行,但是命令是必定执行的,建议能够到 JVM。

    10.在Java 的 switch(expression) 语句中, expression 的数据类型不能是( )
    A.long
    B.boolean
    C.int
    D.String
    答案:AB