巨人网络2019秋招安卓开发工程师笔试题
一:
1.(ios及 android开发者都需要作答)以下关于栈内存和堆内存的描述正确的是B
栈内存和堆内存对线程都是私有的
栈内存对线程私有,堆内存公有
栈内存和堆内存对线程都是公有的
栈内存对线程公有,堆内存私有
2.(ios及 android开发者都需要作答)移动设备中最常见的cpu架构是: D
1386
x86
IA-32
Arm
3.( android)关于 Intentservice的描述不正确的是:B
它拥有较高的优先级,不易被系统杀
它可以用于后台执行耗时的异步任务,当任务完成后需手动停止
它内部通过 Handler Thread和 Handler实现异步操作
它继承自 Service并且本身就是一个抽象类
4.( android) android用到的“.9″后缀的图可以放在以下哪个res文件夹下面C
anim
mipmap
drawable
Raw
5.( android)activity启动模式有4种,如下哪种它的退出顺序不再是根据调用顺序,而是在不同的任务栈中,从上往下退出A
singleInstance
singleTask
singleTop
standard
6.(ios)以下哪个继承关系是正确的()
UIButton-->UIControl-->UIView-->NSObject-->UIResponder
UIButton-->UIControl-->UIView-->UIResponder-->NSObject
UIControl-->UIButton-->UIView-->UIResponder-->NSObject
UIControl-->UIButton-->UIView-->NSObject-->UIResponder
7.( android)以下哪个进程一般用作缓存,加速下次启动B
后台进程
空进程
服务进程
可见进程
8.(ios) Serial Dispatch Queue和 Concurrent Dispatch Queue分别是什么队列()
都是同步
都是异步
分别是同步和异步
分别是异步和同步
9.(ios)在UIKit中, frame与 bounds的区别是()
frame是 bounds的别名
frame是 bounds的继承类
frame的参考系是父视图, bounds的参考系是自身
frame的参考系是自身, bounds的参考系是父视图
10.(ios)下面关于oc中GCD中的用法,错误的是 ()
dispatch async(dispatch_get_main_queue(),^{
NSLog(@” xxx”);
});
dispatch_sync(dispatch_get_main_queue(0,0), ^{
NSLog(@”xxx”):
});
dispatch_async(dispatch_get_global_queue(0, 0),^{
NSLog(@"xxx");
});
dispatch_async(dispatch_get_global_queue(0, 0), ^{
NSLog(@”xxx”);
});
dispatch_sync(dispatch get main queueD, A
NSLog((@”xxx");
});
11.下面的数据结构中属于线性内存结构的有AD
栈
链表
二又树
队列
12.( android)请简述 ViewHolder的作用,以及如何使用它
输入答案
13.(ios)请简述ios开发过程中需要用到的后缀为cer,, mobileprovision文件分别的作用,以及如何为您同学安装一个您开发的还非上架 appstore的应用的步骤
输入答案
14.(ios)请描述一下在App中购买件虚拟商品所触发的内购流程
输入答案
15.( android)请简述如何让两个ap相互间共享登录的账号信息,实现登录一个app后另一个app可以免登录
输入答案
16.(ios及 android开发者都需要作答)请编写一段代码实现-滴雨滴从屏幕上方加速下落的动画
答题前请选择使用的编程语言,否则将会被判定为错误答案。自动补全关键字的快捷键是Ctrl+丨(mac系统是command+1),撤销快捷键是Ctrl+Z
17.(ios及 android开发者都需要作答)一个界面上有一个按钮,按钮上写着“打开”,当点击这个按钮后更改上面的文字使其变为“关闭”,再次点击后又变回“打开”,请用代码实现这个功能的核心逻辑。
答题前请选择使用的编程语言,否则将会被判定为错误答案。自动补全关键字的快捷键是ctrl+l(mac系统是command+1),撤销快捷键是Ctrl+Z
18.(ios及 android开发者都需要作答)实现如下—个函数,输入个 double数组,输出最小值和最大值
∥参数a为输入数组(a非空,至少有一个元素),
//参数n为数组大小
∥参数rMin输出最小值,
∥参数rMax输出最大值
void MinMax(double*a, unsigned int n, double & rMin, double & rMax)
{
//To Do
}
要求:利用已有的一个 void QuickMin MaxIn5( double*a, double&rMin, double&rMax)函数来实现。QuickMin MaxIn5()是一个硬件底层实现的高性能函数,读取一个5个元素的数组,输出最小值和最大值。可将QuickMin MaxIn5()当作系统库函数使用,不用再去实现该函数。
答颎前请选择使用的编程语言,否则将会被判定为错误答案。自动补全关键字的快捷键是ctrl+l(mac系统是command+),撤销快捷键是Ctrl+Z
19.(ios及 android开发者都需要作答)在网络游戏中,客户端与服务器间的通讯通常采用消息机制;消息一般由消息头和消息数据两部分组成,其中消息头可能又是有多个字段拼接而成。现假设有如下消息结构
当网络层接收到一段消忘的字节流数据后,需要对消息体进行解析,现给出如下有效信息:
1、收到消息数据流,从消息头开始依次为: char buffer[]={0x4.0x0,0x1,0x7,0x0,0x1,0x2,0x3,0x4.0x5.0x6}
2、消息数据流采用小端序数据
3、给出解密函数
char* decrypt(char buff, intlen)
{
for (int n=0; n< len; n++)
{
buff[n]=(char)(buff[n]+1);
}
return buff;
}
请用补全解析消息函数 parse0代码,并写出打印结果。(注:请用C/C++/C#语言编写)
//buff参数传入接收到的数据流
// msglen参数返回消息数据长度
// bcomp参数返回消息数据是否加密
//msgid参数返回消息id号
//msgdata参数返回消息数据
void parse( char buff[, short* msglen, char bcomp, short* msgid, char** msgdata);
答题前请选择使用的编程语言,否则将会被判定为错误答案。自动补全关键字的快捷键是Ctrl+l(mac系统是command+l),撤销快捷键是Ctrl+Z