admin管理员组

文章数量:1530359

小米笔试真题一

  • 第一题
  • 第二题
  • 第三题
  • 第四题
  • 第五题
  • 第六题
  • 第七题
  • 第八题
  • 第九题
  • 第十题
  • 第十一题
  • 第十二题
  • 第十三题
  • 总结

第一题

下述算法的时间复杂度为()
A、O(log2n)
B、O(n)
C、O(nlog2n)
D、O(n^2)

 intfact(int n) {
       if (n <= 1) return 1; 
       return n * fact(n-1);
 }

答案:B
解析:这个相当于就是遍历了一遍,从N到1的值。 然后每次去乘以上次得到的值。时间复杂度为线性阶,简单来讲就是利用递归实现求N的阶乘,代码执行n次

第二题

在现代Linux 系统和 Windows 系统中,如果希望可以在任意目录下直接通过输入文件名运行一个程序,需要把程序所在路径添加到哪个环境变量里面?( )
A、PWD
B、PATH
C、SHELL
D、EXEC
答案:B
解析:linux脚本文件在任何路径下输入文件名可直接运行,所以将该程序当成脚本处理即可。Linux的命令可以分为内部命令(内置命令)和外部命令:内置命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。而外部命令是系统的软件功能,用户需要时才从硬盘中读入内存。输入并运行外部命令后,shell通过path环境变量找到命令的位置,即去这些目录下面找对应的应用程序,如果找到了,就创建一个进程,在这个进程里执行这条命令,没找到就报错
推荐阅读:Linux必备基础

第三题

小米有品的消费记录分别为900,512,613,700,810,若采用选择排序算法对其进行递增排序,则第三趟排序结果为 ( )
A、900 512 613 700 810
B、512 900 613 700 810
C、512 613 700 900 810
D、512 613 700 810 900
答案:C
解析:递增选择排序:第一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小元素,然后放到已排序的序列的末尾,以此比较直到最后一个数
第一轮: 512 900 613 700 810
第二轮: 512 613 900 700 810
第三轮: 512 613 700 900 810

第四题

关于inline函数的使用,以下哪些选项的描述是正确的()
A、在一个.c文件中定义的inline函数可以在另一个.c文件中使用,且如果小于10行,编译器会把inline 函数展开,发挥其性能优势。
B、inline函数应该简洁,如果语句较多,不适合定义为内联函数
C、inline函数中,一般不建议有循环、if或switch语句,否则,函数定义时即使有inline关键字,编译器也可能会把该函数作为非内联函数处理。
D、inline函数要在函数被调用之前声明。
答案:B C D
解析:C++内联函数概念

第五题

假设有一个栈,元素依次进栈的顺序是A,B,C,D,E。下列不可能的出栈顺序是( )
A、E,D,C,B,A
B、A,B,C,D,E
C、B,C,D,E,A
D、E,A,B,C,D
答案:D
解析:↓代表进栈,↑代表出栈。
A选项:A↓,B↓,C↓,D↓,E↓,E↑, D↑, C↑, B↑, A↑
B选项:A↓, A↑,B↓, B↑,C↓, C↑,D↓, D↑,E↓, E↑
C选项:A↓, B↓, B↑, C↓, C↑,D↓, D↑,E↓, E↑, A↑
D选项:无法实现

第六题

以下关于死锁,描述正确的有? ( )
A、有序分配锁资源可以预防死锁
B、银行家算法是用于检测死锁的
C、剥夺死锁进程的所有资源可以解除死锁
D、其他描述都不对
答案:A C
解析:银行家算法用于预防死锁

第七题

关于主键,描述正确的是()
A、一个表可以有多个主键
B、主键不可以为空
C、建立主键的同时也会建立一个唯一性索引
D、主键可以包含多个属性,如联合主键
答案:B C D
解析:一个表只能有一个主键,不能有多个主键。 主键不能为空,以确保表的数据是唯一的。 联合主键也是一个主键。

第八题

在对信号的进样采样过程中,当采样频率至少大于()时,才可能完整地保留原始信号中的信息。
A、最高频率
B、最高频率的2倍
C、最高频率的4倍
D、永远无法完整保留
答案:B
解析:在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率Fmax(指低通的,带通的或者高通的有其他的转换方式)的2倍时,即:fs.max>=2Fmax,则采样之后的数字信号完整地保留了原始信号中的信息,就是可以不失真的恢复出原始的模拟信号。一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特抽样定理。

