当前位置: 首页 > news >正文

后端开发刷题 | 笔试

Linux 中,下面哪个选项不是 inode 中记录的数据()

A

最后一次读取时间

B

最近修改的时间

C

该文件的实际内容

D

该文件的容量

正确答案:C

解析:储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点”。

Java 中,下面代码会出现编译错误的是()

A

int[] arr = new int[]{1, 2, 3};

B

int[] arr = {1, 2, 3};

C

int arr[] = new int[3];

D

int arr[3] = {1, 2, 3};

正确答案:D

下面 Java 代码的运行结果为()

1

2

3

4

5

6

public static void main(String[] args) {

    List<Integer> list1 = Arrays.asList(123);

    List<Integer> list2 = Arrays.asList(123);

    System.out.println(list1 == list2);

    System.out.println(list1.equals(list2));

}

A

false true

B

true false

C

true true

D

false false

正确答案:A

一个具有23个顶点的连通无向图,最少有()条边。

A

0

B

1

C

22

D

23

正确答案:C

解析:

在一个无向图中,从每一个顶点到每一个其它顶点都存在一条路径,则此无向图是连通的。

有n个顶点的连通图最多有n(n-1)/2 条边,最少有n-1条边

考虑以下递归函数:

1

2

3

4

5

function calculateI(i):

    if i <= 0:

        return 0

    else:

        return 2 * calculateI(i - 1) + 1

对于给定的初始i值为4,计算最终的i值是多少?

A

14

B

15

C

16

D

17

正确答案:B

对数组a=[25, 10, 30, 15, 20, 5]采用快速排序的方法,以第一个元素为基准,从小到大排序,则第一次得到的划分结果是( )

A

[5, 10, 20, 15, 25, 30]

B

[25, 10, 30, 15, 20, 5]

C

[10, 5, 25, 30, 15, 20]

D

[15, 10, 20, 25, 30, 5]

正确答案:A

解析:快速排序的划分过程是通过选择一个基准元素,将数组分为两个部分,小于基准的放在左边,大于基准的放在右边。以第一个元素25为基准,第一次划分后,小于25的元素为[10, 15, 20, 5],大于25的元素为[30],所以划分结果为[5, 10, 20, 15, 25, 30],对应选项A。

假设操作系统中有5个作业,它们的到达时刻分别是0,3,5,7,9,运行时间分别是4,2,3,1,5,系统在t=2时开始作业调度,如果采用时间片轮转调度算法,每个时间片为3个时间单位,那么在t=2时,选中的作业是()。

A

J1

B

J2

C

J3

D

J4

E

J5

正确答案:A

解析:

  1. 第一个作业在t=0时到达,因此在t=2时它已经在系统中等待调度。
  2. 第二个作业在t=3时到达,所以在t=2时它还未到达系统,不能被调度。
  3. 第三个、第四个和第五个作业分别在t=5, 7, 9时到达,因此在t=2时它们也都不能被调度。

由于只有第一个作业在t=2时已经在系统中,所以系统会选择这个作业进行调度。

接下来,我们应用时间片轮转调度算法。每个时间片是3个时间单位,而第一个作业的运行时间是4个时间单位。因此,在第一个时间片(t=2到t=5)内,这个作业会运行3个时间单位,然后在下一个时间片开始时(即t=5时),如果它还未完成,则根据轮转调度算法,它可能会被暂停,让其他已到达的作业(如果有的话)获得执行机会。但在这个特定情况下,直到t=5时,只有第一个作业是已到达并可调度的。

关于HTTP协议,以下描述错误的是()。

A

HTTP协议是一种无状态的协议。

B

HTTP协议使用TCP作为传输协议。

C

HTTP协议的默认端口号是80。

D

HTTP协议可以加密传输数据,提高安全性。

正确答案:D

解析:HTTP协议是一种无状态的协议,因为每个请求都是独立的,服务器不会保存客户端的状态信息,因此选项A描述正确。HTTP协议使用TCP作为传输协议,因此选项B描述正确。HTTP协议的默认端口号是80,因此选项C描述正确。但是HTTP协议本身不提供数据加密功能,因此选项D描述错误。为了提高传输数据的安全性,可以使用HTTPS协议,它是HTTP协议的安全版本,使用SSL/TLS协议加密传输数据。因此,正确答案是D。

编程题:

小欧喝水

小欧拿了𝑛n个杯子排成了一排,其中有𝑘k个杯子装满了水,剩余的𝑛−𝑘n−k个杯子为空的。小欧每回合的操作如下:
1. 随机选择一个杯子。
2. 杯子是空的。回合直接结束。
3. 杯子是满的。如果小欧上一回合喝过了水,则回合结束;否则将喝完这杯水,回合结束。

