笔、面试经验

来源:互联网 发布:电脑网络格斗游戏 编辑:程序博客网 时间:2024/05/17 22:52

    • 笔面试经验
      • 星环科技
        • 选择题
          • 路由器工作在网络层交换机工作在数据链路层
          • 在段页式管理系统中要对内存中指令或数据进行一次存取的话至少需要访问三次以上的内存
          • 若用一个大小为6的数组来实现循环队列且当前rear和front的值分别0和3当从队列中删除一个元素再加入两个元素后rear和front的值分别为
          • 关系数据库事务的特性
          • 事务的所有操作在数据库中要么全部正确反映出来要么全部不反映这是事务的 特性
        • 编程题
          • 两个栈得到一个队列
          • 给一个只包含小括号的字符串删除任意数量的字符得到的结果中匹配的个数
      • 万得资讯
        • 选择题
          • 计算机中CPU对其访问速度最快的是
          • 软件生命周期的正确顺序
          • 一个进程被唤醒意味着
        • 编程题
          • 写一算法把一字符串里所有的指定字符移到字符串最前面要求空间优先尽量节约存储空间
        • 算法题
          • 写出至少四种计算向量距离的算法并说明其适应场景
          • 写出梯度下降算法步骤和knn算法步骤

笔、面试经验

星环科技

选择题

路由器工作在网络层,交换机工作在数据链路层

之所以说路由器工作在第三层而区别于工作在第二层的交换机,是因为交换机只能读取并修改帧的结构而无法理解第三层IP包的报文;路由器则不但具有第一、第二层的功能,也就是说它不但能读取并修改帧的内容,还可以修改IP包的报头并依据目的地址来进行路由,这是它区别于二层交换机的地方,所以才说路由器工作在第三层。
OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

在段页式管理系统中,要对内存中指令或数据进行一次存取的话,至少需要访问三次以上的内存

在分页和分段系统中,首先需要访问页表或段表,然后才能访问实际数据,因此需要至少访问内存2次。在段页式存储管理中,首先要访问段表,最后访问相关段的页表,最后才能访问实际数据,因此一共需访问内存至少3次。如果采用的是多级页表,则访问次数还将增加。如果使用快表,且在快表中命中,则只需要访问内存1次。
1. 第一次是由段表地址寄存器得段表始址后访问段表,由此取出对应段的页表在内存中的地址。
2. 第二次则是访问页表得到所要访问的物理地址。
3. 第三次才能访问真正需要访问的物理单元。

若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别0和3。当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为()

删除一个元素后,队首指针要加1,front=(front+1)%6,结果为4,每加入一个元素队尾指针加一,即real=(real+1)%6,加入两个元素后变为2,所以选A. 2和4

关系数据库事务的特性

数据库事务必须具备ACID特性,ACID是Atomic(原子性)、Consistency(一致性)、Isolation(隔离性或独立性)和Durability(持久性)的英文缩写。
1. 原子性: 指整个数据库事务是不可分割的工作单位。只有使据库中所有的操作执行成功,才算整个事务成功;事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该退回到执行事务前的状态。
2. 一致性: 指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
3. 隔离性 (或独立性):指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据。
4. 持久性: 指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。
事务的(ACID)特性是由关系数据库管理系统(RDBMS,数据库系统)来实现的。数据库管理系统采用日志来保证事务的原子性、一致性和持久性。日志记录了事务对数据库所做的更新,如果某个事务在执行过程中发生错误,就可以根据日志,撤销事务对数据库已做的更新,使数据库退回到执行事务前的初始状态。
数据库管理系统采用锁机制来实现事务的隔离性。当多个事务同时更新数据库中相同的数据时,只允许持有锁的事务能更新该数据,其他事务必须等待,直到前一个事务释放了锁,其他事务才有机会更新该数据。
参考:http://blog.csdn.net/qq_26437925/article/details/50739813

