阿里笔试题记录(Android客户端部分)

阿里笔试题记录(Android客户端部分)

选择题

结果应该是选择 80,8

思路:

- 指针的值都是一个个地址,而地址是用无符号整型值来表示的,也就是unsigned int。因此一个指针类型变量的大小就是unsigned int类型的大小。

- 64位系统,一个地址占用的二进制位数为64(8字节),32位系统,地址的二进制位数32(4字节)。参考64位操作系统的指针不都是64位吗

32位cpu和64位cpu,这个位数指的是数据字长,而不是地址字长。两者没有必然的数值上的联系。处理器字长是指处理器能同时处理的位数。 而处理器的寻址范围是要看处理器的地址总线的位数,32位地址总线能够访问0~2^32-1,也就是2^32个存储单元(4GB),因此32位cpu的指针大小就是4个字节(32bit)。64位处理器的数据总线为64位,而地址总线大都是32位(当然也有的64位处理器的数据总线和地址总线都是64位的)。参考文章32位机指针为什么是4个字节 64位与32位的区别

  • char*p[10]表示声明一个能够盛放10个char指针元素的数组,命名为p;char(*p)[10]表示声明一个指针,指向一个长度为10的char数组。
  • sizeof()函数,以字节的形式返回其操作数的存储大小。当操作数是指针时,该函数依赖于编译器…当操作数是数组类型时候,返回值是数组的总字节数。所以,sizeof(p)是计算的元素类型为char指针,元素数量为10的数组的大小,计算方式为元素类型占用内存的字节数*数组元素个数,sizeof(p1)是计算一个指针的大小。参考文章解析c语言的sizeof
  • 在编译器为GNU GCC Compiler下,结果为40,4。
  • 由于题干说是在64位系统下,所以地址长度应该是8字节。

我的结果是 1111110

思路:

- 数字组合,看题可得出每位数字的选择应该是0~9,10个数字。

- 从合法的口令的最低位数开始算起,当口令为1位时,有10种(10^1);口令为2位,有100种(10^2)…口令为6位时,有1000000(10^6)种。加起来为1111110种。

我的答案 以上都不是最优解

思路:

- 路人先选择袋子,每个袋子的被选中的几率是1/2。

- 在选择完袋子之后(假设选择了袋A,里面有红球r个,蓝球b个),拿到红球的概率是 r/(r+b)。

- 那么选择红球的概率是 1/2 * (50-r)/(100-r-b) + 1/2 * r/(r+b)

- 当r=49,b=50时,上式为 1/2 + 49/99 结果都大于选项的结果。

…这个谁会?没思路看不懂

同样没思路啊啊啊,想必不是用穷举…

我的答案是瞎蒙的..

分析:

- 由题干知道,可以构建一个有向图。每个人都抽象为图的一个顶点,方向指向为纸条上的人名。不允许指向自己;图的每个顶点拥有两条边(一条指向自己,一条指向别的顶点)。

强联通 :在有向图G中,如果任意两个不同的顶点相互可达,则称该有向图是强连通的。有向图G的极大强连通子图称为G的强连通分支

在图论中,连通图基于连通的概念。在一个无向图 G 中,若从顶点vi到顶点vj有路径相连(当然从vj到vi也一定有路径),则称vi和vj是连通的。如果 G 是有向图,那么连接vi和vj的路径中所有的边都必须同向。如果图中任意两点都是连通的,那么图被称作连通图

连通分量:无向图 G的一个极大连通子图称为 G的一个连通分量(或连通分支)。连通图只有一个连通分量,即其自身;非连通的无向图有多个连通分量。

  • 这么一判断,纸上画个图,对于选项可以用双向链表存储其结构,感觉应该是错的,应该是可以用循环单向链表存储其结构。
  • 感觉遍历的复杂度是O(n)好像是对的。。

我的答案是 31

思路:

- 就是算最少多少位二进制数可以容纳20亿。2^10 约做10^3,那么2^30约为10^9(10亿,当然2^30比10亿大,比20亿小)。于是31是最小值。

我的答案:FTP

思路(刚好最近在复习计算机网络,大概看了下5层模型里面常用的协议):

