首页 > 笔经面经 > 58前端笔试,与大家共勉

58前端笔试,与大家共勉

头像
小紧
编辑于 2019-03-07 16:39:02 app内打开
赞 1 | 收藏 24 | 回复3 | 浏览5318



秋招的时候做了58前端的试卷,本着有题共享,共同进步的精神,特意贴出,供各位牛友学习。

其中若有不对的答案敬请指出!



不定项选择

1、以下没有用栈来实现的应用场景是:(

A. 表达式求值

B. 树的节点的深度优先遍历

C. 进程调度

D. 函数调度

参考答案:C

2、给定一个数组2  3  5  6  1  7  8  4  9,建立初始堆(最小堆)后,数组序列是多少?(

A. 1  2  5  4  3  7  6  8  9

B. 1  2  5  6  3  7  8  4  9

C. 1  2  3  6  5  7  8  4  9

D. 1  2  5  4  3  7  8  6  9

参考答案:D

3、给定8个同样形状的硬币和一个天平,其中有一个硬币比其他硬币都重,找到该硬币需要的最少次数:(

A. 3

B. 4

C. 2

D. 1

参考答案:A

4、如下算法的时间复杂度是:(

int func(vector &nums){

int n = nums.size();

if(n == 0){

return 1;

}

for(int i=0;i<n;i++){

while(nums[i]>0 && nums[i]<=n && nums[i]!=i+1){


int tmp = nums[i];

if(tmp==nums[num[i]-1]){

break;

}

nums[i] = nums[num[i]-1];

nums[tmp-1] = tmp;

}

}

for(int i=0;i<n;i++){

if(nums[i]!=i+1){

return i+1;

}

}

return n+1;

}

A. O(n^2)

B. O(n!)

C. O(n)

D. O(n^3)

正确答案:A

5、如果需要对10W个英文单词进行前缀匹配检索,下面哪种数据结构最合适:(

A. AVL

B. Trie

C. B+

D. 哈希表

参考答案:B

6CPU利用率与并发进程数的关系是:(

A. 进程数多时,提高并发进程数,可提高CPU利用率

B. 局部性特征的下降会导致缺页率上升和CPU利用率下降

C. 并发进程的内存访问会增加了访存的局部性特征

D. 并发进程导致内存访问减小

参考答案:B

并发进程数存在相互促进和制约的关系进程数少时,提高并发进程数,可提高CPU利用率,故而A选项错误;

并发进程的内存访问会降低访存的局部性特征,C选项错误;

7、一个子串由7A7B组成,且满足所有的前缀子串中A的个数大于等于B的个数,问这样的子串有多少个:(

A. 428

B. 429

C. 430

D. 431

正确答案:B

8、在关键字随机分布的情况下,二叉查找树长度与哪些查找相当:(

A. 二分查找

B. 顺序查找

C. 插值查找

D. 斐波那契查找

参考答案:A

9、一个有500*400的稀疏矩阵,有20个非零元素,设每个整型数占2字节,则用三元组表示该矩阵时,所需的字节数是:(

A. 134

B. 120

C. 126

D. 124

参考答案:C

一个非零元用(i,j, num)表示。则一个非零元用6个字节,20个就是120个字节。

另外,还需要一个头结点,用来(500,400,20)用来表示矩阵的行列数和非零元个数。

答案是120+6=126,正确答案为C选项。

10、函数F(n)=F(n-1)+n+1(n>1)的递归终止条件是:(

A. F(0)=0

B. F(1)=1

C. F(1)=0

D. F(0)=1

正确答案:B

11、Java程序进行调优,会关注一下两个目标:响应能力(responsiveness)和吞吐量(throughput)。关于这两项目标描述错误的是:(

A. 吞吐量关注在一个特定时间段内应用系统的最大工作量

B. 对响应能力要求很高的系统,较大的停顿时间是不可接受的

C. 提高响应能力期望程序或系统对请求的响应时间尽可能短

D. 更重视吞吐量的系统,比重视响应能力的系统更加不能接受较长的停顿时间

参考答案:D

12、java集合中迭代器Iteratorfail-fast(快速失败)机制,抛出的是什么异常?(

A. ConcurrentModificationException异常

B. SecturityException异常

C. NullPointerException异常

D. ClassCastException异常

参考答案:A

13、可通过编译的语句有哪些?(

A. int x[][] = new int[1][1];

B. byte x[][] = new byte[][];

C. short x[1][1] = new short[][];

D. long []x[]=new long[1][1];

参考答案:A

14、关于JAVA类加载,正确的是:

A. 某个类可能由于被不同的类调用而被加载多次

B. 类加载器的体系并不是“继承”体系,而是一个“委派”体系

C. NoClassDefFoundEror表示在编译时这个类是不能够被找到的

D. 在生成某个类的.class文件时,该类被加载到JVM

参考答案:B

15、关于java锁说法正确的是:(

A. Synchronized只能作用于方法,不可以在代码块上使用。

B. Synchronized通过使用对象监视器由JVM实现。

C. SynchronizedLock都是可重入锁。

D. 使用Lock的获取锁方法后,最好使用finally代码块释放锁。

参考答案:B、C、D

16

public class Toy {

private String name;

static {

System.out.println("Initializing");

}

Toy() {

System.out.println("Building");

}

public void setName(String name){

this.name = name;

}

public String playToy(String player){

String msg = buildMag(player);

System.out.println(msg);

return msg;

}

private String buildMag(String player){

String msg = player+" plays "+this.name;

return msg;

}

public static void main(String[] args){

Toy toy = new Toy();

toy.setName("ball");

toy.playToy("wangzai");

}

}输出结果为(

A. Building

Initializing

wangzai plays ball

B. Initializing

Building

wangzai plays ball

C. Building

wangzai plays ball

D. Initializing

wangzai plays ball

参考答案:B

17、JVM内存配置参数如下:

-Xmx2048m -Xms2048m -Xmn1024m -XX:MaxPermSize=256m -XXSurvivorRatio=2,其最小内存值和Survivor区分大小分别是:(

A. 2048m, 512m

B. 1024m, 256m

C. 2048m, 256m

D. 1024m, 512m

参考答案:C

首先必须知道几个参数的含义:

-Xmx :堆的最大值,本题为2048M

-Xms :堆的最小值,本题为2048M

-Xmn :堆年轻代大小,本题为1024M

-XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配

-XXSurvivorRatioEden区和Survior区的占用比例.

我们只需要知道Survior区有两个,就是图中的S0S1,而Eden区只用一个, -XXSurvivorRatio参数是Eden区和单个Survior区的比例,所以应该有(2+1+1)*Survior=1024m,故而Survivor区大小为256M.

参考:http://blog.csdn.net/crazylzxlzx/article/details/52210061

18、以下哪种方式会导致对应线程让出CPU:(

A. 调用sleep函数

B. 抛出RuntimeException

C. 提高其他线程的调用优先级

D. 增加子线程并调度执行子线程

参考:http://www.ppkao.com/daan/1939379/3A5825E23711EF85BB47D24A4FE680D9

正确答案:A

19、Java数据结构中列表(list)和集合(Set)下面说法错误的是?(

A. ListSet都可以包含重复元素的有序集合

B. ListSet都是有序集合

C. List中最多只能有一个空元素

D. Set中最多只能有一个空元素

正确答案:ABC

20、下列关于Oracle Hotspot Java虚拟机的说法之中正确的是:(

A. 如果一个类显式地overrideObject类的finalize方法,那么这个finalize方法最多只能被Java虚拟机调一次。

B. 在同一个Java虚拟机之中,一个class文件只能被加载一次。

C. Java虚拟机只有在堆空间不足的情况下,才会触发垃圾回收。

D. 对于分代的垃圾回收算法,在进行新生代(young generation)垃圾回收的时候,只需扫描新生代的内存区域,在进行老年代(old generation)垃圾回收的时候,只需要扫描老年代的内存区域。

正确答案:AB

21、<div style=”padding-bottom:50%”>中的50%应该如何计算?(

A. 父级元素高度的50%

B. 父级元素宽度的50%

C. 自身高度的50%

D. 0

正确答案:B

22、html结构如下:

<div></div>

<p></p>

<p></p>

<p></p>

以下哪些选择器能够选中第一组p标签?(

1. div + p

2. p:first-child

3. p:first-of-type

4. div~p

5. p:nth-child(2)

A. 12

B. 135

C. 345

D. 24

参考答案:A

23、以下哪些数组方法会更改现有数组返回?(

A. Array.prototype.concat

B. Array.prototype.slice

C. Array.prototype.sort

D. Array.prototype.splice

正确答案:CD

24、下列代码输出的是什么?(

function fun(n,o){

console.log(o)

return {

fun:function(m){

return fun(m,n);

}

}

}

var a = fun(0).fun(1).fun(2).fun(3);

A. Undefined, 1, 2, 3

B. Undefined, 0, 1, 1

C. Undefined, 0, 0, 0

D. Undefined, 0, 1, 2

参考答案:D

参考:https://segmentfault.com/a/1190000004187681

25、下面哪些是Flex布局的项目属性:(

A. flex-flow

B. align-self

C. align-items

D. flex-grow

正确答案:BD

26、下列关于使用MVVM的特性,正确的是:(

A. 模块开发。开发人员可以专注与业务逻辑和数据的开发(ViewModel)。设计人员可以专注于界面(View)的设计

B. 可重用性。可以把一些视图的逻辑放在ViewModel里面,让很多View重用这段视图逻辑。

C. 低耦合。View可以独立于Model变化和修改

D. MVVM是一种使用模型-视图-控制器设计创建Web应用程序的模式。

参考答案:A、B、C

D选项说的是MVC模式,不是MVVM模式。

27、关于cookie ,sessionStoragelocalStorage,以下说法正确的有:(

A. sessionStorage仅当前用户logout或者手动清除缓存时才失效

B. localStorage作用域都不受限制,可以跨域访问

C. localStorage是持久化的本地存储

D. sessionStorage是会话级别的存储

参考答案:C、D

参考:http://www.cnblogs.com/caiyezi/p/5619506.html

28、HTTP状态码表示暂时性转移的是:

A. 302

B. 301

C. 304

D. 200

参考答案:A

29、以下代码运行的结果是:(

function Animal(name){

this.name = name;

}

Animal.prototype = {

getName:function(){

return this.name;

}

}

var myDog = new Animal(‘dog’);

var getName = myDog.getName;

getName(‘cat’);

A. undefined

B. “”

C. “dog”

D. “cat”

参考答案:C

参考:http://www.cnblogs.com/lwzz/archive/2013/03/03/2941743.html

30、以下代码的运行结果是:(

for(var i=1;i<=3;i++){

setTimeout(function(){console.log(i);},0);

}

A. 444

B. 333

C. 123

D. 111

正确答案:A

问答题

1、请阐述Java8Java语法上的主要改进。

参考答案:

Java 8: 语言一个大的变化,增加了一些新的概念和功能:

默认的接口方法

Lambda表达式

引用方法

可重复的注解

数据流

2、HTML+CSS+Javascrip实现以下功能:当用户点击页面里所有a标签时,如果其链接里面包含数字,则点击该链接时提示用户“该链接存在风险,是否继续点击?” 用户只有点击确认才打开该链接

参考答案:

<html xmlns="http://www.w3.org/1999/xhtml">

<script language=javascript>

function firm(str1)

{

//定义字符串

//var str1 = "http://www.sogou1.com";; //第一个字符串,仅有数字。


//定义验证规则,由于字符串数字和字母的顺序可能不同。

//也有可能字母和数字中间还包含了其他字符。故将验证规则分开定义。

var regNumber = /\d+/; //验证0-9的任意数字最少出现1次。


//验证第三个字符串

if (regNumber.test(str1)) {

//利用对话框返回的值 (true 或者 false)

if(confirm("该链接存在风险,是否继续点击?"))

{

//如果是true ,那么就把页面转向thcjp.cnblogs.com

location.href=str1;

}

}else{

//如果是true ,那么就把页面转向thcjp.cnblogs.com

location.href=str1;

}

}

window.onload = function(){

var as = document.querySelectorAll('a') ;

for( var i = 0 ; i < as.length ; i++ ){

var a = as[ i ] ;

var origin = a.href ;

a.href='javascript:void 0;' ;

a.dataset.origin = origin ;

a.onclick = function(){


firm( this.dataset.origin ) ;

}


}

}

</script>

<BODY>

<a href="http://www.baidu.com"">www.baidu.com</a>

<H4>"-----------------"</H4>

<a href="http://www.163.com"">www.163.com</a>

</BODY>

</HTML>

3、搜狗汪仔机器人在参加一站到底节目录制时,被问到一个问题:“对任意长度字符串,删除其中任意的NN>=0)个字符,能形成多少种不同的子字符串呢?” 请使用JavaScript编码扩展Stringdelete方法帮助汪仔解决这个问题。

测试用例:

function test(){

return’sogou’.delete(0)===1;

}

备注:

本题为前端编程题,不会解答。



编程题:

圆周上两点间的距离

时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 30720KB;其他语言 555008KB

题目描述:

定义圆周上两点的距离s为这两点之间的劣弧对应的圆心角度数(0<=s<=180),现输入圆周上的n个点(n>=2),以角度a表示其位置(0<=a<360),输入按a从小到大排序。求最远的一对点之间的距离。

输入

第一行为点个数n,后跟n行,每行一个双精度浮点数,表示点的角度(小数点后保留8位),例如输入样例中为4个点的输入:

输出

输出最远的一对点之间的距离(双精度浮点数,小数点后保留8位)和'\n'换行符。例如输入样例中,10.00000000与183.00000000两个点之间的距离为173.00000000,大于10.00000000与198.0000000之间的距离172.00000000,所以应输出:

173.00000000


样例输入

4

10.00000000

180.00000000

183.00000000

198.00000000

样例输出

173.00000000





3条回帖

回帖
加载中...

本文相关内容

近期热帖

热门推荐