系统工程师 北京 笔试卷
第一部分 单选题(前10题,每题2分;后10题,每题3分;共50分。选对得满分,选错倒扣一分,不选得0分。)
1.字符串“alibaba”有 个不同的排列。
A.5040
B.840
C.14
D.420
2.下列一段C++代码的输出是 。
class Base
{
public:
int Bar(char x) {return (int)(x);}
virtual int Bar(int x) {return(2*x);}
};
class Derived :public Base
{
public:
int Bar(char x) {return(int)(-x);}
int Bar(int x) {return (x/2);}
};
void main(void)
{
Derived Obj;
Base*pObj=&Obj;
printf("%d,",pObj->Bar((char)(100)));
printf("%d,",pObj->Bar(100));
}
A.100,50
B.-100,200
C.-100,50
D.100,200
3.有一个二维数组A[10][5],每个数据元素占1个字节,且A[0][0]的存储地址是1000,则A[i][j]的地址是 。
A.1000+10i+j B.1000+i+j C.1000+5i+j D.1000+10i+5j
4.下列 不是线性表?
A.队列
B.栈
C.关联数组
D.链表
5.下列有关在一个处理器(processor)上跑两个线程(thread)的说法中,正确的是 。
A.一个线程可以改变另一个线程的程序计数器(program counter)
B.一个线程既不能读也不能写另一个线程的栈(stack)
C.一个线程可以读写另一个线程的寄存器(register)
D.以上都不对
6.关于双链表的搜索给定元素操作的说法正确的是 。
A.从两个方向搜索双链表,比从一个方向搜索双链表的速度慢
B.从两个方向搜索双链表,比从一个方向搜索双链表的方差要小
C.从两个方向搜索双链表,比从一个方向搜索双链表速度要快
D.以上说法都不正确
7.对n个数字进行排序,期中两两不同的数字的个数为k,n远远大于k,而n的取值区间长度超过了内存的大小,时间复杂度最小可以是 。
A.O(nlogk)
B.O(nk)
C.O(n)
D.O(nlogn)
8.一台指针式钟表的时钟和分钟的指向重合的时间间隔是 B 。
A.720/13分钟
B.720/11分钟
C.60分钟
D.以上都不正确
9.两个大小不同的杯子R和S,R中装着一定量的小米,S中装着一定量的沙子。一名儿童用勺子从S中取出一勺沙子放入R,与小米混合之后,再从R中取出等体积的一勺混合物放入S。假定两勺物品的体积相等,且R和S都没有发生溢出。则以下说法中正确的是 。
A.R中的沙子和S中的小米一样多
B.R中的沙子比S中的小米少
C.R中的沙子比S中的小米多
D.无法判断
10.假定抛出的硬币落地之后正反两面出现的概率分别是1/2。那么抛10次和100次硬币(分别称为T10和T100)相比,以下说法正确的是 。
A.T100出现一半的正面比T10出现一半正面的概率更大
B.T100前3次都是正面的概率比T10前3次都是正面的可能性大
C.T100正面次数的方差小于T10出现正面次数的方差
D.T100出现正面的比例比T10出现正面的比例在(0.45,0.55)区间中的可能性更大。
11.某福彩机构推出了一款简单的猜谜游戏:游戏玩家只需交纳n元,赌红或者黑。如果开奖结果与游戏玩家所赌的颜色相同,则玩家除得到交纳的n元赌资外,还可以获得n元作为奖励;否则该玩家失去交纳的n元赌资。为了游戏公平,开奖是红或者黑的概率均为1/2。某游戏玩家想出了一个玩法:开始出100元参与赌博,然后按照如下规则进行游戏,如果输掉,并且赌资充足,就把已经输了的总钱数翻倍作为赌资进行赌博;否则,就停止该游戏。假定该机构赌资无限,而玩家的赌资比较有限,以下关于该玩家退出游戏时的情形的评论中合理的是: 。
A.该玩家的策略可以保证游戏结束时赢钱数的期望为正数
B.该福彩机构长期会赔钱
C.该玩家会有一定概率在游戏结束时输钱,但输得不多
D.该玩家赢的可能性比输的可能性大
12.有16瓶水,其中只有一瓶水有毒,小白鼠喝一滴之后一小时会死。请问最少用 只小白鼠,在1小时内一定可以找出至少14瓶无毒的水?
A.1只
B.3只
C.4只
D.16只
13.有一台4核CPU的服务器,上面运行着1种在线服务。如果该在线服务处理一个请求在非独占IO上的等待时间和CPU计算上消耗的时间比为2:1,假定IO带宽充足,那么至少开 个线程能最大化性能地使用该服务器?
A.4
B.8
C.12
D.线程越多越好
14.有一种语言称为lua,里面的数字只有一种类型(number),实际上是双精度浮点数。没有各种位数的整数,如32位、64位整数等。那么关于该语言的说法错误的是 。
A.该语言可以用number类型的变量作为数组下标
B.该语言可以表示任意32位数字整数的数字ID
C.该语言无法实现32位数字整数的按位与、或、异或运算
D.该语言可以正常进行双精度浮点数运算
15.一个在线服务通常需要读取存储着海量数据的数据库。为了提高服务的处理速度,通常需要加cache(缓存)。以下场景中不合适使用cache的是 。
A.数据库中每条数据被访问到的概率近似相等,且独立
B.使用了多线程机制的服务
C.单条数据尺寸大小的数据
D.有着大量访问的服务
16.如下一段神奇的代码实现的功能是 。
int miracle(unsigned int n)
{
int m=n==0 ? 0:1;
while (n=(n&(n-1)))
{
m++;
}
return m;
}
A.n的二进制表示中“0”的个数
B.n的二进制表示的倒序值
C.n的二进制表示中“1”的个数
D.一个均匀的哈希函数
17.有1023个两两不同的整数,取值范围是1到1024,其按位异或的结果的取值范围是 。
A.0到1024
B.0,1025到2047
C.1到1024
D.2到2048之前的全部偶数
18.七夕节n恋人(n>=2)围成一圈举行篝火晚会。晚会的规则是:男女相同,且每对恋人处在相邻的位置上。请问有多少种不同的圈子?
A.(2n-1)!/2
B.2(n-1)!
C.2n(n-1)!
D.(2n)!
19.星期天有10个朋友约好一起郊游,在车站的集合时间是早晨9:50:00到10:00:00。已知每个人到达车站的时间是9:50:00到10:00:00内的均匀分布,且彼此独立。那么最后一人最可能到达的时间是 (精确到分钟,向下取整)。
A.各个分钟概率相等
B.9:57
C.9:58
D.9:59
20.已知某国家每年出生人口数每年递增3%,且男女比例为1:1。如果每个男性都希望找比自己小0.5到 3岁的女性结婚,且每个女性都希望找比自己大0.5到3岁的男性结婚,适婚年龄为20到30岁,那么对该国适婚男女婚配方面的说法正确的是 。
A.男女会比较均衡
B.会产生较多剩女
C.会产生较多剩男
D.信息不足,无法判断
第二部分 不定向选项(4题,每题5分。每题有1-5个正确选项,完全正确计5分,漏选计2分,不选计0分,多选、错选计-2分)
21.要提高多线程程序的效率,对锁的控制策略非常重要。一种策略是在锁的个数不太多、控制结构不太复杂的情况下,尽可能降低加锁的粒度;另一种策略是在合适的条件下取消用锁。以下情况中不可能取消锁的是 。
A.多线程写一个共同的数据结构,且写操作是原子操作
B.多线程写一个共同的数据结构,且写操作不是原子操作
C.多线程读一个共同的数据结构,且读操作不是原子操作
D.一个线程写,多个线程读一个共同的数据结构,写操作是原子操作,读操作不是原子操作
E.一个线程写、多个线程读一个共同的数据结构,写操作不是原子操作,读操作是原子操作