【牛客网-公司真题-前端入门篇】——奇安信秋招笔试-前端-卷3

本文介绍了求职者必知的找工作神器——牛客网,提供笔试题库、面试经验分享和实习招聘内推。针对前端开发者,作者分享了奇安信秋招前端笔试题,涵盖作用域、原型链、数据结构等知识点,助你提升面试技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

🦸个人主页: 小卢要刷力扣题
🦸‍♂️ 作者简介: 大三学生,准备找工作的人儿
🕍 推荐一款找工作神器网站: 《牛客网》 |笔试题库|面试经验|实习招聘内推|
⛪ 系列专栏: 《前端面试题》
🐋 希望大家多多支持😘一起进步呀!
📝 如果文章对你有帮助的话,欢迎评论💬点赞👍收藏📂加关注

在这里插入图片描述


前言

秋招正式批已经到来,相信不少小伙伴在为找工作而烦恼,对自己的实力不太自信,感觉好难找工作,不用怕,下面我来给各位推荐一个知名刷题网站《牛客》

一、牛客是做什么的?

牛客网,是一个集笔面试系统、题库、课程教育、社群交流、招聘内推于一体的招聘类网站。牛客是领先的数字化招聘求职解决方案服务商,牛客向企业提供校园招聘技术人才招聘一站式解决方案服务,主要包括招聘渠道服务(发校招岗位收简历) ,招聘SaaS工具服务(笔、面试 、群面系统 ),招聘传播服务(技术竞赛、广告、线上招聘专场、牛客职播。
牛客网题库中包含几万道题目,主要通过第三方购买和 UGC 的方式获得,牛客网先后尝试了直播和录播课,内容覆盖笔试题解析、面试技巧和机器学习等。

在这里插入图片描述

在里面可以与大家交流最近的面试心得,
如果不知道怎么面试的或者面试技巧掌握得不够牢固的小伙伴可以在牛客里面找面经来看,快速提升自己的面试能力,以更快的找到自己心仪的工作

在这里插入图片描述
在这里插入图片描述

奇安信秋招前端笔试题-卷3

在这里插入图片描述

高级调度是作业调度;中级调度是交换调度;低级调度是进程调度
因此选C

在这里插入图片描述

这一题考察的是全局作用域和局部作用域
test方法里的result属于局部作用域,因此并没有改变全局的result
因此选A

在这里插入图片描述

这一题考察的是原型链的知识
不选Tom的原因是, 在ES5语法里, 构造函数的属性和方法必须放到函数的原型上, 实例才继承得到.
不选JK的原因是, 而后面实例里传的实参 ‘JK’ ,在实例里没有变量接收, 等于没有实参使用, 必须在构造函数里this.name=name 接收好实参传递的值才行
不选undefined的原因是, 原型里有对应的变量, 实例就会直接调原型的变量
因此选B

在这里插入图片描述

ScrollHeight滚动内容高度。clientHeight可视内容高度 ScrollTop滚动过的高度
因此选A

在这里插入图片描述

这一题考察的是各种数据结构的特性
栈是一种具有记忆能力的线性表,存取规则是先进后出,判别时遇到一个左括号时就向栈插入左括号,遇到右括号就从栈中删除一个左括号,最后若栈中没有左括号就证明括号成对,所以采用栈最适合判断表达式中括号是否成对出现。
因此选B

在这里插入图片描述

这一题考察的是二叉树的知识点
因为并没有说明二叉树的形式,
因此可能有多种结构,
二叉树的高度最大为n,最小高度为log2n+1。
这一题选B

在这里插入图片描述

这一题考察的是链表的知识
head头结点不算在链表之中,所以链表的第一个节点是head.next指向的节点
因此选A

在这里插入图片描述

这一题考察的是二分查找的过程
第一次mid来到4位置,找到5
第二次mid来到1位置,找到2
第三次mid来到2位置,找到3
最后一次mid来到3位置,找到4
因此选C

在这里插入图片描述

NAT(Network Address Translation),是指网络地址转换
NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
一般大家都认为ipv6的地址池够大,所以地址转换nat可以不用弄了
在没有 IPv6 之前,NAT 是 IP 资源耗尽的主流解决方案。在一个内网中的全部设备通过 NAT 协议共享一个外网的 IPv4 地址,是目前内外网对接的主要方式。IPv6 地址资源充足,可以给全球每个设备一个独立的地址。从这个角度看 IPv6 的确不需要 NAT 协议。
但是目前的情况,是 IPv6 网络还没有完全普及。尽管很多公司已经支持自己的互联网产品可以使用 IPv6 访问,但是公司内部员工使用的内部网络还是 IPv4。如果要连接 IPv6 和 IPv4 网络,仍然需要 NAT 协议(NAT64),这个协议可以让多个 IPv6 的设备共享一个 IPv4 的公网地址。
C选项太绝对了,题目出得有问题

在这里插入图片描述

OSI七层模型:
应用层 :HTTP\SMTP\POP3
表示层:ASCII
会话层: RPC\SOCKETS
传输层: TCP\UDP
网络层: ARP\路由
数据链路层:交换机,网桥,令牌环
物理层:集线器,双绞线,光纤
因此选B

在这里插入图片描述

1.最佳置换算法(OPT)(理想置换算法):从主存中移出永远不再需要的页面;如无这样的页面存在,则选择最长时间不需要访问的页面。于所选择的被淘汰页面将是以后永不使用的,或者是在最长时间内不再被访问的页面,这样可以保证获得最低的缺页率。

最佳置换算法可以用来评价其他算法。假定系统为某进程分配了三个物理块,并考虑有以下页面号引用串:
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
进程运行时,先将7, 0, 1三个页面依次装入内存。进程要访问页面2时,产生缺页中断,根据最佳置换算法,选择第18次访问才需调入的页面7予以淘汰。然后,访问页面0时,因为已在内存中所以不必产生缺页中断。访问页面3时又会根据最佳置换算法将页面1淘汰

2.先进先出置换算法(FIFO):是最简单的页面置换算法。这种算法的基本思想是:当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即先进入主存的页面先淘汰。其理由是:最早调入主存的页面不再被使用的可能性最大。

3.最近最久未使用(LRU)算法:这种算法的基本思想是:利用局部性原理,根据一个作业在执行过程中过去的页面访问历史来推测未来的行为。它认为过去一段时间里不曾被访问过的页面,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰一个页面时,总是选择在最近一段时间内最久不用的页面予以淘汰。再对上面的实例釆用LRU算法进行页面置换,如图3-29所示。进程第一次对页面2访问时,将最近最久未被访问的页面7置换出去。然后访问页面3时,将最近最久未使用的页面1换出。

在这里插入图片描述

冒泡排序和选择排序,时间复杂度O(n^2)
快速排序 在最坏情况下O(n^2)
堆排序,O(nlogn)
因此选A

在这里插入图片描述

这一题考察的是操作系统里线程和进程的概念
做个简单的比喻:进程=火车,线程=车厢
●线程在进程下行进(单纯的车厢无法运行)
●一个进程可以包含多个线程(一辆火车可以有多个车厢)
●不同进程间数据很难共享(一辆火车上的乘客很难换到另外一辆火车,比如站点换乘)
●同一进程下不同线程间数据很易共享(A车厢换到B车厢很容易)
●进程要比线程消耗更多的计算机资源(采用多列火车相比多个车厢更耗资源)
●进程间不会相互影响,一个线程挂掉将导致整个进程挂掉(一列火车不会影响到另外一列火车,但是如果一列火车上中间的一节车厢着火了,将影响到所有车厢)
●进程可以拓展到多机,进程最多适合多核(不同火车可以开在多个轨道上,同一火车的车厢不能在行进的不同的轨道上)
●进程使用的内存地址可以上锁,即一个线程使用某些共享内存时,其他线程必须等它结束,才能使用这一块内存。(比如火车上的洗手间)-“互斥锁”
●进程使用的内存地址可以限定使用量(比如火车上的餐厅,最多只允许多少人进入,如果满了需要在门口等,等有人出来了才能进去)-“信号量”
因此选D

在这里插入图片描述

z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面
对于一个已经定位的盒子(即其 position 属性值不是 static,这里要注意的是 CSS 把元素看作盒子),z-index 属性指定:
●盒子在当前堆叠上下文中的堆叠层级。
●盒子是否创建一个本地堆叠上下文。
假设题目中的父元素都是设置position属性为relative,子元素设置为absolute
这一题答案选C
如果是默认定位,选A

在这里插入图片描述

action是放表单提交的地址的
method是表单数据提交给服务器时, http协议的发送方法
因此选C

在这里插入图片描述

body标签的两个属性background和bgcolor,其中background只能写url表示背景图像,bgcolor写背景颜色
Html5不支持,Html4.01已废弃
因此选D,这一题意义不大

在这里插入图片描述

伪类:
:active,将样式添加到被激活的元素。
:focus,将样式添加到被选中的元素。
:hover,当鼠标悬浮在元素上方是,向元素添加样式。
:link,将特殊的样式添加到未被访问过的链接。
:visited,将特殊的样式添加到被访问的链接。
:first-child,将特殊的样式添加到元素的第一个子元素。
:lang,允许创作者来定义指定的元素中使用的语言。

伪元素:
:first-letter,将特殊的样式添加到文本的首字母。
:first-line,将特殊的样式添加到文本的首行。
:before,在某元素之前插入某些内容。
:after,在某元素之后插入某些内容。

在这里插入图片描述

这一题考察的是map的参数
map中的第二个参数是下标
因此选D

在这里插入图片描述

这一题考察的 == 和 === 运算符
==="叫做严格运算符.
两个复合类型(对象、数组、函数)的数据比较时,不是比较它们的值是否相等,而是比较它们是否指向同一个对象。
undefined 和 null 与自身严格相等。
同一类型的原始类型的值(数值、字符串、布尔值)比较时,值相同就返回true,值不同就返回false。

在这里插入图片描述

Object.defineProperty()方法的参数有三个(对象名, 属性名, 属性值的限制条件)
属性值的限制条件是个对象, {value:属性值, writable:属性值是否能被修改, enumerable:属性值能否被遍历, configurable:属性值能否被删除}
属性值的限制条件是个对象里有两个方法,get和set, get是限制你获取属性时的返回值, set在你修改属性值时自动执行, 如果使用这个两个函数, 不允许使用writable和value这两个属性
因为o.b不可擦写,不可枚举
因此o.b依然是2
答案选B

在这里插入图片描述

这一题考察的是cookie的知识
cookie可以设置时间让cookie过期,从而删除cookie
其他选项都是对的
因此选ACD

在这里插入图片描述

在你的应用程序中,有三种使用 loader 的方式:
●配置(推荐):在 webpack.config.js 文件中指定 loader。
●内联:在每个 import 语句中显式指定 loader。
●CLI:在 shell 命令中指定它们。

配置webpack

 const path = require("path");module.exports = {
   entry: "./src/index.js",
   output: {
     filename: "bundle.js",
     path: path.resolve(__dirname, "./dist"),
   },
   module: {
     rules: [
       {
         test: /.css$/,
         use: ["style-loader", "css-loader"],
       },
       {
         test: /.less$/,
         use: ["style-loader", "css-loader", "less-loader"],
       },
     ],
   },
 };

在这里插入图片描述

HTTPS是在HTTP的基础上增加了SSL层,服务器和客户端传输数据前先采用非对称加密算法生产一个秘钥,再用这个秘钥使用对称加密算法加密要传输的数据,这样做即保证了秘钥的安全,有提高了数据加密效率。
因此选C

在这里插入图片描述

B:隐藏元素
C:透明度设置为0
D:overflow:hidden 是只把超出部分隐藏,其余部分还是占有位置的
因此选BCD

在这里插入图片描述

在HTML中,一般来说,只有6个标签能放在head标签内。
(1)title标签
(2)meta标签
(3)link标签
(4)style标签
(5)script标签
(6)base标签

在这里插入图片描述

Symbol是ES6新出基本数据类型, 所以Symbol()的类型是Symbol, 所以Symbol()instanceof Object 结果应该为 false
Symbol的作用是代替字符串充当对象的属性名, 避免了命名冲突, 避免替换掉对象原有的属性. 因为每一个Symbol都是独一无二的, 所以给对象添加新属性时, 不用管对象有没有同名属性. 所以Symbol(“a”) === Symbol(“a”) 是为 false的.
通过symbol.for()方法定义symbol的值,会在全局注册一个key=symbol的键值对, 所以Symbol.for(“a”) === Symbol.for(“a”) 的结果为 true
因此选AC

在这里插入图片描述

Object.assign()方法用来合并对象的, 会把两个及两个以上对象里的属性和方法都放到一个对象里, 如果后面的对象的属性名相同, 后面的属性值会覆盖前面的属性值。
这道题ar是属性名, 属性值是数组, 因为属性名相同, 所以后一个数组就直接覆盖掉前一个数组

在这里插入图片描述

计算机四大基本特性,并发,共享,虚拟,异步

在这里插入图片描述

●轮询算法:各个服务节点被访问的概率也基本相同,也主要应用在各个服务节点性能差异不大的情况下。
◆加权轮询算法:在轮询算法基础上的改进,可以通过给每个节点设置不同的权重来控制访问的概率,因此主要被用在服务节点性能差异比较大的情况。比如经常会出现一种情况,因为采购时间的不同,新的服务节点的性能往往要高于旧的节点,这个时候可以给新的节点设置更高的权重,让它承担更多的请求,充分发挥新节点的性能优势。
●负载最低优先:由于复杂度和不可控制原因,实际应用还是很少的
●hash类算法:因为它能够保证同一个客户端的请求始终访问同一个服务节点,所以适合服务端节点处理不同客户端请求差异较大的场景。比如服务端缓存里保存着客户端的请求结果,如果同一客户端一直访问一个服务节点,那么就可以一直从缓存中获取数据

在这里插入图片描述

LFU:
最少访问算法,根据访问缓存的历史频率来淘汰数据,核心思想是“如果数据在过去一段时间被访问的次数很少,那么将来被访问的概率也会很低”。
LRU:
最近最久未使用算法。这种算法的基本思想是:利用局部性原理,根据一个作业在执行过程中过去的页面访问历史来推测未来的行为。它认为过去一段时间里不曾被访问过的页面,在最近的将来可能也不会再被访问。所以,这种算法的实质是:当需要淘汰一个页面时,总是选择在最近一段时间内最久不用的页面予以淘汰
FIFO:
是最简单的页面置换算法。这种算法的基本思想是:当需要淘汰一个页面时,总是选择驻留主存时间最长的页面进行淘汰,即先进入主存的页面先淘汰。其理由是:最早调入主存的页面不再被使用的可能性最大。

在这里插入图片描述

使用递归,遇到岛屿,岛屿数量ans++,将相邻的1都变为0

import java.util.*;
 
 
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * @param grid char字符型二维数组
     * @return int整型
     */
    public int numIslands (char[][] grid) {
        // write code here
        int n=grid.length;
        int m=grid[0].length;
        int ans=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(grid[i][j]=='1'){
                    process(grid,i,j);
                    ans++;
                }
            }
        }
        return ans;
    }
    public void process(char[][] grid,int i,int j){
        if(i<0||i>=grid.length||j<0||j>=grid[0].length){
            return;
        }
        if(grid[i][j]=='0'){
            return;
        }
        grid[i][j]='0';
        process(grid,i+1,j);
        process(grid,i-1,j);
        process(grid,i,j+1);
        process(grid,i,j-1);
    }
     
}

在这里插入图片描述

最长递增子序列
动态规划:dp[i]=Math.max(dp[i],dp[0…i-1]+1);

import java.util.*;
 
 
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * @param nums int整型一维数组
     * @return int整型
     */
    public int lengthOfLIS (int[] nums) {
        // write code here
        int n=nums.length;
        if(n==0){
            return 0;
        }
        int[] dp=new int[n];
        int max=1;
        dp[0]=1;
        for(int i=1;i<n;i++){
            dp[i]=1;
            for(int j=0;j<i;j++){
                if(nums[i]>nums[j]){
                    dp[i]=Math.max(dp[i],dp[j]+1);
                }
            }
            max=Math.max(dp[i],max);
        }
        return max;
    }
}
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜的变强之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值