​2015奇虎360校园招聘技术类笔试题目

匿名网友 匿名网友 发布于: 2016-06-14 00:00:00
阅读 205 收藏 0 点赞 0 评论 0

一  选择题(单选)

1.上高中的小明暗恋女神三年,高考结束后,小明决定向女神表白,这天,小明来到女神楼下等待女神的出现,时间一分一秒的流逝,两个小时过去了,女神还没有出现,小明看了下表,时针和分针的位置正好跟开始等的时间呼唤,请问小明一共等了女神多少分钟:

 

A. 172                B. 166              C.165             D. 150

 

2. 有A、B、C三个学生,一个出生在北京,一个出生在上海,一个出生在广州。他们中一个学物理专业,一个学数学专业,一个学计算机。其中:(1)A不是学物理的,B不是学计算机的 (2)学物理的不出生在上海;(3)学计算机的出生在北京;(4)B不出生在广州。请根据上述条件,请判断A的专业:

 

A、物理          B、数学                C、计算机          D、3种专业都可能

 

3.一个不透明的箱子里共有红、黄、蓝、绿、白五种颜色的小球,每种颜色的小球大小相同,质量相等,数量充足。每个人从篮子里抽出两个小球,请问至少需要多少个人抽球,才能保证有两个人抽到的小球颜色相同?

 

A、6个               B、11个               C、14个                    D、16个

 

4.平面内有11个点,由他们连城48条不同的直线,由这些点可连城多少个三角形?

 

A、158               B、160               C、162               D、165

 

5. 8,8,12,24,60,……

 

    A、90        B、120        C、180        D、240

 

6. 假定x = 65530,下面函数的返回值是多少

 

    int func(x)

 

    {

 

        int countx = 0;

 

        while(x)

 

        countx ++;

 

        x = x&(x-1);

 

    } 

 

    return countx;

 

 

 

  A. 24        B.14        C.20        D.16

 

 

7.某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序,序列的变化情况采样如下:

 

    20,15,21,25,47,27,68,35,84

 

    15,20,21,25,35,27,47,68,84

 

    15,20,21,25,27,35,47,68,84

 

    请问采用的是以下哪种排序算法:

 

    A、选择排序    B、希尔排序    C、归并排序    D、快速排序

 

 

 

8.设某棵二叉树中有360个节点,则该二叉树的最小高度为

 

    A、10        B、9        C、8        D、7

 

9.下列那个算法是对一个list排序的最快方法:

 

    A、快速排序        B、冒泡排序        C、二分插入排序        D、线性排序

 

10.一直二叉树的先序遍历和中序遍历得到的序列式:ABECFGHD 和 ABEFHGCD,则该二叉树后序遍历得到的序列为:

 

    A、EBHGFDCA    B、BHEDFDCA    C、EGFHBDCA    D、EDCABHGF

 

 

11.无向图G=(V E),其中V={a, b, c, d, e, f},E={<a, b>, <a, e>, <a,c>, <b,e>, <c,f>, <f, d>, <e, d>},     对该图进行深度优先排序,得到的顶点序列正确的是

 

    A、a, b, e, c, d, f    B、a, c, f, e, b, d    C、a, e, b, c, f, d    D、a, e, d, f, c, b

 

12.快速排序算法在序列已经有序的情况下的复杂度为

 

    A、o(nlogh)    B、o(n^2)    C、o(n)    D、o(n^2  logn)

 

13.What is the complexity of the following code expressed in o()notation if more than one answer is     correct, choose the smallest one:

 

    for(int i = 0; i<n; i++)

 

    {

 

        for(int j = 1; j<=m; j+=2)

 

        {

 

            for(int z = j/2; z<j; z++)

 

            {

 

                //do something

 

            }

 

        }

 

    }

 

    A、o(n*m*m)    B、o(m*log(m)*m)    C、o(n+m+m)    D、o(n*m)

 

 

 

14. 解析XML时,需要校验节点是否闭合,如<root>必须有</root>与之对应,用()数据结构实现比较好。

 

    A、链表    B、树    C、队列    D、栈

 

