滴滴秋招笔试题目 – 20220917

20道选择题+2道算法题,算法题我第一题脑抽少写了个判断导致只有9%,第二题82%。选择题部分是对截图通过OCR提取的文字,可能部分有误。

选择题

1.(多选)某证券交易系统采用页式存储管理方式对内存空间进行分配去配。当前有作业Job1由32个逻辑页面构成,每页有1KB,随机装入主存提供的64块存储块中。则以下描述正确的是:
A. 物理地址位数是15
B. 物理地址位数是16
C. 页号地址位数是10
D. 页内地址位数是10

2. (单选)为了提高数据保密性,对已加密文件解密时,不使用加密密钥,该文件使用的加密模型是
A. 对称加密
B. 非对称加密
C. 认证
D. 摘要加密

3. (单选)下列选项中属于交换类排序算法的有
①希尔排序
②冒泡排序
③快速排序
④堆排序

A. ①③
B. ①②
C. ②③
D. ③④

4. (单选)选出下面字节数组流使用正确的是
A. ByteArrayInputStream inputStream = new ByteArrayInputStream(12);
B. ByteArrayInputStream inputStream1 = new ByteArraylnputStream(“abc”);
C. ByteArrayOutputStream outputStream1 = new ByteArrayOutputStream(new FileOutputStream(“”));
D. ByteArrayOutputStream outputStream = new ByteArrayOutputStream(12);

5. (单选)某美发门店结算系统采用单CPU多线程机制KLT模式,以下有关进程K创建的线程k1,k2描述正确的是:
A. 线程k1,k2在用户态运行,调度和管理在内核实现。
B. 线程k1,k2在内核运行,调度和管理也在内核实现。
C. 线程k1,k2在用户态运行,调度和管理也在用户态实现。
D. 线程k1,k2在内核运行,调度和管理在用户态实现。

6. (多选)对称加密算法的特点是
A. 加密速度慢
B. 加密速度快
C. 加密密钥与解密密钥相同
D. 加密密钥与解密密钥不同

7. (多选)在Linux系统中通过apache发布web服务时,如果需要同时发布多个站点,可以使用的配置方案有
A. 基于netbios的虚拟主机
B. 基于IP的虛拟主机
C. 基于域名的虛拟主机
D. 基于MAC的虚拟主机

8. (单选)( )命令可以用于探测目标主机是否开放指定端口
A. netstat
B. telnet
C. ping
D. route

9. (单选)关键字集合{180,160,120,100,80,10,1}构成的二叉排序树,平均查找长度约为
A. 10
B. 8
C. 6
D. 4

10. (单选)给定一个序列{-2,11,-4,13,-5,-2},使得连续子序列的和最大为
A. 24
B. 9
C. 7
D. 20

11. (单选)以下哪一个不是贪心算法的缺点
A. 需要对问题整体解决
B. 只能求满足某些约束条件的可行解的范围
C. 不能用来求最大值或最小值的问题
D. 不能保证求得的最后解是最佳的

12. (单选)某产品运营公司人力资源管理系统中,其中员工表和部门表结构如下:
①员工表(员工编号,姓名,性别,出生日期,入职日期,部门编号)
②部门表(部门编号,名称,职能负责人,联系方式)
若完成操作:利用case 语句对部门职能进行备注说明。规定1号部门负责财务管理;2号部门负责员工培训;3号部门负责产品销售;其他部
门后勤保障。以下操作可行的是:

A. SELECT 部门编号,名称,
职能=CASE
WHEN 1 THEN ‘财务管理’
WHEN 2 THEN ‘员工培训’
WHEN 3 THEN ‘产品销售’
ELSE ‘后勤保障’
END
FROM 部门表

B. SELECT 部门编号,名称,
职能=CASE
WHEN 部门编号=1 THEN ‘财务管理’
WHEN 部门编号=2 THEN ‘员工培训’
WHEN 部门编号=3 THEN ‘产品销售’
ELSE ‘后勤保障’
FROM 部门表

C. SELECT 部门编号,名称,
职能=CASE
WHEN 部门编号=1 THEN ‘财务管理’
WHEN 部门编号=2 THEN ‘员工培训’
WHEN 部门编号=3 THEN ‘产品销售’
END
FROM 部门表

D. SELECT 部门编号,名称,
职能=CASE
WHEN 部门编号=1 THEN ‘财务管理’
WHEN 部门编号=2 THEN ‘员工培训’
WHEN 部门编号=3 THEN ‘产品销售’
ELSE ‘后勤保障’
END
FROM 部门表

13. (多选)关于Mysql锁特性说法正确的是
A. 与表锁相比,行锁并发度高
B. 与行锁相比,表锁并发度高
C. 与表锁相比,行锁开销最大
D. 与行锁相比,表锁开销最大

14. (单选)要实现两个进程互斥,设一个互斥信号量为mutex,初值为1,若mutex=0,则表示
A. 表示有一个进程进入临界区
B. 表示没有进程进入临界区
C. 表示有一个进程进入临界区,另一个进程等待进入
D. 表示有两个进程进入临界区

15. (单选)
下列程序的运行结果是

