2018网易校招移动安全工程师笔试题
2017-09-09 17:30
260 查看
**声明,凭记忆写下。如有冒犯公司版权,请通知删除!
笔试题型:
20道单选 40分
3道编程 60分
2道问答 40分
一、单选题
安卓逆向知识:DexClassHeader的内容、快速排序一趟过后的顺序、Anti-Emulator技术、安卓反编译的保护方式、ios迭代、引起ANR的原因
二、编程题
(1)小易最初没有魔法币,但是可以通过魔法机器得到,第一台魔法机器输入x枚魔法币,得到2*x+1枚,第二台魔法器输入x枚银币得到,2*x+2枚。 现给定一个数字n,必须由第一二台魔法器得到。
输出投掷魔法器的顺序(题干中隐含意思是所有银币都要参与交易,不能由2个中拿出一个这样投)
输入:10
输出:122
代码如下
已AC
(2)给定一个数列,请你将它排列成符合如下要求的数列:a[i]*a[i+1]可以被4整除。如果可以排列成这种数列,输出Yes,否则输出No.
输入:
(1)第一行表示有多少测试用例
(2)后面每两行的第一行为数列中数的个数
(3)第二行数为数列
样例输入:
2
3
1 10 100
4
1 2 3 4
样例输出:
Yes
No
代码如下,已AC
三、问答题
(1)怎么实现像360助手那样的悬浮框?
答:用windowManager的addView
(2)IOS逆向工具的介绍
笔试题型:
20道单选 40分
3道编程 60分
2道问答 40分
一、单选题
安卓逆向知识:DexClassHeader的内容、快速排序一趟过后的顺序、Anti-Emulator技术、安卓反编译的保护方式、ios迭代、引起ANR的原因
二、编程题
(1)小易最初没有魔法币,但是可以通过魔法机器得到,第一台魔法机器输入x枚魔法币,得到2*x+1枚,第二台魔法器输入x枚银币得到,2*x+2枚。 现给定一个数字n,必须由第一二台魔法器得到。
输出投掷魔法器的顺序(题干中隐含意思是所有银币都要参与交易,不能由2个中拿出一个这样投)
输入:10
输出:122
代码如下
#include <iostream> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ //小易投的钱币中,设为N //n的解决方案为:(1)N位偶数,f(n)=f(n/2-1)+"2" //(2)n为奇数:f(n)=f(n/2)+"1" int find(int n) { int i; if(n==1) { printf("1"); return 0; } else if(n==2) { printf("2"); return 0; } else if(n%2==0) { i=n/2; i--; find(i); printf("2"); return 0; } else { i=n/2; find(i); printf("1"); return 0; } } int main(int argc, char** argv) { int n; scanf("%d",&n); find(n); return 0; }
已AC
(2)给定一个数列,请你将它排列成符合如下要求的数列:a[i]*a[i+1]可以被4整除。如果可以排列成这种数列,输出Yes,否则输出No.
输入:
(1)第一行表示有多少测试用例
(2)后面每两行的第一行为数列中数的个数
(3)第二行数为数列
样例输入:
2
3
1 10 100
4
1 2 3 4
样例输出:
Yes
No
代码如下,已AC
#include <iostream> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ //数列分为2的倍数,4的倍数,以及奇数 //其中2的倍数的最后一个数后面必须是4 //奇数中间必须插4的倍数 //所以满足的条件必须是4的倍数的个数=奇数个数+是否有2 #define MAX 100000 int main(int argc, char** argv) { int t; int i; scanf("%d",&t); for(i=0;i<t;i++) { int n; int a[MAX]; scanf("%d",&n); for(int j=0;j<n;j++) { scanf("%d",&a[j]); } //统计4的倍数,如果不是4的倍数,看是否为奇数 int f4=0; int istwo=0;//是否有2的倍数 int odd=0;//奇数个数 for(int j=0;j<n;j++) { if(a[j]%4==0) f4++; else if(a[j]%2==0) istwo++; else odd++; } if(istwo!=0) { if(f4>=odd) printf("Yes\n"); else printf("No\n"); } else { if(f4>=odd-1) printf("Yes\n"); else printf("No\n"); } } return 0; }
三、问答题
(1)怎么实现像360助手那样的悬浮框?
答:用windowManager的addView
(2)IOS逆向工具的介绍
相关文章推荐
- 2018网易校招笔试题——web前端开发
- 2018网易校招前端开发工程师笔试卷讨论
- 移动数组中所有的0到数组最后(2018携程笔试题)
- 2018网易校招笔试题之疯狂队列
- 2018拼多多内推笔试记录
- 网易校招笔试题 炮台攻击
- 网易2018校招内推笔试-彩色砖块
- 2012百度校园招聘|移动终端|笔试题目
- 网易2018秋招笔试[编程题] 交错01串
- 2018网易校招编程题(2) 等差数列
- 2018网易校招编程题(6)堆棋子
- 阿里2018校招客户端研发笔试之编程题
- 创新工场2018笔试题
- 2018 360笔试
- 搜狐2018笔试题二
- 11月28日某公司(移动平台游戏开发)笔试题
- 美团点评2018笔试 -- JAVA 进阶
- 今日头条2018实习生在线编程笔试题
- [置顶] 2017.9.9网易校招笔试最后一道编程解答
- 2018京东笔试 疯狂序列 神奇数