蔚来嵌入式笔试总结-提前批

百度
紫光
大疆
爱奇艺
科大讯飞
cvte
蔚来
大华
乐鑫
联发科

注:以下为本人笔试中比较难的题目及其知识点

(1)贝叶斯
阅读文章:https://baike.baidu.com/item/%E8%B4%9D%E5%8F%B6%E6%96%AF%E5%85%AC%E5%BC%8F/9683982?fr=aladdin
(2)LRU算法及其缺页次数

(3)含有单个for循环的递归的时间复杂度

(4) 散列表的查找长度(链地址长度)

(5)合并两颗平衡二叉树的最佳时间复杂度

(6)一个进程可以没有父进程或子进程吗
可以。
系统内可以有无父进程的进程,孤儿进程是(那一瞬间)没有父进程的进程。孤儿进程是没有父进程的进程,孤儿进程这个重任就落到了init进程身上,init进程就好像是一个民政局,专门负责处理孤儿进程的善后工作。每当出现一个孤儿进程的时候,内核就把孤 儿进程的父进程设置为init,而init进程会循环地wait()它的已经退出的子进程。
1号进程也是没有父进程的进程,但是他是很多进程的父进程

(7)java一个简单printf的线程不调用join可以两次run吗
Java的线程是不允许启动两次的,第二次调用必然会抛出IllegalThreadStateException,这是一种运行时异常,多次调用start被认为是编程错误。

(8)一个C类网络划分20个子网,最适合的子网掩码
将一个C类网络划分20个子网, 最适合的子网掩码是多少
A: 255.255.255.240
B: 255.255.255.248
C: 255.255.255.252
D: 255.255.255.255
正确答案: B
如题, 有20个子网, 表示子网掩码有20位地址, 而子网掩码是32位地址, 4个地址占一位, 则需要5位.
不是从低位到高位, 而是从高位到低位.
C类的原来子网掩码为255.255.255.0, 所以有20个子网:
255.255.255.xxxxx000,即255.255.255.11111000.

(9)对称加密算法有哪些,非对称加密算法有哪些
加密算法:数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码为“密文”,使其只能在输入相应的密钥之后才能显示出原容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。
对称式加密技术
对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术在当今被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56bits。
非对称式加密技术
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难不把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。

对称式加密算法:基于“对称密钥”的加密算法主要有DES、TripleDES、RC2、RC4、RC5和Blowfish等。
非对称加密算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。
使用最广泛的是RSA算法,Elgamal是另一种常用的非对称加密算法。

(10)网络数据数据安全及加密作用
使用密码学可以达到以下目的:
保密性:防止用户的标识或数据被读取。
数据完整性:防止数据被更改。
身份验证:确保数据发自特定的一方。

(11)矩阵行列式是左乘还是右乘

(12)排序复杂度

(13)两个linux进程同时打开一个文件,一个进程删除文件,另一个进程是否立即读写失败
1.两个进程中分别产生生成两个独立的fd
2.两个进程可以任意对文件进行读写操作,操作系统并不保证写的原子性
3.进程可以通过系统调用对文件加锁,从而实现对文件内容的保护
4.任何一个进程删除该文件时,另外一个进程不会立即出现读写失败
5.两个进程可以分别读取文件的不同部分而不会相互影响
6.一个进程对文件长度和内容的修改另外一个进程可以立即感知

(14)二分查找算法

/* 
 * 非递归二分查找算法 
 * 参数:整型数组,需要查找的数. 
 */  
int SearchBin(int *srcArray,int nSize,int key)
{  
         
    if ( srcArray== NULL || nSize == 0 )
        return -1;
    int low = 0;
    int high = nSize - 1;
    int mid = 0;
    while ( low <= high )
    {
        mid = (low + high )/2;
        if ( array[mid] < key)
            low = mid + 1;
        else if ( array[mid] > key )   
            high = mid - 1;
        else
            return mid;
    }
    return -1;    
}  
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值