Google 2013校园招聘10道选择题(答案by曹博)


1、使用C语言将一个1G字节的字符数组从头到尾全部设置为字’A’,在一台典型的当代PC上,需要花费的CPU时间的数量级最接近: B
A、0.001秒 B、1秒 C、100秒 D、2小时

2、在某些极端要求性能的场合,我们需要对程序进行优化,关于优化,以下说法正确的是: D
A、将程序整个用汇编语言改写会大大提高程序性能。
B、在优化前,可以先确定哪部分代码最为耗时,然后对这部分代码使用汇编语言改写,使用的汇编语句数目越少,程序就运行越快。
C、使用汇编语言虽然可能提高了程序性能,但是降低了程序的可移植性和可维护性,所以应当绝对避免。
D、适当调整汇编指令的顺序,可以缩短程序运行的时间。

3、对如下C语言程序在普通X86 PC上面运行时候的输出叙述正确的是:B
char*f ( )
{
    char x[512];
    sprintf (x,”hello world”);
    return x+6;
}
main()
{
    printf(“%s”,f()};


A、程序可能崩溃,也可能输出hello world
B、程序可能崩溃,也可能输出world
C、程序可能崩溃,也可能输出hello
D、程序一定会崩溃

4、方程x1+x2+x3+x4=30有多少满足x1>=2,x2>=0,x3>=—5,x4>=8的整数解? A
A、3276 B、3654 C、2925 D、17550

5、一个袋子里装了100个苹果,100个香蕉,100个桔子,100个梨。如果每分钟从里面随机抽取一个水果,那么最多过多少分钟时间能肯定至少拿到一打相同种类的水果?(1打=12个)D
A、40 B、12 C、24 D、45

6、双败淘汰赛与淘汰赛相仿,也是负者出局,但负一场后并未被淘汰,只是跌入负者组,在负者组再负者(即总共已负两场)才被淘汰,现在有10个人参加双败淘汰赛,假设我们取消最后的胜者组冠军VS负者组冠军的比赛,那么一共需要举行多少场比赛? B
A、16 B、17 C、18 D、19 E、20

7、n个节点的二叉树,最多可以有多少层?D
A、n/2 B、log(n) C、n-1 D、n

8、下面哪个序列不是此图的一个拓扑排序? C
图片1.png

A、ebfgadch B、aebdgfch C、adchebfg D、aedbfgch

9、假如某主机安装了2GB内存,在其上运行的某支持MMU的32位Linux发行版中,一共运行了X,Y,Z三个进程,下面关于上个程序使用内存的方式,哪个是可行的? D
A、X,Y,Z的虚拟地址空间都映射到0—4G的虚拟地址上
B、X在堆上分配总大小为1GB的空间,Y在堆上分配200MB,Z在堆上分配500MB,并且内存映射访问一个1GB的磁盘文件。
C、X在堆上分配1GB,Y在堆上分配800MB,Z在堆上分配400MB
D、以上访问方式都是可行的

10、当使用TCP协议编程时,下列问题哪个是必须由程序员考虑和处理的?D
A、乱序数据包的重传 B、数据传输过程中的纠错
C、网络拥塞处理 D、发送数据的格式和应用层协议
已邀请:

cpcs - 诚实努力

赞同来自: July what shinhwa AndyJee _foo 左右手更多 »


我来写一下想法吧。
第一题 大概估算下 1K 大概10^3, 1M是10^6, 1G是10^9, 10^9用时大概在秒的级别,一般memset大概0.4-0.5能搞定。反正0.001秒肯定搞不定。。。
第二题 其实汇编写得差,同样很慢——不要一看到汇编就以为有多快。所以汇编也要优化,调整顺序往往可以利用缓存,提高效率。其他三个太绝对了。
第三题 返回局部变量的地址是一个危险操作,但不一定每次都挂。只是说我们失去了对该地址的控制,该地址的内容随时可能被改变成任何内容。所以输出可能是随机的,当然也可能系统“还没来得及改”。
第四题 换元x1 = a + 2, x2 = b, x3 = c - 5, x4 = d + 8, 原来方程等价于 a + b + c + d =25,并且a,b,c,d都是非负整数的解,这个可以看作把25个东西和3个隔板做组合,3个隔板两辆之间的东西数对应4个变量的解。所以答案是C(28, 3) = 3276
第五题 其实是抽屉原理,最差情况是4种水果,每种都恰好拿了11个,这时一共44个,再多拿一个,有一种水果正好够一打。
第六题 其实不用考虑细节。10个队伍,每比一场,淘汰一个队伍到负者组。所以9场比赛以后,胜者组剩下1个队伍,负者组是9个队伍,他们还每比过。同样思想,负者组那9个队伍,每比一场就真正淘汰一个队伍,所以还需要比8场剩下一个队伍。一共比的场数是9 + 8 = 17
第七题 退化为 n个节点的链表,正好n层。
第八题 C选项发现先h后g,不符合拓扑排序的顺序
第九题 怎么分配都可以…… 只要不超过3G, 一般1G给内核用,3G给用户用
第十题 其他三个都是TCP协议保证的,但是应用层的东西TCP管不了——TCP只负责传输层的,应用层在它上边

要回复问题请先登录注册

收藏七月在线,一起向大牛进阶

ctrl+D或command+D可以快速收藏哦~