数据结构与算法——每日一练(12月)

每日一练

12.1

  • 欧拉函数 φ ( 97 ) \varphi(97) φ(97) 的值为( )。

A. 23

B. 33

C. 38

D. 96

【答案】D

【解析】欧拉函数 φ ( n ) \varphi(n) φ(n) 的值是所有小于或等于 n n n 的正整数中与 n n n 互素的数的个数。特别地,当 n n n 为素数时, φ ( n ) = n − 1 \varphi(n) = n-1 φ(n)=n1,因为 97 97 97 是素数,所以 φ ( 97 ) = 96 \varphi(97) = 96 φ(97)=96

12.2

  • 能被 3 3 3 整除,且能够整除 1200 1200 1200 的正整数共有( )个。

A. 5

B. 15

C. 25

D. 35

【答案】B

【解析】 1200 3 = 400 = 2 4 × 5 2 \frac{1200}{3} = 400 = 2^4 \times 5^2 31200=400=24×52,任何满足条件的正整数必然可以表示成 3 × 2 x × 5 y 3 \times 2^x \times 5^y 3×2x×5y(其中 0 ≤ x ≤ 4 , 0 ≤ y ≤ 2 0 \le x \le 4, 0 \le y \le 2 0x4,0y2), 其中 x x x 共有 5 5 5 种可能, y y y 共有 3 3 3 种可能,根据乘法原理,共有 5 × 3 = 15 5 \times 3 = 15 5×3=15 个满足条件的正整数。

12.3

  • 整数 984 984 984 的最大奇因数为( )。

A. 37 37 37

B. 65 65 65

C. 123 123 123

D. 247 247 247

【答案】C

【解析】 984 = 2 3 × 123 984 = 2^3 \times 123 984=23×123,所以 984 984 984 的最大奇因数为 123 123 123

12.4

  • java8中,下面哪个类用到了解决哈希冲突的开放定址法

A. LinkedHashSet

B. HashMap

C. ThreadLocal

D. TreeMap

【答案】C

12.5

  • 下面有关java object默认的基本方法,说法错误的是?

A. equals(Object obj) 指示某个其他对象是否与此对象“相等”

B. copy() 创建并返回此对象的一个副本

C. wait() 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法

D. toString() 返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成

【答案】B

12.6

  • 考虑以下求和函数

    F ( n ) = ∑ d ∣ n f ( d ) F(n) = \sum\limits_{d|n} f(d) F(n)=dnf(d)

    若对于任意 i ∈ Z i \in \Z iZ 都有 f ( i ) = i f(i)=i f(i)=i,则 F ( 12 ) F(12) F(12) 的值为( )。

A. 12

B. 24

C. 14

D. 28

【答案】D

【解析】 F ( 12 ) = f ( 1 ) + f ( 2 ) + f ( 3 ) + f ( 4 ) + f ( 6 ) + f ( 12 ) = 28 F(12) = f(1) + f(2) + f(3) + f(4) + f(6) + f(12) = 28 F(12)=f(1)+f(2)+f(3)+f(4)+f(6)+f(12)=28

12.7

  • 考虑以下求和函数

    F ( n ) = ∑ d ∣ n f ( d ) F(n) = \sum\limits_{d|n} f(d) F(n)=dnf(d)

    若对于任意 i ∈ Z i \in \Z iZ 都有 f ( i ) = i 2 f(i)=i^2 f(i)=i2,则 F ( 21 ) F(21) F(21) 的值为( )。

A. 100

B. 250

C. 500

D. 1000

【答案】C

【解析】 F ( 21 ) = f ( 1 ) + f ( 3 ) + f ( 7 ) + f ( 21 ) = 1 2 + 3 2 + 7 2 + 2 1 2 = 500 F(21) = f(1) + f(3) + f(7) + f(21) = 1^2 + 3^2 + 7^2 + 21^2 = 500 F(21)=f(1)+f(3)+f(7)+f(21)=12+32+72+212=500