小欧想知道,她喝完所有水的回合数期望是多少?

输入描述:
   
输出描述:
一个浮点数,代表期望的回合数。

示例1

输入

1 1

输出

1.000000000

说明

只有一杯水,第一回合就可以喝完。

示例2

输入

2 2

输出

4.000000000

说明

第一回合有100%的概率喝一杯水。第二回合无论是否选到有水的杯子都不会喝水。0.5*3+0.25*4+0.125*5+...=4

解题思路:

动态规划(DP)来计算小欧喝完所有水的期望回合数

定义 dp[i] 为小欧还需要喝 i 杯水时,期望的回合数。

  1. 如果 i = 0,即没有水需要喝了,那么期望的回合数是 0。
  2. 如果 i > 0,我们考虑两种情况:
    • 选择一个空杯子的概率是 (n-k)/n,这会导致回合直接结束,不增加任何回合数(但这种情况在计算期望时,会贡献为 1 次尝试,因为选择了一个空杯子后,下一轮会继续)。
    • 选择一个满杯子的概率是 k/n,如果小欧上一回合没有喝水(即这是一个新的回合,或者上回合选择了空杯子),她需要再喝一次水,并且之后还需要喝 i-1 杯水。如果小欧上一回合已经喝过水(这在连续两次选择满杯子时出现),她只需继续计算 i-1 杯水的期望。

我们可以写出如下的状态转移方程:

这里,(1 + dp[i-1])/2 表示小欧上一回合喝过水的期望(即连续两次选到满杯子的概率,并喝掉第二杯),(1 + dp[i])/2 表示小欧上一回合没喝过水的期望(即当前回合选到满杯子并喝掉)。但由于两种情况在连续选到满杯子时是互斥的,并且它们的概率都是 k/n,所以我们将它们加在一起然后除以 2 来平均。

然而,上述方程可以简化为:

进一步整理得:

现在,我们可以从 dp[1] 开始递推到 dp[k]

代码(使用C语言实现):

#include <stdio.h>  double dp[100005]; // 假设 k 不会太大,可以调整数组大小  int main() {  int n, k;  scanf("%d %d", &n, &k);  dp[0] = 0; // 基准情况  for (int i = 1; i <= k; i++) {  dp[i] = (double)n / k + (double)k / n * dp[i - 1];  }  printf("%.6f\n", dp[k]); // 输出结果,保留6位小数  return 0;  
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【React】详解样式控制:从基础到进阶应用的全面指南
  • react中如何mock数据
  • Dav_笔记10:Using SQL Plan Management之4
  • 实战:Redis实现排行榜、点赞和关注功能的基本操作
  • 谷粒商城实战笔记-59-商品服务-API-品牌管理-使用逆向工程的前后端代码
  • mysql中You can’t specify target table for update in FROM clause错误
  • Android SurfaceFlinger——GraphicBuffer内存申请(三十)
  • 基于Pytorch框架的深度学习densenet121神经网络鸟类行为识别分类系统源码
  • 从json到protobuf,接口效率的提升
  • 领略诗词之妙,发觉生活之美。
  • 机器学习课程学习周报五
  • 初学Mybatis之 Lombok 篇
  • 微信小程序安装vant组件库和使用
  • Python3网络爬虫开发实战(6)异步爬虫
  • 速盾:cdn加速能不能防御攻击?
  • ES6指北【2】—— 箭头函数
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • Angular数据绑定机制
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • E-HPC支持多队列管理和自动伸缩
  • ES6核心特性
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Java 网络编程(2):UDP 的使用
  • MySQL用户中的%到底包不包括localhost?
  • rabbitmq延迟消息示例
  • SpriteKit 技巧之添加背景图片
  • V4L2视频输入框架概述
  • Web Storage相关
  • windows下mongoDB的环境配置
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 基于webpack 的 vue 多页架构
  • 入门级的git使用指北
  • 思维导图—你不知道的JavaScript中卷
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 移动端唤起键盘时取消position:fixed定位
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • !$boo在php中什么意思,php前戏
  • # linux 中使用 visudo 命令,怎么保存退出?
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • ###C语言程序设计-----C语言学习(3)#
  • #QT项目实战(天气预报)
  • ${ }的特别功能
  • (7) cmake 编译C++程序(二)
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (LeetCode 49)Anagrams
  • (ros//EnvironmentVariables)ros环境变量
  • (翻译)terry crowley: 写给程序员
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (十五)使用Nexus创建Maven私服
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (一)UDP基本编程步骤
  • (转) ns2/nam与nam实现相关的文件