- DNS:域名系统,用于域名和ip地址之间的相互映射。在地址栏内输入天猫的域名,通过dns将域名转换为ip地址,属于应用层协议。

- TCP:传输控制协议,应用层的httphttps协议都是基于传输层的TCP协议的,属于运输层协议。

- IP:网际协议,通过IP进行网络之间设备的互联,相当于快递的地址,属于网络层协议。

- ARP:地址解析协议,根据ip地址获取物理地址(Mac地址),位于五层模型的数据链路层。

- ICMP:英特网控制报文协议,用于在ip主机、路由器之间传送控制消息,不用于传输数据,但对于用户数据传输有着重要的作用。属于网络层协议。

- FTP:文件传输协议,属于应用层协议,也是一个应用程序。

我的答案是 6

思路:

笨办法,算… 7-3+4-2+3-3+4-4+7-7=6

求个聪明的办法。。

我的答案:第三个

对c++不太熟,更别说相关的库了。

STL = Standard Template Library:标准模板库,是一些“容器”的集合。

std:sort不是稳定排序算法,std:stable_sort来保证这一点。

…于是出现了对数函数,我还能说什么?

思路:

- 于是g(x) = ax^2-8x+a-6,包含所有正数。

- 当a=0,-8x-6 可以取得所有正数。

- 当a<0,二次函数图象开口向下,取不到所有正数。

- 当a>0,二次函数图象开口向上,当a=8时,有一个零点(x=1/2),当a取10时,没有零点,区不到所有正数。

- 因此答案为[0,8]

概率题,这个不大会…

我的答案:a=10,x=2

- 很简单的三元运算符操作

当时笔试的时候我没做出来。。不过第一道题琢磨懂了之后再看这个还是不难的。。只不过不知道特地支出在Linux系统下是什么梗..

  • 如果sizeof操作数是函数中的数组形参火函数类型的形参,sizeof给出其指针的大小。参考文章解析c语言的sizeof
  • 在头文件stdint.h中有如下声明typedef int int32_t;在int为4字节的系统typedef int int32_t不用变,使用int32_t则为4字节;在int为2字节的系统typedef long int32_t 改变intlong,使用int32_t还是4字节。总的来说,移植到2字系统只改变typedef long int32_t中的int,而不需要全部改变int32_t
  • 所以上面的64位Linux系统应该是烟雾弹,答案应该是40,4。

当时学数据结构的时候,哈希表那块老师没细讲,再加上也没认真听(现在回想起来,之前上的课几乎都后悔没有认真听讲了…),现在的了解都是零零碎碎的…

- 题目不会

- 附上一篇文章哈希表及处理冲突的方法

正好前一段时间复习排序算法的时候,特意重点看了快排。

- 根据分析,一轮排序后,主元的所在位置前的所有元素应该小于主元的值,主元之后的所有元素应该大于主元的值,因此14、17、24都有可能是主元(划分基数).

- 附上我之前写的关于快排的博客快速排序的学习中遇到的问题(java)

当时记录下来的选择题就是这些了…附加题是Android相关的主观题,一共三道。花了四个小时重新看了一遍这些题,感觉收获还是挺大的。

我一同学是报前端的…参加十场前端的笔试,把笔试中不懂的题都搞懂了,也应该就差不多了hahaha

时间: 2024-12-14 18:11:19

阿里笔试题记录(Android客户端部分)的相关文章

阿里笔试题之Android网络优化

记得这是阿里校招笔试的一道问答题 答案是小伙伴们之后一起拼出来的,不乏有些飘忽的东西,需要的朋友可以做个参考(具体细节可以自行百度),欢迎提出更好的建议! 在客户端方面: 1.减少网络请求的数量,能够合并的网络请求尽量合并,尽量在一次查询中完成多个零散数据的查询 2.为网络数据做本地缓存处理 3.设置超时时间,数据压缩传送,比如从服务器端获取列表数据,如果可以最好是能将服务器端的流压缩一下,接收压缩流,这样速度会快点,而且省流量. 3.多线程处理,不要死等网络操作的结果,把耗时工作及计算放在子线

