技术渣的证明之路

分享一点今年的前端笔试题吧,看完之后觉得自己果然是技术渣

不定项选择

1.索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,通过以下命令建立MySQL数据表Tbl_User

CREATE TABLE Tbl_User(
                id int AUTO_INCREMENT PRIMARY KEY,
                user_name varchar(30) NOT NULL,
                sex bit(1) NOT NULL DEFAULT b'1',
                city varchar(50) NOT NULL,
                age int NOT NULL
) ENGINE=INNODB DEFAULT CHARSET=utf8;

并建立以下MySQL索引:

ALTER TABLE Tbl_User ADD INDEX idx_user(user_name,city,age),请问下列哪些选项可以使用索引查询

A:SELECT  *  FROM  Tbl_User  WHERE  user_name  like  ' %alice ' ;

B:SELECT  *  FROM  Tbl_User  WHERE  city=' 深圳 '  AND  age = ' 26 ';

2.请问进程间通信有以下哪几种实现方式?

A:套接字       B:消息队列      C: 信号量       D:共享内存      E:有名管道

3.DNS是应用层协议,它使用了哪些传输层协议?

A:TCP   B:UDP   C:DCCP   D:SCTP

4.TCP建立连接需要三次握手,如果考虑优连接效率,你认为以下哪些方法是可行的?

A:服务端从SYN包中额外附带的字段判断是否为一个之前曾连接过的客户端,如果是则无需等待ACK即可开始发送数据

B:客户端收到SYN、ACK 时,等到有数据需要传输时,才连同数据一起把ACK发给服务端

C:在请求头中加入Connection:keen-alive,这样服务器就不会主动关闭连接

D:客户端每次发送请求之后,无需等待服务端回复确认即可继续发送

5.以下程序输出为

var a = 1;
    function funcA() {
        alert(a);
        var a = 2;
        alert(this.a);
    }
    funcA();

6。以下程序有错误,请找出来

const  std:string& find(std::map<int,std::string>& map,int i){
        const auto it = map.find(i);
        if(it == map.end()){
            return "no found.";
        }
        it->second = "found ang change it.";
        return it->second;
    }

A:di2行const auto it 语法错误

B:第4行返回了临时对象的引用

C:第6行修改了const对象

D:第7行返回了临时对象的引用

7.以下关于线性结构,描述正确的是

A:链表的遍历复杂度高于数组的遍历复杂度

B:双端队列(deque)既可以完成FIFO操作,也能实现LIFO操作

C:数组的插入复杂度为O(n),而链表中具有同样复杂度的操作是查找

D:稀疏矩阵、串、二叉树都不是线性结构

8.已知一棵二叉树,其先序序列为EFHIGJ,中序序列为HFIEJG,则二叉树根节点的右孩子为(),该二叉树有几层

9.以下排序算法中事件复杂度为O(nlogn)的有

A:希尔排序

B:快速排序

C:堆排序

D:基数排序

E:桶排序

10.下列关于二叉树描述正确的有

A:二叉树的叶子节点在前序和后序遍历中的相对次序不变

B:所有结点只有左子树的二叉树,其中序和后序遍历的结果相同

C:一棵高度为k的满二叉树的结点总数为(2*k-1)

D:二叉树的度为2

11.N个高度不一样的人排成一列,并按1到N进行编号,其中对于Height [ i ] > Height [ j ] ( i < j ,且i,j 属于[1...N])情况,称之为逆序对,现假定当前的排队情况中有M个这样的逆序对,那如果只允许相邻的人相互交换位置最终消除所有的逆序对,需要多少次交换?

A:N(N-1)/2

B:M(M-1)/2

C:N

D:M

12.以下关于哈希表和哈希算法的表述,正确的是

A:哈希表的查找复杂度为O(1),所以用来排序比较快

B:哈希函数可以用来计算任意长度文件的摘要

C:处理哈希冲突的方法有:开放定址法、链表法等

D:为了保持哈希表的负载因子在一个合理范围内,通常需要对其进行rehash

再加一些总结吧

前端必问面试题

html:h5的新特性,localstorage、sessionstorage、cookie的区别,

css:css3新特性,盒子模型,box-sizing属性,position的各个属性,display的各个属性,flex布局,自适应布局(经常会问两边固定中间自适应,或者左边固定右边自适应),还有就是已知宽高的div和未知宽高的div的水平垂直居中方法(越多越好),浏览器兼容性,浮动问题(怎么使用,怎么解决问题,其实这个现在已经不推荐使用了,但是会问),

js:这个就多了,基本类型以及类型转换,值类型和引用类型,BOM和DOM,==和===的区别,闭包问题(场景,优缺点),ES6,跨域问题,原生js的DOM的各种节点操作(虽然现在已经很少写原生的DOM了,但是一定要知道),数组对象和Math对象的方法(基本可以完成大半的笔试编程题了,而且这两个对象平时用的太多了),还有字符串对象,排序(冒泡和快排一定要掌握吃透),原型和原型链,继承(至少会写一种方法),http协议,还有就是从输入url到页面加载发生了什么,一个完整的url地址包含什么,

数据结构:二叉树(重中之重),队列,链表,

设计模式:观察者模式(用的比较多吧),策略模式什么的,所有的设计模式中总要熟悉几个,可以拿得出手的那种(知道原理,会基本用法)

对了,数据结构和设计模式超级无敌重要,如果想进大厂的话,有一次印象很深的大厂笔试,全是数据结构上的队列、堆、树,没有一道其他的题目,从此数据结构在我心里占据了很重要的地位

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值