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

2023-05-16

1. 下列关于设计模式说法错误的是(B

A. 装饰器模式在实现过程中一般不会更改被封装对象的接口定义
B. 适配器模式以不改变被适配对象的接口定义为目的对其进行改造
C. 用饿汉方式实现的单例模式是不能够被继承的
D. 简单工厂模式可以实现按客户端条件动态创建对象的效果

解析:
适配器模式将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
单例模式的构造函数为private,所以不能被继承

2. 从尚未排序的N名学生的考试分数中挑出排名第K的分数,平均时间复杂度最优可以达到多少?(C

A. O(N*K)
B. O(N*logN)
C. O(N)
D. O(N^2)

解析:
快排思想

3. 在下列序列中,若以最后一个数字为基准进行快速排序(升序),第一趟数字被移动次数最多的是?(B

A. 102, 106, 98, 52, 40, 45, 120, 110
B. 102, 106, 110, 120, 52, 45, 40, 98
C. 110, 106, 102, 45, 40, 120, 98, 52
D. 52, 40, 45, 102, 110, 106, 98, 120

解析:
A 1次 第一趟之后为102, 106, 98, 52, 40, 45, 110, 120
B 7次 第一趟之后为40,45,52,98,120,110,106,102
C 5次 第一趟之后为40, 45, 52, 102, 106, 120, 98, 110
D 0次 第一趟之后为52, 40, 45, 102, 110, 106, 98, 120

4. 1,2,3,4,5 五个数字,能组成多少种不同的二叉搜索树的结构?(D

A. 32
B. 36
C. 40
D. 42

解析:
满足卡特兰数:h(n)=C(2n,n)/(n+1) (n=0,1,2,…)
h(n) = C(10, 5) / 6 = 252 / 6 = 42

5. 下面关于有向无环图说法错误的是?(D

A. 有向无环图至少有一个顶点入度为0
B. 有向无环图至少有一个顶点出度为0
C. 有向无环图至少有一个拓扑排序
D. 有向无环图可以转换成树

解析:
因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。

6. 以下说法正确的有(A B D

A. 1个堆栈可以通过1个数组或者1个单向链表来实现,出栈和入栈的均摊复杂度均为O(1)
B. 1个先进先出队列可以通过1个数组或者1个单向链表来实现,出队和入队的均摊复杂度均为O(1)
C. 1个堆栈可以通过2个先进先出队列来实现, 出栈和入栈的均摊复杂度均为O(1)
D. 1个先进先出队列可以通过2个堆栈来实现,出队和入队的均摊复杂度均为O(1)

解析:
堆栈和队列都是在头尾元素上进行操作,所以利用数组的出入复杂度均为O(1)
两个队列实现栈的均摊时间复杂度不是O(1)

7. UNIQUE惟一索引的作用是(C

A. 保证惟一索引不能被删除
B. 保证各行在该索引上的值不得为NULL
C. 保证各行在该索引上的值都不得重复
D. 保证参加惟一索引的各列,不得再参加其他的索引

解析:
唯一索引和普通索引的区别是什么,什么时候需要建唯一?
链接:https://www.cnblogs.com/xinruyi/p/11335482.html

8. 数据库表a主键为id,共10行,表b存在关联列aid,共5行,以下查询可能的结果为(B
select count(1) from a left join b on a.id = b.aid

A. 5
B. 10
C. 15
D. 50

解析:
左连接不论是否为null 都保存左表的结构, 即保存a表的结构, 10行

9. 在一个真实的计算机系统中,资源会损坏或被替换,新的进程会进入和离开系统,新的资源会被购买和添加到系统中。如果用银行家算法控制死锁,下面哪些变化是安全的(不会导致可能的死锁)?(A D

A. 增加可用资源(新的资源被添加到系统)
B. 减少可用资源(资源被从系统中永久性地移出)
C. 增加一个进程的Max(进程需要更多的资源,超过所允许给予的资源)
D. 减少一个进程的Max(进程不再需要那么多资源)

解析:
导致死锁的原因为系统可以使用的资源不满足进程所需资源。所以可以增加可用资源或者减少进程所需资源

10. 在一个真实的计算机系统中,可用的资源和进程命令对资源的要求都不会持续很久是一致的长期(几个月)。资源会损坏或被替换,新的进程会进入和离开系统,新的资源会被购买和添加到系统中。如果用银行家算法控制死锁,下面哪 些变化是安全的(不会导致可能的死锁)?(A D

A. 增加可用资源(新的资源被添加到系统)
B. 减少可用资源(资源被从系统中永久性地移出)
C. 增加一个进程的Max(进程需要更多的资源,超过所允许给予的资源)
D. 减少一个进程的Max(进程不再需要那么多资源)

解析:
同上,但是牛客网的两题答案都是BC,不太理解

11. 在C++中,声明 int const** const * const x 表示x是什么类型?(C

A. 一个const数组,每个成员都是一个const二维int类型const数组
B. 一个const指针,指向一个const双层指针,指向一个int
C. 一个const指针,指向一个const指针,指向一个普通指针,指向一个const int
D. 一个const指针,指向一个const指针,指向一个const int,它存着一个指针

解析:
int const * (* const)(* const) x

12. 以下问题错误的是(B

A. 类不是在类定义里定义数据成员时初始化数据成员,而是通过构造函数控制初始化。
B. extern double pi=3.14 此声明没有分配及初始化存储空间
C. 变量或函数的定义尽量不要放在头文件中。因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义
D. const对象可以定义在头文件中

解析:
若extern double pi = 3.14,这就变成定义了。extern可以声明且定义,但只能是在函数体之外,即变量是全局变量。

13. 下面关于虚函数的描述中,正确的是(A B C

A. 虚函数必须是非静态成员函数。
B. 对于虚函数,virtual关键字只能出现在类定义中的函数原型声明中,不能出现在类体外的函数定义中.
C. 根据类型兼容规则,基类指针(或引用)可以指向其派生类的实例,但在非虚函数的情况下,通过基类指针(或引用)却只能调用基类的函数成员,无法调用其所指实例(派生类)的函数成员。
D. 对于多态类,应该将构造函数和析构函数都声明为虚函数。

解析:
参考链接:https://blog.csdn.net/u013102349/article/details/79278828

14. 下面STL容器中,哪些是有序的(B D

A. vector
B. map
C. stack
D. set

解析:
参考链接:https://blog.csdn.net/jason_cuijiahui/article/details/79023228

15. 下列程序有错误的是?(A B C

A.

abstract class Something {
	private abstract String doSomething ();
}

B.

public class Something {
	void doSomething () {
		private String s = "";
		int l = s.length();
	}
}

C.

abstract class Name {
	private String name;
	public abstract boolean isSomething(String name){};
}

D.

public class Something {
	public static void main(String[] args) {
		Thing t = new Thing();
		new Something().addOne(t);
	}
	public void addOne(final Thing t) {
		t.i++;
	}
}

class Thing {
	public int i;
}

解析:
抽象方法不能用private修饰, 抽象方法不能有方法体,private属性声明要在方法体的外面

16. Java虚拟机里提供了哪些调用字节指令?(A B C

A.invokestatic
B. invokespecial
C. invokevirtual
D. invokemethod

解析:
参考链接:https://blog.csdn.net/boling_cavalry/article/details/76384425

17. 在Python 3中,对于字符编码叙述正确的是?(B

A. str为unicode字符(内部编码utf-16),byte编码为utf-8
B. str为unicode字符(内部编码utf-16),byte无编码
C. str编码为utf-16,byte为utf-8
D. str编码为utf-8,byte无编码

18. 编译程序目标代码生成阶段主要任务是(D

A. 把高级语言翻译成汇编语言
B. 把高级语言翻译成机器语言
C. 把汇编语言翻译成机器语言
D. 把中间代码变换成依赖具体机器的目标代码

19. 在X86平台上,C语言函数调用时,通过以下哪种方式传递参数?(C

A. 寄存器
B. 内存
C. 堆栈
D. 变量地址

解析:
调用函数时,实际上是从某一函数跳转到了被调用函数,这个时候,程序当前运行时所用的参数如果不进行保存的话,那么当执行完被调用函数跳转回原先的函数时,缺少必要的参数,程序就无法正常执行。因此,在调用函数之前,需要先保存现场信息,即先把参数压栈,然后再返回地址
参考链接:https://blog.csdn.net/qq_39642794/article/details/82789526

20. 编译程序不仅包含词法分析、语法分析、中间代码生成、目标代码生成,还包括(A B D

A. 代码优化
B. 表格管理
C. 源代码优化
D. 出错处理

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

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

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

  • 2020-10-22

    用C 实现MVC xff08 Model View Control xff09 模式介绍 益处 在我们的开发项目中使用MVC xff08 Model View Control xff09 模式的益处是 xff0c 可以完全降低业务层和应用表
  • 2020-08-09

    广西 河池学院 广西高校重点实验室培训基地 系统控制与信息处理重点实验室 本篇博客来自河池学院 智控无人机小组 写作时间 2020年8月9日 周报 一 了解了msOS系统的系统框架和页面显示 msOS是 1 基于 C 语言 xff0c 没有
  • 2020.9.14中国地质大学新生入学教育

    今天我听到的最关键的一点就是专业型硕士可以两年毕业 xff0c 而且没有学术要求 学硕正常毕业也没有学术要求 xff0c 学硕如果两年毕业就有学术要求 还有我这种定向的是享受不了校招的 xff0c 你自己注意了 下面是当时写的一些笔记 xf
  • 中国地质大学北京信息工程学院2020招生专业目录和导师

    中国地质大学北京信息工程学院2020招生专业目录和导师 304信息工程学院 081000信息与通信工程 01信号与信息处理 全日制 4 101思想政治理论 201英语一或202俄语 301数学一 860数字电子技术 1 模拟电子技术 2 C
  • 2020年acwifi拆过的无线路由器配置汇总

    转载自 xff1a https www smyz net luyouqi 10990 html 2020年acwifi拆过的无线路由器配置汇总 2020 12 31 22 05 整合编辑 xff1a 64 数码一族 acwifi只是一个人
  • 2020-08-27python二(转载)

    usr bin python3 python二 print 39 Python二 39 39 39 39 11 多个变量赋值 Python允许你同时为多个变量赋值 例如 xff1a 同时为多个变量赋值 xff0c 这些变量的值为1 a 61
  • 2020-11-05

    私有云的优缺点是什么 xff1f 与公有云的区别 毋庸置疑 xff0c 企业选择私有云的重要原因之一是数据安全性 与传统的 IT 架构相比 xff0c 云算力的高可用性 xff0c 让 IT 解决方案更经济高效地运行 优点 xff1a 可定
  • 北航2系921 2021考研历年真题及参考答案(2020-2004)

    需要自取 百度网盘 提取码 xff1a iwbg 关于2020北航921试题 相信大家都听说了 xff0c 2020年的921试题整体难度较2019年小 2019考完后 xff0c 群里面怨声载道 xff0c 信号10年没考电路题了怎么就今
  • 12-IDEA配置JDK版本(2020.2.3版本)

    1 配置当前项目的JDK版本 File gt Project Structure gt Project SDKs xff0c 也可以直接点击右上角的图标 2 配置之后创建的新项目JDK版本 类似于全局配置 File gt New Proje
  • 2020-11-12

    一 什么是PID PID控制器是工业过程控制中广泛采用的一种控制算法 xff0c 其特点是结构简单灵活 技术成熟 适应性强 P I D分别为比例 xff08 Proportion xff09 积分 xff08 Integral xff09
  • 【亲测可用】kali linux 2020.1 设置为中文方法

    目录 0x00 提示0x01 更换更新源0x02 默认语言选择0x03 安装中文字体0x04 重启 xff0c 完成0x05 参考文章 kali 2020 1可用 进入我们的正题 xff0c 修改为中文的步骤 0x00 提示 由于kali
  • ubuntu中用anaconda下载库很慢的解决方法2020.3.5

    1 安装anaconda xff0c 去清华源下载 安装添加链接描述 2 由于第三方库在国外 xff0c 在没有梯子的情况下无法用conda install numpy来安装numpy xff0c 所以第二步就是切换清华源添加链接描述 3
  • 2020-10-30

    Ubuntu nvidia显卡驱动安装 手动安装 xff1a 先在官网下载本机显卡对应支持的驱动 xff0c 一般选择run文件 xff1b 如果开启了nouveau驱动 xff0c 需要禁用 xff1b 进入tyy3命令行窗口 xff0c
  • 2020/05/25 Prometheus监控k8s企业级应用 1

    2 2 课程介绍及课程大纲 普罗米修斯的配置很难 2 3 Prometheus监控软件概述 prometheus是一名google的前员工写的 xff0c 也是go语言写的 xff0c K8S是第一个托管的项目 xff0c promethe
  • 【2020-8-8】ROS软件包自动安装依赖,安装ros_pcl

    最近要把T265部署到无人机平台 xff0c 编译一个软件的时候一直报ros pcl的错误 原因是树莓派安装的ros并不是完整版 xff0c 因为也不需要再树莓派上部署gazebo之类的仿真平台 网上关于安装ros pcl的文章基本上都已经
  • 【2020-8-9】APM,PX4,GAZEBO,MAVLINK,MAVROS,ROS之间的关系以及科研设备选型

    0 概述 无人机自主飞行平台可以分为四个部分 xff1a 动力平台 xff0c 飞行控制器 xff0c 机载电脑和模拟平台 动力平台 xff1a 负责执行飞行任务 xff0c 包括螺旋桨 电机 机架等 xff0c 用于科研的一般都是F380
  • 2020/2/21 Linux Socket编程 高级篇——广播

    广播 xff1a 实现一对多的通信 SO BROADCAST选项 它控制了UDP套接字是否能发广播数据报 xff0c 选项类型是int xff0c 非零表示 是 只有UDP能用 xff0c TCP不能 如果是一个广播地址 xff0c 但SO
  • 人工测试之代码检查、走查与评审

    人工测试方法 代码检查 代码走查 桌面检查 同行评审 代码检查与代码走查的联系 1 要求人们组成一个小组来完阅读或直观检查特定的程序 找出错误 但不必改正错误 2 都是对过去桌面检查过程 在提交测试前 由程序员阅读自己程序的过程 的改进 3
  • 2020,会成为区块链在中国的元年吗?

    2020 会成为区块链在中国的元年吗 文章目录 2020 会成为区块链在中国的元年吗 区块链扫盲 区块链释义 区块链历史 区块链的特点 什么是中心化 什么是去中心化 程序员眼中的区块链 区块链的软分叉与硬分叉 以太坊与以太经典 金本位与银本
  • 2020年数学建模国赛C题题目和解题思路

    2020年数学建模国赛C题题目 在实际中 由于中小微企业规模相对较小 也缺少抵押资产 因此银行通常是依据信贷政策 企业的交易票据信息和上下游企业的影响力 向实力强 供求关系稳定的企业提供贷款 并可以对信誉高 信贷风险小的企业给予利率优惠 银

随机推荐

  • EraseNet:端到端的真实场景文本擦除方法

    六 相关资源 EraseNet论文链接 xff1a https ieeexplore ieee org document 9180003 EraseNet代码 xff1a https github com lcy0604 EraseNet
  • 《程序人生》

    对乔布斯和马斯克访谈的反思 xff1a 1 这个世界不在乎你的自尊 xff0c 只在乎你自我感觉良好的同时有所成就 说明大多数人的观点是 乌合之众 xff0c 必须有从想到去做到的能力 xff0c 面子是无能者维护尊严的盾牌 2 年轻时候一
  • MicroStrategy 简介 【Business Intelligent】

    下载地址 xff1a https www microstrategy com us resources microstrategy for students students Capabilities that power the Inte
  • DiffusionDet:Diffusion Model for Object Detection

    Diffusion Model for Object Detection 一种用于目标检测的扩散模型 Motivation 1 如何使用一种更简单的方法代替可查询的object queries 2 Bounding box的生成方式过去是三
  • ChatGPT:通用人工智能设计范式方法

    通用人工智能设计范式未来发展方向 https openai com https riscv org 一 ChatGPT xff08 AIGC xff09 开启通用人工智能AGI新纪元时代 二 通用人工智能设计范式现状和方法 目前随着Chat
  • 格拉布斯法—异常值判断(异常值)

    数值数据类型 xff1a 方法一 xff1a Z Score 方法二 xff1a DBSCAN 方法三 xff1a Lsolation Forest 方法四 xff1a Mahalanobis距离 xff08 主要解决多元离散群点问题 xf
  • 神经网络的过去、现状、未来!

    从BP CNN RNN DCN GAN GNN图网络 GCN CAP三维卷积胶囊模型及融合 人工神经网络是计算智能和机器学习研究的最活跃的分支之一 xff0c 它是从人脑的生理结构出发探讨人类智能活动的机理 从 1943年 McCulloc
  • 目标检测发展方向(1)

    从目标检测发展到目标追踪 目标检测 xff08 监督学习 xff09 FasterRCNN CascadeRCNN YOLOX Complex YOLO SSD RetinaNet xff0c FOCS ATSS CornerNet Cen
  • 车道线检测与分割

    https github com amusi awesome lane detection VPGNet论文 xff1a https arxiv org abs 1710 06288 caffe 版code xff1a https gith
  • Android实战开发--底部导航(Fragment)篇

    安卓实战开发之底部导航 提示 xff1a 本篇文中对基本的操作不做细节讲解 xff0c 后续会通过链接方式跳转到对应的知识点 文章目录 安卓实战开发之底部导航前言一 准备1 矢量图标准备2 文件准备 二 使用步骤1 在fragment中动态
  • android N进程启动流程(一)(捕获输入事件、准备创建activity、焦点切换)

    android N进程启动流程 一 捕获输入事件 准备创建activity 焦点切换 1 背景 本文主要针对event log中各处节点进行进程启动流程分析 span class token comment 此处使用的是adb指令input
  • 目标检测类前言知识

    1 PASCAL数据集 有关目标检测 xff0c 目标分类 xff0c 目标分割 xff0c 动作识别 1 xff09 下载的数据集文件介绍 标注信息 xff1a xml文件实例 xff1a lt segmented gt 1 被分割 0
  • 最新网狐荣耀版整理、编译和搭建教程

    一 安装visual studio 2015 xff0c 在百度就能搜索到下载地址 xff0c 在教程最后 xff0c 会给大家包括所有工具在内的集成包 因为visual studio 2015体积比较大 xff0c 而且安装过程很漫长 x
  • windows efi分区修复

    在windows下一阵瞎搞 xff0c 把efi分区的efi标识搞没了 xff0c 导致deepin无法识别efi分区 xff0c update grub2命令失败 其实windows也找不到efi标识了 xff0c 但没有影响启动 因为W
  • XML 根级别上的数据无效。 行 1,位置 1

    上午 xff1a 将XML数据保持到数据中 xff0c 从数据库提取XML 顺利通过 下午 xff1a 一键还原电脑 xff0c 重新打开VS2010运行程序 xff0c 从数据库提取XML报错 根级别上的数据无效 行 1 xff0c 位置
  • 接触客户、接触业务、来谈我的感触

    很久没有做工作总结 xff0c 今天记录下我今年接触客户的一些感触 以前是一个刚入门的开发新人 xff0c 刚进公司感觉公司的开发能力不行 xff0c 没有一套成熟的框架 xff0c 没有美工 xff0c 已经开发出的软件界面很丑 自己开发
  • 编写一个函数,判断用户传入的对象(字符串,列表,元组)长度是否大于10

    span class token keyword def span span class token function my object span span class token punctuation span n span clas
  • 双盘(一个固态硬盘+机械硬盘(efi格式)+2080TI) 安装: ubuntu16.04+显卡驱动+cuda10.2+pytorch

    详细步骤 xff1a 从零开始配一个深度学习服务器 xff1a 固态 43 机械双硬盘ubuntu系统的安装 分区 配置超详细教程 it610 com 一 系统安装 Ubuntu6 04安装 UEFI 43 GPT双硬盘安装Win10 43
  • Idea java.lang.ClassNotFoundException: org.slf4j.LoggerFactory 报错

    系统想用slf4j记录日志 xff0c 可是程序编译的时候报错 xff1a java lang ClassNotFoundException org slf4j LoggerFactory 检查了POM依赖和Jar包 xff0c 都没有问题
  • 小米2020校招软件开发工程师笔试题一

    1 下列关于设计模式说法错误的是 xff08 B xff09 A 装饰器模式在实现过程中一般不会更改被封装对象的接口定义 B 适配器模式以不改变被适配对象的接口定义为目的对其进行改造 C 用饿汉方式实现的单例模式是不能够被继承的 D 简单工