2014 年 3 月阿里巴巴实习招聘笔试题及部分答案
1. 解析:192.168.1.121 & 255.255.255.248 = 192.168.1.120
IP & 子网掩码 = 主机网络号
参考:http://baike.baidu.com/link?url
=zqDQnsPwmCfpXhTeOIZMiHVFGibN1A0rbJLCsijKkOcwn5yuJPSy78HKVkWxv-Le
int 型的字节数 = 系统位数/8
2.
3. C
4.
C 语言的数据在内存中以补码形式存放,根据题目的条件,可将 x、y、z 的值由十进
制转为二进制补码。
x 为 int 型,且在 32 位的机器上运行,因此 x 字长为 32 位,转换成二进制为 0000
0000 0000 0000 0000 0000 0111 1111,再转换成十六进制为 0000007FH。
y 为 short 型,且在 32 位的机器上运行,因此 y 字长为 16 位,转换成二进制为
1111 1111 1111 0111(取反加 1),再转换成十六进制为 FFF7H。
z 为 int 型,且在 32 位的机器上运行,因此 z 字长为 32 位,z=x+y=127-9=118,
转换成二进制为 0000 0000 0000 0000 0000 0000 0111 0110,再转换成十六进制为
00000076H。
5. 解析:实际敲了一下代码,编译好像过不去呀。但应该是先 D
6. 删除只要是当前结点后面的全部向前移动一个位子就可以了。
插入需要把当前结点及当前结点后面的全部向后移动一个结点。
所以插入需要的次数应该是删除多一个。
7. 这里需要搞明白实参与形参的区别。程序里 x++实际影响的是形参,不会影响实参,
所以不可能是 c 但形参与实参都指向同一串字符串,所以可以改变字符串内容,选 B
8.B
形参和实参的区别
形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。
实参出现在主调函数中,进入被调函数后,实参变量也不能使用。
形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数
的形参从而实现主调函数向被调函数的数据传送。
1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。
因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。
2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用
时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办
法使实参获得确定值。
3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。
4.函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的
值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变
化。
5.当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,
他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结
束的时候形参被释放,而实参内容不会改变。
而如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参
的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。所以
在函数体内部可以改变实参的值。
9. B 这里要搞明白‘0’与 0 的区别,‘0’的 asci 值是 30,所以这里的 if('0'),应该是真
10--C
费波那契数列
f1=1 f2=2 3 5 8 13
11. 不清楚怎么估算,实际敲了一下代码,应该是几个小时
12. 每增加一个度为 4 的结点,叶子增加 3 个,
每增加一个度为 3 的结点,叶子增加 2 个,
每增加一个度为 2 的结点,叶子增加 1 个,
每增加一个度为 1 的结点,叶子数不变。
原来只有一个根。所以 1 + 3*20+2*10+1=82
13.D
14. 二分查找,和二分排序要搞明白区别。查找只要一个数。 C
15.最大流最小割定理:最大流等于最小割容量;
如图最小割容量为 15+19+12=46
16.B
只观察老板拿出去多少真钱,收回来多少真钱
17.
方法 1:
这题可以通过找规律的方法:
2^1: 2 mod 7 = 2
2^2: 4 mod 7 = 4
2^3: 8 mod 7 = 1 (如果从‘次方数增加一,余数要翻一倍’这点来看,规律已经被找到了,
但是为了验证还是多写一次循环)
2^4: 16 mod 7 = 2
2^5: 32 mod 7 = 4
2^6: 64 mod 7 = 1
这样子规律就被找到了。余数是每三个一循环的。
这样的话 2^99 mod 7 = 1 (因为 99 能被 3 整除)
所以 2^100 mod 7 = 2
方法 2:
欧拉定理:对于互质的整数 a 和 n,有 a^φ(n) ≡ 1 mod n
欧拉函数φ(n)是指:对于一个正整数 n,小于 n 且和 n 互质的正整数的个数,记做:φ(n),
其中φ(1)被定义为 1,但是并没有任何实质的意义。
数学公式: (a * b ) mod c = (( a mod c) * b) mod c;
更进一步:如果 a mod q = b, c mod q =d; 如果 bd
结果 1
注意: =