文章目录
每日一练
11.1
- 对字符串 “AAAABCABBBC” 进行哈夫曼编码,则编码后的字符串(不计入编码规则相关信息,仅考虑每个字符对应的编码占用的字节数)占用多少比特?( )。
A. 15
B. 17
C. 18
D. 20
【答案】B
【解析】 一种合法的哈夫曼编码方式为:
- ‘A’:出现 5 次,编码为 ‘0’
- ‘B’:出现 4 次,编码为 ‘11’
- ‘C’:出现 2 次,编码为 ‘10’
占用的比特数为:5×1+4×2+2×2 = 17 bit。
11.2
- 对字符串 “KAIKEKKBKKBKAIKE” 进行哈夫曼编码,则编码后的字符串(不计入编码规则相关信息,仅考虑每个字符对应的编码占用的字节数)占用多少比特?( )。
A. 26
B. 29
C. 30
D. 32
【答案】D
【解析】 一种合法的哈夫曼编码方式为:
- ‘K’:出现 8 次,编码为 ‘1’
- ‘A’:出现 2 次,编码为 ‘010’
- ‘I’:出现 2 次,编码为 ‘011’
- ‘B’:出现 2 次,编码为 ‘000’
- ‘E’:出现 2 次,编码为 ‘001’
占用的比特数为:8×1+2×3+2×3+2×3+2×3 = 32 bit。
11.3
- 若以 {1, 2, 3, 4, 5} 作为叶子节点的权值构造哈夫曼树,则带权路径长度是( )。
A. 25
B. 30
C. 33
D. 38
【答案】C
【解析】 一种合法的建树方案如下,对应的带权路径长度为1×3+2×3+3×2+4×2+5×2 = 33。
11.4
- 若以 {4, 5, 2, 7, 8} 作为叶子节点的权值构造哈夫曼树,则带权路径长度是( )。
A. 55
B. 56
C. 57
D. 58
【答案】D
【解析】 一种合法的建树方案如下,对应的带权路径长度为4×3+5×2+2×3+7×2+8×2 = 58。
11.5
- 哈夫曼树是n个带权叶子结点构成的所有二叉树中( )最小的二叉树。
A. 度
B. 带权路径长度
C. 高度
D. 权值
【答案】B
【解析】 哈夫曼树是n个带权叶子结点构成的所有二叉树中带权路径长度最小的二叉树。
11.6
- 以下代码运行输出的是
public class Person {
private String name = "Person";
int age = 0;
}
public class Child extends Person {
public String grade;
public static void main(String[] args) {
Person p = new Child();
System.out.println(p.name);
}
}
A. 输出:Person
B. 没有输出
C. 编译出错
D. 运行出错
【答案】C
11.7
- 下列说法正确的是()
A. WebLogic中开发消息Bean的non-persistent 方式可以保证消息的可靠
B. EJB容器发生错误,non-persistent方式下JMS容器仍然会将消息发送
C. EJB容器发生错误,persistent方式下JMS容器仍然会将消息发送
D. EJB容器发生错误,两种方式下JMS容器仍会在MDB可用的时候将消息发送
【答案】C
【解析】 weblogic中开发消息Bean时的persistent与non-persisten的差别: persistent方式的MDB可以保证消息传递的可靠性,也就是如果EJB容器出现问题而JMS服务器依然会将消息在此MDB可用的时候发送过来。 non-persistent方式的消息将被丢弃。
11.8
- 数列 {2, 1, 3, 5, 1, 2, 4, 7} 对应的前缀和数列为( )。
A. 0, -1, 2, 2, -4, 1, 2, 3
B. 2, 3, 5, 12, 13, 15, 19, 25
C. 2, 3, 6, 11, 12, 14, 18, 25
D. 2, 3, 6, 11, 13, 16, 20, 25
【答案】C
【解析】 定义原数列的第i个元素为ai,前缀和数列的第i个元素为sumi,则可得推导公式为:sum1=a1,当i>1时,sumi=sumi-1+ai。选项C正确。
11.9
- 下列哪个数列对应的前缀和数列为 {1, 2, 3, 4, 6, 9, 11, 14}?( )。
A. 1, 1, 1, 1, 1, 2, 1, 2
B. 1, 1, 1, 1, 2, 3, 2, 3
C. 1, 2, 1, 2, 1, 2, 1, 2
D. 1, 2, 3, 4, 2, 3, 3, 3
【答案】B
【解析】 定义原数列的第i个元素为ai,前缀和数列的第i个元素为sumi,则可得推导公式为:a1=sum1,当i>1时,ai=sumi-sumi-1。选项B正确。
11.10
- 使用树状数组维护大小为n的区间,动态单点修改的时间复杂度、查询任意前缀和的时间复杂度以及树状数组的空间复杂度分别为( )。
A. O(1)、O(log n)、O(n)
B. O(1)、O(n)、O(n)
C. O(log n)、O(log n)、O(n)
D. O(log n)、O(log n)、O(n log n)
【答案】C
【解析】 树状数组可以以 O(log n) 的时间得到任意前缀和,并同时支持在 O(log n) 时间内动态单点值的修改,空间复杂度为 O(n)。
11.11
- 设树状数组维护的区间为[1,100],则对区间第5个元素进行+20操作会对树状数组中的( )个元素进行修改。
A. 5
B. 6
C. 7
D. 8
【答案】B
【解析】 树状数组中第 5, 6, 8, 16, 32, 64 个位置的元素进行+20操作。
11.12
- 下列关于Java并发的说法中正确的是()
A. CopyOnWriteArrayList适用于写多读少的并发场景
B. ReadWriteLock适用于读多写少的并发场景
C. ConcurrentHashMap的写操作不需要加锁,读操作需要加锁
D. 只要在定义int类型的成员变量i的时候加上volatile关键字,那么多线程并发执行i++这样的操作的时候就是线程安全的了
【答案】B
【解析】 CopyOnWriteArrayList适用于写少读多的并发场景;ReadWriteLock即为读写锁,他要求写与写之间互斥,读与写之间互斥,读与读之间可以并发执行。在读多写少的情况下可以提高效率;ConcurrentHashMap是同步的HashMap,读写都加锁;volatile只保证多线程操作的可见性,不保证原子性。
11.13
- 数列 3, 5, 2, 4, 1, 4, 5, 6, 3, 2 对应的树状数组中的每个元素分别为( )。
A. 3, 5, 2, 6, 5, 4, 5, 6, 9, 11
B. 3, 8, 2, 14, 1, 5, 5, 30, 3, 5
C. 3, 8, 10, 14, 1, 5, 10, 16, 3, 5
D. 3, 8, 10, 14, 15, 19, 24, 30, 3, 5
【答案】B
【解析】 定义一个 lowbit
函数,返回参数转为二进制后,最后一个 1 的位置所代表的数值,树状数组的第 x 个元素表示的是区间 [x-lowbit(x)+1, x]
对应的区间元素和。不妨设 fi 表示树状数组的第 i 个元素,则:
- 第 1 个元素对应的区间范围为 [1,1],f1=3;
- 第 2 个元素对应的区间范围为 [1,2],f2=3+5=8;
- 第 3 个元素对应的区间范围为 [3,3],f3=2;
- 第 4 个元素对应的区间范围为 [1,4],f4=3+5+2+4=14;
- 第 5 个元素对应的区间范围为 [5,5],f5=1;
- 第 6 个元素对应的区间范围为 [5,6],f6=1+4=5;
- 第 7 个元素对应的区间范围为 [7,7],f7=5;
- 第 8 个元素对应的区间范围为 [1,8],f8=3+5+2+4+1+4+5+6=30;
- 第 9 个元素对应的区间范围为 [9,9],f9=3;
- 第 10 个元素对应的区间范围为 [9,10],f10=3+2=5。
11.14
- Test.main()函数执行后的输出是( )
class Test {
public static void main(String[] args) {
System.out.println(new B().getValue());
}
static class A {
protected int value;
public A (int v) {
setValue(v);
}
public void setValue(int value) {
this.value = value;
}
public int getValue() {
try {
value++;
return value;
} finally {
this.setValue(value);
System.out.println(value);
}
}
}
static class B extends A {
public B() {
super();
setValue(getValue() - 3);
}
public void setValue(int value) {
super.setValue(2 * value);
}
}
}
A. 6 7 7
B. 22 34 17
C. 22 74 74
D. 11 17 34
【答案】B
11.15
- 整数 208 和 2730 的最大公约数为( )。
A. 1
B. 2
C. 26
D. 34
【答案】C
11.16
- 整数 210 和 330 的最小公倍数为( )。
A. 30
B. 1150
C. 2310
D. 4620
【答案】C
11.17
- 7120 (7的120次方)除以 13 的余数为( )。
A. 1
B. 3
C. 5
D. 7
【答案】A
【解析】 7120 (1)← 760(1) ← 730 (12)← 715 (5)← 77 (6)← 73(5) ← 71 (7)。
11.18
- 10000 以内的正整数中有( )个数与 10000 互质。
A. 1000
B. 4000
C. 5000
D. 6000
【答案】B
【解析】 将 10000 分解质因数的:10000 = 24 × 54。可以发现,10000 只有 2 和 5 这两个质因数,10000 以内能被 2 整数的数有 10000/2 = 5000 个,能被 5 整数的数有 10000/5 = 2000 个,其中同时能被 2 和 5 整除的数有 10000/10 = 1000 个,所以 10000 以内包含因数 2 或 5 的数共有 5000 + 2000 - 1000 = 6000 个,据此可以得出不含因数 2 或 5 的数(即与 10000 互质的数)有 10000 - 6000 = 4000 个。
11.19
- 以下哪个整数是 12 关于模 13 的逆?( )。
A. 5
B. 8
C. 10
D. 12
【答案】D
【解析】 我们称一个整数 a 是另一个整数 b 关于模整数 c 的逆,当且仅当 a × b ≡ 1 (mod c)(此处 “≡” 表示同余运算符)。本题中,(12 × 12) ÷ 13 = 11 …… 1,所以 12 是 12 关于模 13 的逆。
11.20
- 下面有关JSP内置对象的描述,说法错误的是?
A. session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止
B. request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应
C. application对象:多个application对象实现了用户间数据的共享,可存放全局变量
D. response对象:response对象包含了响应客户请求的有关信息
【答案】C
11.21
- 关于运行时常量池,下列哪个说法是错误的
A. 运行时常量池大小受栈区大小的影响
B. 运行时常量池大小受方法区大小的影响
C. 存放了编译时期生成的各种字面量
D. 存放编译时期生成的符号引用
【答案】A
11.22
- 以下莫比乌斯函数 μ ( d ) \mu(d) μ(d) 的结果错误的是( )。
A. μ ( 1 ) = 1 \mu(1) = 1 μ(1)=1
B. μ ( 2 ) = 1 \mu(2) = 1 μ(2)=1
C. μ ( 6 ) = 1 \mu(6) = 1 μ(6)=1
D. μ ( 8 ) = 0 \mu(8) = 0 μ(8)=0
【答案】B
【解析】 莫比乌斯函数公式如下,所以 μ ( 2 ) = ( − 1 ) 1 = − 1 \mu(2) = (-1)^1 = -1 μ(2)=(−1)1=−1,选项B错误。
11.23
- 莫比乌斯函数 μ ( 210 ) \mu(210) μ(210) 的值为( )。
A. -1
B. 0
C. 1
D. 2
【答案】C
【解析】 因为 210 = 2 × 3 × 5 × 7 210 = 2 \times 3 \times 5 \times 7 210=2×3×5×7,所以 μ ( 210 ) = ( − 1 ) 4 = 1 \mu(210) = (-1)^4 = 1 μ(210)=(−1)4=1。
11.24
- 莫比乌斯函数 μ ( 735 ) \mu(735) μ(735) 的值为( )。
A. -1
B. 0
C. 1
D. 2
【答案】B
【解析】 因为 735 = 3 × 5 × 7 2 735 = 3 \times 5 \times 7^2 735=3×5×72,包含两个相同的质因数 7 7 7,所以 μ ( 735 ) = 0 \mu(735) = 0 μ(735)=0 。
11.25
-
假设对于数论函数 f ( n ) f(n) f(n) 和 F ( n ) F(n) F(n),有以下关系式:
F ( n ) = ∑ d ∣ n f ( d ) F(n) = \sum\limits_{d|n} f(d) F(n)=d∣n∑f(d)
则其对应的莫比乌斯反演公式定义为
① f ( n ) = ∑ d ∣ n μ ( d ) F ( d ) f(n) = \sum\limits_{d|n} \mu(d) F(d) f(n)=d∣n∑μ(d)F(d)
② f ( n ) = ∑ d ∣ n μ ( d ) F ( n d ) f(n) = \sum\limits_{d|n} \mu(d) F(\frac{n}{d}) f(n)=d∣n∑μ(d)F(dn)
③ f ( n ) = ∑ n ∣ d μ ( d ) F ( d ) f(n) = \sum\limits_{n|d} \mu(d) F(d) f(n)=n∣d∑μ(d)F(d)
④ f ( n ) = ∑ n ∣ d μ ( d ) F ( d n ) f(n) = \sum\limits_{n|d} \mu(d) F(\frac{d}{n}) f(n)=n∣d∑μ(d)F(nd)
A. ①
B. ②
C. ③
D. ④
【答案】B
【解析】 假设对于数论函数 f ( n ) f(n) f(n) 和 F ( n ) F(n) F(n),有以下关系式: F ( n ) = ∑ d ∣ n f ( d ) F(n) = \sum\limits_{d|n} f(d) F(n)=d∣n∑f(d)
则其对应的莫比乌斯反演公式定义为 f ( n ) = ∑ n ∣ d μ ( d ) F ( d ) f(n) = \sum\limits_{n|d} \mu(d) F(d) f(n)=n∣d∑μ(d)F(d)
11.26
- 以下哪个函数不是积性函数?( )。
A. 欧拉函数 φ ( n ) \varphi(n) φ(n)
B. 莫比乌斯函数 μ ( n ) \mu(n) μ(n)
C. 幂函数 I d k ( n ) = n k Idk(n) = n^k Idk(n)=nk
D. 二次函数 g ( n ) = x 2 + 1 g(n) = x^2 + 1 g(n)=x2+1
【答案】D
【解析】 积性函数:对于任意互质的整数 a a a 和 b b b 有性质 f ( a ) f ( b ) = f ( a b ) f(a) f(b) = f(a b) f(a)f(b)=f(ab)。显然选项D不满足这个条件。
11.27
- 以下代码运行结果的描述是正确的是?
class Car extends Vehicle{
public static void main (String[] args){
new Car(). run();
}
private final void run(){
System. out. println ("Car");
}
}
class Vehicle{
private final void run(){
System. out. println("Vehicle");
}
}
A. Car
B. Vehicle
C. Compiler error at line 3
D. Compiler error at line 5
【答案】A
11.28
- 如下代码,执行test()函数后,结果为()
public class Test2{
public void add(Byte b){
b = b++;
}
public static void main(String[] args) {
Byte a = 127;
Byte b = 127;
Test2 test2 = new Test2();
test2.add(++a);
System.out.print(a + " ");
test2.add(b);
System.out.print(b + "");
}
}
A. 127 127
B. 128 127
C. 129 128
D. 以上都不对
【答案】D
【解析】 正确答案:-128 127
11.29
- 费马小定理(英语:Fermat’s little theorem)是数论中的一个定理。假如a是一个整数,p是一个质数,那么ap-a是p的倍数,可以表示为 a p ≡ a ( mod p ) a^p \equiv a (\text{ mod } p) ap≡a( mod p) 。则对于一个整数a和一个质数p来说,以下哪个选项可以表示a关于模p的逆?( )。
A. ap
B. ap-1
C. ap
D. ap+1
【答案】A
【解析】 因为 a p = a ( mod p ) a^p = a(\text{ mod } p) ap=a( mod p),所以 a p − 1 ≡ 1 ( mod p ) a^{p-1} \equiv 1(\text{ mod } p) ap−1≡1( mod p),对于 a a a的逆 a − 1 a^{-1} a−1来说, a ⋅ a − 1 ≡ 1 ( mod p ) a \cdot a^{-1} \equiv 1(\text{ mod } p) a⋅a−1≡1( mod p),而 a ⋅ a p − 2 = a p − 1 ≡ 1 ( mod p ) a \cdot a^{p-2} = a^{p-1} \equiv 1 (\text{ mod } p) a⋅ap−2=ap−1≡1( mod p),所以 a − 1 ≡ a p − 2 ( mod p ) a^{-1} \equiv a^{p-2} (\text{ mod } p) a−1≡ap−2( mod p)。
11.30
- 欧拉函数 φ ( 15 ) \varphi(15) φ(15) 的值为( )。
A. 5
B. 8
C. 11
D. 14
【答案】B
【解析】 欧拉函数 φ ( n ) \varphi(n) φ(n) 的值是所有小于或等于 n n n 的正整数中与 n n n 互素的数的个数。所有小于或等于 15 15 15 的正整数中与 15 15 15 互素的数有 8 8 8 个,它们分别为 1 , 2 , 4 , 7 , 8 , 11 , 13 , 14 1,2,4,7,8,11,13,14 1,2,4,7,8,11,13,14,所以 φ ( 15 ) = 8 \varphi(15) = 8 φ(15)=8 。