校园招聘--奇虎360笔试

笔试职位:web漏洞挖掘工程师

Ps:十几个岗位同一套试题(其实有A、B卷,但是只是题目顺序调换了一下而已),不知道360啥意思

笔试题目结构是40个选择题+两个主观题

题目涉及的知识面甚是宽广,包括逻辑推理(离散数学知识)、c++面向对象(继承、构造函数等)、操作系统(内存分页、进程线程等)、数据结构(根据任意两种遍历(先序、中序、后序)写出二叉树、完全二叉树叶子节点等)、计算机组层原理(有个什么数据线的题目,忘了)、网络协议基础(TCP连接分析),最后两个选择题一个是objective-c,另外一个是andriod数字签名~_~!!

主观题一、给了一段函数问有什么安全漏洞,怎么修复漏洞?

函数完整的记不起来了,ptr指向一个数组

...
charbuf[120];
gets(buf);
strncpy(ptr,buf,8);
...

看到这几句就明白了,属于内存溢出漏洞,对gets进来的buf未进行大小判断,便直接进行拷贝处理,容易超出ptr所指向数组所申请的地址大小,从而造成溢出。

主观题二、给一个整数数组,求该数组中第二大的整数

/**
*Func:获取整数数组中第二大的整数
*Date:2013-10-12
**/
#include<iostream>
using namespace std;

//定义个很小的数,int最小-32767
const int MINNUMBER = -32767;

int find_sec_max( int data[], int count)
{
	int maxnumber = data[0];
	int sec_max = MINNUMBER;
	for (int i = 1;i < count;i++)
	{
		if ( data[i] > maxnumber )
			{
				sec_max = maxnumber;
				maxnumber = data[i];
			}else{
				if ( data[i] > sec_max )
					sec_max = data[i];
			}
	}
	return sec_max;
}
int main()
{
	//测试
	int a[5]={1,2,3,8,5};
	int secNum;
	secNum = find_sec_max(a,5);
	cout << "第二大的整数为:" << secNum <<endl;
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值