绿盟科技暑期实习笔试

今天下午去参加绿盟科技的实习生笔试了,C++开发的,去参加笔试的人不是很多,大概有20多人,笔试C++的比较少,大部分都是笔试安全工程师,今天的笔试题面比较广,也许是因为 绿盟主要是做安全产品的,所以笔试题中网络和操作系统相关的题占了比较重的比例。C++部分题不是很难,操作系统和网络的题的难度也还行,就是漏洞扫描的题,比较难。。。

网络题主要考网络层和应用层的基础知识和应用。操作系统主要操作进程同步相关的问题。

C++主要考察C++语言基础,包括指针数组,数组指针,函数指针以及指针函数等;基础数据结构和算法题抓哟包括链表、栈、队列以及查找和排序等方面内容。

C++中有道编程题,就是数组循环移位的题目,题意是:一个长度为M的数组循环右移N位,即 1,2,3,4,5,6,7,8,比如循环右移3位后为:6,7,8,1,2,3,4,5

本人是这么解答的:

#include <iostream>

using namespace std;

void swap(int &a,int &b)

{

    int tmp =a;

    a= b;

    b = tmp;

}

void reverse(int a[],int begin,int end)

{

    for(int i=0;i <(end-begin)/2;i++)

    {

        swap(a[i+begin],a[end-i-1]);

    }

}

void shift(int a[],int M,int N)

{

    reverse(a,0,M-N);    

    reverse(a,M-N,M);

    reverse(a,0,M);



}

int _tmain(int argc, _TCHAR* argv[])

{

    int a[10]={1,2,3,4,5,6,7,8,9,10};

    shift(a,10,2);

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

        cout << a[i] <<",";

    cin.get();

    return 0;

}

 

你可能感兴趣的:(笔试)