2018网易上级笔试题,总共分为三个部分,第一部分是选择题,难度可能可能根据不同的岗位难度不太一样,反正我做的是iOS客户端选择题,处于中等水平吧,不是很难。第二部分是编程题,总共是三大题,我只做了第一题和第三题,第二题感觉有点难度,反正是花了2分钟理解题目,直接放弃了。第三部分是问答题,有2个小题目。
第一部分20道选择题,就不多说了。
第二部分,第一道编程题是相反数题目。比如说给一个数字23,然后将这个数按照相反的顺序变成32,然后再将32和23相加,得到的数输出,确实挺简单的,代码如下:
long Decimal(long number)
{
long tmp1, tmp2 = 0;
long tmp = number;
if (tmp < 1)
return -1;
if (tmp < 10)
return tmp*2;
tmp1 = tmp;
while(tmp/10 !=0)
{
tmp2 = tmp2 * 10 + tmp % 10;
tmp = tmp / 10;
}
tmp2 = tmp2 * 10 + tmp % 10;
long returnNumber = tmp1 + tmp2;
return returnNumber;
}
编程第二题,没搞懂,我就不献丑了
编程第三题,要求比较多,首先是从界面输入一个数组,数组中经过任意的换位置,看这个数组能不能满足a[i]*a[i+1]
能够被4除尽,可以的话就输出true
,否则为false
,但是这只是一半的要求,还要求我们从界面输入一个数字,该数字表示你要输入几个数组,然后一个输入数组的个数和数组的内容,格式如下:
public static void Main(string[] args)
{
Console.Write("输入一个 数组个数:");
string numberStr = Console.ReadLine();
int number = Convert.ToInt16(numberStr);
for (int i = 0; i < number; i++)
{
Console.Write("输入一个数组长度:");
int lenth = Convert.ToInt16(Console.ReadLine());
string str = Console.ReadLine();
string[] numStr = str.Split(new string[] {" "}, StringSplitOptions.None);
if (numStr.Length != lenth)
return;
bool result = IsNiuBoShi(lenth, numStr);
Console.Write("结果:");
Console.WriteLine(result);
}
}
static bool IsNiuBoShi(int length, string[] arr)
{
if (arr.Length == 0 && length != arr.Length)
return false;
int tmp1 = 0, tmp2 = 0;
for (int i = 0; i < length; i++)
{
int tmp = Convert.ToInt16(arr[i]);
if (tmp % 4 == 0)
tmp1++;
if (tmp % 4 != 0 && tmp % 2 == 0)
tmp2++;
}
if (tmp1 + tmp2/2 >= length / 2)
return true;
else
return false;
}
第三部分为解答题:
第一小题为:unrecognized selector sent to instance
的原因,已经报错之前的整个过程,简单说一下,这个题目网上应该很多,原因是对象的提前释放,大家可以网上百度一下就出来了。
第二小题,就是在分类/Category中添加一个属性,这里用到了Runtime机制,不懂得大家可以看一下我的上篇文章。
哪里有不对的地方或者有更好的方法,大家一起来讨论一下吧!
网友评论