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+*


其中对应的优先级:

PrecedenceOperatorDescriptionExampleAssociativity
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 ANDflags = flags & 42;left to right
10^Bitwise exclusive ORflags = flags ^ 42;left to right
11|Bitwise inclusive (normal) ORflags = flags | 42;left to right
12&&Logical ANDif( conditionA && conditionB ) ...left to right
13||Logical ORif( 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 operatorfor( i = 0, j = 0; i < 10; i++, j++ ) ...left to right


Linux下常用命令可以从我这里下载,我之前从网上搜集过一个比较全的版本:

/Files/weisteve/Linux常用命令全集.rar 

 

进程的三个状态:就绪 执行 阻塞

三个状态的关系:

 (1) 就绪->执行

处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。
 (2) 执行->就绪
处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。
 (3) 执行->阻塞
正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。
 (4) 阻塞->就绪
处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。

 

 网络按覆盖范围分为:

局域网 城域网 广域网 

 

 

记得x&(x-1)每进行一次操作,其实是去除了x中的最后一个1,那么x的二进制有多少个1,此操作就进行了几次循环,遵循这个思路,上述程序只要写出

其二进制形式就得出结论。 

 

 

第四题编程题,

这题实际上就是求六个数,可以相同,也可以两两不同, 但总和要等于50

这题属于基本题。自己写程序吧。

后续的n!也是属于基本题,但是题目考察的各种异常,请记得罗列出程序的可能异常。

比如:越界,等于0,负数,等等

 

java前端的不熟悉,略过

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值