某大公司招聘Web开发工程师职位时的笔试题(部分),1小时内完成。对很多人来说,可能并不难,但这毕竟是一个大公司全面考察人才的经典综合题型。
1. SQL
有三个表: 部门,员工,手机
部门表字段:
部门代码(pk),部门名
员工表字段:
员工代码(pk),员工名,部门代码(rk)
手机表字段:
手机号(pk),品牌,手机mail,员工代码(rk)
要求:
A. 查询出部门名、员工名、手机号、手机mail一览(按部门名排序)
B. 统计部门有手机员工的人数:部门、有手机的员工人数一览(按部门名统计)
depcode | depname |
---|---|
001 | Sales |
002 | Tech |
empcode | empname | depcode |
---|---|---|
1001 | zhang | 001 |
1002 | wang | 001 |
1003 | li | 001 |
2001 | zhou | 002 |
2002 | qian | 002 |
telno | telbrand | telmail | empcode |
---|---|---|---|
1000001 | Nokia | zhang@sample.com | 1001 |
1000002 | Nokia | wang@sample.com | 1002 |
1000003 | Nokia | li@sample.com | 1003 |
2000001 | Motolora | zhou@samle.com | 2001 |
2000002 | Motolora | 2002 |
答案:
SELECT D.depname, EM.empname, EM.telNo, EM.telMail
FROM department AS D LEFT JOIN [select E.depcode, E.empcode, E.empname, M.telNo, M.telMail from employee as E
left join telephone as M on E.empcode = M.empcode]. AS EM ON D.depcode = EM.depcode
ORDER BY D.depcode, EM.empcode
depname | empname | telNo | telMail |
---|---|---|---|
Sales | zhang | 1000001 | zhang@sample.com |
Sales | wang | 1000002 | wang@sample.com |
Sales | li | 1000003 | li@sample.com |
Tech | zhou | 2000001 | zhou@samle.com |
Tech | qian | 2000002 |
----------
SELECT depname, count(telMail) AS mailCnt
FROM query1
GROUP BY depname
ORDER BY mailCnt
depname | mailCnt |
---|---|
Tech | 1 |
Sales | 3 |
2. 算法
A. 去除input元素数组中重复值
取得input元素的得,并且作成一个数组,但数组中的值唯一。
答案(功能已验证成功,但可能会有不足之处):
B. 比较两个字符串
写一个match方法(使用语言不限),判断两个字符串是否一致,但可以使用“?”符号,作为任意一个字符。
match("abcdefg", "abc?efg") - 相符
match("abcdef", "abcdef?") - 不符
答案(功能已验证成功,但可能会有不足之处):javascript实现方式
3. 页面控制(ASP.NET)
页面上有一个按钮,两个标签。其中一个标签显示临时信息,一个标签显示结果信息(按钮标签均为ASP.NET服务器控件)。且临时标签中初始显示“请单击按钮”。
单击按钮,临时信息标签中显示“正在处理中...”,而显示结果标签中稍后显示从服务端返回的值(任意文本值),最后临时标签中又恢复初始值“请单击按钮”。
4. 技术术语说明
A. Ajax
B. Cascading Style Sheet
C. 死锁
5. 逻辑题,根据表述说明理由及对策
(忘记了^_^)