15.将一棵有100个节点的完全二叉树从根这一层开始,开始进行深度遍历编号,那么编号最小的叶节点的编号是:

 

    A、49    B、50    C、51    D、52

 

16.______是一个int类型的指针数组,数组元素个数为10个:

 

    A、a[10];        B、int (*a)[10]        C、int *a[10];        D、int (*a[10])(int)

 

17.struct Date {

 

    char a;

 

    int b;

 

    int64_t c;

 

    char d;

 

    };

 

    Date data[2][10];

 

    如果Date的地址为x,那么data[1][5],c的地址是

 

    A、x+195        B、x+365        C、x+368        D、x+245

 

 

 

18.如下代码输出结果是什么?

 

    #include <stdio.h>

 

    char *myString(){

 

        char buffer[6] = {0};

 

        char *s = “hello World!”;

 

        for(int i = 0; i<(sizeof(buffer)-1); i++){

 

            buffer[i] = *(s+i);

 

        }

 

        return buffer;

 

    }

 

 

 

    int main(int argc, char** argv){

 

        printf( “%s\n” , myString());

 

        return 0;

 

    }

 

    A、Hello        B、Hello World!        C、Hello         D、以上全都不正确

 

 

 

19.在C++中, {const int i=0; int *j = (int *)&i; *j = 1;printf(“%d,%d” , i, *j)}, 输出是多少?

 

     A、0,1            B、1,1            C、1.0            D、0,0

 

20.下面哪一个是sort的template的正确写法:

 

    A、void sort(class A first, class A last, class B pred)

 

    B、void template(class A, class B) sort(A first, A last, B pred)

 

    C、template<class A><class B> void sort(A first, A last, B pred)

 

    D、template<class A, class B> void sort(A first, A last, B pred)

 

 

 

21.定义一个下面的结构体

 

    struct st_task{   

 

        uint16_t id;

 

        uint32_t value;

 

        uint64_t timestamp;

 

    };

 

 

 

    同时定义fool函数如下:

 

    void fool(){

 

        st_task task = {};

 

        uint64_t a = 0x00010001;

 

        memcpy(&task, &a, sizeof(uint64_t));

 

        printf(“u, u, u”, task.id, task.value. task.timestamp);

 

    }

 

    上述fool()程序的执行结果为:

 

    A、1,0,0            B、1,1,0            C、0,1,1            D、0,0,1

 

 

 

22.下面代码会输出什么

 

    int main(int argc, char **argv){

 

        int a[4] = {1,2,3,4};

 

        int *ptr = (int*)(&a+1);

 

        printf(“%d”, *(ptr-1));

 

    }

 

    A、1               B、2                C、3                D、4

 

 

 

23.#include<iostream>

 

    using namespace std;

 

    

 

    class MyClass

 

    {

 

        public:

 

        MyClass(int i = 0)

 

        {

 

            cout<<i;

 

        }

 

        MyClass(const MyClass &x)

 

        {

 

            cout<<2;

 

        }  

 

     ****  operator=(const MyClass &s)

 

    {

 

        cout<<3;

 

        return *this;

 

    }

 

    MyClass()

 

    {

 

        cout<<4;

 

    }

 

    };

 

    int main()

 

    {

 

        MyClass obj1(1),obj2(2);

 

        MyClass obj3 = obj1;

 

        return 0;

 

    }

 

    运行时的输出结果是:

 

    A、11214444            B、11314444            C、122444                D、123444

 

 

 

24.当需要对文件进行随机存取时,下列哪一种文件物理结构不适用于上述应用场景

 

    A、顺序文件        B、索引文件        C、链接文件        D、Hash文件

 

 

 

25. X86体系结构在保护模式下中有三种地址,请问以下哪种说法是正确的()

 

    A、虚拟地址先经过分段机制映射到线性地址,然后线性地址通过分页机制映射到物理地址

 

    B、线性地址先经过分段机制映射到虚拟地址,然后虚拟地址通过分页机制映射到物理地址

 

    C、虚拟地址先经过分页机制映射到线性地址,然后线性地址通过分页机制映射到物理地址

 

    D、线性地址先经过分段机制映射到虚拟地址,然后虚拟地址通过分段机制映射到物理地址

 

 

 

26. 对Linux系统,下列说法正确的是()

 

    A、线程访问内存非法时,当前线程会进入信号处理函数

 

    B、用mv命令移动文件时,文件的修改时间会发生变化

 

    C、ulimit -c 设置的是函数调用栈的大小

 

    D、malloc函数是应用程序向操作系统申请内存的接口

 

 

 

27.以下说法不正确的是

 

    A、进程调度中“可抢占”和“非抢占”两种方式,后者引起系统的开销更大

 

    B、每个进程都有自己的文件描述符表,所有进程共享同一打开文件表和v-node表

 

    C、基本的存储技术包括RAM, ROM, 磁盘,以及SSD,其中访问速度最慢的是磁盘,CPU RAM组成的

 

    D、多个进程竞争资源出现了循环等待可能造成系统死锁

 

 

 

28.for(int i = 0; i<2; i++)

 

    {

 

        fork();

 

        printf(“-\n”);

 

    }

 

    会打印出多少个“-”?

 

    A、4            B、5            C、6            D、8

 

 

29. 单任务系统中两个程序A和B,其中

 

    A程序:CPU:10s->设备1:5s -> CPU:5s->设备2:10s -> CPU: 10s;

 

    B程序:设备1:10s -> CPU:10s -> 设备2:5s->CPU:5s -> 设备2: 10s;

 

    执行顺序为A->B,那么CPU的利用率为()

 

    A、30%            B、40%            C、50%            D、60%  

 

 

30.下述那种情况会提出中断请求:

 

    A、在键盘输入过程中,每按一次键        B、两数相加结果为零

 

    C、计算结果溢出                        D、一条系统汇编指令执行完成

 

 

 

31.有一虚拟存储系统,若进程在内存中占3页(开始是内存为空),若采用先进先出(FIFO)页面*执行以下访问页号序列后1,3,4,2,1,3,5,1,2,5,4,2,会产生多少次缺页

 

    A、7            B、8            C、9            D、10

 

 

 

32.同一进程下的多个线程可以共享哪一种资源:

 

    A、stack            B、data section            C、register set            D、thread ID

 

 

 

33.以下哪些不是内核对象:

 

    A、进程            B、线程           C、 互斥器           D、 临界区

 

34.如果在一个建立了TCP连接的socket上调用recv函数,返回值为0,则表示

 

    A、对端发送了一个长度为0的数据        B、对端关闭了连接

 

    C、还没有收到对端数据                 D、连接发生错误

 

35.IPV6地址包含多少位:

 

    A、16            B、32            C、64            D、128

 

36.语法分析器可以用于:

 

    A、识别语义错误        B、识别语法和语义错误        C、识别语法错误        D、识别并修正

 

37. digit-> 0|1|……|9

 

    digit -> digit digit*

 

    optionalFraction -> .digits | ∈

 

    optionalExponent -> (E(+|-|∈)digits)|∈

 

    number -> digits optionalFraction optionalExponent

 

    上面给出的正则规约描述中,下面的无符号数哪个不符合规约的要求:

 

    A、5280            B、1.            C、2.0            D、6.336E4

 

38.应用程序PING发出的是什么报文

 

    A、TCP请求报文    B、TCP应答报文    C、ICMP请求报文    D、ICMP应答报文

 

39.不能把字符串“HELLO!”赋值给数组b的语句是:

 

    A、char b[10] = {‘H’,’E’,’L’,’L’,’O’,’\0′};

 

    B、char b[10]; b = “HELLO!”;

 

    C、char b[10]; strcpy(b, “HELLO!”);

 

    D、char b[10] = “HELLO!”;

 

 

 

二  主干题

1.请写一个函数,根据两文件的绝对路径算出相对路径。如 a = “/qihoo/app/a/b/c/d/new.c”,b = “/qihoo/app/1/2/test.c”,那么b相对于a的相对路径是”../../../../1/2/test.c”

 

2.一个二维float型矩阵,有m行n列,每一个行和列上都是递减序列,请编程实现在这个矩阵中查找值等于v元素的函数,如果找到返回其下标

评论列表
文章目录