蘇州市政府網(wǎng)站建設(shè)評估免費外鏈發(fā)布平臺
題目來源:??途W(wǎng)公司真題_免費模擬題庫_企業(yè)面試|筆試真題 (nowcoder.com)
若有錯誤請指正!
單選題
1
某主機的 IP 地址為 212.212.77.55,子網(wǎng)掩碼為 255.255.252.0。若該主機向其所在子網(wǎng)發(fā)送廣播分組,則目的地址可以是?
A 212.212.76.255
B 212.212.77.255
C 212.212.78.255
D 212.212.79.255
E 212.212.80.255
答:
D。
解:
由子網(wǎng)掩碼可知前 22 位為子網(wǎng)號、后 10 位為主機號。IP 地址的第 3 個字節(jié)為 010011 01 ,后面2位是主機號,將主機號全置為 1,可得廣播地址為 180.80.79.255
2
小牛在學(xué)習(xí)了二叉樹三種遍歷方式后,自己發(fā)明了一直與中序遍歷相反的遍歷方式,稱為"反中序遍歷",中序遍歷的遍歷方式為左孩子->根節(jié)點->右孩子,他發(fā)明的"反中序遍歷"遍歷方式為右孩子->根節(jié)點->左孩子,那么使用他發(fā)明的"反中序遍歷"遍歷如下圖的二叉樹,輸出的節(jié)點應(yīng)為?
A 3,1,7,5,6,2,4
B 3,1,5,7,2,6,4
C 3,1,2,7,5,6,4
D 3,1,7,5,2,6,4
E 3,1,4,2,6,5,7
答:
A。
3
下列程序的運行結(jié)果是什么?
function getPersonInfo(one, two, three) {console.log(one)console.log(two)console.log(three)
}
const person = 'Lydia'
const age = 21
getPersonInfo`${person} is ${age} years old`
答:
[“”, “ is ”, “ years old”] “Lydia” 21
解:
因此:[“”, “ is ”, “ years old”] “Lydia” 21
4
若數(shù)據(jù)元素序列 9,10,11,5,6,7,12,3,4是采用下列排序方法之一得到的 第二趟升序排序后的結(jié)果,則該排序算法只能是?
A 冒泡排序
B 插入排序
C 選擇排序
D 二路歸并排序
答:
B。
解:
對A:冒泡排序,每輪會把最大的往最后排。若使用A則最后兩項該是11、12。
對B:插入排序,分為有序區(qū)和無序區(qū),每輪把無序區(qū)第一個放入有序區(qū)對應(yīng)位置,正確(前兩個有序)。
對C:選擇排序,兩兩比較,小的往前,則兩輪的話3至少在倒數(shù)第三的位置。
對D:歸并排序,分成左右兩份,各自排序,若兩輪則3、4不會在最后的位置。
5
下列程序的運行結(jié)果是什么?
function addToList(item, list) {return list.push(item)
}
const result = addToList("nowcoder", ["hello"])
console.log(result)
答:
解:
push會返回數(shù)組的長度。
6
關(guān)于將 Promise.all 和 Promise.race 傳入空數(shù)組的兩段代碼的輸出結(jié)果說法正確的是:
Promise.all([]).then((res) => {console.log('all');
});
Promise.race([]).then((res) => {console.log('race');
});
A all 和 race 都會被輸出
B all 和 race 都不會被輸出
C all 會被輸出,而 race 不會被輸出
D all 不會被輸出,race 會被輸出
答:
C。
解:
Promise.all 會立即返回 resolved 狀態(tài),因而會立馬輸出,而 Promise.race 則一直處于 pending 狀態(tài),不會走到 then ,所以永遠(yuǎn)不會輸出。
7
對于一個數(shù)字組成的數(shù)組 nums,現(xiàn)在需要執(zhí)行在不改動 nums 的基礎(chǔ)上去重操作,返回一個新的無重復(fù)元素的數(shù)組,以下幾段代碼能完成這一操作的是()
(1)
const newNums = Array.from(new Set(nums))
(2)
const newNums = nums.filter((n, i) => {return nums.indexOf(n) === i
})
(3)
const newNums = nums.forEach((n, i) => {return nums.indexOf(n) === i
})
(4)
const newNums = nums.reduce((acc, n, i) => {return [].concat(acc, nums.indexOf(n) === i ? n : [])
})
A (1)、(2)、(3)、(4)
B (1)、(3)、(4)
C (1)、(2)、(4)
D (1)、(4)
答:
C。
解:
去重處理是實際開發(fā)中最常見的需求,第一段代碼使用了 Set 去重,第二段使用 filter 去重,第三段則forEach 本身返回不做處理,這時候 newNums 為 undefined,第四段使用 reduce 處理
8
var x = typeof x
var res = typeof typeof x;
console.log(res)
答:
String。
解:
這道題使用了大量的 typeof 來迷惑大家,我們只要記住 typeof 操作符返回值的類型為字符串,對于字符串使用 typeof 那么就是返回 string
9
內(nèi)存泄漏是 javascript 代碼中必須盡量避免的,以下幾段代碼可能會引起內(nèi)存泄漏的有()
function getName() {name = 'javascript'
}
getName()
const elements = {button: document.getElementById('button')
};
function removeButton() {document.body.removeChild(elements.button);
}
removeButton()
let timer = setInterval(() => {const node = document.querySelector('#node') if(node) {clearInterval(timer)}
}, 1000);
A (1)、(2)、(3)
B (2)、(3)
C (1)、(3)
D (1)、(2)
答:
D。
解:
第一段代碼 name 沒有使用 var、let、const,name 變成了意外的全局變量,可能引起內(nèi)存泄漏;
第二段代碼,button 元素被 elements 對象引用,removeChild 后并不能被 GC 回收,會造成內(nèi)存泄漏;
第三段代碼及時清除定時器,避免了內(nèi)存泄漏,因此選擇 D
10
利用 sourcemap 定位線上 js 問題是必須掌握的技能,以下關(guān)于 sourcemap 文件說法不正確的是()
A 利用 sourcemap 可以定位到具體的出錯代碼文件的行、列信息
B sourcemap 文件通過記錄列號的相對位置來提高性能
C 在 chrome 渲染過程中,請求完 js 文件后會立即嘗試請求對應(yīng)的 sourcemap 文件并解析
D sourcemap 文件使用了 VLQ 編碼做映射表
答:
C。
解:
瀏覽器是在用戶開發(fā)開發(fā)者瀏覽器后才會嘗試請求 sourcemap 文件并解析的,普通情況并不會請求 sourcemap 文件,因此答案選 C
技巧:立即。
11
身在乙方的小明去甲方對一網(wǎng)站做滲透測試,甲方客戶告訴小明,目標(biāo)站點由wordpress搭建,請問下面操作最為合適的是
A 訪問robots.txt,查看站點結(jié)構(gòu)及敏感目錄
B 使用wpscan對網(wǎng)站進(jìn)行掃描
C 使用appscan或awvs對網(wǎng)站進(jìn)行漏洞掃描
D 尋找網(wǎng)站后臺,進(jìn)行暴力破解登錄賬號密碼
答:
B。
解:
都已經(jīng)知道目標(biāo)站點為wordpress搭建,沒必要再去看robots.txt。wpscan為wordpress站點專用掃描工具,可掃描wordpress版本、插件及漏洞、用戶名泄露、暴力破解接口等。appscan等web漏洞掃描工具很難掃到wordpress站點漏洞,直接找后臺進(jìn)行暴力破解賬號密碼效率不高。故B相對于CD,最為合適
12
如何僅獲得下述值為3的DOM節(jié)點引用(不包含其他元素)
A .aaa > li
B .bbb ~ li
C .ccc ~ li
D .ccc + li
答:
D。
解:
主要考察CSS選擇符
A,>為后代選擇符,即包含.aaa的所有后代
B,~為一般同輩選擇符,即匹配.bbb后面所有兄弟元素,此處的值為三個元素的數(shù)組
C,此處的值為兩個元素的數(shù)組
D,+為相鄰?fù)呥x擇符,即匹配.bbb后面的第一個兄弟元素,此處的值為<li>3</li>
13
下面哪個選項不能實現(xiàn)除第一個<li>
標(biāo)簽外的<li>
標(biāo)簽字體都為紅色,即如下注釋效果
<ul class="word"><li class="text">1</li> //字體為黑色<li class="text">2</li> //字體為紅色<li class="text">3</li> //字體為紅色
</ul>
A
.text ~ .text {color: red;
}
B
.word:not(:first-child) {color: red;
}
C
.text:nth-last-child(2){color: red;
}
D
.text + .text {color: red;
}
答:
C。
解:
A,~為一般同輩選擇符,可匹配第一個.text后所有.text
B,:not(:first-child) 可匹配除第一個外的所有元素
C,:nth-last-child(2)僅匹配倒數(shù)第二個元素,即僅值為2的標(biāo)簽為紅色
D,+為相鄰?fù)呥x擇符,匹配每一個.text后的相鄰.text,即第一個落空,其余全選中
14
關(guān)于html的canvas的繪制、縮放,下列說法正確的是?
A 圖像繪制在canvas元素之外也可見
B 使用 drawImage方法繪制的圖片可以用css3的tramsform:scale的屬性實現(xiàn)縮放
C 默認(rèn)情況下,canvas是一個可以獲取焦點的元素
D 其他3個選項都不正確
答:
D。
解:
圖像既可以繪制在canvas里,又開始繪制在canvas之外
canvas的縮放需要通過context的scale()、transform方法。
canvas不可獲取焦點,所以不能在canvas元素上新增鍵盤事件監(jiān)聽器。
15
下面這段代碼在瀏覽器中渲染出來的div高度是多少
<!DOCTYPE html>
<html lang="en"><head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.heightTest {
height: 1000px;
min-height: 500px;
max-height: 300px;
}
</style>
</head><body>
<div class="heightTest"></div>
</body></html>
A 1000px
B 500px
C 300px
D 瀏覽器報錯,異常
答:
B。
解:
- height符合要求:height
- height>max>min:max
- 其他:min
16
假設(shè)tempStr字符串長度為N(N足夠大),試分析以下算法平均時間復(fù)雜度和額外空間復(fù)雜度(傳進(jìn)來的tempStr不算額外的空間)最接近為多少?
private boolean isPalindrome(String tempStr){int len=tempStr.length();if (len==1) return true;for (int i=0,j=len-1;i<tempStr.length()/2;i++,j--){if (tempStr.charAt(i)!=tempStr.charAt(j)){return false;}}return true;
}
A O(N),O(N)
B O(N),O(1)
C O(log2 N),O(N)
D O(log2 N),O(1)
答:
B。
解:
時間復(fù)雜度:這里是雙指針,一個從頭開始,一個從尾開始,一起往中間走,直觀感受是N/2,即O(N)
空間復(fù)雜度:只用了有限的空間,與N無關(guān)
注:對于時間復(fù)雜度,若出現(xiàn)如O(log2 N),一般都是有二分、快排或堆。
17
下面可以按照從小到大順序排列顯示磁盤中各個分區(qū)利用率的命令是
A du | grep -o "\<[0-9]*%.*" -o | sort -n
B df | grep -o "\<[0-9]*%.*" -o | sort -r
C df | grep -o "\<[0-9]*%.*" -o | sort -n
D du | grep -o "\<[0-9]*%.*" -o | sort -m
答:
C。
解:
首先du命令用于顯示目錄或文件的大小,df用于顯示分區(qū)的使用情況
sort命令中:
-n 依照數(shù)值的大小排序
-m 將幾個排序好的文件進(jìn)行合并
-r 以相反的順序來排序
18
生產(chǎn)者與消費者模型是一個非常經(jīng)典的同步與互斥問題,如下偽碼實現(xiàn)了簡單的消費者的功能(生產(chǎn)者的功能是往隊列里面添加元素,消費者的功能是從隊列里面取元素)
void consumption() {while (____) {____;}P(mutex);往隊列里面取一個元素;V(mutex);————————;
}
里面的P,V就是指PV操作,mutex是互斥信號量;現(xiàn)有如下方法:
isFull() : 表示隊列元素滿了
isEmpty(): 表示隊列元素為空
m_notFull.wait(): 阻塞當(dāng)前進(jìn)程,直到隊列元素不滿
m_notFull.notify(): 隊列元素不滿了,喚醒某個進(jìn)程
m_notEmpty.wait():阻塞當(dāng)前進(jìn)程,直到隊列元素不為空
m_notEmpty.notify():隊列元素不為空了,喚醒某個進(jìn)程
請你按選好方法,填到上面空行,完成消費者的功能
答:
isEmpty(), m_notEmpty.wait(), m_notFull.notify()
多選題
19
關(guān)于網(wǎng)絡(luò)請求延遲增大的問題,以下哪些描述是正確的()
A 使用ping來測試 TCP 端口是不是可以正常連接
B 使用tcpdump 抓包分析網(wǎng)絡(luò)請求
C 使用strace觀察進(jìn)程的網(wǎng)絡(luò)系統(tǒng)調(diào)用
D 使用Wireshark分析網(wǎng)絡(luò)報文的收發(fā)情況
答:
BCD
解:
ping是基于ICMP協(xié)議不能測試TCP;其他選項正確。
20
對于以下代碼分析時間復(fù)雜度。
int test(int N)
{int i = 0;int cnt = 0;while (cnt<N){i = i + 2;cnt = cnt + i;}return i;
}
答:
O(N1/2)
解: