今日头条2017前端工程师实习生笔试题

 

1、下面标签嵌套正确的是
答案: D 
<ul><p>牛客网</p></ul>
<a href="#"><a href="#">牛客网</a></a>
<dl><li>牛客网</li></dl>
<ol><li>牛客网</li></ol>
2、下面哪些是HTML5 新增的表单元素?
答案: A C
datalist
optgroup
output
legend
解:h5新增表单元素有好多:
datalist 元素规定输入域的选项列表。 
keygen 元素的作用是提供一种验证用户的可靠方法。 
output 元素用于不同类型的输出
3、在HTML中,( )可以在网页上通过链接直接打开邮件客户端发送邮件。
答案: C
<a href=”telnet:ming.zhou@nowcoder.com”>发送邮件</a>
<a href=”mail:ming.zhou@nowcoder.com”>发送邮件</a>
<a href=”mailto:ming.zhou@nowcoder.com”>发送邮件</a>
<a href=”ftp:ming.zhou@nowcoder.com”>发送邮件</a>
4、请选出所有的置换元素()
答案: A B C D
img
input
textarea
select
解: 
置换元素:浏览器根据元素的标签和属性,来决定元素的具体显示内容。 
<img>、<input>、<textarea>、<select>、<object>都是置换元素。
这些元素往往没有实际的内容,即是一个空元素。
置换元素在其显示中生成了框,这也就是有的内联元素能够设置宽高的原因。
不可替换元素:即其内容直接表现给用户端(如浏览器)。
标签<label>是一个非置换元素,文字label中的内容将全被显示。
5、下面哪条声明能固定背景图片()
答案: A 
background-attachment:fixed;
background-attachment:scroll;
background-origin: initial;
background-clip: initial;
6、下列说法正确的是()
答案: A B
display: none;不为被隐藏的对象保留其物理空间;
visibility:hidden;所占据的空间位置仍然存在,仅为视觉上的完全透明;
visibility:hidden;产生reflow和repaint(回流与重绘);
visibility:hidden;与display: none;两者没有本质上的区别;
7、下关于盒子模型描述正确的是:
答案: A
标准盒子模型中:盒子的总宽度 = 左右margin + 左右border + 左右padding + width
IE盒子模型中:盒子总宽度 = 左右margin + 左右border + width
标准盒子模型中:盒子的总宽度 = 左右margin + 左右border + width
IE盒子模型中:盒子总宽度 = width
8、下面哪个属性不会让 div 脱离文档流(normal flow)?
答案: C 
position: absolute;
position: fixed;
position: relative;
float: left;
解:
absolute:生成绝对定位的元素,相对于static定位以外的第一个父元素进行定位;
fixed:生成绝对定位的元素,相对于浏览器窗口进行定位;
relative:生成相对定位的元素,相对于其正常位置进行定位。生成相对定位,也就是说还在原本的上下左右之间,上下左右的元素都不变。
float: 浮动
9、英文字母全部转为大写正确的是()
答案: C
text-transform: capitalize;
text-transform: lowercase;
text-transform: uppercase;
font-weight: bold;
10、假设在今日头条里面,有很多工作人员检查新闻是不是属于虚假新闻,所有新闻真实率到达了98%,工作人员在检验一个真实的新闻把它检验为一个虚假的新闻的概率为2%,而一个虚假的新闻被检验为真实的新闻的概率为5%.那么,一个被检验为真实的新闻确实是真实的新闻的概率是多大?
答案: B 
0.9991
0.9989
0.9855
0.96
解:这是一个古典事件:
基本事件数:被检验为真实的新闻=真新闻检验为真+假新闻检验为真=98%*(1-2%)+(1-98%)*5%
有效事件数:真新闻被检验为真=98% *(1-2%)
有效/基本=B选项
11、现在有两堆石子,小今与小条玩游戏,2个人都足够聪明,两个人规定:每次每人只能从其中一堆中取走1个或2个或3个石子,最后将石子全部取完的人胜利.现在两堆石子的个数为8和9,请问如何安排才能让小今必胜?
答案: A 
让小今先取
让小条先取
没有策略能够让小今必胜
以上说法都不正确
解:小今第一次取一个奇数个数的石子,然后无论小条取什么数字,小今接下来所取的数字都和小条取的凑够一个偶数,那么最后小今一定是最后将石子取完的
12、以下描述正确的:
答案: B C D 
Http协议所使用的运输层协议是UDP
Https的端口号是443
TCP注重数据可靠性,UDP注重数据传输快
传输层提供端到端的可靠报文传递和错误恢复
解:TCP可以提供错误恢复
13、表toutiao_tb
title   data       auther  type
abc     2016.2.23   bob     1
bcv     2016.3.3    http    1
cvt     2016.3.3    http    1
bcvvcm  2016.3.5    js      2
nmhh    2016.2.3    html    2
hhj     2016.3.3    java    3
rrr     2016.3.2    cc      1
查询title中包含cv且type是1的记录
答案: B 
select * from toutiao_tb where title = 'cv' and type='1'
select * from toutiao_tb where title like '%cv%' and type=1
select * from toutiao_tb where title like '*cv' and type=1
select * from toutiao_tb where title ='*cv*' and type='1‘
14、下列关于操作系统进程与线程的区别正确的是:
答案: A D
进程是资源分配的基本单位
线程是资源分配的基本单位
进程是资源调度的基本单位
线程是资源调度的基本单位
解:在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位 。
15、下面那个页面调度算法,当进程分配到的页面数增加时,缺页中断的次数可能增加也可能减少?
答案: A 
FIFO算法
LRU算法
Clock算法
LFU算法
16、下列排序算法不稳定的有?
答案: B D F G 
插入排序
希尔排序
冒泡排序
堆排序
归并排序
快速排序
选择排序
解:稳定算法有:插泡归基;不稳定算法有:快选堆希;
17、运行以下程序
<script> 
    var m= 1, j = k = 0; 
    function add(n) { 
        return n = n+1; 
  } 
    y = add(m); 
    function add(n) { 
        return n = n + 3; 
    } 
z = add(m); 
</script> 
y和z的最终结果为:
答案: B
2,4
4,4
2,2
报异常
18、
(function() {
  var a = b = 5;
})();  
console.log(b);
console.log(a);
上面的输出结果:
答案: D
5,5
undefined,undefined
5,undefined
5,ReferenceError
19、页面有一个按钮button id为 button1,通过原生的js如何禁用?(IE 考虑IE 8.0以上版本)
答案: C D 
document.getElementById("button1").readolny= true;
document.getElementById("button1").setAttribute(“readolny”,”true”);
document.getElementById("button1").disabled = true;
document.getElementById("button1").setAttribute(“disabled”,”true”);
20、页面有一个按钮button id为 button1,通过原生的js设置背景色为红色?
答案: A 
document.getElementById('button1').style.backgroundColor="red";
document.getElementById('button1').style.backgroundcolor="red";
document.getElementById('button1').style.backGroundColor="red";
document.getElementById('button1').style.bgcolor="red";
21、现在有一个字符串,你要对这个字符串进行 n 次操作,每次操作给出两个数字:(p, l) 表示当前字符串中从下标为 p 的字符开始的长度为 l 的一个子串。你要将这个子串左右翻转后插在这个子串原来位置的正后方,求最后得到的字符串是什么。字符串的下标是从 0 开始的,你可以从样例中得到更多信息。
输入描述:
每组测试用例仅包含一组数据,每组数据第一行为原字符串,长度不超过 10 ,仅包含大小写字符与数字。接下来会有一个数字 n 表示有 n 个操作,再接下来有 n 行,每行两个整数,表示每次操作的(p , l)。
保证输入的操作一定合法,最后得到的字符串长度不超过 1000。
输出描述:
输出一个字符串代表最后得到的字符串。
输入例子1:
ab
2
0 2
1 3
输出例子1:
abbaabb
代码:

 

process.stdin.resume();
process.stdin.setEncoding('ascii');
var input = "";
var input_array = "";
process.stdin.on('data', function (data) {
    input += data;
});
process.stdin.on('end', function () {
    input_array = input.split("\n");
    var nLine = 0;   
    while(nLine < input_array.length){
        var line = input_array[nLine++].trim();
        if(line === ''){
            continue;
        }
        var s = line;
        var n = +input_array[nLine++];
        while(n--){
            var input_arrays = input_array[nLine++].trim().split(' ');
            var p = +input_arrays[0];
            var l = +input_arrays[1];
            //你的代码
            var copy=s.slice(p,p+l);
            s=s.slice(0,p+l)+copy.split('').reverse().join('')+s.slice(p+l);
        }
    }
    console.log(s);
});

22、你作为一名出道的歌手终于要出自己的第一份专辑了,你计划收录 n 首歌而且每首歌的长度都是 s 秒,每首歌必须完整地收录于一张 CD 当中。每张 CD 的容量长度都是 L 秒,而且你至少得保证同一张 CD 内相邻两首歌中间至少要隔 1 秒。为了辟邪,你决定任意一张 CD 内的歌数不能被 13 这个数字整除,那么请问你出这张专辑至少需要多少张 CD ?
输入描述:
每组测试用例仅包含一组数据,每组数据第一行为三个正整数 n, s, L。 保证 n ≤ 100 , s ≤ L ≤ 10000 
输出描述:
输出一个整数代表你至少需要的 CD 数量。
输入例子1:
7 2 6
输出例子1:
4
代码:

process.stdin.resume();
process.stdin.setEncoding('ascii');
var input = "";
var input_array = "";
var n;
var s;
var l;
process.stdin.on('data', function (data) {
    input += data;
});
function do_something(n, s, m){
	//你的代码
    var single = Math.floor(m / (s + 1));//每张CD可录的歌曲数
    if (single % 13 === 0) single--;
    if (s === m) single = 1;//当歌曲的长度和CD的容量相同时
    var res = Math.ceil(n / single);//需要录的CD数
    if (res === 1 && n % 13 === 0) res++;
    console.log(res);
}
process.stdin.on('end', function () {
    input_array = input.split("\n");
    var nLine = 0;
    while(nLine < input_array.length){
        var line = input_array[nLine++].trim();
        if(line === ''){
            continue;
        }
        var input_arrays = line.split(' ');
        n = +input_arrays[0];
        s = +input_arrays[1];
        l = +input_arrays[2];
     
		do_something(n, s, l); 
		  
    }
});
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

明致成

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

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

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

打赏作者

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

抵扣说明:

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

余额充值