小米2020校招软件开发工程师笔试题二

2023-11-18

1. 计算大于n(n>1)的最小的斐波那契数,以下划线出应填入(B
function f(n:int){
	int[] a = new int[2];
	a[0] = a[1] = 1;
	int i =1 ;
	while(true){
		i = (i + 1)%2
		a[i] = ______
		If(a[i] > n){
			return a[i]
		}
	}
}

A. a[i] + a[i + 1]
B. a[i % 2] + a[(i+1)%2]
C. a[i] + a[i -1]
D. a[i%2] + a[(i-1)%2]

解析:
由于创建的数组只有2的容量,因此每一次while循环中都要进行模2操作,来确定当前值所在数组中的位置,排除A、C。第一次while循环,int i =1 ; i = (i + 1)%2 = 0,此时的 i - 1 出现数组越界,因此排除D

2.复杂度(D
void fun(int n) {
	int i=2;
	while(i<=n)
		i=i*i;
}

A. O(n)
B. O(n2)
C. O(√n)
D. O(log2n)

解析:
时间复杂度,就是执行次数最多的那个语句次数。
这段程序中,执行次数最多的就是 i = i * i;
其执行的次数为:
i * i * i * i *…* i<=n
假设为x次,
则 i x <= n
i x = n 可以推出 x = log ⁡ i n \log_i{n} login
i = 2
所以,时间复杂度为 O( log ⁡ 2 n \log_2{n} log2n)

3. 下面关于树的遍历算法说法错误的是?(A B

A. 先序遍历属于广度优先遍历算法
B. 中序遍历属于广度优先遍历算法
C. 中序遍历属于深度优先遍历算法
D. 后序遍历属于深度优先遍历算法

解析:
层序遍历属于广度优先遍历算法

4. 关于排序算法,以下的哪些叙述是正确的?(C D

A. 快速排序的最坏时间复杂度为O(nlog(n)),它是一个不稳定排序
B. 冒泡排序的时间复杂度为O(n^2),它是一个不稳定排序
C. 归并排序的时间复杂度为O(nlog(n)),它需要O(n)的额外存储空间来完成排序
D. 堆排序的最坏时间复杂度为O(nlog(n)),它不需要额外存储空间来完成排序

解析:
快排最坏时间复杂度为O(N2)
冒泡排序是稳定排序

5. 初始化序列为9,1,10,7,6,5,2,8的一组数采用堆排序,当建大根堆完毕时,堆所对应的二叉树中序遍历序列为:(D

A. 1 8 7 6 10 9 2 5
B. 7 1 8 6 10 5 9 2
C. 7 8 1 6 10 2 5 9
D. 1 7 8 6 10 5 9 2

解析:
在这里插入图片描述

6. 高度为7的完全二叉树的节点总数不可能是:(D

A. 128
B. 192
C. 255
D. 256

解析:
深度是从根节点数到它的叶节点,高度是从叶节点数到它的根节点。

7. 关系数据库的事务具有下列哪些特点(A C D

A. 原子性
B. 并发性
C. 隔离性
D. 持久性

解析:
数据库事务的特点:原子性、一致性、分离性、持久性

8. 下面笛卡尔积的基数计算正确的选项有哪些?(A D

A. D1={张三,李四,王五}, D2={男,女}, D3={北京,西安}, D1xD2xD3的基数 是12
B. D1={月亮,地球}, D2={行星,卫星}, D3={宜居,非宜居}, D1xD2xD3的基数是6
C. D1={张三,李四,王五}, D2={男,女}, D3={北京,西安}, D1xD2xD3的基数是7
D. D1={张三,李四,王五}, D2={男,女}, D3={北京,西安,海南}, D1xD2xD3的基数是18

解析:
基数 = 数据集的元素个数乘积

9. Linux父进程在fork一个子进程时如下哪些行为在系统层不会发生:(D

A. 生成一个新的PID
B. 复制父进程的数据
C. 执行子进程函数
D. 父进程等待子进程终止后退出

解析:
https://blog.csdn.net/nan_lei/article/details/81636473

10. 下列描述中错误的是(A B D

A. 相比交换机,路由器可以提供更大的带宽和数据转发功能
B. 在IP分类地址方案中,159.226.181.1是一个C类地址。
C. IP协议利用TTL控制数据传输的时延。
D. HTTP的长连接可以永久保持。

解析:
A. 交换机可以提供更大的带宽和数据转发功能
B.在这里插入图片描述
D. 长连接具有过期时间,防止资源浪费

11. 已知:print()是一个类的常成员函数,无返回值,下列表示中正确的是(A

A. void print () const;
B. const void print ();
C. void const print ();
D. void print (const);

解析:
类的常成员函数声明格式为:类型说明符 函数名(参数表) const

12. 下面关于C++异常处理描述中,错误的是(A

A. 当异常处理语句找到一个匹配的catch异常处理后,将从对应的try块开始到异常被抛掷处之间构造(且尚未析构)的所有栈对象和堆对象进行析构,这一过程称为解旋。
B. 一个异常安全的函数,在有异常抛出时不应泄露任何资源,且不能使任何对象进入非法状态。
C. 为实现异常安全的编程,应尽量确保析构函数不抛掷异常。
D. 函数声明“void fun() throw();”表示该函数不抛掷任何类型异常;若无异常接口声明,则此函数可以抛掷任何类型的异常。

解析:
https://blog.csdn.net/weixin_42380877/article/details/81272629
https://blog.csdn.net/misayaaaaa/article/details/89928087
栈解旋:当发生异常时,从进入try块后,到异常被抛掷前,这期间在栈上的构造的所有对象都会被自动析构。析构的顺序与构造的顺序相反,这一过程被称为栈的解旋(unwinding)

13. 下面代码段存在致命问题的是(A

A.

#include <stdio.h>
register int i = 0;
printf("i = %d, &i = %p\n", i, &i);

B.

#include <stdio.h>
int * restrict p = 0;
printf("p = %p\n", p);

C.

#include <stdio.h>
volatile int j = 0;
printf("j = %d, &j = %p\n", j, &j)

D.

#include <stdio.h>
int main(void) {
	int * k = malloc(8)
	printf("k = %d, &k = %p\n", *k, k);
	return 0;
}

解析:
无论寄存器变量实际上是不是存放在寄存器中,它的地址都是不能访问的。

14. 关于析构函数和构造函数,下列说法正确的是(A B D

A. 若类中没有定义构造函数和析构函数,则系统会给出隐含的默认构造函数和析构函数
B. 析构函数不能被继承
C. 构造函数允许重载,且可以通过参数个数、参数类型或返回值来区分类的构造函数可以为内联函数、重载函数或带默认形参值的函数
D. 类的构造函数可以为内联函数、重载函数或带默认形参值的函数

解析:
https://www.cnblogs.com/chenwx-jay/p/inline_cpp.html
https://www.cnblogs.com/Kiven5197/p/8862382.html
函数名必须相同,返回值可以相同,也可以不同。参数个数不同;个数相同时类型不同;参数个数类型都相同时参数顺序不同。这三种情况都满足重载要求。也就是说重载函数区分的方法只能从函数的形参里看。

15. 关于Java下列说法正确的是有几个(A
  1. getDeclaredMethod方法能获取一个类的父类方法
  2. 在finally语句块中的return语句不一定可以被执行到
  3. final关键字修饰的方法内局部变量可以被多个线程共享
  4. Java 8中的interface的抽象方法可以用static修饰

A. 1
B. 2
C. 3
D. 4

解析:
A. Method[] getDeclaredMethods() 不止获取一个, 所以A错误
B. 当try语句里面包含System.exit(0)时, finally语句不会执行, 所以B正确
C. fianl 可以保证正在创建中的对象不能被其他线程访问到, 所以C错误
D. java中抽象类的方法可以不能用static来修饰,自由抽象类的属性可以。接口中的方法也不行,接口只是抽象类的一个特殊的。所以D错误
https://blog.csdn.net/xiaoxiaoxuanao/article/details/52573859

16. 以下哪些操作可能会导致JDK8方法区(Metaspace)溢出?(C D

A. 短时间内创建大量对象
B. 调用一个没有退出条件的递归方法
C. 创建大量动态代理(生成大量Class并加载)
D. 加载一个包含大量class文件的Jar包

解析:
方法区存放的是Class类型信息,类名,常量池,修饰符,方法描述等信息。使用了过多的静态变量。常量池也被大量的占用。jvm在“运行期间” 产生了大量的类。导致填满了方法区。比如使用反射,动态代理,字节码生成技术会在运行期间产生大量的类和类型信息。如hibernate,spring第三方框架大量使用了cglib技术产生大量的动态类。大量的jsp在编译生成java类时也有可能产生方法区溢出,GC对方法区的回收非常苛刻的,因为对于一个类的回收条件就很严格。

17. 给定nums=[1,2,3,4,5],以下表达式的结果为[3,4]的是哪个?(B

A. nums[2:-3]
B. nums[2:-2]
C. nums[3:-3]
D. nums[3:-2]

解析:
数组切片 正数从前往后的位置, 负数从后往前的位置

18. 以下说法正确的是?(C

A. Java代码在执行时,JVM会先将Java代码编译为字节码,再讲字节码编译为所在平台的C语言代码
B. C++代码在编译后会变成所在平台的C语言代码
C. 某些情况下,编译器会调整特定代码的执行顺序来提高代码的执行效率
D. 说法都不正确

解析
通过volidate可以防止指令重排

19. 以下哪些是最简DFA的特点(A B

A. 没有两个状态是互相等价
B.没有多余状态
C. 只有一个中间态
D. 终态个数和初态个数相同

20. 关于溢出说法错误的是(D

A. 缓冲区溢出指的是写入超过缓冲区能保存的最大数据量的数据
B. 忘记递归的结束条件会造成堆栈溢出
C. 防止缓冲区溢出的工作通常需要编译器完成
D. 内存溢出指的是因未及时释放导致系统可用内存越来越少

解析:
内存溢出(Out Of Memory,简称OOM)是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了,系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件,而由系统配置、数据流、用户代码等原因而导致的内存溢出错误,即使用户重新执行任务依然无法避免。通常不会导致系统崩溃。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小米2020校招软件开发工程师笔试题二 的相关文章

随机推荐

  • 聊聊技术专家谈阿里云史诗级故障

    序言 什么是技术专家 其实也是很懂 是做的时间足够长呢 还是说经历的厂比较多 还是说纸上谈兵比较牛逼 专家嘛 大家都懂的 只会弹别人 喔 是谈别人 原来不是弹 有本事技术专家谈谈自己呗 风言风语 阿里云出现史诗级故障 处理的时间足够长 然后
  • 过去式加ed的发音_「初中英语语法大全」不规则动词过去式和过去分词巧记方法...

    动词的过去式和过去分词是初中英语教学中的重点 而有些动词的不规则变化是这些重点中的难点 但这些不规则变化也不是毫无规律可循的 现将初中英语中一些常用的不规则动词变化介绍如下 一 原形 过去式和过去分词的词形和读音都相同的单词 结尾字母一般是
  • 计算机视觉项目实战(一)、图像滤波和图像混合 Image Filtering and Hybrid Images

    图像滤波和图像混合 Image Filtering and Hybrid Images 项目要求 项目原理 主要函数 my imfilter 函数解释 输入参数 输出参数 主要实现步骤 gen hybrid image 函数解释 输入参数
  • java中JSONArray 遍历方式

    第一种 java8 遍历JSONArray 拼接字符串 public static void main String args JSONArray jSONArray new JSONArray JSONObject jb new JSON
  • Linux中退出编辑模式的命令

    vi 文件 回车后就进入进入编辑模式 按 o 进行编辑 编辑结束 shift 退出编辑模式 然后输入退出命令 1 保存不退出 w 保存文件但不退出vi 编辑 w 强制保存 不退出vi 编辑 w file 将修改另存到file中 不退出vi
  • CNN可视化技术 -- CAM & Grad-CAM详解及pytorch简洁实现

    文章目录 前言 1 CAM Class Activation Map 2 Grad CAM 3 PyTorch中的hook机制 4 Grad CAM的PyTorch简洁实现 参考资料 前言 CNN中的特征可视化大体可分为两类 细节信息 ZF
  • Redis实战篇一 (短信登录)

    Redis企业实战 黑马点评 项目整体架构 项目部署 后端部署 前端部署 短信登陆 基于Session实现登录 集群的Session共享问题 基于Redis实现共享session登录 解决状态登录刷新的问题 登录拦截器的优化 本期学习路线
  • SVN导出版本增量包

    showlog 选择一个或者多个版本 右键 Compare with previous version 选择一个或者多个文件 右键 Expore selection to 最后导出的文件会有其相应的路径
  • 全志F1C200s芯片处理器参数介绍

    F1C200s是全志的一款高度集成 低功耗的移动应用处理器 可用于多种多媒体音视频设备中 全志F1C200s基于ARM 9架构 集成了DDR 它支持高清视频解码 包括H 264 H 263 MPEG 1 2 4等 它还集成了音频编解码器和I
  • cucumber测试_延长Cucumber测试生命周期

    cucumber测试 总览 本文涉及两件事 我如何使beforeAll和AfterAll生命周期事件在Cucumber中发生 在Cucumber测试运行之前 如何使用TestContainers设置被测系统 不 您正在尝试在博客上进行SEO
  • node.js升级报错digital envelope routines unsupporte最简单解决方案

    背景 本地将nodejs 16升级成nodejs18运行时报错digital envelope routines unsupported 报错 Error error 0308010C digital envelope routines u
  • cytoscape插件下载_cytoscape五步曲之三:安装各种插件

    软件安装我就不多说了 直接去官网下载即可 请务必下载3 x版本 我讲的是 最新版教程 本次讲解如何给cytoscape安装插件 cytoscape本身是一个平台 学者可以在上面开发各种各样功能的插件实现不同的分析需求 类似于R语言这个平台
  • mysql中varbinary什么意思_MySQL中的数据类型binary和varbinary详解

    前言 BINARY和VARBINARY与 CHAR和VARCHAR类型有点类似 不同的是BINARY和VARBINARY存储的是二进制的字符串 而非字符型字符串 也就是说 BINARY和VARBINARY没有字符集的概念 对其排序和比较都是
  • 当我被酱香拿铁刷屏后......

    这两天 朋友圈刮起了酱香风 跨界里的新宠儿酱香拿铁卖爆了 不得不说瑞幸是懂跨界的 短短一天时间 酱香拿铁已售出 542 万杯 销售额超一亿元 谁能想到年轻人的第一杯茅台竟然是瑞幸卖出去的 这可能也是星巴克最无语的一天吧 瑞幸的订单长到可以直
  • python多进程cpu的占用率很低_Python 中的进程池与多进程

    封面图片来源 沙沙野 内容概览 进程池 进程池和多进程的性能测试 进程池的其他机制 进程池的回调函数 进程池 如果有多少个任务 就开启多少个进程 实际上并不划算 由于计算机的 cpu 个数是非常有限的因此开启的进程数量完全和 cpu 个数成
  • LOAM算法详解

    激光SLAM 帧间匹配方法 Point to Plane ICP NDT Feature based Method 回环检测方法 Scan to Scan Scan to Map LOAM创新点 定位和建图的分离 里程计模块 高频低质量的帧
  • 在pycharm中更新pip失败

    尝试了网上的各种方法 各种翻车 删除虚拟环境中的这两个文件夹 包括pip 有只删除pip 21 1 2 dist info这个个文件夹然后重新安装pip之后在更新 我试了没有用 下载 get pip py 文件 转到 https boots
  • drive数据集_英伟达的最强人脸GAN开源了,它吃的高清数据集也开源了

    栗子 假装发自 凹非寺 量子位 出品 公众号 QbitAI 你大概还没忘记 英伟达去年年底推出的GAN 它合成的人脸甚至骗得过肉眼 如今 它终于有了自己的名字 叫StyleGAN 顾名思义 GAN的生成器 是借用风格迁移的思路重新发明的 能
  • Docker 入门笔记

    狂神说Java Docker最新超详细版教程通俗易懂 视频地址 https www bilibili com video BV1og4y1q7M4 share source copy web Docker安装 基本组成 说明 镜像 imag
  • 小米2020校招软件开发工程师笔试题二

    1 计算大于n n gt 1 的最小的斐波那契数 以下划线出应填入 B function f n int int a new int 2 a 0 a 1 1 int i 1 while true i i 1 2 a i If a i gt