12.8

  • 下列关于莫比乌斯反演的性质描述正确的有
    • I. f ( n ) = ∑ d ∣ n μ ( d ) F ( n d ) f(n) = \sum\limits_{d|n}\mu(d)F\left({ \frac{n}{d} }\right) f(n)=dnμ(d)F(dn)
    • II. μ ( n ) \mu(n) μ(n) 是积性函数
    • III. 设 f f f 是算术函数,它的和函数 F ( n ) = ∑ d ∣ n f ( d ) F(n) = \sum\limits_{d|n}f(d) F(n)=dnf(d) 是积性函数,那么 f f f 也是积性函数

A. 只有I

B. I和II

C. II和III

D. I、II和III

【答案】D

12.9

  • 下列关于欧拉函数 φ ( n ) \varphi(n) φ(n) 相关性质的描述正确的有()。
    • I. φ ( n ) \varphi(n) φ(n) 是小于 n n n 的正整数中与 n n n 互质的数的数量
    • II. $\sum\limits_{d|n}\varphi(d) = \sum\limits_{d|n}\varphi(\left({ \frac{m}{d} }\right) $
    • III. 设 ( a , m ) = 1 (a, m) = 1 (a,m)=1,则 a φ ( m ) ≡ 1 ( m o d   m ) a^{\varphi(m)} ≡ 1(mod\ m) aφ(m)1(mod m)

A. 只有I

B. I和II

C. II和III

D. I、II和III

【答案】D

【解析】选项I是欧拉函数的定义,正确。因为欧拉函数是积性函数,所以明显选项II也正确。选项III是欧拉定理,正确。

12.10

  • 考虑一下求和函数 F ( n ) = ∑ d ∣ n f ( d ) F(n) = \sum\limits_{d|n}f(d) F(n)=dnf(d),若对于任意 i ∈ Z i\in\Z iZ 都有 f ( i ) = i 2 + 3 f(i) = i ^2 + 3 f(i)=i2+3,则下列哪个选项中值最大。

A. F(8)

B. F(10)

C. F(16)

D. F(17)

【答案】C

【解析】F(8) = 97, F(10) = 142, F(16) = 356, F(17) = 296。

12.11

  • 下面有关JSP内置对象的描述,说法错误的是?

A. session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止

B. request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应

C. application对象:多个application对象实现了用户间数据的共享,可存放全局变量

D. response对象:response对象包含了响应客户请求的有关信息

【答案】C

12.12

  • 下面有关jdbc statement的说法错误的是?

A. JDBC提供了Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程

B. 对于PreparedStatement来说,数据库可以使用已经编译过及定义好的执行计划,由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象

C. PreparedStatement中,“?” 叫做占位符,一个占位符可以有一个或者多个值

D. PreparedStatement可以阻止常见的SQL注入式攻击

【答案】C

12.13

  • 下列关于RSA算法的叙述中,正确的是()。

    I. RSA算法是一种对称加密算法

    II. RSA算法是一种非对称加密算法

    III. RSA算法是一种公钥加密算法

    IV. RSA算法是一种私钥加密算法

A. I和III

B. I和IV

C. II和III

D. II和IV

【答案】C

【解析】RSA算法是一种非对称加密算法,是一种常用的公钥加密算法。

12.14

  • RSA使用不方便的最大问题是( )。

A. 产生秘钥需要强大的计算能力

B. 算法中需要大数

C. 算法中需要素数

D. 被攻击过很多次

【答案】A

【解析】由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。RSA的速度比对应同样安全级别的对称密码算法要慢1000倍左右。

12.15

  • 已知RSA算法中,素数p=5,q=7,模数n=35,公开密钥e=5,密文c=10,求明文m=( )。

A. 5

B. 7

C. 11

D. 17

【答案】A

【解析】 φ ( n ) = ( 5 − 1 ) ∗ ( 7 − 1 ) = 24 φ(n)=(5-1)*(7-1)=24 φ(n)=(51)(71)=24 e ∗ d   m o d   φ ( n ) = 1 e*d\ mod\ φ(n)=1 ed mod φ(n)=1 5 ∗ d   m o d   24 = 1 5*d\ mod\ 24=1 5d mod 24=1 d = 5 d=5 d=5,明文 m = c d   m o d   35 = 1 0 5   m o d   35 = 5 m=c^d\ mod\ 35=10^5\ mod\ 35=5 m=cd mod 35=105 mod 35=5

12.16

  • RSA算法中,素数p=7,q=11,加密密钥e=7,则解密密钥d=( )。

A. 22

B. 31

C. 35

D. 43

【答案】D

【解析】 n = 7 ∗ 11 = 77 n=7*11=77 n=711=77 φ ( n ) = ( 7 − 1 ) ∗ ( 11 − 1 ) = 60 φ(n)=(7-1)*(11-1)=60 φ(n)=(71)(111)=60,根据 e ∗ d ≡   m o d   φ ( n ) e*d≡\ mod\ φ(n) ed mod φ(n),又 7 ∗ d   m o d   60 = 1 7*d\ mod\ 60=1 7d mod 60=1,所以 d = 43 d=43 d=43

12.17

  • 用RSA算法加密时,已经公钥是(e=7,n=20),私钥是(e=3,n=20),用公钥对消息M=3加密,得到的密文是( )。

A. 3

B. 7

C. 11

D. 13

【答案】B

【解析】根据 C = m e   m o d   n = 3 7   m o d   20 = 7 C=m^e\ mod\ n=3^7\ mod\ 20=7 C=me mod n=37 mod 20=7,得到密文 C = 7 C=7 C=7

12.18

  • 关于ThreadLocal类以下说法正确的是

A. ThreadLocal继承自Thread

B. ThreadLocal实现了Runnable接口

C. ThreadLocal重要作用在于多线程间的数据共享

D. ThreadLocal是采用哈希表的方式来为每个线程都提供一个变量的副本

【答案】D

12.19

  • 在你面前有一个n阶的楼梯,你一步只能上1阶或2阶。请问,当N=11时,你可以采用多少种不同的方式爬完这个楼梯()

A. 11

B. 144

C. 55

D. 89

【答案】B

12.20

  • 数列 1,3,2,5,4,7 对应的前缀和数组为( )。

A. 1,4,6,12,13,19

B. 1,4,6,11,15,22

C. 1,5,7,13,15,22

D. 1,5,8,16,18,22

【答案】B

【解析】数列 1,3,2,5,4,7 对应的前缀和数组为 1,4,6,11,15,22 。

12.21

  • 字符串 aabaaab 的前缀函数为( )。

A. 0,1,0,1,0,1,2

B. 0,1,0,1,2,2,3

C. 0,1,2,0,1,2,3

D. 0,1,2,0,2,2,3

【答案】B

【解析】给定一个长度为 n 的字符串 ,其前缀函数被定义为一个长度为n的数组 π ,其中 πi 表示子串 s0…i 最长的相等的真前缀与真后缀的长度,本题选B。

12.22

  • 欧拉函数 φ ( 23 ) \varphi(23) φ(23) 的值为( )。

A. 1

B. 9

C. 16

D. 22

【答案】D

【解析】欧拉函数 φ ( n ) \varphi(n) φ(n) 的值是所有小于或等于 n n n 的正整数中与 n n n 互素的数的个数。特别地,当 n n n 为素数时, φ ( n ) = n − 1 \varphi(n) = n-1 φ(n)=n1,因为 23 23 23 是素数,所以 φ ( 23 ) = 22 \varphi(23) = 22 φ(23)=22

12.23

  • 设树状数组维护的区间为[1,100],则对区间第8个元素进行+15操作会对树状数组中的( )个元素进行修改。

A. 3

B. 4

C. 5

D. 6

【答案】B

【解析】会对树状数组中第 8, 16, 32, 64 个位置的元素进行+15操作。

12.24

  • 下列关于公钥密码学相关算法的叙述中正确的是( )。

    I. RSA算法的安全性基于大整数分解

    II. DSA算法的安全性基于整数有限域离散对数难题

    III. RSA即可作为数字签名,也可以作为加密算法。

    IV. DSA即可作为数字签名,也可以作为加密算法

A. 仅I

B. I、II

C. I、II、III

D. I、II、III、IV

【答案】C

【解析】RSA算法的安全性基于大整数分解;DSA算法的安全性基于离散对数难题。RSA即可作为数字签名,也可以作为加密算法;DSA只能用于数字签名,而无法用于加密(某些扩展可以支持加密)。

12.25

  • ServletConfig接口默认是哪里实现的?

A. Servlet

B. GenericServlet

C. HttpServlet

D. 用户自定义servlet

【答案】B

12.26

  • 下列说法正确的是()

A. WebLogic中开发消息Bean的non-persistent 方式可以保证消息的可靠

B. EJB容器发生错误,non-persistent方式下JMS容器仍然会将消息发送

C. EJB容器发生错误,persistent方式下JMS容器仍然会将消息发送

D. EJB容器发生错误,两种方式下JMS容器仍会在MDB可用的时候将消息发送

【答案】C

12.27

  • 欧拉函数 φ(22) 的值为( )。

A. 1

B. 5

C. 10

D. 15

【答案】C

【解析】欧拉函数 φ(n) 的值是所有小于或等于 n 的正整数中与 n 互素的数的个数。所有小于等于22的数中与22互素的数共有10个,它们分别为 1,3,5,7,9,13,15,17,19,21,所以 φ(22) = 10。

12.28

  • 前缀和数列 3,2,4,8,13,21 对应的原数列为( )。

A. 2,7,3,-2,1,4

B. 2,3,2,1,3,2

C. 3,-1,2,4,5,8

D. 3,1,2,4,7,5

【答案】C

【解析】数列 3,-1,2,4,5,8 对应的前缀和数组恰为 3,2,4,8,13,21,所以本题选C。

12.29

  • 整数 3728 的最大奇因数为( )。

A. 123

B. 233

C. 335

D. 413

【答案】B

【解析】因为 3728 = 24 x 233,所以 3728 的最大奇因数为 233 。

12.30

  • 往一棵初始为空的trie树中依次插入 “hello”, “hi”, “haha”, “kaikeba” 后树中节点个数为( )。

A. 11

B. 15

C. 17

D. 20

【答案】C

【解析】最终的trie树结构如下,共17个节点。

在这里插入图片描述

12.31

  • 定义一个数的数位和为该数的十进制表示中各位上数字之和。比如:123的数位和为1+2+3=6,365的数位和为3+6+5=14。1到3998这3998个整数中有( )个数的数位和是4的倍数。

A. 198

B. 498

C. 499

D. 999

【答案】D

【解析】可以发现,对于1~3000范围内的任意一个整数a,a+1000的数位和比a的数位和多1。所以可得:

  • [1,1000]范围内的数位和模4为0的数的个数 = [1001,2000]范围内数位和模4为1的数的个数 = [2001,3000]范围内数位和模4为2的数的个数 = [3001,4000]范围内数位和模4为3的数的个数
  • [1,1000]范围内的数位和模4为1的数的个数 = [1001,2000]范围内数位和模4为2的数的个数 = [2001,3000]范围内数位和模4为3的数的个数 = [3001,4000]范围内数位和模4为0的数的个数
  • [1,1000]范围内的数位和模4为2的数的个数 = [1001,2000]范围内数位和模4为3的数的个数 = [2001,3000]范围内数位和模4为0的数的个数 = [3001,4000]范围内数位和模4为1的数的个数
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

讲文明的喜羊羊拒绝pua

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值