html5面试题大全汇总
基础强化
1. 聊一聊前端存储。
(1)cookie
(2)短暂的sessionStorage
(3)简易强大的localStorage
(4)websql与indexeddb
详细参见:https://https://www.sodocs.net/doc/5111876165.html,/a/1190000005927232
2. BFC
(1) w3c规范中的BFC定义:
浮动元素和绝对定位元素,非块级盒子的块级容器(例如inline-blocks, table-cells, 和table-captions),以及overflow值不为“visiable”的块级盒子,都会为他们的内容创建新的BFC(块级格式上下文)。
在BFC中,盒子从顶端开始垂直地一个接一个地排列,两个盒子之间的垂直的间隙是由他们的margin 值所决定的。在一个BFC中,两个相邻的块级盒子的垂直外边距会产生折叠。
在BFC中,每一个盒子的左外边缘(margin-left)会触碰到容器的左边缘(border-left)(对于从右到左的格式来说,则触碰到右边缘)。
(2) BFC的通俗理解:
首先BFC是一个名词,是一个独立的布局环境,我们可以理解为一个箱子(实际上是看不见摸不着的),箱子里面物品的摆放是不受外界的影响的。转换为BFC的理解则是:BFC中的元素的布局是不受外界的影响(我们往往利用这个特性来消除浮动元素对其非浮动的兄弟元素和其子元素带来的影响。)并且在一个BFC中,块盒与行盒(行盒由一行中所有的内联元素所组成)都会垂直的沿着其父元素的边框排列。
详细参见:
https://www.sodocs.net/doc/5111876165.html,/css/understanding-bfc-and-margin-collapse.html
https://https://www.sodocs.net/doc/5111876165.html,/question/28433480
前端工程化
3. 场景:你是第一天来公司上班的,项目代码托管在GitLab,项目地址:
git@https://www.sodocs.net/doc/5111876165.html,:org/project.git,现在有一处代码需要你修改。请下完成此项任务中,与git/gitlab 相关的操作步骤。
第一步:$> ssh-keygen -t rss -C zhangsan@https://www.sodocs.net/doc/5111876165.html,
第二步:拷贝公钥到gitlab
第三步:
$> git config —global https://www.sodocs.net/doc/5111876165.html, zhangsan
$> git config —global user.email zhangsan@https://www.sodocs.net/doc/5111876165.html,
第四步:$> git clone git@https://www.sodocs.net/doc/5111876165.html,:org/project.git
第五步:$> git checkout -b project-20170227-zhangsan-bugfix
第六步:修改代码
第七步:git status
第八步:git add .
第九不:git commit -am ‘bugfix’
第八步:git push --set-upstream origin project-20170227-zhangsan-bugfix
4. CSS,JS代码压缩,以及代码CDN托管,图片整合。
(1)CSS,JS 代码压缩:
可以应用gulp的gulp-uglify,gulp-minify-css模块完成;可以应用webpack的UglifyJsPlugin压缩插件完成。
(2)CDN:
内容分发网络(CDN)是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件。主要特点有:本地Cache加速,镜像服务,远程加速,带宽优化。关键技术有:内容发布,内容路由,内容交换,性能管理。CDN网站加速适合以咨询为主的网站。CDN是对域名加速不是对网站服务器加速。CDN和镜像站比较不需要访客手动选择要访问的镜像站。CDN使用后网站无需任何修改即可使用CDN获得加速效果。如果通过CDN后看到的网页还是旧网页,可以通过URL推送服务解决,新增的网页和图片不需要URL推送。使用动态网页可以不缓存即时性要求很高的网页和图片。CDN可以通过git或SVN来管理。
(3)图片整合
减少网站加载时间的最有效的方式之一就是减少网站的HTTP请求数。实现这一目标的一个有效的方法就是通过CSS Sprites——将多个图片整合到一个图片中,然后再用CSS来定位。缺点是可维护性差。可以使用百度的fis/webpack来自动化管理sprite。
5. 如何利用webpack把代码上传服务器以及转码测试?
(1)代码上传:
可以使用sftp-webpack-plugin,但是会把子文件夹给提取出来,不优雅。可以使用gulp+webpack来实现。
(2)转码测试
webpack应用babel来对ES6转码,开启devtool: “source-map" 来进行浏览器测试。应用karma 或mocha来做单元测试。
6. 项目上线流程是怎样的?
(1)流程建议
- 模拟线上的开发环境
本地反向代理线上真实环境开发即可。(apache,nginx,nodejs均可实现)
- 模拟线上的测试环境
模拟线上的测试环境,其实是需要一台有真实数据的测试机,建议没条件搭daily的,就直接用线上数据测好了,只不过程序部分走你们的测试环境而已,有条件搭daily最好。
- 可连调的测试环境
可连调的测试环境,分为2种。一种是开发测试都在一个局域网段,直接绑hosts即可,不在一个网段,就每人分配一台虚拟的测试机,放在大家都可以访问到的公司内网,代码直接往上布即可。
- 自动化的上线系统
自动化的上线系统,可以采用Jenkins。如果没有,可以自行搭建一个简易的上线系统,原理是每次上线时都抽取最新的trunk或master,做一个tag,再打一个时间戳的标记,然后分发到cdn就行了。界面里就2个功能,打tag,回滚到某tag,部署。
- 适合前后端的开发流程
开发流程依据公司所用到的工具,构建,框架。原则就是分散独立开发,互相不干扰,连调时有hosts可绑即可。
(2)简单的可操作流程
- 代码通过git管理,新需求创建新分支,分支开发,主干发布
- 上线走简易上线系统,参见上一节
- 通过gulp+webpack连到发布系统,一键集成,本地只关心原码开发
- 本地环境通过webpack反向代理的server
- 搭建基于linux的本地测试机,自动完成build+push功能
7. 工程化怎么管理的?
gulp和webpack
8. git常用命令
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
详细参见:https://www.sodocs.net/doc/5111876165.html,/blog/2015/12/git-cheat-sheet.html
9. webpack 和gulp对比
Gulp 就是为了规范前端开发流程,实现前后端分离、模块化开发、版本控制、文件合并与压缩、mock 数据等功能的一个前端自动化构建工具。说的形象点,“Gulp就像是一个产品的流水线,整个产品从无到有,都要受流水线的控制,在流水线上我们可以对产品进行管理。”另外,Gulp是通过task对整个开发过程进行构建。
Webpack 是当下最热门的前端资源模块化管理和打包工具。它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载。通过loader的转换,任何形式的资源都可以视作模块,比如CommonJs 模块、AMD 模块、ES6 模块、CSS、图片、JSON、Coffeescript、LESS 等。
Gulp和Webpack功能实现对比:从基本概念、启动本地Server、sass/less预编译、模块化开发、文件合并与压缩、mock数据、版本控制、组件控制八个方面对Gulp和Webpack进行对比。
详细参见:https://www.sodocs.net/doc/5111876165.html,/articles/e632EbA
10. webpack打包文件太大怎么办?
webpack 把我们所有的文件都打包成一个JS 文件,这样即使你是小项目,打包后的文件也会非常大。可以从去除不必要的插件,提取第三方库,代码压缩,代码分割,设置缓存几个方面着手优化。
详细参见:https://www.sodocs.net/doc/5111876165.html,/p/a64735eb0e2b
11. 不想让别人盗用你的图片,访问你的服务器资源该怎么处理?
目前常用的防盗链方法主要有两种:
(1)设置Referer:适合不想写代码的用户,也适合喜欢开发的用户
(2)签名URL:适合喜欢开发的用户
详细参见:https://https://www.sodocs.net/doc/5111876165.html,/articles/57931
12. 精灵图和base64如何选择?
css精灵,用于一些小的图标不是特别多,一个的体积也稍大,比如大于10K(这个没有严格的界定)。
base64,用于小图标体积较小(相对于css精灵),多少都无所谓。字体图标,用于一些别人做好的图标库(也有少数自己去做的)用起来比较方便,他的图标只能用于单色,图标用只能于一种颜色。
13. webpack怎么引入第三方的库?
拿jQuery为例:
entry: {
page: 'path/to/page.js',
jquery: 'node_modules/jquery/dist/jquery.min.js'
}
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
inject: true,
chunks: ['jquery', 'page'] // 按照先后顺序插入script标签})
14. 如果线上出现bug git怎么操作?
参见第1题。
15. 用过Nginx吗?都用过哪些?
nginx是一个高性能的HTTP和反向代理服务器。
常使用场景:
(1)反向代理
(2)网站负载均衡
详细参见:https://www.sodocs.net/doc/5111876165.html,/hobinly/p/6023883.html
Web前端开发笔试题集锦 HTML/CSS篇 1, 判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20 var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/; reg.test("a1a__a1a__a1a__a1a__"); 2,截取字符串abcdefg的efg var str = "abcdefg"; if (/efg/.test(str)) { var efg = str.substr(str.indexOf("efg"), 3); alert(efg); } 3,判断一个字符串中出现次数最多的字符,统计这个次数 //将字符串的字符保存在一个hash table中,key是字符,value是这个字符出现的次数 var str = "abcdefgaddda"; var obj = {}; for (var i = 0, l = str.length; i < l; i++) { var key = str[i]; if (!obj[key]) { obj[key] = 1; } else { obj[key]++; } } /*遍历这个hash table,获取value最大的key和value*/ var max = -1; var max_key = ""; var key; for (key in obj) { if (max < obj[key]) { max = obj[key]; max_key = key; } } alert("max:"+max+" max_key:"+max_key); 4,IE与FF脚本兼容性问题 (1) window.event: 表示当前的事件对象,IE有这个对象,FF没有,FF通过给事件处理函数传递事件对象 (2) 获取事件源
1、常用那几种浏览器测试?有哪些内核(Layout Engine)? 答: (Q1) 浏览器:IE,Chrome,FireFox,Safari,Opera。 (Q2) 内核:Trident,Gecko,Presto,Webkit。 2、说下行内元素和块级元素的区别?行内块元素的兼容性使用?(IE8 以下)答: (Q1) 行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效。 块级元素:各占据一行,垂直方向排列。从新行开始结束接着一个断行。 (Q2) 兼容性:display:inline-block;*display:inline;*zoom:1; 3、清除浮动有哪些方式?比较好的方式是哪一种? 答: (Q1) (1)父级div定义height。 (2)结尾处加空div标签clear:both。 (3)父级div定义伪类:after和zoom。 (4)父级div定义overflow:hidden。 (5)父级div定义overflow:auto。 (6)父级div也浮动,需要定义宽度。 (7)父级div定义display:table。 (8)结尾处加br标签clear:both。 (Q2) 比较好的是第3种方式,好多网站都这么用。 4、box-sizing常用的属性有哪些?分别有什么作用? 答: (Q1)box-sizing: content-box|border-box|inherit; (Q2)content-box:宽度和高度分别应用到元素的内容框。在宽度和高度 之外绘制元素的内边距和边框(元素默认效果)。 border-box:元素指定的任何内边距和边框都将在已设定的宽度和高度内 进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的 宽度和高度。 5、Doctype作用?标准模式与兼容模式各有什么区别? 答: (Q1) 告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不 存在或格式不正确会导致文档以兼容模式呈现。 (Q2) 标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防 止站点无法工作。 6、HTML5 为什么只需要写?
HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言。最主要的不同: (1)XHTML元素必须被正确地嵌套 (2)XHTML元素必须被关闭 (3)XHTML标签名必须用小写字母 (4)XHTML文档必须拥有根元素 2.什么是语义化的HTML html5的语义化是指用正确的标签包含正确的容,比如nav标签就应该包含导航条容 (1)直观的认识标签对于搜索引擎的抓取有好处,用正确的标签做正确的事情! (2)html语义化就是让页面的容结构化,便于对浏览器、搜索引擎解析 (3)在没有CCS样式情况下也以一种文档格式显示,并且是容易阅读的。搜索引擎的爬虫依赖于标记来确定上下和各个关键字的权重,利于SEO。 (4)使阅读源代码的人更容易将分块,便于阅读维护理解。 写一段语义的html代码(HTML5中新增加的很多标签如:
web前端开发面试题汇总 1天前653浏览2评论 前端面试题汇总 HTML&CSS 1. 常用那几种浏览器测试?有哪些内核(Layout Engine)? (Q1) 浏览器:IE,Chrome,FireFox,Safari,Opera。 (Q2) 内核:Trident,Gecko,Presto,Webkit。 2. 说下行内元素和块级元素的区别?行内块元素的兼容性使用? (IE8 以下) 行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效。 块级元素:各占据一行,垂直方向排列。从新行开始结束接着一个断行。 兼容性:display:inline-block;display:inline;zoom:1; 3. 清除浮动有哪些方式?比较好的方式是哪一种? (1)父级div定义height。 (2)结尾处加空div标签clear:both。 (3)父级div定义伪类:after和zoom。 (4)父级div定义overflow:hidden。 (5)父级div定义overflow:auto。 (6)父级div也浮动,需要定义宽度。 (7)父级div定义display:table。
(8)结尾处加br标签clear:both。 总结:比较好的是第3种方式,简洁方便。 4. box-sizing常用的属性有哪些?分别有什么作用? 常用的属性:box-sizing: content-box border-box inherit; 作用:content-box:宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框(元素默认效果)。 border-box:元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。 5. Doctype作用?标准模式与兼容模式各有什么区别? (Q1) 告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。 (Q2) 标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。 6. HTML5 为什么只需要写< Doctype html>? HTML5不基于SGML,因此不需要对DTD进行引用;但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。 7. 页面导入样式时,使用link和@import有什么区别? (1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS; (2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面
腾讯面试题有答案
1. 1-20的两个数把和告诉A,积告诉B,A说不知道是多少, B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少? 答案:2和3 2 爸爸,妈妈,妹妹,小强,至少两个人同一生肖的概率是多 少? 1-12*11*10*9/12*12*12*12 = 1-55/96 = 41/96 3, 计算a^b << 2 答案: 运算符优先级:括号,下标,->和.(成员)最高; 单目的比双目的高; 算术双目的比其它双目的高; 位运算高于关系运算; 关系运算高于按位运算(与,或,异或);
按位运算高于逻辑运算; 三目的只有一个条件运算,低于逻辑运算; 赋值运算仅比, (顺序运算)高。 在此题中,位左移"<<" 优先级高于按位异或"^",因此b 先左移两位(相当于乘以4), 再与a异或。 例如:当 a = 6; b = 4 时;则a^b<<2 = 22 4 如何输出源文件的标题和当前执行行的行数? 答案:printf("The file name: %d\n", __FILE__); printf("The current line No:%d\n", __LINE__); ANSI C标准预定义宏: __LINE__
__FILE__ __DATE__ __TIME__ __STDC__ 当要求程序严格遵循ANSI C标准时该标识符被赋值为1 __cplusplus__ 当编写C++程序时该标识符被定义 5 a[3][4]哪个不能表示a[1][1]: *(&a[0][0]+5) *(*(a+1)+1) *(&a[1]+1) *(&a[0][0]+4) 答案: *(&a[1]+1) a是数组的首地址,a[1]就表示a[1][0]地址了,不用再取地址了。 6 fun((exp1,exp2),(exp3,exp4,exp5))有几个实参? 答案:两个。
1. 如何显示/隐藏一个DOM元素? 更改元素的css style,设为display: none。此外还可以将visibility设为hidden,透明度设为0,或长、宽设为0。 2. 一个定宽网页在浏览器(IE6,IE7,Firefox,IE5)中横向居中对齐的布局, 请写出主要的HTML标签及CSS。 1. 2. 3.
4. 5.15. 3. CSS中margin和padding的区别 margin是外边距,属于元素之外,相邻元素的margin可以融合。 padding是内边距,在元素之内,相邻元素的padding不可融合。 4. JavaScript中如何检测一个变量是一个String类型?请写出函数实现 function(obj) { returntypeof(obj) == ”string”; } 5. 网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态 显示“××年还剩××天××时××分××秒” 这个看我论坛右上角的就知道了… 6. 如何控制网页在网络传输过程中的数据量 题目貌似有问题,应该是减少数据量吧。 最显著的方法是启用GZIP压缩。此外保持好的编码习惯,避免重复和css、 JavaScript代码,多余的HTML标签和属性。 7. 补充代码,是鼠标单击后Button1到Button2的后面
前端面试题总结HTML CSS部分 时间:2014-02-2521:22:16来源:作者: 1.对WEB标准以及W3C的理解与认识 标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链css和js 脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性; 2.xhtml和html有什么区别 HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言 最主要的不同: XHTML元素必须被正确地嵌套。 XHTML元素必须被关闭。 标签名必须用小写字母。 XHTML文档必须拥有根元素。 3.Doctype?严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? 用于声明文档使用那种规范(html/Xhtml)一般为严格过度基于框架的html文档 加入XMl声明可触发,解析方式更改为IE5.5拥有IE5.5的bug 4.行内元素有哪些?块级元素有哪些?CSS的盒模型? 块级元素:div p h1h2h3h4form ul 行内元素:a b br i span input select Css盒模型:内容,border,margin,padding 5.CSS引入的方式有哪些?link和@import的区别是? 内联内嵌外链导入 区别:同时加载 前者无兼容性,后者CSS2.1以下浏览器不支持 Link支持使用javascript改变样式,后者不可 6.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
一、CSS (1) 二、HTML (3) 三、jquery (3) 四、综合 (4) 一、C SS 1.CSS样式表根据所在网页的位置,可分为?(B ) A.行内样式表、内嵌样式表、混合样式表 B.行内样式表、内嵌样式表、外部样式表 C.外部样式表、内嵌样式表、导入样式表 D.外部样式表、混合样式表、导入样式表 2.对于标签,其中*代表(C ) A. 注释的时候才用上 B. 没有这个标签 C. 通配符,意思是所有的标签 3.在CSS中下面哪种方法表示超链接文字在鼠标经过时,超链接文字无下划线?(B ) A. A:link{TEXT-DECORATION: underline } B. A:hover {TEXT-DECORATION: none} C. A:active {TEXT-DECORATION: blink } D. A:visited {TEXT-DECORATION: overline } 4.下面代码片段,说法正确的是:(B ) .DIV1 { position:absolute; line-height:22px; height:58px; background-color: #FF0000; } A. Line-height:22px;修饰文本字体大小 B. position:absolute;表示绝对定位,被定位的元素位置固定 C. height:58px; 表示被修饰的元素距离别的元素的距离 D. background-color: #FF0000; 表示被修饰的元素的背景图像 5.用CSS设置DIV的左边为红色实线,下面设置正确的是(C ) A.style=”border-top: #ff0000 1 solid;”
1. 要动态改变层中内容可以使用的方法有(AB ) a)innerHTML b)innerText c)通过设置层的隐藏和显示来实现 d)通过设置层的样式属性的display属性 2. 在javascript里,下列选项中不属于数组方法的是(B); a)sort() b)length() c)concat() d)reverse() 3 、var emp = new Array(3); for(var i in emp) 以下答案中能与for循环代码互换的是: (选择一项)。(D ) A for(var i =0; i c)getElementsByName() d)bgColor() 6. 、display属性值的常用取值不包括(C ) a)inline b)block c)hidden d)none 7. 以下有关pixelTop属性与top属性的说法正确的是。(D ) a)都是Location对象的属性 b)使用时返回值都是字符串 c)都是返回以像素为单位的数值 d)以上都不对 8. 使用open方法打开具有浏览器工具条,地址栏,菜单栏的窗 口,下列选项正确的是__D__ a)open("x.html","HI","toolbas=1,scrollbars=1,status=1"); b)open("HI","scrollbars=1,location=1,status=1"); c)open("x.html","status=yes,menubar=1,location=1"); d)open("x.html","HI","toolbas=yes,menubar=1,location=1"); 9. 、javascript中表达式parseInt(“X8X8”)+paseFloat(‘8’)的结果是什么?( C) a)8+8 b)88 c)16 d)“8”+’8 10. 关于setTimeout(“check”,10)中说法正确的是( D) 1. 要动态改变层中内容可以使用的方法有( AB ) a) i nn erHTML b) i nn erText c) 通过设置层的隐藏和显示来实现 d) 通过设置层的样式属性的 display 属性 2. 当按键盘 A 时,使用onKeyDown 事件打印event.keyCode 的结果是(A ) a) 65 b) 13 c) 97 d) 37 3.在javascript 里,下列选项中不属于数组方法的是( B ); a) sort() b) l e ngth() c)con cat() d) r everse( ) 4.下列哪一个选项可以用来检索被选定的选项的索引号 ?(B) a)disabled b) selectedl ndex c) opti on d) multiple 5.希望图片具有”提交”按钮同样的功能,该如何编写表单提交?(A ) 6. 使div 层和文本框处在冋一行的代码正确的是 (D ); a) b) c) d) 7. 下列选项中,描述正确的是(选择两项)。(AD ) a)options.add(new Option(,a?,'A?))可以动态添加一个下拉列表选项 b)option.add(new Option(,a?,'A?))可以动态添加一个下拉列表选项 c) n ew Optio n(,a?,'A?)中?a 表示列表选项的值,?A 用于在页面中显示 d) n ew Option(,a?,'A?)中?A 表示列表选项的值,?a 用于在页面中显示 8. 、 var emp = new Array(3); for(var i in emp) 以下答案中能与for 循环代码互换的是:(选择一项)。(D ) A for(var i =0; i 这部分的腾讯c/c++面试用的笔试题主要是c/c++、数据结构、简单算法、操作系统等方面的基础知识,方便去腾讯面试开发的同仁有所参考! 笔试题的题型好像有sizeof、树等选择题。 填空题是补充完整程序。 附加题有写算法的、编程的、数据库sql语句查询的。 还有一张c/c++开放性问题。 腾讯c/c++笔试题如下: 1、请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句 #define Max(a,b) ( a/b)?a:b 2、如何输出源文件的标题和目前执行行的行数 int line = __LINE__; char *file = __FILE__; cout<<"file name is "<<(file)<<",line is "< } 5、不使用额外空间,将A,B两链表的元素交*归并 6、将树序列化转存在数组或链表中 struct st{ int i; short s; char c; }; sizeof(struct st); 7、 char * p1; void * p2; int p3; char p4[10]; sizeof(p1...p4) =? 8、 4,4,4,10 二分查找 快速排序 双向链表的删除结点 由于近来有些人都问我腾讯笔试和面试到底是考什么,问什么,所以就灌下这篇水文,也算是我自己复习一遍以及给有兴趣或者后来者嗤鼻一笑的机会:) 其实应聘内容也真的很难说清楚,而且我也不知道我所经历的是不是有代表性,何况我还是找工作的新手(本科也没找过工作,之前也只是应聘过华为),所以如果下文有什么疏漏之处,尽管踩我好了:) 1。笔试我想腾讯的笔试还是比较适中的,虽然广度与深度都不够,但是毕竟因为它只是笔试,只是用来筛选面试者的,而不是象学术竞赛一样一战决胜负,何况它是笔试,所以也就有笔试的局限性。(啊哦,是不是离题?)笔试主要是C++的内容,然后还有一部分数据结构、系统平台(WIN32和LINUX都有)的编程知识(线程模型、共享内存、编译或对象模型等)、JAVA (这次笔试JAVA有一题,是填写同步的关键字的,当然题目没有明明白白告诉你写synchronized这个关键字啦,否则就要被人BS了,哈哈。好在JAVA 下的同步基本实现机制相当简洁,只要刚才那个关键字申明一下就可以了,学过java多线程模型的人都应该知道填什么,可惜我那时我也拼写错误了,漏了一个字母。。。,好象是5分一题的,损失不小哦)等。可以说还是比较有代表性的。 HTML5前端面试题(含答案) 1、新的 HTML5 文档类型和字符集是? HTML5 文档类型很简单: 1 HTML5 使用 UTF-8 编码示例: 1 2、HTML5 中如何嵌入音频? HTML5 支持 MP3、Wav 和 Ogg 格式的音频,下面是在网页中嵌入音频的简单示例: 1 2 3 4 3、HTML5 中如何嵌入视频? 和音频类似,HTML5 支持 MP4、WebM 和 Ogg 格式的视频,下面是简单示例: 1 2 3 4 4、除了 audio 和 video ,HTML5 还有哪些媒体标签? HTML5 对于多媒体提供了强有力的支持,除了 audio 和 video 标签外,还支持以下标签: 1 1、列举你工作中遇到的IE6 BUG,谈谈解决方案。 3、如何用CSS分别单独定义IE6、7、8的width属性。 所有浏览器通用 height: 100px; IE6 专用 _height: 100px; IE6 专用 *height: 100px; IE7 专用 *+height: 100px; IE7、FF 共用 height: 100px !important; 4、CSS中哪些属性可以同父元素继承。 继承:(X)HTML元素可以从其父元素那里继承部分CSS属性,即使当前元素并没有定义该属性 Color;font-size; 5、你如何理解HTML结构的语意化。 1.去掉或样式丢失的时候能让页面呈现清晰的结构: html本身是没有表现的,我们看到例如 腾讯笔试题目及答案 1. 1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少? 答案:2和3 2 爸爸,妈妈,妹妹,小强,至少两个人同一生肖的概率是多少? 1-12*11*10*9/12*12*12*12 = 1-55/96 = 41/96 3, 计算 a^b << 2 答案: 运算符优先级:括号,下标,->和.(成员)最高; 单目的比双目的高; 算术双目的比其他双目的`高; 位运算高于关系运算; 关系运算高于按位运算(与,或,异或); 按位运算高于逻辑运算; 三目的只有一个条件运算,低于逻辑运算; 赋值运算仅比 , (顺序运算)高。 在此题中,位左移”<<”优先级高于按位异或”^”,所以b先左移两位(相当于乘以4), 再与a异或。 例如:当 a = 6; b = 4 时; 则 a^b<<2 = 22 4 如何输出源文件的标题和目前执行行的行数? 答案: printf(”The file name: %d ”, __FILE__); printf(”The current line No:%d ”, __LINE__); ANSI C标准预定义宏: __LINE__ __FILE__ __DATE__ __TIME__ __STDC__ 当要求程序严格遵循ANSI C标准时该标识符被赋值为1 __cplusplus__ 当编写C++程序时该标识符被定义 5 a[3][4]哪个不能表示 a[1][1]: *(&a[0][0]+5) *(*(a+1)+1) *(&a[1]+1) *(&a[0][0]+4) 答案: *(&a[1]+1) a是数组的首地址,a[1]就表示a[1][0]地址了,不用再取地址了。 6 fun((exp1,exp2),(exp3,exp4,exp5))有几个实参? 答案:两个。 形式参数:在声明和定义函数时,写在函数名后的括号中的参数。 实参是调用参数中的变量,行参是被调用函数中的变量。 7. 希尔冒泡快速插入哪个平均速度最快? 答案:快速排序 快速排序、归并排序和基数排序在不同情况下都是最快最有用的。 8. enum的声明方式 答案:enum 枚举类型名 { 枚举常量1,论文联盟https://www.sodocs.net/doc/5111876165.html, 枚举常量2, … 枚举常量n 前端面试题含答案 The latest revision on November 22, 2020 前端开发面试知识点大纲: HTML&CSS : 对Web 标准的理解、浏览器内核差异、兼容性、hack 、CSS 基本功:布 局、盒子模型、选择器优先级及使用、HTML5、CSS3、移动端适应 JavaScript : 数据类型、面向对象、继承、闭包、插件、作用域、跨域、原型链、模块 化、自定义事件、内存泄漏、事件机制、异步装载回调、模板引擎、Nodejs 、 JSON 、ajax 等。 其他: HTTP 、安全、正则、优化、重构、响应式、移动端、团队协作、可维护、SEO 、UED 、架构、职业生涯 作为一名前端工程师,无论工作年头长短都应该必须掌握的知识点: 1、DOM 结构 —— 两个节点之间可能存在哪些关系以及如何在节点之间任意移动。 产品部-前端面试题-答案 产品部 Beijing 2、DOM操作——如何添加、移除、移动、复制、创建和查找节点等。 3、事件——如何使用事件,以及IE和标准DOM事件模型之间存在的差 别。 4、XMLHttpRequest ——这是什么、怎样完整地执行一次GET请求、怎样检测 错误。 5、严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。 6、盒模型——外边距、内边距和边框之间的关系,及IE8以下版本的浏览器 中的盒模型 7、块级元素与行内元素——怎么用CSS控制它们、以及如何合理的使用它们 8、浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。 9、HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。 10、JSON ——作用、用途、设计结构。 HTML 一、Doctype作用严格模式与混杂模式如何区分它们有何意义 (1)、 声明位于文档中的最前面,处于 标签之前。告知浏览器的解析器,用什么文档类型规范来解析这个文档。 web前端面试题整理(HTML) 1. h5的改进: 新元素 画布canvas: HTML5 2016腾讯笔试题 2016腾讯笔试题 试卷类型:软件开发A1 考试时长:12分钟 一不定项选择题(共25题,每题4分,共1分,少选、错选、多选均不得分) 1 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D) A.CFHGEBDA B.CDFEGHBA C.FGHCDEBA D.CFHGEDBA 2 下列哪两个数据结构,同时具有较高的查找和删除性能?(CD) A.有序数组 B.有序链表 C.AVL树 D.Hash表 3 下列排序算法中,哪些时间复杂度不会超过nlogn?(BC) A.快速排序 B.堆排序 C.归并排序 D.冒泡排序 4 初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A) A.8 3 2 5 1 6 4 7 B.3 2 8 5 1 4 6 7 C.3 8 2 5 1 6 7 4 D.8 2 3 5 1 4 7 6 5 当n=5时,下列函数的返回值是:(A) [cpp] view plaincopy int foo(int n) if(n<2)return n; return foo(n-1)+foo(n-2); A.5 B.7 C.8 D.1 6S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为.1%,B区为.15%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?(C) A.37.5% B.32.5% C.28.6% D.(面试题目:什么样的工作环境适合你)26.1% 7Unix系统中,哪些可以用于进程间的通信?(BCD) A.Socket B.共享内存 C.消息队列 D.信号量 8 静态变量通常存储在进程哪个区?(C) A.栈区 B.堆区 C.全局区 D.代码区 9 查询性能(B) A.在Name字段上添加主键 B.在Name字段上添加索引 1)display:inline兼容所有的浏览器。请判断这句话的正确与否。 T F 2)从四个选项选出不同的一个。 a.web前端研发工程师笔试题选择题带答案
腾讯公司cc++笔试题
HTML5前端面试题(含答案)
WEB前端开发面试题集锦
是粗体,字体大小2em,加粗;是加粗的,不要认为这是html 这些其实html默认的css样式在起作用,所以去掉或样式丢失的时候能让页面呈现清晰的结构不是语义化的HTML 点,但是浏览器都有有默认样式,默认样式的目的也是为了更好的表达html的语义,可以说浏览器的默认样式和HTML结构是不可分割的。 2.屏幕阅读器(如果访客有视障)会完全根据你的标记来“读”你的网页. 例如,如果你使用的含语义的标记,屏幕阅读器就会“逐个拼出”你的单词,而不是试着去对它完整发音. 3.PDA、手机等设备可能无法像普通电脑的浏览器一样来渲染网页(通常是因为这些设备对CSS的支持较弱). 使用语义标记可以确保这些设备以一种有意义的方式来渲染网页.理想情况下,观看设备的任务是符合设备本身的条染网页. 语义标记为设备提供了所需的相关信息,就省去了你自己去考虑所有可能的显示情况(包括现有的或者将来新的设备一部手机可以选择使一段标记了标题的文字以粗体显示.而掌上电脑可能会以比较大的字体来显示.无论哪种方式一文本标记为标题,您就可以确信读取设备将根据其自身的条件来合适地显示页面. 4.搜索引擎的爬虫也依赖于标记来确定上下文和各个关键字的权重. 过去你可能还没有考虑搜索引擎的爬虫也是网站的“访客”,但现在它们他们实际上是极其宝贵的用户.没有他们的
腾讯笔试题目及答案
前端面试题含答案
html5面试题
2016腾讯笔试真题与答案
前端面试题第二套