“事务的所有操作在数据库中要么全部正确反映出来要么全部不反映”这是事务的 ()特性。

事务有四个特性:原子性,一致性,隔离性,持久性。事务的原子性是指事物的所有操作在数据库中要么全部反映出来要么全部不反映,即不可再分。

编程题

两个栈得到一个队列

剑指offer第7题

class Solution{public:    void push(int node) {        stack1.push(node);    }    int pop() {        if(stack2.empty()){            while(!stack1.empty()){                int value = stack1.top();                stack1.pop();                stack2.push(value);            }        }        int value = stack2.top();        stack2.pop();        return value;    }private:    stack<int> stack1;    stack<int> stack2;};
给一个只包含小括号的字符串,删除任意数量的字符,得到的结果中匹配的个数

例如:”()()”
匹配的个数为4:其中X表示删除某个字符
- ()()
- ()XX
- XX()
- (XX)

万得资讯

选择题

计算机中CPU对其访问速度最快的是()

A.内存 B.Cache C.通用寄存器 D.硬盘
选C,通用寄存器。通用寄存器 > Cache > 内存 > 硬盘。

软件生命周期的正确顺序()

A. 软件设计、系统与软件需求定义、制定计划、编码和单元测试、集成和系统测试、运行和维护
B. 系统与软件需求定义、软件设计、制定计划、编码和单元测试、集成和系统测试、运行和维护
C. 制定计划、软件设计、系统与软件需求定义、编码和单元测试、集成和系统测试、运行和维护
D. 制定计划、系统与软件需求定义、软件设计、编码和单元测试、集成和系统测试、运行和维护
软件生存周期的主要阶段是针对软件开发测试及运行的实现先后顺序产生的。选D。

一个进程被唤醒意味着()

A. 该进程的优先级变为最大;
B. 该进程获得了CPU;
C. 该进程从阻塞状态变为就绪状态;
D. 该进程排在了就绪队列的队首;
选C,进程的睡眠状态也就是阻塞状态,进程被唤醒之后就可以等待自己时间片的到来,当时间片到了之后就变成了执行状态才能分到cpu。
进程被唤醒是进入就绪队列。是否插入到就绪队列的什么地方,取决于就绪的管理方法和进程调度的算法。如果进程调度是最高优先数优先,该进程按优先数插入该队列中;如果该队列是按到达的先后次序排列的,则按到达的先后插入。
参考:进程的三种基本状态

编程题

写一算法把一字符串里所有的指定字符移到字符串最前面,要求空间优先,尽量节约存储空间。

写一算法把一字符串里所有的指定字母移到字符串最前面。
1)空间优先,尽量节约存储空间(我当时的设计是不要消耗新的存储空间);
2)速度优先,尽量提高运算速度(我当时的设计是O(n),n是字符串长度);
比较两个算法,说出优点与不足然后综合起来写一个空间占用比较少又比较有速度的算法(我当时的设计好像是O(n),要消耗出现指定字符个数的空间大小)。
10分钟之后讨论采用的数据结构,然后该用stl写,最后分析用stl的优点,然后分析是不是还有优化的余地,然后我他就让我走了。
参考:http://bbs.csdn.net/topics/70137990

算法题

写出至少四种计算向量距离的算法,并说明其适应场景。

简单说来,各种“距离”的应用场景简单概括为:
- 空间:欧氏距离
- 路径:曼哈顿距离
- 国际象棋国王:切比雪夫距离
- 以上三种的统一形式:闵可夫斯基距离Alt text
- 加权:标准化欧氏距离
- 排除量纲和依存:马氏距离
- 向量差距:夹角余弦
- 编码差别:汉明距离
- 集合近似度:杰卡德类似系数与距离
- 相关:相关系数与相关距离
参考:
几种常见距离算法小结
各种距离算法汇总
曼哈顿距离,欧式距离,明式距离,切比雪夫距离区别

写出梯度下降算法步骤和knn算法步骤
原创粉丝点击