2010谷歌校园招聘笔试题

1.哪个表达式不能用这个匹配:a(bc)*d?
A.ad
B. abcd
C.abc
D.abccd 
2.INTEL X86 CPU中,哪种运算最慢:
A.加
B. 减
C.乘
D.除
3.下面程序的输出:

#include <iostream>
using namespace std;

int main()
{
    bool first=true;
    int sum =0;
    int current_value;
    for(unsigned short i=65535;i>=0;--i )
    {
        if(first)
        {
            current_value=65535;
            sum+=current_value%3;
            first=false;
        }
        else
        {
            sum+=-current_value%3;
            if(current_value<=0)
            {
                printf("%d,%d",sum,i);
                break;
            }
        }
    }
    system("pause");
}

A. 65535, 0  B. 65536, 1  C. 65536, 65535  D. 65536, 0

4.有19本书,分别编号为1-19,从中选出5本,要求任意两本不相邻,一共有多少种选法?
A. 2002
B. 3003
C.11628
D.360360

可用插空法。假如书架上现已放好了14本书,现要将5本书插入进去且使之任意两本不相邻,即在15个空中插入5本书,列式为:C(15,5)=3003。

5.一套房子200万,每年价格上涨10% ,一个工程师每年固定收入40万,假定他不贷款,不涨工资,问几年能买的起房子
A.5
B.7
C.8
D.永远也买不起
6.有N个叶节点的满二叉树节点,其共有多少个节点?
A.2N-1
B.2N
C.N-1
D.N
7.以下哪个排序算法的最坏时间复杂度是O(nlogn)?
A.归并排序
B. 快速排序
C. 冒泡排序
D.插入排序
8.两个排好序的数组大小为N,M,合并成一个有序数组,则最小比较次数:
A.min(N,M)
B.M+N-1
C. N+M 
D.max(N,M)
9.关于TLB和Cache,下面哪个说法是错的
A.TLB和cache中存的数据不同
B.TLB miss后,可能在Cache中直接找到页表内容
C.TLB miss会造成程序执行出错,但是cache miss不会
D.这两者的命中率都与访存模式有关
10.对于数据库,以下哪种说法是错的
A.每个表都必须有主键
B.跨表查询很慢
C.数据库不支持多个客户端同时对一个表进行写操作
D.多维索引可以用KD树  

编程题(前两个写程序,最后一个写思路或者伪代码)
1.用一个数组A[N+1]存储一个多项式:a0+a1x+a2x2+….anxn,用一个程序计算这个多项式的值。
函数原型:double eval(double x, double *A)
2.有n个队伍,n=2^k。有一个二维数组,winner[j]代表第i队和第j队的比赛结果中胜出队伍的编号,winner[j]winner[j]相同。另有一个代表单淘汰赛签位的一维数组order[0]…[n-1]order代表i签位上的队伍编号。现在要求输出一个最终队伍排名,如果在同一轮中淘汰的认为排名相同,并且时间和空间复杂度尽可能低

n=4时有一个例子(例子不记得了)
函数原型:void fun(int **winner, int *order, int*result)
0<n<=1000
3.KOF里的连招。连招表达式S->T,比如ABC->C, ABD->E, BDE->F, DEF->G,那么连招输出就可以是ABD->E->F>G。现在要求一个程序,能够输出最大连招的长度

posted @ 2013-08-27 09:32  一枚程序员  阅读(871)  评论(0编辑  收藏  举报