有意思的笔试题记录与分析

昨天参加了某公司的笔试,总的来说题目很简单.但是还是有几个个题目是很有意思的,拿来和大家分享下! 1.小周带着他的鸵鸟穿越1000公里的沙漠,运送3000颗白菜.已知鸵鸟一次性可驼1000颗白菜,但每走1公里又要吃掉1棵白菜,问:小周最终可以运多少颗白菜? 分析:记得以前算法设计书上有个类似的油车过沙漠的问题,当时这问题是用倒推法来解决的,因为它有个结题突破口:油车以最少的耗油量穿过沙漠.本题同是过沙漠问题,但是却没有像油车过沙漠的解题突破口,怎么办呢?我们先想一个极限:让小周直接带着1000颗

阿里笔试题(2015)持续更新中

第一次做阿里笔试题,除了ACM题之外从来没有做过校招网络题呀,完全是裸考,总体感觉吧,对于我来说,感觉时间不够用,不是题不会,感觉时间紧,大脑很混乱,总结这一次的笔试题 废话不多说,直接上题和答案 平均每个人逗留时间为20分钟,那么开场前20分钟一共来了400人,且有20个人逗留时间已经到,但他们不一定出去,注意是平均时间,所有博物馆最少应该容纳500人 双向循环列表,从任何一个元素开始可以遍历全部元素 先和后面的元素相连 s->next=p->next; p->next->pre

阿里笔试题-派生类构造函数 创建顺序

派生类 与基类的关系: (1)创建构造函数的顺序 :基类构造函数(注意此处基类的成员不能初始化) ==>派生类成员初始化 ==>派生类构造函数 (2)派生类的构造函数 中 基类的构造函数默认在第一条,如果不写super(),则默认在第一条,注意位置不能颠倒 (3)派生类可以继承全部的基类的构造函数 阿里笔试题 举个栗子: 1 package com.test; 2 3 public class DispatchTest { 4 5 public static void main(String[

一天积累一点儿之阿里笔试题

励志把阿里的题库弄出来!当然,主要目的还是想知道自己还有哪些知识点的欠缺和不足 1. (1)这个element的onclick事件,this当然指的是这个element了 (2)window (3)window  这两种方式都没有把element传给doSomething,所以this默认指向window 2. 1 Array.prototype.sorting = function(fn){ 2 var t; 3 if(!fn){ 4 fn = function(a,b){ 5 return

又一份阿里笔试题

接踵而至的笔试啊...各种忙碌啊... 1,  假设把整数关键码K散列到有N个槽的散列表,以下哪些散列函数是好的散列函数() A.h(k)= K/N  B.h(k)=1  C.h(k) = k mod N D.h(k) = (K + random(N) ) mod N   ,random(N)返回一个0到N的整数 2,下面的排序算法中,初始化数据集的排练顺序对算法的性能无影响的是() A,堆排序  B,插入排序  C,冒泡排序  D,快速排序 3,下面说法错误的是() A,CISC计算机比RIS

惨挂阿里笔试题

昨天阿里笔试,惨挂到一算法题,现分享此题,集网友智慧,看如何解答此题. 请大神们不吝赐教哦! 版权声明:本文为博主原创文章,未经博主允许不得转载.

阿里笔试题——算阶乘的末尾有几个零

用十进制计算30!(30的阶乘),将结果转换成3进制进行表示的话,该进制下的结果末尾会有____个0. 答案选14 #include<iostream> using namespace std; #define LINT int LINT count_number(LINT n) { LINT a=n; LINT re=0; while(1) { if(a==0) break; LINT b=a; a--; while((b!=0)&&(b%3==0)) { re++; b=b

阿里笔试题:求两个子序列的最大连续子序列

原题例如以下: 给定一个query和一个text,均由小写字母组成.要求在text中找出以相同的顺序连续出如今query中的最长连续字母序列的长度.比如.query为 "acbac",text为"acaccbabb",那么text中的"cba"为最长的连续出如今query中的字母序列,因此.返回结果应该为其长度3.请注意程序效率. 解题方法一: 和字符串匹配一样(http://blog.csdn.net/sinat_24520925/articl