#include
using namespace std;
class A{
public:
  virtual void f(){cout<<"*";}
  void g(){cout<<"#";}
};
class B: public A{
public:
  void f(){cout<<"&";}
  void g(){cout<<"%";}
};
int main()
{
  B b;
  A *pa=&b;
  if(dynamic_cast<B*>(pa) == NULL)
  {
    cout<<"NULL"<<endl;
  }
  else
  {
    dynamic_cast<B*>(pa)->f();
    dynamic_cast<B*>(pa)->g();
  }
  return 0;
}

A. &%
B. &#
C. *%
D. *#

16. (单选)
分析下面Java代码片段,横线处执行语句正确的是

String sql = "select sid from student";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
_________________;
connection.close();

A. int r = preparedStatement.executeUpdate();
B. ResultSet r = preparedStatement.executeQuery(sql);
C. int r = preparedStatement.executeQuery();
D. ResultSet r = preparedStatement.executeQuery();

17. (单选)有Linux系统中执行 rm /misc/prog.c 无法删除文件时,需要执行以下操作
A. rm -r /misc/prog.c
B. rm -f /misc/prog.c
C. del /misc/prog.c
D. rmdir /misc/prog.c

18. (单选)
下面代码执行后的输出结果为

#include 
#include 
#include 

int main()
{
  std::exception_ptr p;
  try {
    throw std:logic_error("logic_error");
  }
  catch(const std::exception& e) {
    p = std::current_exception);
    std:cout<<"current exception\n";
  }
  try {
    std::rethrow_exception(p);
  }
  catch (const std::exception& e) {
    std::cout<<e.what()<<'\n';
  }
  return 0;
}

A. current_exception
logic_error
B. current_exception
C. 编译时报错
D. logic_error

19. (单选)
下面代码运行给果为

public class Test {
  public static void main(String[] args) {
    int[] num = {10};
    add(num):
    System.out.println(num[0]);
  }
  public static void add(int[] num) {
    num[0]+=5;
  }
}

A. 0
B. 编译错误
C. 15
D. 10

20. (单选)
关于下面代码,选项中说法错误的是

public static void main(String[] args) throws InterruptedException {
  File file = new File("d:/dir" "test.txt):
  try {
    file.createNewFile();
  } catch (IOException e) {
    e.printStackTrace():
  }
}

A. new File(“d:/dir”,”test.txt”);中两个参数,第一个是文件所在的目录,第二个是文件名称
B. 如果目录”d:/dir” 存在,则在运行时,会自动创建或覆盖目录下的test.txt文件
C. 如果目录”d:/dir” 不存在,则在运行时,会自动创建
D. 如果目录”d:/dir” 不存在,则在运行时,会抛出异常

算法题

1. 实验数据

时间限制: 3000MS
内存限制: 589824KB
题目描述:
小昱做了很久的实验得到了一个用正整数表示的实验数据,并记录在了纸上。但是由于做完实验太过激动,他一不小心把墨水打翻溅在了纸上,导致数据中一些位置上的数字看不清楚。他仍记得这个数据有以下三个特征:
1. 这个数是正整数,且没有前导零(即数的最高位不是0)
2. 这个数任意两个相邻数位的数字不同
3. 这个数可以被3整除
他现在很关心在满足以上特征的条件下,这个数字最小为多少。

输入描述:
输入一个由数字0-9和‘?’构成的字符串。若输入的第i个字符为问号,则表示数据从高位往低位数的第i位被墨水遮盖,不能确定是哪个数字;否则,表示这一位未被墨水遮盖,是一个确定的数。

输出描述:
输出一个正整数,表示实验数据最小可能是多少。

样例输入:
?12?0?9??
样例输出:
212101902

提示:
输入的字符串长度不超过100000,且至少为1。
所有数据均保证合法,保证存在合法解,且至少含有1个‘?’。
最高位为‘?’表示最高位被遮挡无法确定。因为第一条特征限制,最高位不能为0。因为第二位为1,根据第二条限制,最高位不能为1。所以最高位只能是2到9中的任意一个数字,当最高位为2时,实验数据会最小。第4、6、8、9位数字也被墨水遮挡,当第4、6位为数字1,第8位为数字为0,第9位为数字2时满足小昱记忆中数据的特征,且是可能出现的最小值。

2. 刷栅栏

时间限制: 3000MS
内存限制: 589824KB
题目描述:
小明正在刷栅栏。为了使得栅栏在经过风吹雨打后依然不掉色,需要用两种不同的油漆刷栅栏。
栅栏被按顺序编号为1到1000000000。每一段栅栏需要至少刷 p 遍的1号油漆和 q 遍的2号油漆后才能保证长时间不掉色。
每次刷漆都会使用某种类型的油漆,并将编号属于某个区间内的栅栏都刷上这种油漆。
现在给出每次刷漆的栅栏编号范围和油漆种类,请你求出有多少段栅栏能够长时间不掉色。

输入描述:
第一行有三个正整数n,p,q(1<=n<=100000,1<=p,q<=n),代表刷漆的次数,以及两个参数 p 和 q。
第二到四行给出了一个大小为3*n的矩阵,第 i 列的三个数从上到下记为l,r,t(1<=l,r<=1000000000,1<=t<=2),代表第i次刷漆将编号在 l 到 r 之间的栅栏刷了一遍 t号油漆。

输出描述:
输出一个正整数,代表有多少栅栏可以长时间不掉色。

样例输入:
5 2 2
1 1 2 3 2
3 5 4 5 4
1 2 1 1 2
样例输出:
3

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注