刷题2022年5月16日

232 阅读4分钟

1、下列哪一行代码可以加到下面代码中的第4行而不产生错误?()

public abstract class AbClass {
     public int var = 1;
     public void fun() {}
     }
public abstract void fun4(int var2);

本题的类是一个抽象类,对于抽象类要注意抽象类不能被实例化;

对于A,抽象类中定义的变量初始化之后就不能重新操作赋值或者操作该变量;

对于B,抽象类中的普通方法一定要实现,B中只是单纯定义了一个方法,并未实现;

对于C,抽象类中的抽象方法是不能实现的;

综上D满足要求

2、假设文本文件中有多处连续的空白行,下边哪个命令可以压缩相邻的空白行 

cat -s file

-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。

3、二叉树T1,点集为{A, B, C, D, E}, 边集为{A-B, A-C, C-D, C-E}。二叉树T2,点集为{A, B, C, D, E}, 边集为{A-D, B-E, C-E, D-E}。下列()既是T1的BFS序,又是T2的DFS序.

①ABCDE ②ABCED ③ACBDE ④ACBED

二叉树T1为以下两种结构,层次遍历分别为:ABCED,ACBED


        A                           A

      /    \                       /    \

    B      C                      B       C     

           /    \                       /   \

         E     D                       D      E

二叉树T2为以下两种结构,后序遍历分别为:ABCED,ACBED


        D                          D

       /   \                       /    \

     A     E                   A      E

           /   \                         /  \

         B     C                    C    B
         

4、public static final int n=1,经过jvm类的加载过程准备阶段初始化后,n的结果是?

1

准备阶段是为类变量分配内存并设置类变量初始值的阶段,这些变量所使用的内存都将在方法区中进行分配。这时候进行内存分配的仅包括类变量(被static修饰的变量),而不包括实例变量,实例变量将会在对象实例化时随着对象一起分配在堆中。其次,这里所说的初始值有两类:被final修饰和不被final修饰。不被final修饰,如public static int m =1,在此阶段会被初始化为0;被final修饰如本题所示,会在准备阶段初始化为指定的值。

5、设有4个同时到达的作业A1,A2,A3和A4,各作业所需要的执行时间分别是S1,S2,S3和S4,且S1<S2<S3<S4,若系统采用单道方式运行且采用短作业优先调度算法,则平均周转时间是()。

(4S1+3S2+2S3+S4)/4

周转时间:执行结束的时间点减去到达时间点,所以s1-s4的周转时间为:

s1: s1

s2: s1+s2

s3: s1+s2+s3

s4: s1+s2+s3+s4

6、一个含有n(n>1)个元素的完全二叉树(根节点索引为0),其倒数第一个非叶节点的索引位置(按照层序遍历的结果)是

n/2-1

求倒数第一个非叶节点,即求层序遍历结果中最后一个有子节点的节点,

对于一个完全二叉树,在填满的情况下(非叶子节点都有两个子节点),每一层的元素个数是上一层的二倍,根节点数量是1,所以最后一层的节点数量,一定是之前所有层节点总数+1,所以,我们能找到最后一层的第一个节点的索引,即节点总数/2(根节点索引为0),这也就是第一个叶子节点,所以第一个非叶节点的索引就是第一个叶子结点的索引-1。对于未填满的完全二叉树同理,因为完全二叉树的定义,除去最后一层所有层均填满,当我们从上往下,从左往右填充二叉树的过程中,第一个叶子节点,一定是序列长度的二分之一,所以第一个非叶子节点的索引就是n/2-1。

7、某系统10个进程共享打印机,每个进程要3台。为保证系统一定不死锁, 需要购买的打印机数量最少为()

21

根据题目分析可得求的是发生死锁的临界条件,也就是一个进程占用三个打印机,剩下的所有进程各站两个打印机并且都等待那个进程完成后让出打印机,这就可以得到表达式3+(10-1)*2,最后得到21台打印机。