笔试真题解析 ALBB-2015 算法project师实习生机试
1.用十进制计算30!(30的阶乘),将结果转换成3进制进行表示的话,该进制下的结果末尾会有____个0。
【解析】
计算N。下3进制结果末尾有多少个0,事实上就是计算3进制中的3被进位多少次,仅仅要将N!因式分解成3^m*other。m就是答案。技巧性的解法就是m=N/3+N/(3^2)+N/(3^3)....+N(3^k) (k<=N/3) —— N=30;N/3+N/9+N/27=14。
2.小赵和小钱二人分别从寝室和图书馆同一时候出发。相向而行。过了一段时间后二人在中途相遇。小赵继续向图书馆前进,此时:若小钱继续向寝室前进。则当小赵到达图书馆时,小钱离寝室还有600米。若小钱马上折返向图书馆前进,则当小赵到达图书馆。小钱离图书馆还有150米。那么图书馆与寝室间的距离是____。
【解析】
方法一:
设小赵。小钱速度分别位v1,v2。相遇前后时间为t1,t2。
则能够得到:
v1( t1+t2 )=s;v2( t1+t2 )= s-600;v1/v2=s /( s-600 )
(v1-v2)( t1+ t2 ) = 600;(v1-v2) t2 = 150。v2 t1 = v1 t2。v1/v2 = 1/3
s/(s-600) = 1/3;s=900。
方法二:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="600" height="85" alt="">
(x+150)/y =(x+150)/x=(600+y)/(x+150)=v1/v2;
x=y=75;s=600+75*2+150=900。
3.某开发团队有6位开发同学,需參加5个项,每位同学须要恰好參加1个项,那么总共同拥有____ 种不同的分配案
【解析】
六人五个项目,必有一项目两人做C(1/5)*C(2/6)。剩下四人座剩下四个项目A(4/4)。则N=C(1/5)C(2/6)A(4/4)。
4.例如以下SQL语句中。____可能返回null值。
(1) select count(*) from t1;
(2) select max(col1) from t1;
(3) select concat('max=',max(col1)) from t1;
【解析】
(1)返回的是表的行数。假设没有记录,应该返回0,不会出现NULL,
(2) 和(3) 正常情况下不会出现NULL,可是假设表里面没有记录,则会出现NULL。
5.略
6.下面关于STL的描写叙述中,____是错的。
STL容器是线程不安全的
当容量不够时,vector内部内存扩展方式是翻倍
std::sort是稳定排序
std::bitset不是一个STL容器
std::stack默认是用deque实现的
std::string中能够存储多个’\0’字符
【解析】
A:“非常多程序猿希望STL实现是全然线程安全的“。所以不安全。
B:vector的存在能够使开发人员不必关心内存的申请和释放。可是。vector的一个缺点就是它的内存分配是依照2的倍数分配内存的。
C:错误。
要知道 std::sort 不是稳定的排序算法。它不保证“相等”元素的相对位置。使用 std::stable_sort 来保证这一点
D:STL的容器能够分为下面几个大类:
一:序列容器, 有vector, list, deque, string.
二:关联容器, 有set, multiset, map, mulmap, hash_set, hash_map, hash_multiset, hash_multimap
三:其它的杂项: stack, queue, valarray, bitset
E:正确。堆栈是一个线性表。插入删除操作都在一端进行,deque是先进先出的。操作原理和stack是一样的
7.有8仅仅球队,採用抽签的方式随机配对,组成4场比赛。如果当中有4仅仅强队,那么出现强强对话 (随意两仅仅强队相遇)的概率是____。
【解析】
所有可能性是C8 2C6 2C4 2/A4 4 = 105 种。
强弱搭配,由于恰好都是4个。共同拥有A4 4 = 24 种。
答案就是 1-(24/105) = 27/35
8.两个市区C1和C2。其人口比率是1:3,从今年的患病统计来说,C1市区因为污染严重,患癌的概率是0.1%,而C2市的患癌概率是0.02%。如今医院接收到一位患癌病人。他是C1市区来的概率是____。
【解析】
这里运用了概率论中的贝叶斯公式,仅仅是换了一种方式,通过已知结果找寻原因。
如果C1市区有100人。C2市区有300人,如果患病事件记为Y。如今医院接收到一位患癌病人,他是C1市区来的概率P(C1|Y)=(100*0.1%)/(100*0.1%+300*0.02%)=0.625
9.以下代码在64位Linux系统编译运行,输出结果是____。
#include <stdint.h>
#include <stdio.h>
void print_size(int32_t array[10]){
printf("%d\n", sizeof(array));
}
int main () {
int32_t myArray[10];
printf("%d ", sizeof(myArray));
print_size(myArray);
}
【解析】
64位Linux系统指针占8个字节;int32_t 仍然占用32位,4个字节;
输出: 40 8
10.如果某棵二叉查找树的全部键均为1到10的整数,如今我们要查找5。以下____不可能是键的检查序列。
10,9,8,7,6,5
2,8,6,3,7,4,5
1,2,9,3,8,7,4,6,5
2,3,10,4,8,5
4,9,8,7,5
以上均正确
【解析】
二叉搜索树不可能存在一种检索方式是后面的键值有比当前键值大的也有比当前键值小的,要么比当前键都大,要么都小。
因此,2,3,10,4,8,5有可能,2,8,6,3,7,4,5绝对没可能。
11.下面程序在32位机器上执行输出是____。
#include <iostream>
using namespace std;
class animal
{
protected:
int age;
public:
virtual void print_age(void) = 0;
};
class dog : public animal
{
public:
dog() {this -> age = 2;}
~dog() { }
virtual void print_age(void) {cout<<"Wang, my age = "<<this -> age<<endl;}
};
class cat: public animal
{
public:
cat() {this -> age = 1;}
~cat() { }
virtual void print_age(void) {cout<<"Miao, my age = "<<this -> age<<endl;}
};
int main(void)
{
cat kitty;
dog jd;
animal * pa;
int * p = (int *)(&kitty);
int * q = (int *)(&jd);
p[0] = q[0];
pa = &kitty;
pa -> print_age();
return 0;
}
【解析】
指针的数据类型是实函数的类型,指针指向的对象的数据类型,是虚函数的数据类型。
详见:C++ 覆盖 重载 隐藏 浅析
详址:http://blog.csdn.net/u013630349/article/details/46706299
详址:http://blog.csdn.net/u013630349/article/details/47834803
输出为 :Wang, my age = 1
/***********************************************************************
http://www.nowcoder.com/test/question/done?tid=449827&qid=23484#summary
***********************************************************************/
12.A。B,C三位同学都是非常聪明的同学,面试官给他们背上依次贴上了数字2,4,8,他们都能看见别人的数字但无法看见自己的数字,如今面试官告诉他们这些数字都是自然数而且构成一个等比数列,让A、B、C同学依次循环回答是否确定自己的数字是多少,每位同学的回答算作一次,经过____次有同学能准确说出自己的数字。
【解析】
1、第一次是A,此时他看到4和8。能推断出来等比是2,自己的数字可能是2或者16。回答不确定
2、第二次是B,此时他看到2和8,此时等比可能是2,那么自己的数字是4;或者等比是4,自己的数字是32。
B知道A能看到8和自己的数字。假设自己的数字是4,那么A有两种可能,所以A回答不确定。假设自己的数字是32。那么A仍然有多种可能,所以A仍然能够回答不确定。
所以B此时不能通过A的回答排除当中一种可能性。回答不确定
3、第三次是C,此时他能看到2和4,能推断等比是2。自己的数字可能是1或者8。C知道B能看到2和自己的数字。假设自己的数字是1,那么对B来说仅仅能是4,是确定的。
但B回答不确定。所以能够排除这样的可能。
因此C能确定自己的数字是8。
13.给定一个整数sum,从有N个无序元素的数组中寻找元素a、b、c、d,使得 a+b+c+d =sum,最快的平均时间复杂度是____。
【解析】
leetcode k sum 问题,思路是利用高速排序思想。排序之后利用动态规划算法从而求解——先排序后加逼。
算法时间复杂度 O(N^2logN)。
14.设二叉树结点的先根序列、中根序列和后根序列中,全部叶子结点的先后顺序____。
【解析】
三者同样
15.将整数序列(7-2-4-6-3-1-5)按所看到的顺序构建一棵二叉排序树a(亦称二叉搜索树),之后将整数8依照二叉排序树规则插入树a中,请问插入之后的树a中序遍历结果是____。
【解析】
看清每个字 1-2-3-4-5-6-7-8
16.下列各项技术中,目的与程序的容错(fault-tolerance)最不相关的是____。
fail fast
graceful degradation
backup
sandbox
checkpoint
watchdo
【解析】
1.graceful degradation (优雅降级):优雅降级(Graceful degradation)是指电脑,机器,电子系统或者是网络在本身大部分已经毁坏或无效的情况下还能保持有限的功能这样的能力。优雅降级的目的是阻止灾难性的失败。
理想情况下,有优雅降级特征的系统即使多个组件同一时候失效也不会引起停机。在优雅降级中,操作的效率和速度随着失效部件的添加逐渐下降。
2.sandbox(沙盒/沙箱) 用于为一些来源不可信、具备破坏力或无法判定程序意图的程序提供试验环境。然而,沙盒中的全部修改对操作系统不会造成不论什么损失。
通常这样的技术被计算机技术人员广泛使用,尤其是计算机反病毒行业,沙盒是一个观察计算机病毒的重要环境。 影子系统 即是利用了这样的技术的软件之中的一个。
有时沙盒也叫 沙箱 ,英文 sandbox 。在计算机领域指一种 虚拟技术 。且多用于 计算机安全技术 。其原理是通过重定向技术,把程序生成和改动的文件定向到自身目录中。当某个程序试图发挥作用时,安全软件能够先让它在沙盒中执行。假设含有恶意行为。则禁止程序的进一步执行,而这不会对系统造成不论什么危害。
3.watchdog:在由 单片机 构成的 微型计算机系统 中,因为单片机的工作经常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常执行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机执行状态进行实时监測的考虑。便产生了一种专门用于监測单片机程序执行状态的芯片。俗称" 看门狗 "。
看门狗是恢复系统的正常执行及有效的监视管理器。
4.fail-fast:机制是java集合(Collection)中的一种错误机制。
当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。
比如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其它线程所改变了;那么线程A訪问集合时,就会抛出ConcurrentModificationException异常,产生fail-fast事件。
fail-fast是错误机制,不是容错机制。
17.对于192.168.0.0到192.168.0.255这个网络来说,下面说法中正确的是____。
A.网段内可用来作为主机IP的范围是:192.168.0.0到192.168.0.255
B.Network IP是192.168.0.255
C.Broadcast IP是192.168.0.0
D.网段内的主机能够通过网卡对网卡传递数据
E.192.168.0.1和192.168.0.2的主机须要使用Router传递数据包
F.是class B等级
/***********************************************************************
广播地址是192.168.0.255,网络IP是192.168.0.0。本网络内仅仅是局域网的传递,用不到网络转发。最多可能用到集线器之类的东西。
192段为C类地址。网络号有3个字节。主机号全0和全1的地址不可有做主机IP。子网之间转发无需通过路由器。
主机号全为0,表示网络地址,全为1,表示广播地址。
网段内主机交流无需路由器。192是C类地址。
详见:计算机网络 之 IP地址、子网掩码与默认网关
详址:http://blog.csdn.net/u013630349/article/details/47837211
***********************************************************************/
18. 略
【解析】
详见:数据结构基础 图的遍历(一) 之 DFS
详址:http://blog.csdn.net/u013630349/article/details/46842567
19.已知int a[]={1,2,3,4,5}。int*p[]={a,a+1,a+2,a+3}。int **q=p;表达式*(p[0]+1)+**(q+2)的值是____。
【解析】
*(p[0]+1)+**(q+2)
当中p[0]=a也就是a[0]的地址,p[0]+1=a+1就是a[1]的地址,*(p[0]+1)就是a[1]的值就是2;
**q=p --> *q=&p -->表示q保存的是p 的地址,q+2表示p[2]的地址,*(q+2)表示p[2],**(q+2)表示*p[2]表示*(a+2)就是a[2]的值就是3;
所以,*(p[0]+1)+**(q+2)=5。
20.设x、y、t均为int型变量。则运行语句:t=3; x=y=2; t=x++||++y; 后。变量t和y的值分别为____。
【解析】
x++||++y运行后的结果是真。即1,然后赋值给t。
由于是或运算,所以在推断x++时真后,后面的++y就不再运行了,所以y值没有变还是2.所以。t=1 y=2。
笔试真题解析 ALBB-2015 算法project师实习生机试的更多相关文章
- 《PHP程序员面试笔试真题解析》——新书上线
你好,是我--琉忆.很高兴可以跟你分享我的新书. 很高兴,在出版了PHP程序员面试笔试宝典后迎来了我的第二本书出版--<PHP程序员面试笔试真题解析>. 如果你是一个热爱PHP的程序员,刚 ...
- 笔试真题解析 ALBB-2015 系统project师研发笔试题
4)在小端序的机器中,假设 union X { int x; char y[4]; }; 假设 X a; a.x=0x11223344;//16进制 则:() y[0]=11 y[1] ...
- 《PHP面试笔试真题库》——PHP面试的好帮手
你好,是我琉忆. 一个文艺的PHP开发工程师. 很荣幸能够在这里带来我的第一本新书--<PHP程序员面试笔试真题库>. 一.创作过程 <PHP 程序员面试笔试真题库>是我的第三 ...
- 美团点评2017校招笔试真题-算法工程师A
美团点评2017校招笔试真题-算法工程师A 1.下面哪种STL容器的实现和其它三个不一样 A. set B. deque C. multimap D. map 正确答案: B STL的容器可以分为以下 ...
- 美团点评2017校招笔试真题-算法工程师B
美团点评2017校招笔试真题-算法工程师B 1.以下关于经典的k-means聚类的说法哪个是错误的? A:k-means聚类算法是全局收敛的 B:k-means的聚类结果和初始聚类中心点的选取有关 C ...
- 网易实习笔试真题C/C++
刚做的时候根本就没有想到解题思路,刚好看到了别人的思路,自己写了一下.里面对unordered_map及vector二维数组的建立很灵活,另外区别了一下map,unordered_map,hash_m ...
- 蓝桥杯Java真题解析
上个月参加蓝桥杯省赛拿了个省一,自从比赛完之后就一直没怎么写代码了,还有一个多月就要国赛了,从现在开始准备下国赛,但是我也不想学什么算法,而且我还在准备考研,所以就打算只做下历年的真题,争取国赛拿个国 ...
- 2021年最新字节跳动Android面试真题解析
概述 时间过得是真TM快,回想自己是16年从学校毕业,现在是出来工作的第五个年头啦.在不同的大小公司都待过,就在前段时间顺利的完成了一次跳槽涨薪,面试了几家公司,最终选择了字节跳动.今特此前来跟大家进 ...
- python基础---递归函数真题解析
方法一.有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中. 即: {'k ...
随机推荐
- ASIHTTPRequest学习(一)
Creating a synchronous request 可以创建同步和异步两种方式的请求,一般情况下应当使用异步请求.使用同步请求主应用线程会锁住直至解锁为止. 创建异步请求,会在后台执行 - ...
- 在eclipse中使用Lombok
1.下载Lombok.jar http://projectlombok.googlecode.com/files/lombok.jar2.运行Lombok.jar: java -jar D:\001 ...
- Java程序猿修炼之道 之 Logging(3/3) - 怎么分析Log
1. 说明 作为一个程序猿我们常常要做一件事情:获取某个Log文件,从当中找出自己想要的信息. 本文总结了我在工作中使用了哪些工具来分析Log文件获取我想要的信息,我近期几年的工作环境都是server ...
- redis批量删除多个keys
Redis的官网redis.io,大家可以查看很多命令的使用方法 说明:删除单个key比较简单,直接使用命令del xxxkey,批量删除多个keys可利用如下命令: 假设:redis的安装目录如下: ...
- 飘逸的python - __get__ vs __getattr__ vs __getattribute__以及属性的搜索策略
差别: __getattribute__:是无条件被调用.对不论什么对象的属性訪问时,都会隐式的调用__getattribute__方法,比方调用t.__dict__,事实上运行了t.__getatt ...
- Android经常使用UI组件 - Button
button(Button)是Android其中一个经常使用的UI组件.非常小可是在开发中最经常使用到.一般通过与监听器结合使用.从而触发一些特定事件. Button继承了TextView.它的功能就 ...
- Word文档打不开怎么办
目前一些主流的办公软件给大家日常工作带来了很大便利,比如:Microsoft Office或金山WPS!我们在愉快地使用它们的同时,多少也遇到了一些让人尴尬或头疼的问题,比如:精心制作的文档,突然打不 ...
- SQL Server 2008 导入MDF数据库文件
1.将.MDF和.LDF文件拷到SQL Server2008数据目录,如:\\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\ ...
- SQL Server“吃内存”的解决
现象:Web服务器中SQL Server占用内存非常高,加内存后,SQL Server又吃掉新加的内存,好像内存永远不够用一样. 分析:其实这并不一定是由于SQL Server活动过度造成的,在启动S ...
- Jsp:useBean使用详解
<jsp:useBean>标签用来在jsp页面中创建一个Bean实例,定义语法如下: 一.<jsp:useBean>语法 <jsp:useBean id="id ...