第九题

下面对于进程和线程的叙述错误的是()
A、地址空间:进程至少有一个线程,线程共享进程的地址空间,而进程有自己独立的地址空间
B、进程是资源分配和拥有的单位,同一进程内的线程共享进程的资源
C、两者均可并发执行
D、进程是处理器调度的基本单位,但线程不是
答案:D
解析:
进程和线程的区别
地址空间:线程共享本进程的地址空间,而进程之间是独立的地址空间。
资源:线程共享本进程的资源如内存、I/O、cpu等,不利于资源的管理和保护,而进程之间的资源是独立的,能很好的进行资源管理和保护。
健壮性:多进程要比多线程健壮,一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。
执行过程:每个独立的进程有一个程序运行的入口、顺序执行序列和程序入口,执行开销大。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,执行开销小。
可并发性:两者均可并发执行。
切换时的资源消耗:进程切换时,消耗的资源大。涉及到频繁的切换时,使用线程要好于进程。同样如果要求同时进行并且又要共享某些变量的并发操作,只能用线程不能用进程。
基本单位:线程是处理器调度的基本单位,进程是系统进行资源分配和调度的基本单位。

第十题

下面哪种方法可以避免编译器对结构体进行对齐优化?()
A、

struct 
{
  unsigned char head;
  unsigned char sector;
  unsigned char cylinder;
};

B、

struct 
{
  unsigned char head;
  unsigned char sector;
  unsigned char cylinder;
}__attribute__((pack));

C、

struct
{
  unsigned char head;
  unsigned char sector;
  unsigned char cylinder;
}__attribute__((packed));

D、

struct
{
  unsigned char head;
  unsigned char sector;
  unsigned char cylinder;
}__attribute__((aligned(0)));

答案:C D
解析:加上__attribute__((packed)),可以防止编译器对结构进行字节对齐优化。使用__attribute__((aligned(0)))(0为对齐字节数),强制编译器按照0字节对齐。
推荐阅读:结构体的对齐规则及举例

第十一题

下面关于构造函数和析构函数说法正确的是( )
A、delete 只会调用一次析构函数,而delete[]会调用每一个成员的析构函数
B、析构函数的调用次序:先派生类的析构后基类的析构
C、构造函数的调用次序:先基类的构造后派生类的构造
D、析构函数的调用次序:先基类的析构后派生类的析构
答案:A B C
解析:构造函数:先有基类构造,再有派生类构造。派生类可以对基类构造函数进行重载。 析构函数:从派生类先开始析构,再析构基类。因为派生类构造函数是重载的,所以要先析构。 二者的过程是相反的。

第十二题

C 语言中,static关键字说法正确的有:()
A、用static修饰的全局变量可以在运行时修改
B、用static修饰的函数,其内部变量可以传递给其他函数
C、在a.c 文件中,有一个 static 修饰的函数,任何情况下都不可能在 b.c 中被调用
D、其余说法均不对
答案:A B
解析:考察对static关键字理解,使用const关键字可以设置变量不允许修改。同文件内,函数可以通过返回变量值传给其他函数,加了static关键字不影响
推荐阅读:static、register、volatile、const、extern关键字

第十三题

ARM寄存器中$r13代表(1)指针,指向(2);$15代表(3)指针,指向(4)。
正确答案:
1 SP
2 栈顶
3 PC
4 程序接下来要执行的指令地址
解析:
PC:program counter 是通用寄存器,可以用来指向当前运行指令的下一条指令
SP:stack pointer 堆栈指针,也是由通用寄存器进行存取,用于入账和出栈的相关操作
ARM微处理器共有37个32位寄存器,通用寄存器包括R0~R15,可以分为3类:
(1)未分组寄存器R0~R7
(2)分组寄存器R8~R14
(3)程序计数器PC(R15)
R13在ARM指令中常用作堆栈指针SP
R14称为子程序链接寄存器LR(Link Register),当执行子程序调用指令(BL)时,R14可得到R15(程序计数器PC)的备份

总结

牛客网上的小米真题知识点比较杂,暂时没找到哪里可以分类

本文标签: 小米笔试真题