2011淘宝技术类校园招聘之笔试题解析
题目来源自:http://apps.hi.baidu.com/share/detail/31359085
笔试一共四个大题,一、二、四必做,三根据申请职位不同选作,一个小时的时间
一,选择:
1. 下列关于模块功能独立性,模块内聚与耦合,关于内聚的是:
a)信息隐蔽 b)模块功能强度 c) d)记不清楚了
2. 下列哪个Http的返回编码不正确
考了403 500 501 502(正确意思分别是禁止访问、内部服务器错、未实现、网关错误)
3. Struct st{char* a,short b,char c[5],int d};
St xx[3];
Char* p=(char*)&(xx[2].c[4]);
Printf(“%d”,p-xx);
打印结果是():
a)62 b) 42 c) 32 d) 52
4. (¬A ∨B)∧(C∨D )的逆波兰式是:
5. 想不起来了……
二,填空:
1. Linux系统中改变文件所有者的命令是:
2. 进程的三种状态是:
3. 按区域分三种网络是:
4. 一个8位数,它的补码有3个1,5个0,那么补码形式最小是:
5. Int countx=0;
Int x=17373;
Void f(){
While(x)
{
countx ++;
X=x&(x-1);
}
Return countx;
}
问返回值是:
四,编程:
假设骰子有1~6个点,掷十次,总和为50,问有多少种方法。编写递归算法实现。
三,选作题目(记得不全)
C++部分:
1. 编程实现n的阶乘,尽量考虑各种异常
2. 举例说明OOD设计原则,并说明对项目实施有什么好处
其他题目(有java、前端等等)
1.给了一个“回到顶部”的小按钮,让javascript 与css实现点击回到本页顶部,这个按钮一直位于当前页面最左下部。
2.给了四副图片,一个在左边,三张在右边随机叠放,用javascrpt 与css实现右边图片点击放大,出现任意图片可以随机摆放,而且会有重叠
3.给了一个购物流程,让设计测试用例
参考资料汇总:
http常见错误汇总
"100" : Continue
"101" : witching Protocols
"200" : OK
"201" : Created
"202" : Accepted
"203" : Non-Authoritative Information
"204" : No Content
"205" : Reset Content
"206" : Partial Content
"300" : Multiple Choices
"301" : Moved Permanently
"302" : Found
"303" : See Other
"304" : Not Modified
"305" : Use Proxy
"307" : Temporary Redirect
"400" : Bad Request
"401" : Unauthorized
"402" : Payment Required
"403" : Forbidden
"404" : Not Found
"405" : Method Not Allowed
"406" : Not Acceptable
"407" : Proxy Authentication Required
"408" : Request Time-out
"409" : Conflict
"410" : Gone
"411" : Length Required
"412" : Precondition Failed
"413" : Request Entity Too Large
"414" : Request-URI Too Large
"415" : Unsupported Media Type
"416" : Requested range not satisfiable
"417" : Expectation Failed
"500" : Internal Server Error
"501" : Not Implemented
"502" : Bad Gateway
"503" : Service Unavailable
"504" : Gateway Time-out
"505" : HTTP Version not supported
HTTP 400 - 请求无效
HTTP 401.1 - 未授权:登录失败
HTTP 401.2 - 未授权:服务器配置问题导致登录失败
HTTP 401.3 - ACL 禁止访问资源
HTTP 401.4 - 未授权:授权被筛选器拒绝
HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败
HTTP 403 - 禁止访问
HTTP 403 - 对 Internet 服务管理器 (HTML) 的访问仅限于 Localhost
HTTP 403.1 禁止访问:禁止可执行访问
HTTP 403.2 - 禁止访问:禁止读访问
HTTP 403.3 - 禁止访问:禁止写访问
HTTP 403.4 - 禁止访问:要求 SSL
HTTP 403.5 - 禁止访问:要求 SSL 128
HTTP 403.6 - 禁止访问:IP 地址被拒绝
HTTP 403.7 - 禁止访问:要求客户证书
HTTP 403.8 - 禁止访问:禁止站点访问
HTTP 403.9 - 禁止访问:连接的用户过多
HTTP 403.10 - 禁止访问:配置无效
HTTP 403.11 - 禁止访问:密码更改
HTTP 403.12 - 禁止访问:映射器拒绝访问
HTTP 403.13 - 禁止访问:客户证书已被吊销
HTTP 403.15 - 禁止访问:客户访问许可过多
HTTP 403.16 - 禁止访问:客户证书不可信或者无效
HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效
HTTP 404.1 - 无法找到 Web 站点
HTTP 404 - 无法找到文件
HTTP 405 - 资源被禁止
HTTP 406 - 无法接受
HTTP 407 - 要求代理身份验证
HTTP 410 - 永远不可用
HTTP 412 - 先决条件失败
HTTP 414 - 请求 - URI 太长
HTTP 500 - 内部服务器错误
HTTP 500.100 - 内部服务器错误 - ASP 错误
HTTP 500-11 服务器关闭
HTTP 500-12 应用程序重新启动
HTTP 500-13 - 服务器太忙
HTTP 500-14 - 应用程序无效
HTTP 500-15 - 不允许请求 global.asa
Error 501 - 未实现
HTTP 502 - 网关错误
逆波兰式其实就是后缀表达式,其形式进行将运算表达式进行转换,操作数放在操作符前面,比如:
a+b
其对应的后缀表达式:a b +
遵守这个原则,那么下面这个复杂的运算式:(a+b)*(c/d+5)
对应的逆波兰式:ab+cd/5+*
其中对应的优先级:
Precedence | Operator | Description | Example | Associativity |
---|---|---|---|---|
1 | () [] -> . :: ++ -- |
Grouping operator Array access Member access from a pointer Member access from an object Scoping operator Post-increment Post-decrement |
(a + b) / 4; array[4] = 2; ptr->age = 34; obj.age = 34; Class::age = 2; for( i = 0; i < 10; i++ ) ... for( i = 10; i > 0; i-- ) ... |
left to right |
2 | ! ~ ++ -- - + * & (type) sizeof |
Logical negation Bitwise complement Pre-increment Pre-decrement Unary minus Unary plus Dereference Address of Cast to a given type Return size in bytes |
if( !done ) ... flags = ~flags; for( i = 0; i < 10; ++i ) ... for( i = 10; i > 0; --i ) ... int i = -1; int i = +1; data = *ptr; address = &obj; int i = (int) floatNum; int size = sizeof(floatNum); |
right to left |
3 | ->* .* |
Member pointer selector Member pointer selector |
ptr->*var = 24; obj.*var = 24; |
left to right |
4 | * / % |
Multiplication Division Modulus |
int i = 2 * 4; float f = 10 / 3; int rem = 4 % 3; |
left to right |
5 | + - |
Addition Subtraction |
int i = 2 + 3; int i = 5 - 1; |
left to right |
6 | << >> |
Bitwise shift left Bitwise shift right |
int flags = 33 << 1; int flags = 33 >> 1; |
left to right |
7 | < <= > >= |
Comparison less-than Comparison less-than-or-equal-to Comparison greater-than Comparison geater-than-or-equal-to |
if( i < 42 ) ... if( i <= 42 ) ... if( i > 42 ) ... if( i >= 42 ) ... |
left to right |
8 | == != |
Comparison equal-to Comparison not-equal-to |
if( i == 42 ) ... if( i != 42 ) ... |
left to right |
9 | & | Bitwise AND | flags = flags & 42; | left to right |
10 | ^ | Bitwise exclusive OR | flags = flags ^ 42; | left to right |
11 | | | Bitwise inclusive (normal) OR | flags = flags | 42; | left to right |
12 | && | Logical AND | if( conditionA && conditionB ) ... | left to right |
13 | || | Logical OR | if( conditionA || conditionB ) ... | left to right |
14 | ? : | Ternary conditional (if-then-else) | int i = (a > b) ? a : b; | right to left |
15 | = += -= *= /= %= &= ^= |= <<= >>= |
Assignment operator Increment and assign Decrement and assign Multiply and assign Divide and assign Modulo and assign Bitwise AND and assign Bitwise exclusive OR and assign Bitwise inclusive (normal) OR and assign Bitwise shift left and assign Bitwise shift right and assign |
int a = b; a += 3; b -= 4; a *= 5; a /= 2; a %= 3; flags &= new_flags; flags ^= new_flags; flags |= new_flags; flags <<= 2; flags >>= 2; |
right to left |
16 | , | Sequential evaluation operator | for( i = 0, j = 0; i < 10; i++, j++ ) ... | left to right |
Linux下常用命令可以从我这里下载,我之前从网上搜集过一个比较全的版本:
/Files/weisteve/Linux常用命令全集.rar
进程的三个状态:就绪 执行 阻塞
三个状态的关系:
(1) 就绪->执行
网络按覆盖范围分为:
局域网 城域网 广域网
记得x&(x-1)每进行一次操作,其实是去除了x中的最后一个1,那么x的二进制有多少个1,此操作就进行了几次循环,遵循这个思路,上述程序只要写出
其二进制形式就得出结论。
第四题编程题,
这题实际上就是求六个数,可以相同,也可以两两不同, 但总和要等于50
这题属于基本题。自己写程序吧。
后续的n!也是属于基本题,但是题目考察的各种异常,请记得罗列出程序的可能异常。
比如:越界,等于0,负数,等等
java前端的不熟悉,略过
出处:http://www.cnblogs.com/weisteve/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。